Index: head/lang/smlnj/Makefile =================================================================== --- head/lang/smlnj/Makefile (revision 512487) +++ head/lang/smlnj/Makefile (revision 512488) @@ -1,372 +1,369 @@ # $FreeBSD$ PORTNAME= smlnj -PORTVERSION= 110.84 +PORTVERSION= 110.91 CATEGORIES= lang MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ \ ftp://mirror.free.de/http/smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ DISTFILES= config.tgz runtime.tgz DIST_SUBDIR= smlnj/${PORTVERSION} EXTRACT_ONLY= config.tgz MAINTAINER= joemann@beefree.free.de COMMENT= Compiler and tools for Standard ML (SML '97) LICENSE= SMLNJ LICENSE_NAME= Standard ML of New Jersey License LICENSE_TEXT= The text of the license can be obtained from the following URL:\ http://www.smlnj.org/license.html LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept ONLY_FOR_ARCHS= amd64 i386 LLD_UNSAFE= yes NO_WRKSUBDIR= yes SUB_FILES= pkg-install SUB_LIST= EXEBINDIR=${MLBINRELATIVE} EXENAMES="${MLEXE}" PKGDEINSTALL= ${PKGINSTALL} -OPTIONS_DEFINE= EVERYTHING RECOMPILE POSITION64 +OPTIONS_DEFINE= EVERYTHING RECOMPILE RECOMPILE_IMPLIES= EVERYTHING -POSITION64_IMPLIES= RECOMPILE EVERYTHING_DESC= install everything from the SML/NJ distribution RECOMPILE_DESC= recompile the SML compiler - implies EVERYTHING -POSITION64_DESC= use 64bit file positions - implies RECOMPILE .include .if (${ARCH} == "amd64") CFLAGS+= -m32 AS?= as ASFLAGS+= --32 .endif +CPPASFLAGS+= -DGNU_ASSEMBLER .if (${ARCH} == "i386" || ${ARCH} == "amd64") MLARCH= x86 DISTFILES+= boot.x86-unix.tgz .endif DISTFILES+= MLRISC.tgz asdl.tgz ckit.tgz cml.tgz doc.tgz heap2asm.tgz \ ml-burg.tgz ml-lex.tgz ml-lpt.tgz ml-yacc.tgz nlffi.tgz \ old-basis.tgz smlnj-lib.tgz trace-debug-profile.tgz PLIST_SUB+= MLARCH=${MLARCH} -.if ${PORT_OPTIONS:MPOSITION64} -CMB_COMMAND= '(\#set o CMB.symval) "USE_64_BIT_POSITIONS" (SOME 1);' -.else +# Useful for tuning recompilation. CMB_COMMAND= -.endif .if ${PORT_OPTIONS:MEVERYTHING} DISTFILES+= cm.tgz compiler.tgz eXene.tgz \ pgraph.tgz smlnj-c.tgz system.tgz PLIST_SUB+= EVERYTHING="" .else PLIST_SUB+= EVERYTHING="@comment " .endif MLROOTRELATIVE= smlnj MLROOT= ${PREFIX}/${MLROOTRELATIVE} MLBINRELATIVE= ${MLROOTRELATIVE}/bin MLBIN= ${MLROOT}/bin MLLIB= ${MLROOT}/lib MLSTDSRCDIRS= asdl cml doc heap2asm ml-burg ml-lex ml-lpt ml-yacc \ nlffi smlnj-lib MLSRCDIRS= base ${MLSTDSRCDIRS} \ ckit eXene pgraph smlnj-c MLSRCS= .for srcdir in ${MLSRCDIRS} MLSRCS+= ${MLROOT}/${srcdir} .endfor MLTARGETS= heap2asm MLEXE= asdlgen heap2exec ml-antlr ml-build ml-burg ml-lex \ ml-makedepend ml-nlffigen ml-ulex ml-yacc sml .if ${PORT_OPTIONS:MEVERYTHING} +MLSTDSRCDIRS+= eXene pgraph smlnj-c MLTARGETS+= eXene mlrisc-tools nowhere pgraph-util src-smlnj MLEXE+= nowhere PLIST= ${WRKDIR}/.PLIST MLRUNTIMEPLIST= ${WRKDIR}/.PLIST-runtime MLSRCPLIST= ${WRKDIR}/.PLIST-src MLPLISTFILES= ${.CURDIR}/pkg-plist ${MLRUNTIMEPLIST} ${MLSRCPLIST} .endif pre-fetch: @${ECHO} .if ! ${PORT_OPTIONS:MEVERYTHING} @${ECHO} 'Use port option EVERYTHING to also build/install' @${ECHO} ' eXene (X Windows toolkit),' @${ECHO} ' nowhere (preprocessor for conditional patterns),' @${ECHO} ' various libraries, and all the sources.' .endif .if ! ${PORT_OPTIONS:MRECOMPILE} @${ECHO} 'Use port option RECOMPILE to recompile the compiler.' @${ECHO} ' This implies EVERYTHING.' .endif -.if ! ${PORT_OPTIONS:MPOSITION64} - @${ECHO} 'Use port option POSITION64 to use 64bit file positions.' - @${ECHO} ' This implies RECOMPILE.' -.endif @${ECHO} # make symlinks to the dist files post-extract: cd ${WRKSRC} && ${LN} -sf ${_DISTDIR}/* . # Configuring is done by uncommenting the appropriate #request # lines of config/targets. Dependency details are handled by # base/system/smlnj/installer using config/dependencies and # config/actions. do-configure: .if defined(MLTARGETS) ${ECHO_CMD} -n > "${WRKDIR}/.tmp.sed" .for t in ${MLTARGETS} ${ECHO_CMD} '/^#request[ ]+${t}$$/s/^#//' >> "${WRKDIR}/.tmp.sed" .endfor ${SED} -i .default -E -f "${WRKDIR}/.tmp.sed" "${WRKSRC}/config/targets" .endif # Recompilation requires ml-lex and ml-yacc. All requested targets # will be built later using the recompiled core system after # removing targets.customized. See "do-build" below. .if ${PORT_OPTIONS:MRECOMPILE} ( ${ECHO_CMD} "request ml-yacc" && \ ${ECHO_CMD} "request ml-lex" && \ ${ECHO_CMD} "request ml-lex-mllex-tool" && \ ${ECHO_CMD} "request src-smlnj" ) \ > "${WRKSRC}/config/targets.customized" .endif # The build target patches, builds, and installs the system within WRKDIR. # base/runtime is not cleaned afterwards to avoid its recompilation during # a subsequent make install. # See base/system/README for information on recompiling the compiler. .if ${PORT_OPTIONS:MRECOMPILE} RECOMPILEDIR= base/system .else RECOMPILEDIR= .endif MLRUNTIMEPATCHES_CMD= cd ${FILESDIR} && \ ( ${LS} do-patch-base_runtime_* 2>&- || \ ${TRUE} ) MLSTANDARDPATCHES_CMD= cd ${FILESDIR} && \ ( for srcdir in ${MLSTDSRCDIRS} ; \ do ${LS} do-patch-$${srcdir}_* 2>&- ; \ done ) || ${TRUE} MLSTANDARDPATCHDIRS_CMD= cd ${FILESDIR} && \ ( for srcdir in ${MLSTDSRCDIRS} ; \ do if ${LS} do-patch-$${srcdir}_* 1>&- 2>&- ; \ then ${ECHO_CMD} -n $${srcdir} " " ; fi ; \ done ) || ${TRUE} .if ${PORT_OPTIONS:MEVERYTHING} MLSOURCEPATCHES_CMD= cd ${FILESDIR} && \ ( ${LS} do-patch-* 2>&- || \ ${TRUE} ) .else MLSOURCEPATCHES_CMD= ${TRUE} .endif do-build: cd ${WRKSRC} && unset PWD && \ FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="-d ${PATCH_WRKSRC} ${PATCH_ARGS}" \ MLNORUNTIMECLEAN=yes \ MLRUNTIMEPATCHES=`${MLRUNTIMEPATCHES_CMD}` \ MLSTANDARDPATCHES=`${MLSTANDARDPATCHES_CMD}` \ MLSTANDARDPATCHDIRS=`${MLSTANDARDPATCHDIRS_CMD}` \ MLSOURCEPATCHES=`${MLSOURCEPATCHES_CMD}` \ CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \ - AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \ + AS='${AS}' ASFLAGS='${ASFLAGS}' CPPASFLAGS='${CPPASFLAGS}' \ + EXTRA_DEFS='${EXTRA_DEFS}' \ ./config/install.sh .if ${PORT_OPTIONS:MRECOMPILE} -${RM} ${WRKSRC}/config/targets.customized @${ECHO} '(* Recompiling the core system: *)' cd ${WRKSRC}/${RECOMPILEDIR} && ( \ ${ECHO_CMD} 'CM.autoload "$$smlnj/cmb.cm";' ; \ ${ECHO_CMD} ${CMB_COMMAND} ; \ ${ECHO_CMD} 'CMB.make ();' ) | \ ../../bin/sml @${ECHO} '(* Building the recompiled heap: *)' cd ${WRKSRC}/${RECOMPILEDIR} && \ ./makeml @${ECHO} '(* Removing old libs and heaps: *)' cd ${WRKSRC}/${RECOMPILEDIR} && \ ${RM} -r ../../lib && ${MKDIR} ../../lib && \ ${FIND} ../../bin/.heap -name '*.${MLARCH}-bsd' \ \! -name 'sml.${MLARCH}-bsd' -delete -print @${ECHO} '(* Installing the recompiled libs and heap: *)' cd ${WRKSRC}/${RECOMPILEDIR} && \ ./installml @${ECHO} '(* Building requested targets: *)' cd ${WRKSRC} && unset PWD && \ FILESDIR="${FILESDIR}" PATCH="${PATCH}" \ PATCH_ARGS="-d ${PATCH_WRKSRC} ${PATCH_ARGS}" \ MLNORUNTIMECLEAN=yes RECOMPILEDIR="${RECOMPILEDIR}" \ CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \ - AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \ + AS='${AS}' ASFLAGS='${ASFLAGS}' CPPASFLAGS='${CPPASFLAGS}' \ + EXTRA_DEFS='${EXTRA_DEFS}' \ ./config/install.sh .endif .if ${PORT_OPTIONS:MEVERYTHING} post-build: ${CHMOD} a-x ${WRKSRC}/eXene/examples/basicwin/test.sh \ ${WRKSRC}/smlnj-lib/HTML4/helper.py @${ECHO} '(* Cleaning asdl: *)' ${FIND} ${WRKSRC}/asdl -type f \ -exec ${GREP} -F -l "${WRKDIR}" {} \; -delete .endif # Nowadays PLIST has to be computed before installation. We do it in # "pre-install" because source extraction happens during "build". .if ${PORT_OPTIONS:MEVERYTHING} MLNOINSTALL= .cm .if ${PORT_OPTIONS:MRECOMPILE} MLNOINSTALL+= sml.bin.${MLARCH}-unix sml.boot.${MLARCH}-unix \ sml.lib sml.${MLARCH}-bsd .endif .for excl in ${MLNOINSTALL} MLSRCEXCLUDEREGEX+= -e '/${excl}$$' -e '/${excl}/' .endfor MLPATCHPATHREGEX= -E -e 's%(^|[^_])_([^_]|$$)%\1/\2%g' \ -e 's%(^|[^_])__([^_]|$$)%\1_\2%g' \ -e 's%(^|[^_])___([^_]|$$)%\1/_\2%g' .endif pre-install: .if ${PORT_OPTIONS:MEVERYTHING} @${ECHO} -n '(* Computing package list ...' @${TAR} -tzf ${WRKSRC}/runtime.tgz | \ ${SED} -E -n -e 's%^(.*[^/])$$%${MLROOTRELATIVE}/base/\1%p' \ > ${MLRUNTIMEPLIST} @${MLRUNTIMEPATCHES_CMD} | \ ${SED} ${MLPATCHPATHREGEX} | \ ${SED} -E -e 's%^(do|extra)-patch-(base/.*)%${MLROOTRELATIVE}/\2%' \ > ${MLRUNTIMEPLIST}.patched -@${GREP} -F -v -f ${MLRUNTIMEPLIST} ${MLRUNTIMEPLIST}.patched \ > ${MLRUNTIMEPLIST}.patchednew @${CAT} ${MLRUNTIMEPLIST}.patchednew >> ${MLRUNTIMEPLIST} @${MLRUNTIMEPATCHES_CMD} | \ ${SED} ${MLPATCHPATHREGEX} | \ ${SED} -E -e 's%^(do|extra)-patch-(base/.*)%${MLROOTRELATIVE}/\2.orig%' \ >> ${MLRUNTIMEPLIST} @cd "${WRKSRC}" && ( \ ( ${FIND} -s -d ${MLSRCDIRS} \! -type d | \ ${AWK} '{ print "${MLROOTRELATIVE}/" $$0 }' ) ; \ ( ${FIND} -s -d ${MLSRCDIRS} -type d -empty | \ ${AWK} '{ print "@dir ${MLROOTRELATIVE}/" $$0 }' ) ) | \ ${EGREP} -v "^${MLROOTRELATIVE}/base/runtime" | \ ${EGREP} -v ${MLSRCEXCLUDEREGEX} > ${MLSRCPLIST} @${SED} -e 's/^%%EVERYTHING%%//' ${MLPLISTFILES} | \ ${GREP} -h -v "^@dir" | ${SORT} -u > ${PLIST} @${SED} -e 's/^%%EVERYTHING%%//' ${MLPLISTFILES} | \ ${GREP} -h "^@dir" | ${SORT} -r -u >> ${PLIST} @${ECHO} ' done. *)' .endif # ${PKGINSTALL} contains multiexec-wrapper, which is used to select # between executables of the same name that have been installed by # different packages (like smlnj and smlnj-devel). The source of # multiexec-wrapper is extracted from ${PKGINSTALL}, and inserted # into ${PKGINSTALL} in compressed and encoded form. So it is still # available when being installed from a binary package, even if # ${PKGINSTALL} is no file at that time (but only input to a shell). @${SED} -e '/^#%%PKG-INSTALL-START%%$$/,/^#%%PKG-INSTALL-END%%$$/d' \ ${PKGINSTALL} > ${PKGINSTALL}.script @${GZIP_CMD} ${PKGINSTALL}.script @b64encode ${PKGINSTALL}.script.gz script.gz > ${PKGINSTALL}.script.gz.b64 @${SED} -n -e '1,/~EOF~.$$/p' ${PKGINSTALL} > ${PKGINSTALL}.pre @${SED} -n -e '/^~EOF~$$/,$$p' ${PKGINSTALL} > ${PKGINSTALL}.post @${CAT} ${PKGINSTALL}.pre ${PKGINSTALL}.script.gz.b64 ${PKGINSTALL}.post > ${PKGINSTALL}.full @${DIFF} -q ${PKGINSTALL} ${PKGINSTALL}.full >/dev/null || ${CP} ${PKGINSTALL}.full ${PKGINSTALL} # The install target installs the heaps and libraries to their final # location in ${MLBIN} and ${MLLIB}. # In case of recompilation, installml installs the sml heap and the # libraries built during compiler bootstrap to ${MLBIN} and ${MLLIB}. # When staging CM_PATHCONFIG has to point to the final # ${MLLIB}/pathconfig (in ${PREFIX}) while building the compiler. .if ${PORT_OPTIONS:MEVERYTHING} MLSRCEXCLUDES= .for excl in ${MLNOINSTALL} MLSRCEXCLUDES+= --exclude "${excl}" .endfor .endif do-install: ${MKDIR} "${STAGEDIR}${MLROOT}" .if ! ${PORT_OPTIONS:MRECOMPILE} cd ${WRKSRC} && unset PWD && \ FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="-d ${PATCH_WRKSRC} ${PATCH_ARGS}" \ STAGEDIR="${STAGEDIR}" MLLIB="${MLLIB}" \ INSTALLDIR="${STAGEDIR}${MLROOT}" \ CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \ - AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \ + AS='${AS}' ASFLAGS='${ASFLAGS}' CPPASFLAGS='${CPPASFLAGS}' \ + EXTRA_DEFS='${EXTRA_DEFS}' \ ./config/install.sh .else @${ECHO} '(* Rebuilding the recompiled libs: *)' cd ${WRKSRC}/${RECOMPILEDIR} && ( \ ${ECHO_CMD} 'CM.autoload "$$smlnj/cmb.cm";' ; \ ${ECHO_CMD} ${CMB_COMMAND} ; \ ${ECHO_CMD} 'CMB.make ();' ) | \ ../../bin/sml @${ECHO} '(* Rebuilding the recompiled heap: *)' cd ${WRKSRC}/${RECOMPILEDIR} && \ ./makeml @${ECHO} '(* Installing into ${STAGEDIR}${MLROOT}: *)' cd ${WRKSRC} && unset PWD && \ FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="-d ${PATCH_WRKSRC} ${PATCH_ARGS}" \ STAGEDIR="${STAGEDIR}" MLLIB="${MLLIB}" \ INSTALLDIR="${STAGEDIR}${MLROOT}" RECOMPILEDIR="${RECOMPILEDIR}" \ CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \ - AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \ + AS='${AS}' ASFLAGS='${ASFLAGS}' CPPASFLAGS='${CPPASFLAGS}' \ + EXTRA_DEFS='${EXTRA_DEFS}' \ ./config/install.sh .endif @${ECHO} '(* Installing man pages. *)' .for mansect in 1 2 3 4 5 6 7 8 9 @[ ! -d ${WRKSRC}/doc/man/man${mansect} ] || \ { cd ${WRKSRC}/doc/man/man${mansect} && ls *.${mansect} | \ ${XARGS} -J % \ ${INSTALL_MAN} % ${STAGEDIR}${MANPREFIX}/man/man${mansect} ; } .endfor @${ECHO} '(* Stripping runtime executable: *)' MLARCHOPSYS=`${STAGEDIR}${MLBIN}/.arch-n-opsys` && \ ( eval $${MLARCHOPSYS} ; \ ${STRIP_CMD} "${STAGEDIR}${MLBIN}/.run/run.$${ARCH}-$${OPSYS}" \ "${STAGEDIR}${MLBIN}/.run/run.$${ARCH}-$${OPSYS}.so" ) .if ${PORT_OPTIONS:MEVERYTHING} @${ECHO} '(* Cleaning base/runtime: *)' cd ${WRKSRC}/base/runtime/objs && ${MAKE_CMD} clean @${ECHO} '(* Cleaning asdl: *)' ${FIND} ${WRKSRC}/asdl -type f \ -exec ${GREP} -F -l "${WRKDIR}" {} \; -delete @${ECHO} -n '(* Installing sources into ${STAGEDIR}${MLROOT} ...' @cd ${WRKSRC} && ${TAR} -cf - ${MLSRCEXCLUDES} ${MLSRCDIRS} | \ ${TAR} -xf - -C "${STAGEDIR}${MLROOT}" @${ECHO} ' done. *)' .endif # Only execute ${PKGINSTALL} when installing to ${PREFIX}, # but not when staging. .ifmake install${CALM_PORTLINT} PKG_PREFIX=${PREFIX} MULTIEXEC_WRAPPER_VERBOSE=yes \ ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL .endif .ifndef MULTIEXEC_WRAPPER_VERBOSE deinstall: export MULTIEXEC_WRAPPER_VERBOSE=yes && \ cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} deinstall .endif # This target may be used by dependent ports to set SMLNJ_VERSION # either to the currently installed smlnj package's version # or else to this port's version. SMLNJ_VERSION is an environment # variable used by multiexec-wrapper to select the executable # from that smlnj-* package matching SMLNJ_VERSION. smlnj-version: @{ ${PKG_INFO} -e smlnj && \ ${EXPR} `${PKG_INFO} -E smlnj` : '.*-\(.*\)' 2>/dev/null ; } || \ ${ECHO_CMD} ${PKGVERSION} .include Index: head/lang/smlnj/distinfo =================================================================== --- head/lang/smlnj/distinfo (revision 512487) +++ head/lang/smlnj/distinfo (revision 512488) @@ -1,47 +1,47 @@ -TIMESTAMP = 1545084427 -SHA256 (smlnj/110.84/MLRISC.tgz) = da3c5236018fa7608863c2fe1f3c57b60013df98b5a249fb3d4edc738cdfd072 -SIZE (smlnj/110.84/MLRISC.tgz) = 1458550 -SHA256 (smlnj/110.84/asdl.tgz) = 8be712200dc186b8bbe79b3ae111f2c490bf74f4709882d3459ac061f66b5b8e -SIZE (smlnj/110.84/asdl.tgz) = 193047 -SHA256 (smlnj/110.84/boot.x86-unix.tgz) = a29e3b0ca623da197e9c18ea64db4c2a08fe5e6add85c0d053c4ecfa653ace82 -SIZE (smlnj/110.84/boot.x86-unix.tgz) = 5762714 -SHA256 (smlnj/110.84/ckit.tgz) = 7e2534e393d2372cad8ff9ddd306881db91bbbcc2b0e0538e76868c86c658c36 -SIZE (smlnj/110.84/ckit.tgz) = 198419 -SHA256 (smlnj/110.84/cm.tgz) = 7055c60481a887f27a5135ac1f33233565b99a7c99c4aa73e023e28e629b0663 -SIZE (smlnj/110.84/cm.tgz) = 220278 -SHA256 (smlnj/110.84/cml.tgz) = 556110c746db863211ac8a97e1bf097b0e5d45dfea4b3e8194b6c389ac2b569a -SIZE (smlnj/110.84/cml.tgz) = 105655 -SHA256 (smlnj/110.84/compiler.tgz) = 6d23aff2e75727bf6969b05a070128f187e06f60408aabf6a71e0475326fee87 -SIZE (smlnj/110.84/compiler.tgz) = 862298 -SHA256 (smlnj/110.84/config.tgz) = 1810d3ca768222e120c7a3f2f93aafd652705371fc73929423c671dce3cef832 -SIZE (smlnj/110.84/config.tgz) = 514275 -SHA256 (smlnj/110.84/doc.tgz) = 0ed69456e4c2b851f475057a94da406c80f46cdd02a5d9077670be33122c7020 -SIZE (smlnj/110.84/doc.tgz) = 2029114 -SHA256 (smlnj/110.84/eXene.tgz) = 3fe1c6a1a334e7d7359fbcfd053066c88cb7705a90975b60fff946554aa0019c -SIZE (smlnj/110.84/eXene.tgz) = 720713 -SHA256 (smlnj/110.84/heap2asm.tgz) = 3d33c52b650536762d47534f07709e749cc821ce515aef2fb9a746db11433e95 -SIZE (smlnj/110.84/heap2asm.tgz) = 1343 -SHA256 (smlnj/110.84/ml-burg.tgz) = 62ea37b13788078e3ea77d3b870da42788153c348009f827f2c0b05cfc07d918 -SIZE (smlnj/110.84/ml-burg.tgz) = 40510 -SHA256 (smlnj/110.84/ml-lex.tgz) = cc7e045aa9667f1eed055db1defca0e830eed34c08f3dfdf37f698964fe04070 -SIZE (smlnj/110.84/ml-lex.tgz) = 27833 -SHA256 (smlnj/110.84/ml-lpt.tgz) = 2f60e1467a69fd4fb5501354244337926bc2a65225dde328f6aa3883b14fb3a5 -SIZE (smlnj/110.84/ml-lpt.tgz) = 267076 -SHA256 (smlnj/110.84/ml-yacc.tgz) = cfebaeb5f08810fcc93c49bf171834b7bf14b5f7e76d206e0afa35e18887bdb9 -SIZE (smlnj/110.84/ml-yacc.tgz) = 101692 -SHA256 (smlnj/110.84/nlffi.tgz) = 8b96a82a3d63b000b70a1b982aab9750ce9caa77f316f6a923969e86b0133f31 -SIZE (smlnj/110.84/nlffi.tgz) = 75036 -SHA256 (smlnj/110.84/old-basis.tgz) = cf15fe5c242f19f0605cd38a7bef3c1ebc89d5204c4cf68fac479198dd9fed93 -SIZE (smlnj/110.84/old-basis.tgz) = 1080 -SHA256 (smlnj/110.84/pgraph.tgz) = aa2f14de13a540dbc370b45757156c0b03516a5b8f97b5759292841d7b7ac1cb -SIZE (smlnj/110.84/pgraph.tgz) = 5432 -SHA256 (smlnj/110.84/runtime.tgz) = 5fcf4bbdeaddb247f69a333d2295f5f5c0be55b1f86ff4fbffb63f0021d84d6c -SIZE (smlnj/110.84/runtime.tgz) = 355339 -SHA256 (smlnj/110.84/smlnj-c.tgz) = 145a513becb4c98991af7eae81ae19b8fff336458f1f011eafdc283cb76deee9 -SIZE (smlnj/110.84/smlnj-c.tgz) = 10623 -SHA256 (smlnj/110.84/smlnj-lib.tgz) = 3356924655277416d8a491c1d601a0f567ab3d15cb17e243620e85cb28f0e9dd -SIZE (smlnj/110.84/smlnj-lib.tgz) = 456254 -SHA256 (smlnj/110.84/system.tgz) = f46b1de790000a98f4aa9830325d39cb1e4867338d4db6b8a102084db1512218 -SIZE (smlnj/110.84/system.tgz) = 261237 -SHA256 (smlnj/110.84/trace-debug-profile.tgz) = ecc54281b8654c75f8b9d4ebdf1ff67de71ef31297cf1b14115cd75645e46a5a -SIZE (smlnj/110.84/trace-debug-profile.tgz) = 3939 +TIMESTAMP = 1564231693 +SHA256 (smlnj/110.91/MLRISC.tgz) = aa521ef48da51ab2cfe82098457d96b3ebc32217132e6e8b56d383543fe23ab1 +SIZE (smlnj/110.91/MLRISC.tgz) = 1459472 +SHA256 (smlnj/110.91/asdl.tgz) = e8fa7c033776c6fa78c4f95e28af79a86c37b5548bfcfb0114cd532a83a823de +SIZE (smlnj/110.91/asdl.tgz) = 202161 +SHA256 (smlnj/110.91/boot.x86-unix.tgz) = a8d8d4cf85b5c0bbc5f254f46f9a0eb039a7bc704d18d41bf9a1be0c9d25dd38 +SIZE (smlnj/110.91/boot.x86-unix.tgz) = 6034212 +SHA256 (smlnj/110.91/ckit.tgz) = 6d8f99d57fff2a210c3ecfd592841bca843f2b5e6697fe35340c6a1095a409d3 +SIZE (smlnj/110.91/ckit.tgz) = 200998 +SHA256 (smlnj/110.91/cm.tgz) = cd9bba3d54252197de3b7b4236cba90fec32e1aedb5df1c75af440ee8406ab73 +SIZE (smlnj/110.91/cm.tgz) = 220371 +SHA256 (smlnj/110.91/cml.tgz) = 6ea50839c19c4fcf5880769401914b4c19b2c674942e131e7b2de56dfb8d5fea +SIZE (smlnj/110.91/cml.tgz) = 105339 +SHA256 (smlnj/110.91/compiler.tgz) = 70bef5bf9ba91ebb8067d335285be0bf9c127f5275ed9d4a14a6f81d99370047 +SIZE (smlnj/110.91/compiler.tgz) = 839212 +SHA256 (smlnj/110.91/config.tgz) = 6690de2e4fa134db8e85ccc5bc58745cdd321a2cf72453c5116e3e7ea7786b03 +SIZE (smlnj/110.91/config.tgz) = 515708 +SHA256 (smlnj/110.91/doc.tgz) = a12807833ae18484d486a503d8a106304082724985d320fd15f347a65b481dd0 +SIZE (smlnj/110.91/doc.tgz) = 2073179 +SHA256 (smlnj/110.91/eXene.tgz) = c435d78915a96c6079847aca882d89401c7aad5bcdaff9cad8a5639a215b9411 +SIZE (smlnj/110.91/eXene.tgz) = 720702 +SHA256 (smlnj/110.91/heap2asm.tgz) = 1269b7e3a12e966ab73b463bc16a9bbf5c5acbe84d6acfd509a027854c918f25 +SIZE (smlnj/110.91/heap2asm.tgz) = 1345 +SHA256 (smlnj/110.91/ml-burg.tgz) = 337e67312edd555a6f0f697198a832c2c181c8f71cace792dbc9ce9565c13585 +SIZE (smlnj/110.91/ml-burg.tgz) = 40514 +SHA256 (smlnj/110.91/ml-lex.tgz) = f9b1ab56f981cc3edccaa106b8c1f95b1786ed3274eefd7422201c5ac85b5574 +SIZE (smlnj/110.91/ml-lex.tgz) = 27834 +SHA256 (smlnj/110.91/ml-lpt.tgz) = 8e95cb33c3ceb8f3d011a2c88cdea37d530d69fd472a3642df67f36fc7015d55 +SIZE (smlnj/110.91/ml-lpt.tgz) = 267088 +SHA256 (smlnj/110.91/ml-yacc.tgz) = 2bdcb0b60cb09063865f485cabcbe5b8e7e5ebc559499f6c0fcdf8c02f5f3728 +SIZE (smlnj/110.91/ml-yacc.tgz) = 101693 +SHA256 (smlnj/110.91/nlffi.tgz) = b22b63471cfef6217706ec6da75357e36e45b185e3c3f2c791933dca22a755f6 +SIZE (smlnj/110.91/nlffi.tgz) = 75070 +SHA256 (smlnj/110.91/old-basis.tgz) = 9098c4b3ec7496224020093e034ff728eadcc10ba7249810f9b1a16bb64b18ae +SIZE (smlnj/110.91/old-basis.tgz) = 1082 +SHA256 (smlnj/110.91/pgraph.tgz) = e8620b4a458739a38f5d28ca22092273bf8cdb7fc30b3057123f238407acf2e8 +SIZE (smlnj/110.91/pgraph.tgz) = 5429 +SHA256 (smlnj/110.91/runtime.tgz) = e91ff66b5de40cfdc8a8d78200faae62522b601d0dd10c7647a30e5f37b9a84e +SIZE (smlnj/110.91/runtime.tgz) = 349128 +SHA256 (smlnj/110.91/smlnj-c.tgz) = 043cdf239c777fc50a5b04752a6961a2e0aa1cdeb4a8d38bc04943e63b839dbc +SIZE (smlnj/110.91/smlnj-c.tgz) = 10622 +SHA256 (smlnj/110.91/smlnj-lib.tgz) = 5c9323c4158bbb55159a7ce304643bc523461dbc856d9389bc19aa533d106a26 +SIZE (smlnj/110.91/smlnj-lib.tgz) = 457827 +SHA256 (smlnj/110.91/system.tgz) = 0b840476580689695a62b79f92ef383e6b20991002812abb349e1e9b83dea599 +SIZE (smlnj/110.91/system.tgz) = 262075 +SHA256 (smlnj/110.91/trace-debug-profile.tgz) = bb55c348e907e47a36f9e67f6b834d06186bdaa8cde1e20c2f96095ed70deebf +SIZE (smlnj/110.91/trace-debug-profile.tgz) = 3936 Index: head/lang/smlnj/files/do-patch-base_runtime_mach-dep_signal-sysdep.h =================================================================== --- head/lang/smlnj/files/do-patch-base_runtime_mach-dep_signal-sysdep.h (revision 512487) +++ head/lang/smlnj/files/do-patch-base_runtime_mach-dep_signal-sysdep.h (nonexistent) @@ -1,24 +0,0 @@ ---- base/runtime/mach-dep/signal-sysdep.h.orig 2017-08-27 15:28:34.000000000 +0200 -+++ base/runtime/mach-dep/signal-sysdep.h 2018-03-17 18:49:11.672602000 +0100 -@@ -447,8 +447,8 @@ - # elif defined(OPSYS_FREEBSD) - /** x86, FreeBSD **/ - # define SIG_FAULT1 SIGFPE --# define INT_DIVZERO(s, c) (((s) == SIGFPE) && ((c) == FPE_INTDIV_TRAP)) --# define INT_OVFLW(s, c) (((s) == SIGFPE) && ((c) == FPE_INTOVF_TRAP)) -+# define INT_DIVZERO(s, c) (((s) == SIGFPE) && ((c) == FPE_INTDIV)) -+# define INT_OVFLW(s, c) (((s) == SIGFPE) && ((c) == FPE_INTOVF)) - - # define SIG_GetCode(info, scp) (info) - # define SIG_GetPC(scp) ((scp)->sc_pc) -@@ -568,8 +568,8 @@ - # elif defined(OPSYS_FREEBSD) - /** amd64, FreeBSD **/ - # define SIG_FAULT1 SIGFPE --# define INT_DIVZERO(s, c) (((s) == SIGFPE) && ((c) == FPE_INTDIV_TRAP)) --# define INT_OVFLW(s, c) (((s) == SIGFPE) && ((c) == FPE_INTOVF_TRAP)) -+# define INT_DIVZERO(s, c) (((s) == SIGFPE) && ((c) == FPE_INTDIV)) -+# define INT_OVFLW(s, c) (((s) == SIGFPE) && ((c) == FPE_INTOVF)) - - # define SIG_GetCode(info, scp) (info) - # define SIG_GetPC(scp) ((scp)->sc_pc) Property changes on: head/lang/smlnj/files/do-patch-base_runtime_mach-dep_signal-sysdep.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -ON \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/lang/smlnj/files/do-patch-asdl_configure =================================================================== --- head/lang/smlnj/files/do-patch-asdl_configure (revision 512487) +++ head/lang/smlnj/files/do-patch-asdl_configure (revision 512488) @@ -1,9 +1,10 @@ -+++ asdl/configure 2018-12-17 15:01:00.142964000 +0100 -@@ -4893,6 +4893,7 @@ +--- asdl/configure.orig 2019-06-20 16:01:17 UTC ++++ asdl/configure +@@ -4893,6 +4893,7 @@ $as_echo "$SMLNJ_VERSION" >&6; } sparc:solaris2*) SMLNJ_ARCH=sparc; SMLNJ_OPSYS=sunos;; sparc:solaris3*) SMLNJ_ARCH=sparc; SMLNJ_OPSYS=solaris;; x86_64:linux*) SMLNJ_ARCH=x86; SMLNJ_OPSYS=linux;; + x86_64:freebsd*) SMLNJ_ARCH=x86; SMLNJ_OPSYS=freebsd;; x86_64:darwin*) SMLNJ_ARCH=x86; SMLNJ_OPSYS=darwin;; *) as_fn_error $? "unsupported configuration ${host_cpu}-${host_os}" "$LINENO" 5 ;; Property changes on: head/lang/smlnj/files/do-patch-asdl_configure ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/smlnj/files/do-patch-asdl_src_asdlgen_Makefile.in =================================================================== --- head/lang/smlnj/files/do-patch-asdl_src_asdlgen_Makefile.in (revision 512487) +++ head/lang/smlnj/files/do-patch-asdl_src_asdlgen_Makefile.in (revision 512488) @@ -1,42 +1,42 @@ ---- asdl/src/asdlgen/Makefile.in.orig 2018-08-28 17:36:58.000000000 +0200 -+++ asdl/src/asdlgen/Makefile.in 2018-12-17 21:42:50.793253000 +0100 -@@ -54,8 +54,10 @@ +--- asdl/src/asdlgen/Makefile.in.orig 2018-08-28 15:36:58 UTC ++++ asdl/src/asdlgen/Makefile.in +@@ -54,8 +54,10 @@ CM_FILES = back-end/sml/sources.cm \ CODE_FRAG_DIRS = back-end/sml -CODE_FRAG_FILES = $(patsubst %,%/fragments.sml,$(CODE_FRAG_DIRS)) -CODE_FRAG_MKFILES = $(patsubst %,%/fragments.gmk,$(CODE_FRAG_DIRS)) +#CODE_FRAG_FILES = $(patsubst %,%/fragments.sml,$(CODE_FRAG_DIRS)) +#CODE_FRAG_MKFILES = $(patsubst %,%/fragments.gmk,$(CODE_FRAG_DIRS)) +CODE_FRAG_FILES = ${CODE_FRAG_DIRS:C/(.+)/\1\/fragments.sml/} +CODE_FRAG_MKFILES = ${CODE_FRAG_DIRS:C/(.+)/\1\/fragments.gmk/} SRCDIR = @ASDLGEN_SRCDIR@ -@@ -94,14 +96,18 @@ +@@ -94,14 +96,18 @@ back-end/sml/fragments.sml: touch .depend $(ML_MAKEDEPEND) $(ML_MAKEDEPEND_FLAGS) -n -f .depend $(ROOT_CM) $(HEAP) || rm -f .depend -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(MAKECMDGOALS),devclean) -ifneq ($(MAKECMDGOALS),distclean) -sinclude .depend -sinclude back-end/sml/fragments.gmk -endif -endif -endif +.ifmake ! ( clean || devclean || distclean ) +.sinclude ".depend" +.sinclude "back-end/sml/fragments.gmk" +.endif +#ifneq ($(MAKECMDGOALS),clean) +#ifneq ($(MAKECMDGOALS),devclean) +#ifneq ($(MAKECMDGOALS),distclean) +#sinclude .depend +#sinclude back-end/sml/fragments.gmk +#endif +#endif +#endif #################### Cleanup #################### Property changes on: head/lang/smlnj/files/do-patch-asdl_src_asdlgen_Makefile.in ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/smlnj/files/do-patch-base_compiler_Parse_lex_ml.lex =================================================================== --- head/lang/smlnj/files/do-patch-base_compiler_Parse_lex_ml.lex (revision 512487) +++ head/lang/smlnj/files/do-patch-base_compiler_Parse_lex_ml.lex (revision 512488) @@ -1,10 +1,11 @@ ---- base/compiler/Parse/lex/ml.lex.orig 2018-05-28 19:11:09.000000000 +0200 -+++ base/compiler/Parse/lex/ml.lex 2018-07-27 17:27:36.367358000 +0200 -@@ -66,7 +66,7 @@ +--- base/compiler/Parse/lex/ml.lex.orig 2018-05-28 17:11:09 UTC ++++ base/compiler/Parse/lex/ml.lex +@@ -66,7 +66,7 @@ exp=[eE](~?){num}; real=(~?)(({num}{frac}?{exp})|({num}{frac}{exp}?)); xdigit=[0-9a-fA-F]; hexnum={xdigit}+; -bad_escape="\\"[\000-\008\011\012\014-\031 !#$%&'()*+,\-./:;<=>?@A-Z\[\]_`c-eg-mo-qsuw-z{}|~\127]; +bad_escape=\\(]|[-\000-\008\011\012\014-\031 !#$%&'()*+,./:;<=>?@A-Z\[_`c-eg-mo-qsuw-z{}|~\127]); %% + {ws} => (continue()); Property changes on: head/lang/smlnj/files/do-patch-base_compiler_Parse_lex_ml.lex ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/smlnj/files/do-patch-base_compiler_Parse_lex_sml.lex =================================================================== --- head/lang/smlnj/files/do-patch-base_compiler_Parse_lex_sml.lex (revision 512487) +++ head/lang/smlnj/files/do-patch-base_compiler_Parse_lex_sml.lex (revision 512488) @@ -1,11 +1,11 @@ ---- base/compiler/Parse/lex/sml.lex.orig 2018-05-28 19:11:09.000000000 +0200 -+++ base/compiler/Parse/lex/sml.lex 2018-07-27 17:58:18.054955000 +0200 -@@ -114,7 +114,7 @@ +--- base/compiler/Parse/lex/sml.lex.orig 2018-05-28 17:11:09 UTC ++++ base/compiler/Parse/lex/sml.lex +@@ -114,7 +114,7 @@ hexnum={xdigit}("_"*{xdigit})*; frac="."{num}; exp=[eE](~?){num}; real=(~?)(({num}{frac}?{exp})|({num}{frac}{exp}?)); -bad_escape="\\"[\000-\008\011\012\014-\031 !#$%&'()*+,\-./:;<=>?@A-Z\[\]_`c-eg-mo-qsuw-z{}|~\127]; +bad_escape=\\(]|[-\000-\008\011\012\014-\031 !#$%&'()*+,./:;<=>?@A-Z\[_`c-eg-mo-qsuw-z{}|~\127]); %% Property changes on: head/lang/smlnj/files/do-patch-base_compiler_Parse_lex_sml.lex ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/smlnj/files/do-patch-base_runtime_include_ml-unixdep.h =================================================================== --- head/lang/smlnj/files/do-patch-base_runtime_include_ml-unixdep.h (revision 512487) +++ head/lang/smlnj/files/do-patch-base_runtime_include_ml-unixdep.h (revision 512488) @@ -1,34 +1,43 @@ ---- base/runtime/include/ml-unixdep.h.orig 2014-08-17 21:09:56.000000000 +0200 -+++ base/runtime/include/ml-unixdep.h 2014-08-23 22:24:36.475122070 +0200 -@@ -33,6 +33,7 @@ - * HAS_UCONTEXT if signal handlers have a ucontext_t argument. - * HAS_STRERROR if the system provides the ISO C strerror function. +--- base/runtime/include/ml-unixdep.h.orig 2019-06-19 18:37:43 UTC ++++ base/runtime/include/ml-unixdep.h +@@ -37,6 +37,7 @@ * INT_GIDLIST if the second argument to getgroups is int[]. + * STAT_HAS_TIMESPEC if the time fields in the "struct stat" type have + * type "struct timespec". + * HAS_MKSTEMP if OS provides the POSIX mkstemp function. * * Note that only one of the following sets of symbols should be defined: * { HAS_MMAP, HAS_ANON_MMAP, HAS_VM_ALLOCATE } -@@ -295,6 +296,7 @@ - # define HAS_ILOGB +@@ -94,6 +95,7 @@ + # define HAS_POLL # define HAS_SIGCONTEXT # define HAS_STRERROR +# define HAS_MKSTEMP + /* These declarations are not in */ + extern int sys_nerr; +@@ -204,6 +206,7 @@ extern char *sys_errlist[]; + # define HAS_SIGCONTEXT + # define HAS_STRERROR + # define STAT_HAS_TIMESPEC ++# define HAS_MKSTEMP + /* FreeBSD uses MAP_ANON for MAP_ANONYMOUS */ # define MAP_ANONYMOUS MAP_ANON -@@ -377,6 +379,15 @@ - # define __EXTENSIONS__ - #endif +@@ -254,6 +257,16 @@ extern char *sys_errlist[]; + #include + ++#endif ++ +#if defined(OPSYS_FREEBSD) +# if defined(INCLUDE_FREEBSD_I386__TYPES) +# include +# include INCLUDE_FREEBSD_I386__TYPES +# endif +# if defined(INCLUDE_FREEBSD_I386_SIGNAL) +# include INCLUDE_FREEBSD_I386_SIGNAL +# endif -+#endif - #include INCLUDE_TYPES_H + #endif + #include - #include Property changes on: head/lang/smlnj/files/do-patch-base_runtime_include_ml-unixdep.h ___________________________________________________________________ Modified: fbsd:nokeywords ## -1 +1 ## -ON \ No newline at end of property +yes \ No newline at end of property Index: head/lang/smlnj/files/do-patch-base_runtime_objs_makefile =================================================================== --- head/lang/smlnj/files/do-patch-base_runtime_objs_makefile (revision 512487) +++ head/lang/smlnj/files/do-patch-base_runtime_objs_makefile (revision 512488) @@ -1,62 +1,65 @@ ---- base/runtime/objs/makefile.orig 2012-04-18 02:28:08.000000000 +0200 -+++ base/runtime/objs/makefile 2018-12-20 21:57:09.499392000 +0100 -@@ -5,10 +5,11 @@ +--- base/runtime/objs/makefile.orig 2019-06-18 21:06:21 UTC ++++ base/runtime/objs/makefile +@@ -5,10 +5,12 @@ SHELL = /bin/sh MAKE = make -CC = cc -CPP = /lib/cpp +CC ?= cc +CPP ?= /lib/cpp LD_LIBS = -AS = as +AS ?= as +ASFLAGS ?= ++CPPASFLAGS ?= AR = ar ARFLAGS = rcv RANLIB = ranlib -@@ -38,7 +39,7 @@ +@@ -38,7 +40,7 @@ BC_DIR = $(ROOT_DIR)/bytecode CLIB_DIR = $(ROOT_DIR)/c-libs CONFIG_DIR = $(ROOT_DIR)/config -CFLAGS = -O +CFLAGS ?= -O INCLUDES = -I$(OBJS_DIR) -I$(INC_DIR) GC_INCLUDES = $(INCLUDES) -I$(GC_DIR) -@@ -275,7 +276,7 @@ +@@ -275,8 +277,8 @@ prim.o: $(MACH_DIR)/$(TARGET).prim.asm \ $(INC_DIR)/asm-base.h \ + $(MACH_DIR)/x86-syntax.h \ mlstate-offsets.h - $(CPP) -D_ASM_ $(DEFS) -I$(BC_DIR) $(INCLUDES) $(MACH_DIR)/$(TARGET).prim.asm > prim.s +- $(CPP) -D_ASM_ $(DEFS) $(INCLUDES) $(MACH_DIR)/$(TARGET).prim.asm > prim.s - $(AS) -o prim.o prim.s -+ $(AS) ${ASFLAGS} -o prim.o prim.s ++ $(CPP) -D_ASM_ $(DEFS) $(CPPASFLAGS) $(INCLUDES) $(MACH_DIR)/$(TARGET).prim.asm > prim.s ++ $(AS) $(ASFLAGS) -o prim.o prim.s $(MACH_DIR)/BYTECODE.prim.asm: bc-instr-def.h $(BC_DIR)/bc-instrs.h $(BC_DIR)/bc.h -@@ -317,7 +318,7 @@ +@@ -318,7 +320,7 @@ memory-trace.o: $(BC_DIR)/memory-trace.c \ primops.o: $(BC_DIR)/primops.asm \ $(INC_DIR)/asm-base.h $(CPP) -D_ASM_ $(DEFS) $(INCLUDES) $(BC_DIR)/primops.asm > primops.s - $(AS) -o primops.o primops.s + $(AS) $(ASFLAGS) -o primops.o primops.s bc-instr-def.h: gen-bc-instr-def \ $(BC_DIR)/bc.h $(BC_DIR)/print-bc.h -@@ -329,7 +330,7 @@ +@@ -330,7 +332,7 @@ bc-instr-def.h: gen-bc-instr-def \ # MK_ARGS = VERSION="$(VERSION)" \ MAKE="$(MAKE)" \ - CC="$(CC)" CFLAGS="$(CFLAGS)" DEFS="$(DEFS)" \ + CC="$(CC)" CFLAGS="$(CFLAGS)" DEFS='$(DEFS)' \ AR="$(AR)" ARFLAGS="$(ARFLAGS)" \ RANLIB="$(RANLIB)" \ INCLUDES="$(GC_INCLUDES) -I../bytecode" -@@ -420,7 +421,7 @@ +@@ -421,7 +423,7 @@ LIB_INCLUDES = -I$(LIB_OBJS_DIR) -I$(LIB_INC_DIR) -I.. # LIB_MK_ARGS = VERSION="$(VERSION)" \ MAKE="$(MAKE)" \ - CC="$(CC)" CFLAGS="$(CFLAGS)" DEFS="$(DEFS)" \ + CC="$(CC)" CFLAGS="$(CFLAGS)" DEFS='$(DEFS)' \ AR="$(AR)" ARFLAGS="$(ARFLAGS)" \ RANLIB="$(RANLIB)" \ INCLUDES="$(LIB_INCLUDES)" Property changes on: head/lang/smlnj/files/do-patch-base_runtime_objs_makefile ___________________________________________________________________ Modified: fbsd:nokeywords ## -1 +1 ## -ON \ No newline at end of property +yes \ No newline at end of property Index: head/lang/smlnj/files/do-patch-base_runtime_objs_mk.x86-freebsd =================================================================== --- head/lang/smlnj/files/do-patch-base_runtime_objs_mk.x86-freebsd (revision 512487) +++ head/lang/smlnj/files/do-patch-base_runtime_objs_mk.x86-freebsd (revision 512488) @@ -1,37 +1,37 @@ ---- base/runtime/objs/mk.x86-freebsd.orig 2006-04-20 17:28:53.000000000 +0200 -+++ base/runtime/objs/mk.x86-freebsd 2018-12-20 21:55:00.154477000 +0100 +--- base/runtime/objs/mk.x86-freebsd.orig 2006-04-20 15:28:53 UTC ++++ base/runtime/objs/mk.x86-freebsd @@ -5,19 +5,19 @@ SHELL = /bin/sh -MAKE = gmake +MAKE = make ARFLAGS = Trcv -CC = gcc -ansi -CFLAGS = -O2 -CPP = gcc -x assembler-with-cpp -E -P +CC ?= gcc -ansi +CFLAGS ?= -O2 +CPP = $(CC) -x assembler-with-cpp -E -P #CPP = /usr/bin/cpp -P XOBJS = XLIBS = ../c-libs/dl/libunix-dynload.a LD_LIBS = BASE_DEFS = -DEFS = $(BASE_DEFS) -DHOST_X86 -DTARGET_X86 -DOPSYS_UNIX -DOPSYS_FREEBSD -DDLOPEN +DEFS = $(BASE_DEFS) -DHOST_X86 -DTARGET_X86 -DOPSYS_UNIX -DOPSYS_FREEBSD -DDLOPEN $(EXTRA_DEFS) TARGET = X86 VERSION = v-x86-freebsd RUNTIME = run.x86-freebsd -@@ -25,6 +25,6 @@ +@@ -25,6 +25,6 @@ RUNTIME_SO = run.x86-freebsd.so RUNTIME_A = run.x86-freebsd.a all: - ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME)) - ($(MAKE) RUNTIME="$(RUNTIME_SO)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared" $(RUNTIME_SO)) - ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A)) + ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" AS="$(AS)" ASFLAGS="$(ASFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="$(LDFLAGS)" $(RUNTIME)) + ($(MAKE) RUNTIME="$(RUNTIME_SO)" VERSION="$(VERSION)" MAKE="$(MAKE)" AS="$(AS)" ASFLAGS="$(ASFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared $(LDFLAGS)" $(RUNTIME_SO)) + ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" MAKE="$(MAKE)" AS="$(AS)" ASFLAGS="$(ASFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="$(LDFLAGS)" $(RUNTIME_A)) Property changes on: head/lang/smlnj/files/do-patch-base_runtime_objs_mk.x86-freebsd ___________________________________________________________________ Modified: fbsd:nokeywords ## -1 +1 ## -ON \ No newline at end of property +yes \ No newline at end of property Index: head/lang/smlnj/files/do-patch-eXene_lib_protocol_xreply.sml =================================================================== --- head/lang/smlnj/files/do-patch-eXene_lib_protocol_xreply.sml (nonexistent) +++ head/lang/smlnj/files/do-patch-eXene_lib_protocol_xreply.sml (revision 512488) @@ -0,0 +1,11 @@ +--- eXene/lib/protocol/xreply.sml.orig 2006-03-03 03:33:16 UTC ++++ eXene/lib/protocol/xreply.sml +@@ -51,7 +51,7 @@ structure XReply = + fun get32 (s, i) = Word32.fromLargeWord(PackWord32Big.subVec(s, i div 4)) + fun getSigned32 (s, i) = + Int32.fromLarge(LargeWord.toLargeInt(PackWord32Big.subVecX(s, i div 4))) +- fun getWord (s, i) = Word.fromLargeWord(get32(s, i)) ++ fun getWord (s, i) = Word.fromLargeWord(PackWord32Big.subVec(s, i div 4)) + fun getInt (s, i) = LargeWord.toIntX(PackWord32Big.subVecX(s, i div 4)) + + val w8vextract = Word8VectorSlice.vector o Word8VectorSlice.slice Property changes on: head/lang/smlnj/files/do-patch-eXene_lib_protocol_xreply.sml ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/smlnj/files/do-patch-eXene_lib_protocol_xrequest.sml =================================================================== --- head/lang/smlnj/files/do-patch-eXene_lib_protocol_xrequest.sml (nonexistent) +++ head/lang/smlnj/files/do-patch-eXene_lib_protocol_xrequest.sml (revision 512488) @@ -0,0 +1,11 @@ +--- eXene/lib/protocol/xrequest.sml.orig 2005-11-07 23:03:18 UTC ++++ eXene/lib/protocol/xrequest.sml +@@ -84,7 +84,7 @@ structure XRequest = + putSigned16(buf, i+8, border)) + + fun putTS (buf, i, XTy.CurrentTime) = put32(buf, i, 0w0) +- | putTS (buf, i, XTy.TimeStamp(XTime.XT t)) = put32(buf, i, t) ++ | putTS (buf, i, XTy.TimeStamp(XTime.XT t)) = put32(buf, i, Word32.toLarge t) + + fun putRGB (buf, i, XTy.RGB{red, green, blue}) = ( + putWord16(buf, i, red); Property changes on: head/lang/smlnj/files/do-patch-eXene_lib_protocol_xrequest.sml ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/smlnj/files/do-patch-eXene_lib_protocol_xsendevt.sml =================================================================== --- head/lang/smlnj/files/do-patch-eXene_lib_protocol_xsendevt.sml (nonexistent) +++ head/lang/smlnj/files/do-patch-eXene_lib_protocol_xsendevt.sml (revision 512488) @@ -0,0 +1,11 @@ +--- eXene/lib/protocol/xsendevt.sml.orig 2005-11-02 22:24:39 UTC ++++ eXene/lib/protocol/xsendevt.sml +@@ -46,7 +46,7 @@ structure XSendEvent = + | putAtomOption (buf, i, SOME(XTy.XAtom n)) = putWord32 (buf, i, n) + + fun putTS (buf, i, XTy.CurrentTime) = put32(buf, i, 0w0) +- | putTS (buf, i, XTy.TimeStamp(XTime.XT t)) = put32(buf, i, t) ++ | putTS (buf, i, XTy.TimeStamp(XTime.XT t)) = put32(buf, i, Word32.toLarge t) + + (* event codes *) + val evtKeyPressXEvt = 0w2 : Word8.word Property changes on: head/lang/smlnj/files/do-patch-eXene_lib_protocol_xsendevt.sml ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-parser.sml =================================================================== --- head/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-parser.sml (revision 512487) +++ head/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-parser.sml (revision 512488) @@ -1,102 +1,102 @@ ---- smlnj-lib/JSON/json-parser.sml.orig 2011-05-10 20:58:08.000000000 +0200 -+++ smlnj-lib/JSON/json-parser.sml 2017-10-03 22:49:26.569924000 +0200 -@@ -22,6 +22,26 @@ +--- smlnj-lib/JSON/json-parser.sml.orig 2011-05-10 18:58:08 UTC ++++ smlnj-lib/JSON/json-parser.sml +@@ -22,6 +22,26 @@ structure JSONParser : sig msg, ", found '", JSONTokens.toString tok, "'" ]) val lexer = Lex.lex srcMap + fun parse_sequence (is_tok_end, parse_item) (strm : Lex.strm, itms) = let + fun is_tok_sep tok = case tok of T.COMMA => true | _ => false + val (tok, pos, strm') = lexer strm + in if is_tok_sep tok + then error (pos, "parsing sequence", tok) + else if is_tok_end tok + then (strm', itms) + else let val (strm'', itm) = parse_item strm + val (tok', pos', strm''') = lexer strm'' + in if is_tok_end tok' + then (strm''', itm :: itms) + else if is_tok_sep tok' + then let val (tok'', pos'', _) = lexer strm''' + in if is_tok_end tok'' + then error (pos'', "parsing sequence", tok'') + else parse_sequence (is_tok_end, parse_item) (strm''', itm :: itms) + end + else error (pos', "parsing sequence", tok') + end + end fun parseValue (strm : Lex.strm) = let val (tok, pos, strm) = lexer strm in -@@ -37,50 +57,29 @@ +@@ -37,50 +57,29 @@ structure JSONParser : sig | _ => error (pos, "parsing value", tok) (* end case *) end - and parseArray (strm : Lex.strm) = (case lexer strm - of (T.RB, _, strm) => (strm, J.ARRAY[]) - | _ => let - fun loop (strm, items) = let - val (strm, v) = parseValue strm - (* expect either a "," or a "]" *) - val (tok, pos, strm) = lexer strm - in - case tok - of T.RB => (strm, v::items) - | T.COMMA => loop (strm, v::items) - | _ => error (pos, "parsing array", tok) - (* end case *) - end - val (strm, items) = loop (strm, []) - in - (strm, J.ARRAY(List.rev items)) - end - (* end case *)) + and parseArray (strm : Lex.strm) = let + fun is_RB tok = case tok of T.RB => true | _ => false + val (strm', elmnts) = parse_sequence (is_RB, parseValue) (strm, []) + in (strm', J.ARRAY(List.rev elmnts)) + end and parseObject (strm : Lex.strm) = let - fun parseField strm = (case lexer strm - of (T.STRING s, pos, strm) => (case lexer strm - of (T.COLON, _, strm) => let - val (strm, v) = parseValue strm - in - SOME(strm, (s, v)) - end - | (tok, pos, _) => error (pos, "parsing field", tok) - (* end case *)) - | _ => NONE - (* end case *)) - fun loop (strm, flds) = (case parseField strm - of SOME(strm, fld) => ( - (* expect either "," or "}" *) - case lexer strm - of (T.RCB, pos, strm) => (strm, fld::flds) - | (T.COMMA, pos, strm) => loop (strm, fld::flds) - | (tok, pos, _) => error (pos, "parsing object", tok) - (* end case *)) - | NONE => (strm, flds) - (* end case *)) - val (strm, flds) = loop (strm, []) - in - (strm, J.OBJECT(List.rev flds)) + fun is_RCB tok = case tok of T.RCB => true | _ => false + fun parse_field strm = let + val (tok, pos, strm') = lexer strm + in case tok + of T.STRING s => + (case lexer strm' + of (T.COLON, _, strm'') => let + val (strm''', v) = parseValue strm'' + in (strm''', (s, v)) + end + | (tok', pos', _) => error (pos', "parsing field", tok') + (* end case *)) + | _ => error (pos, "parsing field", tok) + (* end case *) + end + val (strm', flds) = parse_sequence (is_RCB, parse_field) (strm, []) + in (strm', J.OBJECT(List.rev flds)) end in #2 (parseValue (Lex.streamifyInstream inStrm)) Property changes on: head/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-parser.sml ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-stream-printer.sml =================================================================== --- head/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-stream-printer.sml (revision 512487) +++ head/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-stream-printer.sml (revision 512488) @@ -1,25 +1,25 @@ ---- smlnj-lib/JSON/json-stream-printer.sml.orig 2017-07-14 22:32:40.000000000 +0200 -+++ smlnj-lib/JSON/json-stream-printer.sml 2017-10-25 20:33:53.541874000 +0200 -@@ -103,14 +103,14 @@ +--- smlnj-lib/JSON/json-stream-printer.sml.orig 2017-07-14 20:32:40 UTC ++++ smlnj-lib/JSON/json-stream-printer.sml +@@ -103,14 +103,14 @@ structure JSONStreamPrinter : sig fun tr (i, chrs) = (case getWChar i of SOME(wchr, i) => if (wchr <= 0w126) then (case UTF8.toAscii wchr - of #"\"" => "\\\"" - | #"\\" => "\\\\" - | #"/" => "\\/" - | #"\b" => "\\b" - | #"\f" => "\\f" - | #"\n" => "\\n" - | #"\r" => "\\r" - | #"\t" => "\\t" + of #"\"" => tr(i, "\\\"" :: chrs) + | #"\\" => tr(i, "\\\\" :: chrs) + | #"/" => tr(i, "\\/" :: chrs) + | #"\b" => tr(i, "\\b" :: chrs) + | #"\f" => tr(i, "\\f" :: chrs) + | #"\n" => tr(i, "\\n" :: chrs) + | #"\r" => tr(i, "\\r" :: chrs) + | #"\t" => tr(i, "\\t" :: chrs) | c => if (wchr < 0w32) then tr(i, F.format "\\u%04x" [F.WORD wchr] :: chrs) else tr(i, str c :: chrs) Property changes on: head/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-stream-printer.sml ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-util.sml =================================================================== --- head/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-util.sml (revision 512487) +++ head/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-util.sml (revision 512488) @@ -1,29 +1,29 @@ ---- smlnj-lib/JSON/json-util.sml.orig 2017-04-29 17:39:27.000000000 +0200 -+++ smlnj-lib/JSON/json-util.sml 2017-10-04 00:40:39.574909000 +0200 -@@ -133,7 +133,7 @@ +--- smlnj-lib/JSON/json-util.sml.orig 2017-04-29 15:39:27 UTC ++++ smlnj-lib/JSON/json-util.sml +@@ -133,7 +133,7 @@ structure JSONUtil : sig fun lookupField (v as J.OBJECT fields) = let fun find lab = (case List.find (fn (l, v) => (l = lab)) fields - of NONE => raise FieldNotFound(v, concat["no definition for field \"", lab, "\""]) + of NONE => raise FieldNotFound(v, lab) | SOME(_, v) => v (* end case *)) in -@@ -197,7 +197,7 @@ +@@ -197,7 +197,7 @@ structure JSONUtil : sig fun get (v, []) = v | get (v as J.OBJECT fields, SEL lab :: rest) = (case List.find (fn (l, v) => (l = lab)) fields - of NONE => raise raise FieldNotFound(v, concat["no definition for field \"", lab, "\""]) + of NONE => raise FieldNotFound(v, lab) | SOME(_, v) => get (v, rest) (* end case *)) | get (v, SEL _ :: _) = raise NotObject v -@@ -222,7 +222,7 @@ +@@ -222,7 +222,7 @@ structure JSONUtil : sig (* follow a path into a JSON value while constructing a zipper *) fun unzip (v, []) = (ZNIL, v) | unzip (v as J.OBJECT fields, SEL lab :: rest) = let - fun find (_, []) = raise FieldNotFound(v, concat["no definition for field \"", lab, "\""]) + fun find (_, []) = raise FieldNotFound(v, lab) | find (pre, (l, v)::flds) = if (l = lab) then let val (zipper, v) = unzip (v, rest) Property changes on: head/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-util.sml ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/smlnj/files/patch-config___arch-n-opsys =================================================================== --- head/lang/smlnj/files/patch-config___arch-n-opsys (revision 512487) +++ head/lang/smlnj/files/patch-config___arch-n-opsys (revision 512488) @@ -1,11 +1,11 @@ ---- config/_arch-n-opsys.orig 2018-06-22 14:49:01 UTC +--- config/_arch-n-opsys.orig 2019-05-31 12:15:03 UTC +++ config/_arch-n-opsys -@@ -91,6 +91,8 @@ case `uname -s` in +@@ -97,6 +97,8 @@ case `uname -s` in HEAP_OPSYS=bsd case `uname -m` in *86) ARCH=x86;; + # Fall back to x86 compatibility mode. + amd64) ARCH=x86;; *) exit 1;; esac ;; Index: head/lang/smlnj/files/patch-config___heap2exec =================================================================== --- head/lang/smlnj/files/patch-config___heap2exec (revision 512487) +++ head/lang/smlnj/files/patch-config___heap2exec (revision 512488) @@ -1,33 +1,33 @@ ---- config/_heap2exec.orig 2006-04-20 15:28:53 UTC +--- config/_heap2exec.orig 2019-05-31 12:36:14 UTC +++ config/_heap2exec -@@ -83,6 +83,7 @@ SO_LIBS= +@@ -89,6 +89,7 @@ SO_LIBS= A_PROG= A_FLAGS= A_LIBS= +AS_FLAGS= case ${OPSYS} in darwin) -@@ -96,6 +97,13 @@ case ${OPSYS} in +@@ -102,6 +103,13 @@ case ${OPSYS} in A_PROG=${CC} A_FLAGS=-Wl,--export-dynamic A_LIBS=-lm + case `uname -m` in + amd64) + SO_FLAGS="${SO_FLAGS} -m32" + A_FLAGS="${A_FLAGS} -m32" + AS_FLAGS="${AS_FLAGS} -m32" + ;; + esac ;; linux) SO_PROG=${CC} -@@ -116,7 +124,7 @@ fi +@@ -122,7 +130,7 @@ fi RESULT=0 if ${H2A} "$heapfile" "$execfile".s ; then if [ -f "$execfile".s ] ; then - if ${CC} -c -o "$execfile".o "$execfile".s ; then + if ${CC} -c ${AS_FLAGS} -o "$execfile".o "$execfile".s ; then rm "$execfile".s else rm "$execfile".s Index: head/lang/smlnj/files/patch-config_install.sh =================================================================== --- head/lang/smlnj/files/patch-config_install.sh (revision 512487) +++ head/lang/smlnj/files/patch-config_install.sh (revision 512488) @@ -1,181 +1,181 @@ ---- config/install.sh.orig 2018-08-28 15:30:41 UTC +--- config/install.sh.orig 2019-05-31 12:15:03 UTC +++ config/install.sh @@ -17,6 +17,8 @@ else nolib=false fi +[ -n "$RECOMPILEDIR" ] && echo "RECOMPILEDIR=$RECOMPILEDIR" + if [ x${INSTALL_QUIETLY} = xtrue ] ; then export CM_VERBOSE CM_VERBOSE=false @@ -37,6 +39,28 @@ complain() { exit 1 } +# +# do_patch patch-file +# apply a patch file +do_patch() { + patchfile=$FILESDIR/$1 + + if [ ! -r $patchfile ]; then + echo "$this: !!! patch file $patchfile not found." + exit 1; + fi + + if [ ! -f $CONFIGDIR/.patch_$1 ]; then + $PATCH $PATCH_ARGS < $patchfile || {\ + echo "$this: !!! patch file $patchfile failed to patch." + exit 1; + } + echo > $CONFIGDIR/.patch_$1 + else + echo "$this: patch $patchfile already installed." + fi +} + this=$0 @@ -96,7 +120,28 @@ trap 'cd "$ROOT"; rm -f $tmpfiles' 0 1 2 3 15 # Especially important is CM_PATHCONFIG. # export CM_PATHCONFIG -CM_PATHCONFIG=$LIBDIR/pathconfig +if [ -n "$STAGEDIR" -a -n "$MLLIB" ] +then + # The final CM_PATHCONFIG file should not yet exist during + # staging, but still it has to be set in the environment when + # creating the (final) compiler heap. This way it becomes the + # the default pathconfig for the (final) heap. + # Therefore we will use the secondary pathconfig environment + # variable CM_LOCAL_PATHCONFIG to point to the (existing;) + # pathconfig in ROOT. This enables $smlnj/installer.cm + # to operate within STAGEDIR (using the final heap) below. + CM_PATHCONFIG=$MLLIB/pathconfig + if [ -r $CM_PATHCONFIG ] + then + vsay "$this: !!! Staging conflicts with an existing installation!" + complain "$this: !!! Make $CM_PATHCONFIG unreadable and try again!" + fi + CM_PATHCONFIG_STAGE=$STAGEDIR$CM_PATHCONFIG + CM_LOCAL_PATHCONFIG=$CM_PATHCONFIG_STAGE +else + CM_PATHCONFIG=$LIBDIR/pathconfig + CM_PATHCONFIG_STAGE=$CM_PATHCONFIG +fi # # the release version that we are installing # -@@ -344,7 +389,12 @@ fi +@@ -371,7 +416,12 @@ esac # the name of the bin files directory # BOOT_ARCHIVE=boot.$ARCH-unix -BOOT_FILES=sml.$BOOT_ARCHIVE +if [ -z "$RECOMPILEDIR" ] +then + BOOT_FILES=sml.$BOOT_ARCHIVE +else + BOOT_FILES=$RECOMPILEDIR/sml.$BOOT_ARCHIVE +fi # # build the run-time system -@@ -353,9 +403,15 @@ if [ -x "$RUNDIR"/run.$ARCH-$OPSYS ]; then +@@ -380,9 +430,15 @@ if [ -x "$RUNDIR"/run.$ARCH-$OPSYS ]; then vsay $this: Run-time system already exists. else "$CONFIGDIR"/unpack "$ROOT" runtime + [ -n "$MLRUNTIMEPATCHES" ] && \ + for p in $MLRUNTIMEPATCHES + do + do_patch $p + done cd "$BASEDIR"/runtime/objs echo $this: Compiling the run-time system. -- $MAKE -f mk.$ARCH-$OPSYS $EXTRA_DEFS -+ echo "$MAKE -f mk.$ARCH-$OPSYS $EXTRA_DEFS AS=\"$AS\" ASFLAGS=\"$ASFLAGS\" CFLAGS=\"$CFLAGS\" LDFLAGS=\"$LDFLAGS\"" -+ $MAKE -f mk.$ARCH-$OPSYS $EXTRA_DEFS AS="$AS" ASFLAGS="$ASFLAGS" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" +- $MAKE -f $RT_MAKEFILE $EXTRA_DEFS ++ echo "$MAKE -f $RT_MAKEFILE $EXTRA_DEFS AS=\"$AS\" ASFLAGS=\"$ASFLAGS\" CFLAGS=\"$CFLAGS\" LDFLAGS=\"$LDFLAGS\"" ++ $MAKE -f $RT_MAKEFILE $EXTRA_DEFS AS="$AS" ASFLAGS="$ASFLAGS" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" if [ -x run.$ARCH-$OPSYS ]; then mv run.$ARCH-$OPSYS "$RUNDIR" if [ -f runx.$ARCH-$OPSYS ]; then -@@ -367,7 +423,7 @@ else +@@ -394,7 +450,7 @@ else if [ -f run.$ARCH-$OPSYS.a ]; then mv run.$ARCH-$OPSYS.a "$RUNDIR" fi - $MAKE MAKE=$MAKE clean + [ "$MLNORUNTIMECLEAN" ] || $MAKE MAKE=$MAKE clean else complain "$this: !!! Run-time system build failed for some reason." fi -@@ -393,7 +449,7 @@ if [ -r "$HEAPDIR"/sml.$HEAP_SUFFIX ]; then +@@ -420,7 +476,7 @@ if [ -r "$HEAPDIR"/sml.$HEAP_SUFFIX ]; then complain "$this !!! Unable to re-create heap image (sml.$HEAP_SUFFIX)." fi else - "$CONFIGDIR"/unpack "$ROOT" "$BOOT_ARCHIVE" + [ -n "$RECOMPILEDIR" ] || "$CONFIGDIR"/unpack "$ROOT" "$BOOT_ARCHIVE" fish "$ROOT"/"$BOOT_FILES"/smlnj/basis -@@ -428,7 +484,7 @@ else +@@ -455,7 +511,7 @@ else cd "$ROOT"/"$BOOT_FILES" for anchor in * ; do if [ -d $anchor ] ; then - echo $anchor $anchor >>$CM_PATHCONFIG + echo $anchor $anchor >>$CM_PATHCONFIG_STAGE move $anchor "$LIBDIR"/$anchor fi done -@@ -451,6 +507,18 @@ installdriver _ml-build ml-build +@@ -478,6 +534,18 @@ installdriver _ml-build ml-build cd "$ROOT" +# apply source patches for standard targets +[ -n "$MLSTANDARDPATCHDIRS" ] && \ +for d in $MLSTANDARDPATCHDIRS +do + "$CONFIGDIR"/unpack "$ROOT" "$d" +done +[ -n "$MLSTANDARDPATCHES" ] && \ +for p in $MLSTANDARDPATCHES +do + do_patch $p +done + # # Now do all the rest using the precompiled installer # (see base/system/smlnj/installer for details) -@@ -460,6 +528,12 @@ if [ $nolib = false ] ; then +@@ -487,6 +555,12 @@ if [ $nolib = false ] ; then export ROOT INSTALLDIR CONFIGDIR BINDIR CM_TOLERATE_TOOL_FAILURES=true export CM_TOLERATE_TOOL_FAILURES + # smlnj/installer/nix-install.sml (re)sets CM_LOCAL_PATHCONFIG + # to /dev/null in the buildcmd that it uses to invoke the builds. + # So the build process needs a working CM_PATHCONFIG. This is NOT + # propagated to the resulting heaps because the heaps generated + # in this stage don't contain the compiler. + [ -z "$STAGEDIR" ] || CM_PATHCONFIG=$CM_LOCAL_PATHCONFIG if "$BINDIR"/sml -m \$smlnj/installer.cm then vsay $this: Installation complete. -@@ -467,5 +541,20 @@ if [ $nolib = false ] ; then +@@ -494,5 +568,20 @@ if [ $nolib = false ] ; then complain "$this: !!! Installation of libraries and programs failed." fi fi + +# Finish staging by removing the $STAGEDIR prefix from the driver scripts. +if [ -n "$STAGEDIR" ] +then + find $BINDIR -type f -perm -1 | \ + xargs fgrep -l "$STAGEDIR" | \ + xargs sed -i "" -e 's%'"$STAGEDIR"'%%g' +fi + +# apply all source patches +[ -n "$MLSOURCEPATCHES" ] && \ +for p in $MLSOURCEPATCHES +do + do_patch $p +done exit 0 Index: head/lang/smlnj/pkg-plist =================================================================== --- head/lang/smlnj/pkg-plist (revision 512487) +++ head/lang/smlnj/pkg-plist (revision 512488) @@ -1,183 +1,187 @@ man/man1/ml-antlr.1.gz man/man1/ml-build.1.gz man/man1/ml-makedepend.1.gz man/man1/ml-ulex.1.gz man/man1/sml.1.gz man/man7/smlnj.7.gz smlnj/bin/.arch-n-opsys smlnj/bin/.heap/asdlgen.%%MLARCH%%-bsd smlnj/bin/.heap/heap2asm.%%MLARCH%%-bsd smlnj/bin/.heap/ml-antlr.%%MLARCH%%-bsd smlnj/bin/.heap/ml-burg.%%MLARCH%%-bsd smlnj/bin/.heap/ml-lex.%%MLARCH%%-bsd smlnj/bin/.heap/ml-nlffigen.%%MLARCH%%-bsd smlnj/bin/.heap/ml-ulex.%%MLARCH%%-bsd smlnj/bin/.heap/ml-yacc.%%MLARCH%%-bsd %%EVERYTHING%%smlnj/bin/.heap/nowhere.%%MLARCH%%-bsd smlnj/bin/.heap/sml.%%MLARCH%%-bsd smlnj/bin/.link-sml smlnj/bin/.run/run.%%MLARCH%%-freebsd smlnj/bin/.run/run.%%MLARCH%%-freebsd.a smlnj/bin/.run/run.%%MLARCH%%-freebsd.so smlnj/bin/.run-sml smlnj/bin/asdlgen smlnj/bin/heap2asm smlnj/bin/heap2exec smlnj/bin/ml-antlr smlnj/bin/ml-build smlnj/bin/ml-burg smlnj/bin/ml-lex smlnj/bin/ml-makedepend smlnj/bin/ml-nlffigen smlnj/bin/ml-ulex smlnj/bin/ml-yacc %%EVERYTHING%%smlnj/bin/nowhere smlnj/bin/sml smlnj/lib/SMLNJ-BASIS/.cm/%%MLARCH%%-unix/basis-common.cm smlnj/lib/SMLNJ-BASIS/.cm/%%MLARCH%%-unix/basis.cm smlnj/lib/SMLNJ-LIB/Controls/.cm/%%MLARCH%%-unix/controls-lib.cm smlnj/lib/SMLNJ-LIB/HTML/.cm/%%MLARCH%%-unix/html-lib.cm smlnj/lib/SMLNJ-LIB/PP/.cm/%%MLARCH%%-unix/pp-lib.cm smlnj/lib/SMLNJ-LIB/Util/.cm/%%MLARCH%%-unix/smlnj-lib.cm smlnj/lib/SMLNJ-ML-YACC-LIB/.cm/%%MLARCH%%-unix/ml-yacc-lib.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/ALPHA.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/AMD64-Peephole.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/AMD64.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/CCall-Vararg.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/CCall-sparc.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/CCall-x86-64.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/CCall-x86.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/CCall.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/Control.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/Graphs.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/HPPA.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/IA32-Peephole.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/IA32.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/Lib.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/MLRISC.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/MLTREE.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/PPC.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/Peephole.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/RA.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/SPARC.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/StagedAlloc.cm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/Visual.cm %%EVERYTHING%%smlnj/lib/basis-2004.cm/.cm/%%MLARCH%%-unix/basis-2004.cm smlnj/lib/asdl-ext.cm/.cm/%%MLARCH%%-unix/asdl-ext.cm smlnj/lib/asdl-lib.cm/.cm/%%MLARCH%%-unix/asdl-lib.cm smlnj/lib/asdlgen-tool.cm/.cm/%%MLARCH%%-unix/asdlgen-tool.cm smlnj/lib/burg-ext.cm/.cm/%%MLARCH%%-unix/burg-ext.cm smlnj/lib/c/.cm/%%MLARCH%%-unix/c.cm smlnj/lib/c/internals/.cm/%%MLARCH%%-unix/c-int.cm smlnj/lib/c/memory/.cm/%%MLARCH%%-unix/memory.cm smlnj/lib/ckit-lib.cm/.cm/%%MLARCH%%-unix/ckit-lib.cm smlnj/lib/cml/.cm/%%MLARCH%%-unix/basis.cm smlnj/lib/cml/.cm/%%MLARCH%%-unix/cml-internal.cm smlnj/lib/cml/.cm/%%MLARCH%%-unix/cml-lib.cm smlnj/lib/cml/.cm/%%MLARCH%%-unix/cml.cm smlnj/lib/cml/.cm/%%MLARCH%%-unix/core-cml.cm smlnj/lib/cml/.cm/%%MLARCH%%-unix/inet-lib.cm smlnj/lib/cml/.cm/%%MLARCH%%-unix/smlnj-lib.cm smlnj/lib/cml/.cm/%%MLARCH%%-unix/trace-cml.cm smlnj/lib/cml/.cm/%%MLARCH%%-unix/unix-lib.cm smlnj/lib/cml-lib/.cm/%%MLARCH%%-unix/smlnj-lib.cm smlnj/lib/cml-lib/.cm/%%MLARCH%%-unix/trace-cml.cm smlnj/lib/compiler/MiscUtil/const-arith/.cm/%%MLARCH%%-unix/sources.cm smlnj/lib/dir-tool.cm/.cm/%%MLARCH%%-unix/dir-tool.cm %%EVERYTHING%%smlnj/lib/eXene.cm/.cm/%%MLARCH%%-unix/eXene.cm smlnj/lib/grm-ext.cm/.cm/%%MLARCH%%-unix/grm-ext.cm smlnj/lib/hash-cons-lib.cm/.cm/%%MLARCH%%-unix/hash-cons-lib.cm smlnj/lib/html4-lib.cm/.cm/%%MLARCH%%-unix/html4-lib.cm smlnj/lib/inet-lib.cm/.cm/%%MLARCH%%-unix/inet-lib.cm smlnj/lib/json-lib.cm/.cm/%%MLARCH%%-unix/json-lib.cm smlnj/lib/lex-ext.cm/.cm/%%MLARCH%%-unix/lex-ext.cm smlnj/lib/make-tool.cm/.cm/%%MLARCH%%-unix/make-tool.cm smlnj/lib/ml-antlr-tool.cm/.cm/%%MLARCH%%-unix/ml-antlr-tool.cm smlnj/lib/ml-lpt-lib.cm/.cm/%%MLARCH%%-unix/ml-lpt-lib.cm smlnj/lib/ml-ulex-tool.cm/.cm/%%MLARCH%%-unix/ml-ulex-tool.cm smlnj/lib/mlburg-tool.cm/.cm/%%MLARCH%%-unix/mlburg-tool.cm smlnj/lib/mllex-tool.cm/.cm/%%MLARCH%%-unix/mllex-tool.cm %%EVERYTHING%%smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/match-compiler.cm %%EVERYTHING%%smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/parser.cm %%EVERYTHING%%smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/pp.cm %%EVERYTHING%%smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/prec-parser.cm %%EVERYTHING%%smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/sml-ast.cm %%EVERYTHING%%smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/source-map.cm smlnj/lib/mlyacc-tool.cm/.cm/%%MLARCH%%-unix/mlyacc-tool.cm smlnj/lib/noweb-tool.cm/.cm/%%MLARCH%%-unix/noweb-tool.cm smlnj/lib/nw-ext.cm/.cm/%%MLARCH%%-unix/nw-ext.cm smlnj/lib/pathconfig %%EVERYTHING%%smlnj/lib/pgraph-util.cm/.cm/%%MLARCH%%-unix/pgraph-util.cm smlnj/lib/pgraph.cm/.cm/%%MLARCH%%-unix/pgraph.cm smlnj/lib/pickle-lib.cm/.cm/%%MLARCH%%-unix/pickle-lib.cm smlnj/lib/reactive-lib.cm/.cm/%%MLARCH%%-unix/reactive-lib.cm smlnj/lib/regexp-lib.cm/.cm/%%MLARCH%%-unix/regexp-lib.cm smlnj/lib/sexp-lib.cm/.cm/%%MLARCH%%-unix/sexp-lib.cm smlnj/lib/shell-tool.cm/.cm/%%MLARCH%%-unix/shell-tool.cm smlnj/lib/smlnj-tdp/.cm/%%MLARCH%%-unix/back-trace.cm smlnj/lib/smlnj-tdp/.cm/%%MLARCH%%-unix/coverage.cm smlnj/lib/smlnj-tdp/.cm/%%MLARCH%%-unix/plugins.cm smlnj/lib/smlnj/.cm/%%MLARCH%%-unix/cm.cm smlnj/lib/smlnj/.cm/%%MLARCH%%-unix/cmb.cm smlnj/lib/smlnj/.cm/%%MLARCH%%-unix/compiler.cm smlnj/lib/smlnj/.cm/%%MLARCH%%-unix/installer.cm smlnj/lib/smlnj/.cm/%%MLARCH%%-unix/library-install.cm smlnj/lib/smlnj/MLRISC/.cm/%%MLARCH%%-unix/ALPHA.cm +smlnj/lib/smlnj/MLRISC/.cm/%%MLARCH%%-unix/AMD64.cm smlnj/lib/smlnj/MLRISC/.cm/%%MLARCH%%-unix/Control.cm smlnj/lib/smlnj/MLRISC/.cm/%%MLARCH%%-unix/Graphs.cm smlnj/lib/smlnj/MLRISC/.cm/%%MLARCH%%-unix/HPPA.cm smlnj/lib/smlnj/MLRISC/.cm/%%MLARCH%%-unix/IA32.cm smlnj/lib/smlnj/MLRISC/.cm/%%MLARCH%%-unix/Lib.cm smlnj/lib/smlnj/MLRISC/.cm/%%MLARCH%%-unix/MLRISC.cm smlnj/lib/smlnj/MLRISC/.cm/%%MLARCH%%-unix/MLTREE.cm smlnj/lib/smlnj/MLRISC/.cm/%%MLARCH%%-unix/PPC.cm smlnj/lib/smlnj/MLRISC/.cm/%%MLARCH%%-unix/SPARC.cm smlnj/lib/smlnj/MLRISC/.cm/%%MLARCH%%-unix/Visual.cm smlnj/lib/smlnj/basis/.cm/%%MLARCH%%-unix/basis.cm smlnj/lib/smlnj/cm/.cm/%%MLARCH%%-unix/cm.cm smlnj/lib/smlnj/cm/.cm/%%MLARCH%%-unix/tools.cm smlnj/lib/smlnj/cmb/.cm/%%MLARCH%%-unix/alpha32-unix.cm +smlnj/lib/smlnj/cmb/.cm/%%MLARCH%%-unix/amd64-unix.cm smlnj/lib/smlnj/cmb/.cm/%%MLARCH%%-unix/current.cm smlnj/lib/smlnj/cmb/.cm/%%MLARCH%%-unix/hppa-unix.cm smlnj/lib/smlnj/cmb/.cm/%%MLARCH%%-unix/ppc-macos.cm smlnj/lib/smlnj/cmb/.cm/%%MLARCH%%-unix/ppc-unix.cm smlnj/lib/smlnj/cmb/.cm/%%MLARCH%%-unix/sparc-unix.cm smlnj/lib/smlnj/cmb/.cm/%%MLARCH%%-unix/x86-unix.cm smlnj/lib/smlnj/cmb/.cm/%%MLARCH%%-unix/x86-win32.cm smlnj/lib/smlnj/compiler/.cm/%%MLARCH%%-unix/all.cm smlnj/lib/smlnj/compiler/.cm/%%MLARCH%%-unix/alpha32.cm +smlnj/lib/smlnj/compiler/.cm/%%MLARCH%%-unix/amd64.cm smlnj/lib/smlnj/compiler/.cm/%%MLARCH%%-unix/compiler.cm smlnj/lib/smlnj/compiler/.cm/%%MLARCH%%-unix/current.cm smlnj/lib/smlnj/compiler/.cm/%%MLARCH%%-unix/hppa.cm smlnj/lib/smlnj/compiler/.cm/%%MLARCH%%-unix/minimal-only.cm smlnj/lib/smlnj/compiler/.cm/%%MLARCH%%-unix/minimal.cm smlnj/lib/smlnj/compiler/.cm/%%MLARCH%%-unix/ppc.cm smlnj/lib/smlnj/compiler/.cm/%%MLARCH%%-unix/sparc.cm smlnj/lib/smlnj/compiler/.cm/%%MLARCH%%-unix/x86.cm smlnj/lib/smlnj/init/.cm/%%MLARCH%%-unix/init.cmi smlnj/lib/smlnj/installer/.cm/%%MLARCH%%-unix/util.cm smlnj/lib/smlnj/internal/.cm/%%MLARCH%%-unix/cm-lib.cm smlnj/lib/smlnj/internal/.cm/%%MLARCH%%-unix/cm-sig-lib.cm smlnj/lib/smlnj/internal/.cm/%%MLARCH%%-unix/cm0.cm smlnj/lib/smlnj/internal/.cm/%%MLARCH%%-unix/intsys.cm smlnj/lib/smlnj/internal/.cm/%%MLARCH%%-unix/smlnj-version.cm smlnj/lib/smlnj/internal/.cm/%%MLARCH%%-unix/srcpath-lib.cm smlnj/lib/smlnj/ml-yacc/.cm/%%MLARCH%%-unix/ml-yacc-lib.cm smlnj/lib/smlnj/smlnj-lib/.cm/%%MLARCH%%-unix/controls-lib.cm smlnj/lib/smlnj/smlnj-lib/.cm/%%MLARCH%%-unix/html-lib.cm smlnj/lib/smlnj/smlnj-lib/.cm/%%MLARCH%%-unix/pp-lib.cm smlnj/lib/smlnj/smlnj-lib/.cm/%%MLARCH%%-unix/smlnj-lib.cm smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/alpha32.cm +smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/amd64.cm smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/basics.cm smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/core.cm smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/debugprof.cm smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/elabdata.cm smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/elaborate.cm smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/execute.cm smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/hppa.cm smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/parser.cm smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/ppc.cm smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/sparc.cm smlnj/lib/smlnj/viscomp/.cm/%%MLARCH%%-unix/x86.cm smlnj/lib/unix-lib.cm/.cm/%%MLARCH%%-unix/unix-lib.cm smlnj/lib/xml-lib.cm/.cm/%%MLARCH%%-unix/xml-lib.cm