diff --git a/lang/smlnj/Makefile b/lang/smlnj/Makefile index ab657d1e1cfc..47003f0d1fa4 100644 --- a/lang/smlnj/Makefile +++ b/lang/smlnj/Makefile @@ -1,387 +1,369 @@ PORTNAME= smlnj -PORTVERSION= 110.98 -PORTREVISION= 1 +DISTVERSION= 110.99.6.1 CATEGORIES= lang -MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ \ - ftp://mirror.free.de/http/smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ +MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/working/${DISTVERSION}/ \ + ftp://mirror.free.de/http/smlnj.cs.uchicago.edu/dist/working/${DISTVERSION}/ DISTFILES= config.tgz runtime.tgz -DIST_SUBDIR= smlnj/${PORTVERSION} +DIST_SUBDIR= smlnj/${DISTVERSION} EXTRACT_ONLY= config.tgz MAINTAINER= joemann@beefree.free.de COMMENT= Compiler and tools for Standard ML (SML '97) WWW= https://www.smlnj.org/ 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 -USES= compiler +USES= compiler python:env shebangfix SUB_FILES= pkg-install SUB_LIST= EXEBINDIR=${MLBINRELATIVE} EXENAMES="${MLEXE}" NO_WRKSUBDIR= yes PKGDEINSTALL= ${PKGINSTALL} -OPTIONS_DEFINE= EVERYTHING RECOMPILE +OPTIONS_DEFINE= EVERYTHING RECOMPILE EVERYTHING_DESC= install everything from the SML/NJ distribution RECOMPILE_DESC= recompile the SML compiler - implies EVERYTHING -RECOMPILE_IMPLIES= EVERYTHING +EVERYTHING_PLIST_SUB= EVERYTHING="" +EVERYTHING_PLIST_SUB_OFF= EVERYTHING="@comment " +RECOMPILE_IMPLIES= EVERYTHING .include -.if ${COMPILER_TYPE} == "clang" +.if ${COMPILER_TYPE} == "clang" && ${ARCH} == "amd64" RUNTIME_SO= PLIST_SUB+= RUNTIME_SO="@comment " .else RUNTIME_SO= "${STAGEDIR}${MLBIN}/.run/run.$${ARCH}-$${OPSYS}.so" PLIST_SUB+= RUNTIME_SO= .endif .if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif -.if (${ARCH} == "i386") +.if ${ARCH} == "i386" MLARCH= x86 MLSIZE= 32 PLIST_SUB+= MLSIZE32="" -.elif (${ARCH} == "amd64") +.elif ${ARCH} == "amd64" MLARCH= amd64 MLSIZE= 64 PLIST_SUB+= MLSIZE32="@comment " .endif PLIST_SUB+= MLARCH=${MLARCH} # -fPIC is required for building runtime.so CFLAGS+= -fPIC AS= ${CC} -x assembler -c ASFLAGS+= -fPIC DISTFILES+= boot.${MLARCH}-unix.tgz -DISTFILES+= MLRISC.tgz asdl.tgz ckit.tgz cml.tgz doc.tgz heap2asm.tgz \ +DISTFILES+= MLRISC.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 - -# Useful for tuning recompilation. -CMB_COMMAND= - .if ${PORT_OPTIONS:MEVERYTHING} -DISTFILES+= cm.tgz compiler.tgz eXene.tgz \ +DISTFILES+= asdl.tgz cm.tgz compiler.tgz eXene.tgz \ pgraph.tgz smlnj-c.tgz system.tgz -PLIST_SUB+= EVERYTHING="" -.else -PLIST_SUB+= EVERYTHING="@comment " +SHEBANG_FILES= smlnj-lib/HTML4/helper.py \ + eXene/examples/basicwin/test.sh .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 +MLSTDSRCDIRS= 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-ulex ml-yacc sml +MLEXE= heap2exec ml-antlr ml-build ml-burg ml-lex ml-makedepend \ + ml-ulex ml-yacc sml .if defined(MLSIZE) && ${MLSIZE} == 32 MLEXE+= ml-nlffigen .endif .if ${PORT_OPTIONS:MEVERYTHING} -MLSTDSRCDIRS+= eXene pgraph smlnj-c -MLTARGETS+= eXene mlrisc-tools nowhere pgraph-util src-smlnj -MLEXE+= nowhere +MLSTDSRCDIRS+= asdl eXene pgraph smlnj-c +MLTARGETS+= asdl eXene mlrisc-tools nowhere pgraph-util src-smlnj +MLEXE+= asdlgen nowhere PLIST= ${WRKDIR}/.PLIST MLRUNTIMEPLIST= ${WRKDIR}/.PLIST-runtime MLSRCPLIST= ${WRKDIR}/.PLIST-src MLPLISTFILES= ${.CURDIR}/pkg-plist ${MLRUNTIMEPLIST} ${MLSRCPLIST} .endif -pre-fetch: +# Useful for tuning recompilation. +CMB_COMMAND?= + +pre-fetch-EVERYTHING-off: @${ECHO} -.if ! ${PORT_OPTIONS:MEVERYTHING} @${ECHO} 'Use port option EVERYTHING to also build/install' + @${ECHO} ' asdl (Abstract Syntax Description Language),' @${ECHO} ' eXene (X Windows toolkit),' @${ECHO} ' nowhere (preprocessor for conditional patterns),' @${ECHO} ' various libraries, and all the sources.' -.endif -.if ! ${PORT_OPTIONS:MRECOMPILE} + +pre-fetch-RECOMPILE-off: + @${ECHO} @${ECHO} 'Use port option RECOMPILE to recompile the compiler.' - @${ECHO} ' This implies EVERYTHING.' -.endif + @${ECHO} ' This implies option EVERYTHING.' @${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 + +do-configure-RECOMPILE-on: + ${CP} "${FILESDIR}/targets-recompile.customized" \ + "${WRKSRC}/config/targets.customized" # 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}' \ + CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \ AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \ ./config/install.sh -default ${MLSIZE} -.if ${PORT_OPTIONS:MRECOMPILE} + +do-build-RECOMPILE-on: -${RM} ${WRKSRC}/config/targets.customized @${ECHO} '(* Recompiling the core system: *)' - cd ${WRKSRC}/${RECOMPILEDIR} && ( \ + cd ${WRKSRC}/${RECOMPILEDIR} && \ + export PATH="${WRKSRC}/bin:$$PATH" && ( \ ${ECHO_CMD} 'CM.autoload "$$smlnj/cmb.cm";' ; \ ${ECHO_CMD} ${CMB_COMMAND} ; \ ${ECHO_CMD} 'CMB.make ();' ) | \ ../../bin/sml -${MLSIZE} @${ECHO} '(* Building the recompiled heap: *)' cd ${WRKSRC}/${RECOMPILEDIR} && \ ./makeml -${MLSIZE} @${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 -${MLSIZE} @${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}' \ + CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \ AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \ ./config/install.sh -default ${MLSIZE} -.endif -.if ${PORT_OPTIONS:MEVERYTHING} -post-build: - ${CHMOD} a-x ${WRKSRC}/eXene/examples/basicwin/test.sh \ - ${WRKSRC}/smlnj-lib/HTML4/helper.py +post-build-EVERYTHING-on: + ${MAKE} SHEBANG_FILES="${SHEBANG_FILES}" fix-shebang @${ECHO} '(* Cleaning asdl: *)' ${FIND} ${WRKSRC}/asdl -type f \ -exec ${GREP} -F -l "${WRKDIR}" {} \; -delete -.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). + +pre-install: + @${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} # Nowadays PLIST has to be computed before installation. We do it in -# "pre-install" because source extraction happens during "build". +# "pre-install-EVERYTHING-on" because source extraction happened 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 +MLSRCEXCLUDES= ${MLNOINSTALL:@.excl.@--exclude "${.excl.}"@} +MLSRCEXCLUDEREGEX= ${MLNOINSTALL:@.excl.@-e '/${.excl.}$$' -e '/${.excl.}/'@} MLPATCHPATHREGEX= -E -e 's%(^|[^_])_([^_]|$$)%\1/\2%g' \ -e 's%(^|[^_])__([^_]|$$)%\1_\2%g' \ -e 's%(^|[^_])___([^_]|$$)%\1/_\2%g' .endif -pre-install: -.if ${PORT_OPTIONS:MEVERYTHING} +pre-install-EVERYTHING-on: @${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} +.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}' \ + CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \ AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \ ./config/install.sh -default ${MLSIZE} .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 -${MLSIZE} @${ECHO} '(* Rebuilding the recompiled heap: *)' cd ${WRKSRC}/${RECOMPILEDIR} && \ ./makeml -${MLSIZE} @${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}' \ + CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \ AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \ ./config/install.sh -default ${MLSIZE} .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}${PREFIX}/share/man/man${mansect} ; } .endfor @${ECHO} '(* Stripping runtime executable: *)' MLARCHOPSYS=`${STAGEDIR}${MLBIN}/.arch-n-opsys` && \ ( eval $${MLARCHOPSYS} ; \ ${STRIP_CMD} "${STAGEDIR}${MLBIN}/.run/run.$${ARCH}-$${OPSYS}" \ ${RUNTIME_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 diff --git a/lang/smlnj/distinfo b/lang/smlnj/distinfo index 90b8e54f640a..7895f660fed2 100644 --- a/lang/smlnj/distinfo +++ b/lang/smlnj/distinfo @@ -1,49 +1,49 @@ -TIMESTAMP = 1595416789 -SHA256 (smlnj/110.98/MLRISC.tgz) = 208fb9c8cbcfc1c90ab14267e28038a390200002e2bcf3ee5670dcb643ceda11 -SIZE (smlnj/110.98/MLRISC.tgz) = 1460273 -SHA256 (smlnj/110.98/asdl.tgz) = c368bb213caa9b6c198b3cebabad577f3d01a64642046eaf9625ff403c49e59a -SIZE (smlnj/110.98/asdl.tgz) = 212714 -SHA256 (smlnj/110.98/boot.amd64-unix.tgz) = 39e460e94063b3c85b944c86d29c91ce3995e6fab242a2f77c71d7b04c8e7a7a -SIZE (smlnj/110.98/boot.amd64-unix.tgz) = 5921092 -SHA256 (smlnj/110.98/boot.x86-unix.tgz) = 1451adf5b9230aaf74d1d28438e4f8126dc56f333bb00b0fc52ff1b596a35281 -SIZE (smlnj/110.98/boot.x86-unix.tgz) = 5912407 -SHA256 (smlnj/110.98/ckit.tgz) = 17c4254b7c1e696591932bc46f1b390c05174b26927fdbab0fa6b0fd9b7baa1a -SIZE (smlnj/110.98/ckit.tgz) = 201005 -SHA256 (smlnj/110.98/cm.tgz) = f02776bbe417d48a469abd8d3496ce87e6cd7fd8440101cb23ce3b28b8b0fba3 -SIZE (smlnj/110.98/cm.tgz) = 220284 -SHA256 (smlnj/110.98/cml.tgz) = 7ba1063146e419e1ecebfd420b45eeb641bb8f79802cfc45a0c7e3958ad59e4f -SIZE (smlnj/110.98/cml.tgz) = 104490 -SHA256 (smlnj/110.98/compiler.tgz) = d7a7e6f9e32af242b3a600fd75830b923698db8f4d2318a7cc67512b01663344 -SIZE (smlnj/110.98/compiler.tgz) = 1109928 -SHA256 (smlnj/110.98/config.tgz) = 2ab4a5dff211d84359a50c5d48d607bd4c4f221fee65ac0bcf982f4508692e11 -SIZE (smlnj/110.98/config.tgz) = 517538 -SHA256 (smlnj/110.98/doc.tgz) = 74b7461bc7d1043f3ca1ba55bb64cbd6508b2b3e51c06e5b4eb9db819ec5aa34 -SIZE (smlnj/110.98/doc.tgz) = 2424911 -SHA256 (smlnj/110.98/eXene.tgz) = b48613fe9de6941899d26517cd9c1d4a5779d8a1816ce39d1441481bee8db7e7 -SIZE (smlnj/110.98/eXene.tgz) = 721110 -SHA256 (smlnj/110.98/heap2asm.tgz) = 6a6b4b33e765c0e5dad52232a544c16f1b632d532e2413c6838160beb610061a -SIZE (smlnj/110.98/heap2asm.tgz) = 1799 -SHA256 (smlnj/110.98/ml-burg.tgz) = bd84ce5671fd1b1156f6779f81dfaabf0801e0c3f476f36e2f2fdb4311d496aa -SIZE (smlnj/110.98/ml-burg.tgz) = 40552 -SHA256 (smlnj/110.98/ml-lex.tgz) = e47e0144547a04aaa2d4ee63bafb6a40a294e7acc8e072cc9569b9a08942ca86 -SIZE (smlnj/110.98/ml-lex.tgz) = 28167 -SHA256 (smlnj/110.98/ml-lpt.tgz) = 4055ea0bb388893a58453ff8588e1de72a15be94257715bcd66e7a870c08c3d8 -SIZE (smlnj/110.98/ml-lpt.tgz) = 267606 -SHA256 (smlnj/110.98/ml-yacc.tgz) = cf2c6cdbfae352585a59214d2e6a377191504334bf4dfc092e3a0e64667124a1 -SIZE (smlnj/110.98/ml-yacc.tgz) = 101728 -SHA256 (smlnj/110.98/nlffi.tgz) = fb6c671d071c31e50e6792fb015492d8aec6f12b0cea2cd00e0b303c8ce1d98f -SIZE (smlnj/110.98/nlffi.tgz) = 75095 -SHA256 (smlnj/110.98/old-basis.tgz) = 2952d96a3f6fc9b63e7fdab998916588490ffb65214adf227cf8c3b737ddb17f -SIZE (smlnj/110.98/old-basis.tgz) = 1215 -SHA256 (smlnj/110.98/pgraph.tgz) = 44f65f685627186e0bd334b1ce6d6bf85262673dfa2b8310e213a570c2216ebd -SIZE (smlnj/110.98/pgraph.tgz) = 5432 -SHA256 (smlnj/110.98/runtime.tgz) = 36e9fff81baecf8f770efa20b5e56e6f67e71705d8692142d53a590c133183ba -SIZE (smlnj/110.98/runtime.tgz) = 336383 -SHA256 (smlnj/110.98/smlnj-c.tgz) = caca7a72cc96f5ef00feaadc1ca1329a9e264c070363d88c22b58f0fd4f46b67 -SIZE (smlnj/110.98/smlnj-c.tgz) = 10622 -SHA256 (smlnj/110.98/smlnj-lib.tgz) = 63d25c1c38791ae6d8f34cfcff600bc4c4ad6a166adb8af6402105bd98e444ba -SIZE (smlnj/110.98/smlnj-lib.tgz) = 631261 -SHA256 (smlnj/110.98/system.tgz) = 555950477c86c0c43b3b6bb7ef907d7690cd214fb19c09a1a735ec9be1dbfa1e -SIZE (smlnj/110.98/system.tgz) = 278110 -SHA256 (smlnj/110.98/trace-debug-profile.tgz) = e494dc37e39bcdc1e506d5b3b31422488dfd0400184ca5fb7005438253d7fa17 -SIZE (smlnj/110.98/trace-debug-profile.tgz) = 3936 +TIMESTAMP = 1734105334 +SHA256 (smlnj/110.99.6.1/config.tgz) = f4124fa5aff1a2eaa2de3dfd5ac7f3951cace33d72c5375b62db47179570095c +SIZE (smlnj/110.99.6.1/config.tgz) = 23321 +SHA256 (smlnj/110.99.6.1/runtime.tgz) = 2623737ee667a7579640f35905bf523e6417b708249e9a0697edfc8aa514dd6e +SIZE (smlnj/110.99.6.1/runtime.tgz) = 335071 +SHA256 (smlnj/110.99.6.1/boot.amd64-unix.tgz) = 91469b2b4dcc7526154568562a5de44b7d92131518a4cdccb4b534982c6189a4 +SIZE (smlnj/110.99.6.1/boot.amd64-unix.tgz) = 5994405 +SHA256 (smlnj/110.99.6.1/boot.x86-unix.tgz) = db2058d30199f01d63602e68b3d49f1fa78a2685a5438ac0725042dcf9da7287 +SIZE (smlnj/110.99.6.1/boot.x86-unix.tgz) = 5946836 +SHA256 (smlnj/110.99.6.1/MLRISC.tgz) = 30f369621adbb086d510ecc9ec62044029bfec5fc99f18f45174bb15e4e9fbba +SIZE (smlnj/110.99.6.1/MLRISC.tgz) = 1457420 +SHA256 (smlnj/110.99.6.1/ckit.tgz) = be2e9d4992122fe296929a7f8f12cf08d067a3ea9361386f6c4c59e51e4bed67 +SIZE (smlnj/110.99.6.1/ckit.tgz) = 200761 +SHA256 (smlnj/110.99.6.1/cml.tgz) = e6b673a792148ffc595f47f27a834ca21c93cf589f758e809eefc7834b290d0c +SIZE (smlnj/110.99.6.1/cml.tgz) = 103972 +SHA256 (smlnj/110.99.6.1/doc.tgz) = 3e5896c427df2123eb00eed96a7df7ade7052d1986a2a64b2873b34843f43c49 +SIZE (smlnj/110.99.6.1/doc.tgz) = 2748425 +SHA256 (smlnj/110.99.6.1/heap2asm.tgz) = 38734f304acda0ba58b9ab606e062553f98c078257438680e74599d811edb772 +SIZE (smlnj/110.99.6.1/heap2asm.tgz) = 1721 +SHA256 (smlnj/110.99.6.1/ml-burg.tgz) = e2bb968468f19f2f7b7940fd1a4e056a4a84673347c09a7bb926bdec44f6d29d +SIZE (smlnj/110.99.6.1/ml-burg.tgz) = 40296 +SHA256 (smlnj/110.99.6.1/ml-lex.tgz) = 6703b7c50503683d9fed3b2ba3a9246a14fbbd237526f41b2e4c18fe6ef1488b +SIZE (smlnj/110.99.6.1/ml-lex.tgz) = 28039 +SHA256 (smlnj/110.99.6.1/ml-lpt.tgz) = 6916054c4125e2d77b2d0d0b86c5c62ed27fa6dc020d5d66f46783b4cefebe5a +SIZE (smlnj/110.99.6.1/ml-lpt.tgz) = 267376 +SHA256 (smlnj/110.99.6.1/ml-yacc.tgz) = 0c1478c662a2480e689fbf980f3ed9afca8103a683d5f4bae3e83af6e912a6b7 +SIZE (smlnj/110.99.6.1/ml-yacc.tgz) = 101379 +SHA256 (smlnj/110.99.6.1/nlffi.tgz) = 59f6265fb761ac1aad1388ee0d53728ee16db09d47f81eeb258d815c962d28d3 +SIZE (smlnj/110.99.6.1/nlffi.tgz) = 74692 +SHA256 (smlnj/110.99.6.1/old-basis.tgz) = 23a0c945f231fb4f729c529767addd0d6469bf4a4496359c8806ab2bf12143fb +SIZE (smlnj/110.99.6.1/old-basis.tgz) = 1365 +SHA256 (smlnj/110.99.6.1/smlnj-lib.tgz) = d6da79c1a3e5ecc0964b89085059bfc2841e7917c28e4a604b11e919bfb29933 +SIZE (smlnj/110.99.6.1/smlnj-lib.tgz) = 666400 +SHA256 (smlnj/110.99.6.1/trace-debug-profile.tgz) = 003f4a5acb244648d31588910889b4aa3d36b080471ba1ed04ce7028c06a7976 +SIZE (smlnj/110.99.6.1/trace-debug-profile.tgz) = 3892 +SHA256 (smlnj/110.99.6.1/asdl.tgz) = 3bafe0db4fe1b0c4c6dc2bcc039f5bb631bee147546c684c1e48b31122890c40 +SIZE (smlnj/110.99.6.1/asdl.tgz) = 241731 +SHA256 (smlnj/110.99.6.1/cm.tgz) = 03772b0b91165f890407aa25c1d68e6e095082404136a7014828bfa5047959dc +SIZE (smlnj/110.99.6.1/cm.tgz) = 220336 +SHA256 (smlnj/110.99.6.1/compiler.tgz) = 713824739a296845ec91dcede7262c763c85e66f7ce3ab764b2122c18e96dc75 +SIZE (smlnj/110.99.6.1/compiler.tgz) = 888655 +SHA256 (smlnj/110.99.6.1/eXene.tgz) = 7394278c0413b65060604e8318530d0dbbbd20b484559833b3fbb46c8a307c77 +SIZE (smlnj/110.99.6.1/eXene.tgz) = 714459 +SHA256 (smlnj/110.99.6.1/pgraph.tgz) = 903c9a00c07a3eddc27409daf95f1a2df4f1f138fa6b9bcf7ee4b1b6981ad3cc +SIZE (smlnj/110.99.6.1/pgraph.tgz) = 5367 +SHA256 (smlnj/110.99.6.1/smlnj-c.tgz) = 56eadeea1d132aa9dee7ee4c2415fd711901826ac9fe42952d4ceb208887ee51 +SIZE (smlnj/110.99.6.1/smlnj-c.tgz) = 10592 +SHA256 (smlnj/110.99.6.1/system.tgz) = 1d49fc602c652deebe7b91fda0c2632281b6dc6045ded84c9471244862d94eeb +SIZE (smlnj/110.99.6.1/system.tgz) = 295678 diff --git a/lang/smlnj/files/do-patch-asdl_config.sh b/lang/smlnj/files/do-patch-asdl_config.sh index e688167614cc..065049f7cf84 100644 --- a/lang/smlnj/files/do-patch-asdl_config.sh +++ b/lang/smlnj/files/do-patch-asdl_config.sh @@ -1,13 +1,13 @@ ---- asdl/config.sh.orig 2019-10-27 12:44:07 UTC +--- asdl/config.sh.orig 2024-10-25 16:47:17 UTC +++ asdl/config.sh -@@ -40,4 +40,10 @@ fi +@@ -40,4 +40,10 @@ export SMLNJ_CMD SMLNJ_CMD=$INSTALLDIR/bin/sml export SMLNJ_CMD +# "convert" gmake -> bmake +find . -name Makefile.in | \ +xargs sed -E -i "" \ + -e 's/^include[[:space:]]+(.+)/.include "\1"/' \ + -e 's@\$\(patsubst %,%/([^,]+),\$\(([^)]+)\)\)@${\2:C/(.+)\/\\1\\\/\1/}@' \ + -e 's@\$\(patsubst %([^,]+),%([^,]+),\$\(([^)]+)\)\)@${\3:C/\1/\2/}@' ./configure $SIZE_OPT --prefix=$INSTALLDIR diff --git a/lang/smlnj/files/do-patch-asdl_src_asdlgen_Makefile.in b/lang/smlnj/files/do-patch-asdl_src_asdlgen_Makefile.in index f326f3b0d438..eb7a0f5ed041 100644 --- a/lang/smlnj/files/do-patch-asdl_src_asdlgen_Makefile.in +++ b/lang/smlnj/files/do-patch-asdl_src_asdlgen_Makefile.in @@ -1,46 +1,46 @@ ---- asdl/src/asdlgen/Makefile.in.orig 2019-12-22 02:16:49 UTC +--- asdl/src/asdlgen/Makefile.in.orig 2024-10-25 16:47:17 UTC +++ asdl/src/asdlgen/Makefile.in -@@ -60,8 +60,8 @@ CM_FILES = back-end/sml/sources.cm \ +@@ -60,8 +60,8 @@ CODE_FRAG_DIRS = back-end/sml 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 = ${CODE_FRAG_DIRS:C/(.+)/\1\/fragments.sml/} +CODE_FRAG_MKFILES = ${CODE_FRAG_DIRS:C/(.+)/\1\/fragments.gmk/} SRCDIR = @ASDLGEN_SRCDIR@ @@ -100,14 +100,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 #################### -@@ -125,4 +129,4 @@ DISTCLEAN_FILES += Makefile \ +@@ -125,4 +129,4 @@ DEVCLEAN_FILES = DEVCLEAN_FILES = -include @ASDL_MKDIR@/clean-rules.gmk +.include "@ASDL_MKDIR@/clean-rules.gmk" diff --git a/lang/smlnj/files/do-patch-base_compiler_Parse_lex_ml.lex b/lang/smlnj/files/do-patch-base_compiler_Parse_lex_ml.lex index a3920d4cb624..abac5a956584 100644 --- a/lang/smlnj/files/do-patch-base_compiler_Parse_lex_ml.lex +++ b/lang/smlnj/files/do-patch-base_compiler_Parse_lex_ml.lex @@ -1,11 +1,11 @@ ---- base/compiler/Parse/lex/ml.lex.orig 2018-05-28 17:11:09 UTC +--- base/compiler/Parse/lex/ml.lex.orig 2024-10-25 16:47:18 UTC +++ base/compiler/Parse/lex/ml.lex -@@ -66,7 +66,7 @@ exp=[eE](~?){num}; +@@ -66,7 +66,7 @@ hexnum={xdigit}+; 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()); diff --git a/lang/smlnj/files/do-patch-base_compiler_Parse_lex_sml.lex b/lang/smlnj/files/do-patch-base_compiler_Parse_lex_sml.lex index 083869374ba8..6d7499398fed 100644 --- a/lang/smlnj/files/do-patch-base_compiler_Parse_lex_sml.lex +++ b/lang/smlnj/files/do-patch-base_compiler_Parse_lex_sml.lex @@ -1,11 +1,11 @@ ---- base/compiler/Parse/lex/sml.lex.orig 2018-05-28 17:11:09 UTC +--- base/compiler/Parse/lex/sml.lex.orig 2024-10-25 16:47:18 UTC +++ base/compiler/Parse/lex/sml.lex -@@ -114,7 +114,7 @@ hexnum={xdigit}("_"*{xdigit})*; +@@ -114,7 +114,7 @@ real=(~?)(({num}{frac}?{exp})|({num}{frac}{exp}?)); 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]); %% diff --git a/lang/smlnj/files/do-patch-base_runtime_include_ml-unixdep.h b/lang/smlnj/files/do-patch-base_runtime_include_ml-unixdep.h index 6fa30f7f315e..32f0357efcc2 100644 --- a/lang/smlnj/files/do-patch-base_runtime_include_ml-unixdep.h +++ b/lang/smlnj/files/do-patch-base_runtime_include_ml-unixdep.h @@ -1,26 +1,26 @@ ---- base/runtime/include/ml-unixdep.h.orig 2019-11-14 19:24:04 UTC +--- base/runtime/include/ml-unixdep.h.orig 2024-10-25 16:47:18 UTC +++ base/runtime/include/ml-unixdep.h @@ -33,9 +33,10 @@ * HAS_UCONTEXT if signal handlers have a ucontext_t argument. * HAS_STRERROR if the system provides the ISO C strerror function. * INT_GIDLIST if the second argument to getgroups is int[]. + * HAS_MKSTEMP if OS provides the POSIX mkstemp function. * STAT_HAS_TIMESPEC if the time fields in the "struct stat" type have * type "struct timespec". - * HAS_NANOSLEEP if the system provides the nanosleep(2) function. + * HAS_NANOSLEEP if the system provides the nanosleep(2) function. * * Note that only one of the following sets of symbols should be defined: * { HAS_MMAP, HAS_ANON_MMAP, HAS_VM_ALLOCATE } @@ -208,8 +209,11 @@ extern char *sys_errlist[]; # define HAS_SELECT # define HAS_UCONTEXT # define HAS_STRERROR +# define HAS_MKSTEMP # define STAT_HAS_TIMESPEC # define HAS_NANOSLEEP +/* FreeBSD uses MAP_ANON for MAP_ANONYMOUS */ +# define MAP_ANONYMOUS MAP_ANON #elif defined(OPSYS_NETBSD) /* version 3.x */ # define OS_NAME "BSD" diff --git a/lang/smlnj/files/do-patch-base_runtime_objs_makefile b/lang/smlnj/files/do-patch-base_runtime_objs_makefile index ddd887f5d610..7ceadbeeb400 100644 --- a/lang/smlnj/files/do-patch-base_runtime_objs_makefile +++ b/lang/smlnj/files/do-patch-base_runtime_objs_makefile @@ -1,37 +1,37 @@ ---- base/runtime/objs/makefile.orig 2019-11-10 14:00:54 UTC +--- base/runtime/objs/makefile.orig 2024-10-25 16:47:18 UTC +++ base/runtime/objs/makefile -@@ -5,10 +5,12 @@ +@@ -7,10 +7,12 @@ MAKE = make SHELL = /bin/sh MAKE = make -CC = cc -CPP = /lib/cpp -LD_LIBS = -AS = as +CC ?= cc +CFLAGS ?= +CPP ?= /lib/cpp +LD_LIBS ?= +AS ?= as +ASFLAGS ?= AR = ar ARFLAGS = rcv RANLIB = ranlib -@@ -37,8 +39,6 @@ MP_DIR = $(ROOT_DIR)/mp +@@ -39,8 +41,6 @@ CONFIG_DIR = $(ROOT_DIR)/config CLIB_DIR = $(ROOT_DIR)/c-libs CONFIG_DIR = $(ROOT_DIR)/config -CFLAGS = -O - INCLUDES = -I$(OBJS_DIR) -I$(INC_DIR) GC_INCLUDES = $(INCLUDES) -I$(GC_DIR) GEN_INCLUDES = -I$(CONFIG_DIR) $(INCLUDES) -@@ -275,7 +275,7 @@ prim.o: $(MACH_DIR)/$(TARGET).prim.asm \ +@@ -277,7 +277,7 @@ prim.o: $(MACH_DIR)/$(TARGET).prim.asm \ $(MACH_DIR)/x86-syntax.h \ mlstate-offsets.h $(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 # # diff --git a/lang/smlnj/files/do-patch-base_runtime_objs_mk.amd64-freebsd b/lang/smlnj/files/do-patch-base_runtime_objs_mk.amd64-freebsd index e1dd50843d0f..a3adff6c9131 100644 --- a/lang/smlnj/files/do-patch-base_runtime_objs_mk.amd64-freebsd +++ b/lang/smlnj/files/do-patch-base_runtime_objs_mk.amd64-freebsd @@ -1,26 +1,26 @@ ---- base/runtime/objs/mk.amd64-freebsd.orig 2019-11-14 19:33:11 UTC +--- base/runtime/objs/mk.amd64-freebsd.orig 2024-10-25 16:47:18 UTC +++ base/runtime/objs/mk.amd64-freebsd -@@ -6,9 +6,10 @@ +@@ -6,9 +6,10 @@ MAKE = make SHELL = /bin/sh MAKE = make -AS = as --64 -CC = cc -std=gnu99 -CFLAGS = -O2 -m64 +AS ?= cc -x assembler -c +ASFLAGS ?= -fPIC +CC ?= cc -std=gnu99 +CFLAGS ?= -O2 -m64 -fPIC CPP = cc -x assembler-with-cpp -E -P XOBJS = XLIBS = ../c-libs/dl/libunix-dynload.a -@@ -26,6 +27,6 @@ RUNTIME_SO = run.amd64-freebsd.so +@@ -26,6 +27,6 @@ all: RUNTIME_A = run.amd64-freebsd.a all: - ($(MAKE) CHECK_HEAP=$(CHECK_HEAP) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" AS="$(AS)" 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)" AS="$(AS)" 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)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A)) + ($(MAKE) CHECK_HEAP=$(CHECK_HEAP) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" AS="$(AS)" ASFLAGS="$(ASFLAGS)" 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)" AS="$(AS)" ASFLAGS="$(ASFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared -Wl,-z,notext" $(RUNTIME_SO)) + ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" AS="$(AS)" ASFLAGS="$(ASFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A)) diff --git a/lang/smlnj/files/do-patch-base_runtime_objs_mk.x86-freebsd b/lang/smlnj/files/do-patch-base_runtime_objs_mk.x86-freebsd index 08e1747155f8..d0fcd0a64695 100644 --- a/lang/smlnj/files/do-patch-base_runtime_objs_mk.x86-freebsd +++ b/lang/smlnj/files/do-patch-base_runtime_objs_mk.x86-freebsd @@ -1,43 +1,43 @@ ---- base/runtime/objs/mk.x86-freebsd.orig 2019-11-14 19:19:39 UTC +--- base/runtime/objs/mk.x86-freebsd.orig 2024-10-25 16:47:18 UTC +++ base/runtime/objs/mk.x86-freebsd -@@ -6,20 +6,20 @@ +@@ -6,20 +6,20 @@ MAKE = make SHELL = /bin/sh MAKE = make - -AS = as --32 -CC = cc -std=gnu99 -CFLAGS = -O2 -m32 +AS ?= cc -x assembler -c +ASFLAGS ?= -fPIC +CC ?= cc -std=gnu99 +CFLAGS ?= -O2 -m32 -fPIC CPP = cc -x assembler-with-cpp -E -P -#CPP = /usr/bin/cpp -P -ARFLAGS = Trcv - XOBJS = XLIBS = ../c-libs/dl/libunix-dynload.a -LD_LIBS = -lm +LD_LIBS = -ldl -lm +#CHECK_HEAP = check-heap.o +XDEFS = -DASSERT_ON BASE_DEFS = --DEFS = $(BASE_DEFS) -DARCH_X86 -DDSIZE_32 -DOPSYS_UNIX -DOPSYS_FREEBSD \ -- -DGNU_ASSEMBLER -DDLOPEN -DINDIRECT_CFUNC -+DEFS = $(XDEFS) $(BASE_DEFS) -DARCH_X86 -DSIZE_32 \ -+ -DOPSYS_UNIX -DOPSYS_FREEBSD -D_GNU_SOURCE -DGNU_ASSEMBLER -DDLOPEN \ -+ -DINDIRECT_CFUNC +-DEFS = $(BASE_DEFS) -DARCH_X86 -DDSIZE_32 -DALIGN_STACK_16 \ +- -DOPSYS_UNIX -DOPSYS_FREEBSD -DGNU_ASSEMBLER -DDLOPEN -DINDIRECT_CFUNC ++DEFS = $(XDEFS) $(BASE_DEFS) -DARCH_X86 -DSIZE_32 -DALIGN_STACK_16 \ ++ -DOPSYS_UNIX -DOPSYS_FREEBSD -D_GNU_SOURCE -DGNU_ASSEMBLER \ ++ -DDLOPEN -DINDIRECT_CFUNC TARGET = X86 VERSION = v-x86-freebsd RUNTIME = run.x86-freebsd -@@ -27,6 +27,6 @@ RUNTIME_SO = run.x86-freebsd.so +@@ -27,6 +27,6 @@ all: RUNTIME_A = run.x86-freebsd.a all: - ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" AS="$(AS)" 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)" AS="$(AS)" 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)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A)) + ($(MAKE) CHECK_HEAP=$(CHECK_HEAP) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" AS="$(AS)" ASFLAGS="$(ASFLAGS)" 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)" AS="$(AS)" ASFLAGS="$(ASFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared -Wl,-z,notext" $(RUNTIME_SO)) + ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" AS="$(AS)" ASFLAGS="$(ASFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A)) diff --git a/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-util.sml b/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-util.sml deleted file mode 100644 index 899d29638aad..000000000000 --- a/lang/smlnj/files/do-patch-smlnj-lib_JSON_json-util.sml +++ /dev/null @@ -1,29 +0,0 @@ ---- 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 @@ 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 @@ 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) diff --git a/lang/smlnj/files/patch-config_install.sh b/lang/smlnj/files/patch-config_install.sh index 30136bb39e5c..0603795215d0 100644 --- a/lang/smlnj/files/patch-config_install.sh +++ b/lang/smlnj/files/patch-config_install.sh @@ -1,180 +1,180 @@ ---- config/install.sh.orig 2020-04-03 02:04:40 UTC +--- config/install.sh.orig 2024-10-25 16:47:18 UTC +++ config/install.sh -@@ -56,11 +56,36 @@ if [ x"$SIZE_OPT" = x ] ; then +@@ -52,11 +52,36 @@ fi SIZE_OPT="-"$DEFAULT_SIZE fi +[ -n "$RECOMPILEDIR" ] && echo "RECOMPILEDIR=$RECOMPILEDIR" + if [ x${INSTALL_QUIETLY} = xtrue ] ; then export CM_VERBOSE CM_VERBOSE=false fi +# +# 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 +} + vsay() { if [ x${INSTALL_DEBUG} = xtrue ] ; then echo "$@" -@@ -128,7 +153,28 @@ trap 'cd "$ROOT"; rm -f $tmpfiles' 0 1 2 3 15 +@@ -124,7 +149,28 @@ export CM_PATHCONFIG # 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 # -@@ -407,7 +453,12 @@ esac +@@ -403,7 +449,12 @@ BOOT_ARCHIVE=boot.$ARCH-unix # 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 -@@ -416,9 +467,15 @@ if [ -x "$RUNDIR"/run.$ARCH-$OPSYS ]; then +@@ -412,9 +463,15 @@ else 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 $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 -@@ -430,7 +487,7 @@ else +@@ -426,7 +483,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 -@@ -456,7 +513,7 @@ if [ -r "$HEAPDIR"/sml.$HEAP_SUFFIX ]; then +@@ -452,7 +509,7 @@ else 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 -@@ -491,7 +548,7 @@ else +@@ -487,7 +544,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 -@@ -514,6 +571,18 @@ installdriver _ml-build ml-build +@@ -510,6 +567,18 @@ cd "$ROOT" 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) -@@ -523,6 +592,12 @@ if [ $nolib = false ] ; then +@@ -519,6 +588,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 $SIZE_OPT -m \$smlnj/installer.cm then # because we create heap2exec without knowing if heap2asm is going -@@ -536,5 +611,20 @@ if [ $nolib = false ] ; then +@@ -532,5 +607,20 @@ fi 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 diff --git a/lang/smlnj/files/patch-config_unpack b/lang/smlnj/files/patch-config_unpack index e53f3531c3d6..b42beab8b840 100644 --- a/lang/smlnj/files/patch-config_unpack +++ b/lang/smlnj/files/patch-config_unpack @@ -1,12 +1,26 @@ ---- config/unpack.orig 2019-10-28 14:53:16 UTC +--- config/unpack.orig 2024-10-25 16:47:18 UTC +++ config/unpack -@@ -291,6 +291,9 @@ do +@@ -204,6 +204,13 @@ unpack() { + tryfetch=yes + if [ -d "$2"/"$3" ]; then + vsay "$this: The $1 tree already exists." ++ elif [ x`uname` = xFreeBSD ]; then ++ # XXX Mac OS X resource files (._*) cause tar to fail with ++ # "Cannot restore extended attributes: com.apple.metadata:..." ++ # We dont't have to use fetch_n_unpack here because the port ++ # already fetched the upstream tarballs to $ROOT. ++ vsay "$this: Un-TAR-ing $1 archive." ++ tar -x -C "$2" --exclude "._*" -f "$ROOT"/"$4".t* || true + else + fetch_n_unpack "$1" "$2" "$3" "$4" + fi +@@ -290,6 +297,9 @@ do + unpack "documentation" "$ROOT" doc doc # cd $ROOT/doc # build $ROOT - ;; ++ ;; + asdl) + unpack "Abstract Syntax Description Library" "$ROOT" asdl asdl -+ ;; + ;; *) echo Unknown package: ${i}. - echo Trying default method... diff --git a/lang/smlnj/files/targets-recompile.customized b/lang/smlnj/files/targets-recompile.customized new file mode 100644 index 000000000000..099a1099d5b8 --- /dev/null +++ b/lang/smlnj/files/targets-recompile.customized @@ -0,0 +1,7 @@ +# This file is installed to config/targets.customized by +# do-configure-RECOMPILE-on in the port's Makefile, because the +# following targets are required before recompiling the compiler. +request ml-lex +request ml-yacc +request ml-lex-mllex-tool +request src-smlnj diff --git a/lang/smlnj/pkg-plist b/lang/smlnj/pkg-plist index 7dfc689692dd..7bb7723b01a7 100644 --- a/lang/smlnj/pkg-plist +++ b/lang/smlnj/pkg-plist @@ -1,183 +1,183 @@ -share/man/man1/asdlgen.1.gz +%%EVERYTHING%%share/man/man1/asdlgen.1.gz share/man/man1/heap2exec.1.gz share/man/man1/ml-antlr.1.gz share/man/man1/ml-build.1.gz share/man/man1/ml-burg.1.gz share/man/man1/ml-lex.1.gz share/man/man1/ml-makedepend.1.gz share/man/man1/ml-nlffigen.1.gz share/man/man1/ml-ulex.1.gz share/man/man1/ml-yacc.1.gz share/man/man1/sml.1.gz share/man/man7/smlnj.7.gz smlnj/bin/.arch-n-opsys -smlnj/bin/.heap/asdlgen.%%MLARCH%%-bsd +%%EVERYTHING%%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 %%MLSIZE32%%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 %%RUNTIME_SO%%smlnj/bin/.run/run.%%MLARCH%%-freebsd.so smlnj/bin/.run-sml -smlnj/bin/asdlgen +%%EVERYTHING%%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 %%MLSIZE32%%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/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/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/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 +%%EVERYTHING%%smlnj/lib/asdl-ext.cm/.cm/%%MLARCH%%-unix/asdl-ext.cm +%%EVERYTHING%%smlnj/lib/asdl-lib.cm/.cm/%%MLARCH%%-unix/asdl-lib.cm +%%EVERYTHING%%smlnj/lib/asdlgen-tool.cm/.cm/%%MLARCH%%-unix/asdlgen-tool.cm smlnj/lib/burg-ext.cm/.cm/%%MLARCH%%-unix/burg-ext.cm %%MLSIZE32%%smlnj/lib/c/.cm/%%MLARCH%%-unix/c.cm %%MLSIZE32%%smlnj/lib/c/internals/.cm/%%MLARCH%%-unix/c-int.cm %%MLSIZE32%%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/Library/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/html-lib.cm/.cm/%%MLARCH%%-unix/html-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/pp-extras-lib.cm/.cm/%%MLARCH%%-unix/pp-extras-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/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/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/amd64-unix.cm smlnj/lib/smlnj/cmb/.cm/%%MLARCH%%-unix/current.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/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/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/pp-lib.cm smlnj/lib/smlnj/smlnj-lib/.cm/%%MLARCH%%-unix/smlnj-lib.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/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/uuid-lib.cm/.cm/%%MLARCH%%-unix/uuid-lib.cm smlnj/lib/xml-lib.cm/.cm/%%MLARCH%%-unix/xml-lib.cm