lang/smlnj: Update to 110.84, fix build on 12/amd64

PR:		234532
Submitted by:	Johannes 5 <joemann@beefree.free.de> (maintainer)
This commit is contained in:
Steve Wills 2018-12-31 18:32:59 +00:00
parent 3560039a54
commit 7af7a8c3e3
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=488815
18 changed files with 419 additions and 210 deletions

View file

@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME= smlnj
PORTVERSION= 110.77
PORTVERSION= 110.84
CATEGORIES= lang
MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ \
ftp://mirror.free.de/http/smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/
@ -18,7 +18,7 @@ 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= i386 amd64
ONLY_FOR_ARCHS= amd64 i386
LLD_UNSAFE= yes
NO_WRKSUBDIR= yes
@ -27,54 +27,37 @@ SUB_FILES= pkg-install
SUB_LIST= EXEBINDIR=${MLBINRELATIVE} EXENAMES="${MLEXE}"
PKGDEINSTALL= ${PKGINSTALL}
# Calm portlint
CALM=
OPTIONS_RADIO= RG1
OPTIONS_RADIO_RG1= EVERYTHING RECOMPILE POSITION64
OPTIONS_EXCLUDE_amd64= RECOMPILE POSITION64
EVERYTHING_DESC= install${CALM} everything from the SML/NJ distribution
OPTIONS_DEFINE= EVERYTHING RECOMPILE POSITION64
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${CALM} positions - implies RECOMPILE
POSITION64_DESC= use 64bit file positions - implies RECOMPILE
.include <bsd.port.pre.mk>
# Recompiling the compiler currently fails on amd64
.if ${ARCH} == "i386"
ML_RECOMPILE_OPTIONS= RECOMPILE POSITION64
.endif
.if (${ARCH} == "amd64")
CFLAGS+= -m32
AS?= as
AS+= --32
ASFLAGS+= --32
.endif
.if (${ARCH} == "i386" || ${ARCH} == "amd64")
MLARCH= x86
DISTFILES+= boot.x86-unix.tgz
.endif
DISTFILES+= MLRISC.tgz ckit.tgz cml.tgz doc.tgz heap2asm.tgz \
ml-burg.tgz ml-lpt.tgz ml-lex.tgz ml-yacc.tgz nlffi.tgz \
smlnj-lib.tgz trace-debug-profile.tgz
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} || defined(ML_POSITION64)
ML_POSITION64?= ${PORT_OPTIONS:MPOSITION64}
ML_RECOMPILE?= ${ML_POSITION64}
ML_EVERYTHING?= ${ML_POSITION64}
.if ${PORT_OPTIONS:MPOSITION64}
CMB_COMMAND= '(\#set o CMB.symval) "USE_64_BIT_POSITIONS" (SOME 1);'
.else
CMB_COMMAND=
.endif
.if ${PORT_OPTIONS:MRECOMPILE} || defined(ML_RECOMPILE)
ML_RECOMPILE?= ${PORT_OPTIONS:MRECOMPILE}
ML_EVERYTHING?= ${ML_RECOMPILE}
.endif
.if ${PORT_OPTIONS:MEVERYTHING} || defined(ML_EVERYTHING)
ML_EVERYTHING?= ${PORT_OPTIONS:MEVERYTHING}
.if ${PORT_OPTIONS:MEVERYTHING}
DISTFILES+= cm.tgz compiler.tgz eXene.tgz \
pgraph.tgz smlnj-c.tgz system.tgz
PLIST_SUB+= EVERYTHING=""
@ -87,7 +70,8 @@ MLROOT= ${PREFIX}/${MLROOTRELATIVE}
MLBINRELATIVE= ${MLROOTRELATIVE}/bin
MLBIN= ${MLROOT}/bin
MLLIB= ${MLROOT}/lib
MLSTDSRCDIRS= cml doc heap2asm ml-burg ml-lex ml-lpt ml-yacc nlffi smlnj-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=
@ -95,9 +79,9 @@ MLSRCS=
MLSRCS+= ${MLROOT}/${srcdir}
.endfor
MLTARGETS= heap2asm
MLEXE= heap2exec ml-antlr ml-build ml-burg ml-lex ml-makedepend \
ml-nlffigen ml-ulex ml-yacc sml
.if defined(ML_EVERYTHING)
MLEXE= asdlgen heap2exec ml-antlr ml-build ml-burg ml-lex \
ml-makedepend ml-nlffigen ml-ulex ml-yacc sml
.if ${PORT_OPTIONS:MEVERYTHING}
MLTARGETS+= eXene mlrisc-tools nowhere pgraph-util src-smlnj
MLEXE+= nowhere
PLIST= ${WRKDIR}/.PLIST
@ -108,19 +92,19 @@ MLPLISTFILES= ${.CURDIR}/pkg-plist ${MLRUNTIMEPLIST} ${MLSRCPLIST}
pre-fetch:
@${ECHO}
.if ! defined(ML_EVERYTHING)
@${ECHO} 'Use make ML_EVERYTHING=yes to also build/install'
.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 !empty(ML_RECOMPILE_OPTIONS:MRECOMPILE) && !defined(ML_RECOMPILE)
@${ECHO} 'Use make ML_RECOMPILE=yes to recompile the compiler.'
@${ECHO} ' This implies ML_EVERYTHING.'
.if ! ${PORT_OPTIONS:MRECOMPILE}
@${ECHO} 'Use port option RECOMPILE to recompile the compiler.'
@${ECHO} ' This implies EVERYTHING.'
.endif
.if !empty(ML_RECOMPILE_OPTIONS:MPOSITION64) && !defined(ML_POSITION64)
@${ECHO} 'Use make ML_POSITION64=yes to use 64bit file positions.'
@${ECHO} ' This implies ML_RECOMPILE.'
.if ! ${PORT_OPTIONS:MPOSITION64}
@${ECHO} 'Use port option POSITION64 to use 64bit file positions.'
@${ECHO} ' This implies RECOMPILE.'
.endif
@${ECHO}
@ -145,7 +129,7 @@ do-configure:
# 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 defined(ML_RECOMPILE)
.if ${PORT_OPTIONS:MRECOMPILE}
( ${ECHO_CMD} "request ml-yacc" && \
${ECHO_CMD} "request ml-lex" && \
${ECHO_CMD} "request ml-lex-mllex-tool" && \
@ -158,7 +142,7 @@ do-configure:
# a subsequent make install.
# See base/system/README for information on recompiling the compiler.
.if defined(ML_RECOMPILE)
.if ${PORT_OPTIONS:MRECOMPILE}
RECOMPILEDIR= base/system
.else
RECOMPILEDIR=
@ -174,9 +158,9 @@ MLSTANDARDPATCHES_CMD= cd ${FILESDIR} && \
MLSTANDARDPATCHDIRS_CMD= cd ${FILESDIR} && \
( for srcdir in ${MLSTDSRCDIRS} ; \
do if ${LS} do-patch-$${srcdir}_* 1>&- 2>&- ; \
then ${ECHO_CMD} -n $${srcdir} " " ; break ; fi ; \
then ${ECHO_CMD} -n $${srcdir} " " ; fi ; \
done ) || ${TRUE}
.if defined(ML_EVERYTHING)
.if ${PORT_OPTIONS:MEVERYTHING}
MLSOURCEPATCHES_CMD= cd ${FILESDIR} && \
( ${LS} do-patch-* 2>&- || \
${TRUE} )
@ -192,9 +176,10 @@ do-build:
MLSTANDARDPATCHES=`${MLSTANDARDPATCHES_CMD}` \
MLSTANDARDPATCHDIRS=`${MLSTANDARDPATCHDIRS_CMD}` \
MLSOURCEPATCHES=`${MLSOURCEPATCHES_CMD}` \
CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' AS='${AS}' EXTRA_DEFS='${EXTRA_DEFS}' \
CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \
AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \
./config/install.sh
.if defined(ML_RECOMPILE)
.if ${PORT_OPTIONS:MRECOMPILE}
-${RM} ${WRKSRC}/config/targets.customized
@${ECHO} '(* Recompiling the core system: *)'
cd ${WRKSRC}/${RECOMPILEDIR} && ( \
@ -215,31 +200,29 @@ do-build:
./installml
@${ECHO} '(* Building requested targets: *)'
cd ${WRKSRC} && unset PWD && \
FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="-d ${PATCH_WRKSRC} ${PATCH_ARGS}" \
FILESDIR="${FILESDIR}" PATCH="${PATCH}" \
PATCH_ARGS="-d ${PATCH_WRKSRC} ${PATCH_ARGS}" \
MLNORUNTIMECLEAN=yes RECOMPILEDIR="${RECOMPILEDIR}" \
CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' AS='${AS}' EXTRA_DEFS='${EXTRA_DEFS}' \
CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \
AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \
./config/install.sh
.endif
# If Mac OS X resource files make it into the distribution tarballs,
# then we have to remove them at several points during the
# installation process. This is no longer necessary with FreeBSD 10
# as it uses libarchive 3.x (via bsdtar), but earlier versions
# don't ignore such resource files and hence WRKSRC and STAGEDIR
# are full of them. Once FreeBSD 9 will be out of service, all
# lines in this Makefile can be removed which contain a pattern
# for the prefix "._" of the resource files. Background information:
# <https://github.com/libarchive/libarchive/wiki/TarExtendedAttributes#Apple_tar>
.if ${PORT_OPTIONS:MEVERYTHING}
post-build:
${FIND} ${WRKSRC} -type f -name '\._*' -delete
${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 defined(ML_EVERYTHING)
.if ${PORT_OPTIONS:MEVERYTHING}
MLNOINSTALL= .cm
.if defined(ML_RECOMPILE)
.if ${PORT_OPTIONS:MRECOMPILE}
MLNOINSTALL+= sml.bin.${MLARCH}-unix sml.boot.${MLARCH}-unix \
sml.lib sml.${MLARCH}-bsd
.endif
@ -252,10 +235,9 @@ MLPATCHPATHREGEX= -E -e 's%(^|[^_])_([^_]|$$)%\1/\2%g' \
.endif
pre-install:
.if defined(ML_EVERYTHING)
.if ${PORT_OPTIONS:MEVERYTHING}
@${ECHO} -n '(* Computing package list ...'
@${TAR} -tzf ${WRKSRC}/runtime.tgz | \
${GREP} -E -v '(^|/)\._.*' | \
${SED} -E -n -e 's%^(.*[^/])$$%${MLROOTRELATIVE}/base/\1%p' \
> ${MLRUNTIMEPLIST}
@${MLRUNTIMEPATCHES_CMD} | \
@ -274,6 +256,7 @@ pre-install:
${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}
@ -304,7 +287,7 @@ pre-install:
# When staging CM_PATHCONFIG has to point to the final
# ${MLLIB}/pathconfig (in ${PREFIX}) while building the compiler.
.if defined(ML_EVERYTHING)
.if ${PORT_OPTIONS:MEVERYTHING}
MLSRCEXCLUDES=
.for excl in ${MLNOINSTALL}
MLSRCEXCLUDES+= --exclude "${excl}"
@ -313,12 +296,13 @@ MLSRCEXCLUDES+= --exclude "${excl}"
do-install:
${MKDIR} "${STAGEDIR}${MLROOT}"
.if ! defined(ML_RECOMPILE)
.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}' EXTRA_DEFS='${EXTRA_DEFS}' \
CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \
AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \
./config/install.sh
.else
@${ECHO} '(* Rebuilding the recompiled libs: *)'
@ -330,16 +314,15 @@ do-install:
@${ECHO} '(* Rebuilding the recompiled heap: *)'
cd ${WRKSRC}/${RECOMPILEDIR} && \
./makeml
@${ECHO} '(* Installing into ${MLROOT}: *)'
@${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}' EXTRA_DEFS='${EXTRA_DEFS}' \
CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \
AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \
./config/install.sh
.endif
[ ! -d ${STAGEDIR} ] || \
${FIND} ${STAGEDIR} -type f -name '\._*' -delete
@${ECHO} '(* Installing man pages. *)'
.for mansect in 1 2 3 4 5 6 7 8 9
@[ ! -d ${WRKSRC}/doc/man/man${mansect} ] || \
@ -352,28 +335,24 @@ do-install:
( eval $${MLARCHOPSYS} ; \
${STRIP_CMD} "${STAGEDIR}${MLBIN}/.run/run.$${ARCH}-$${OPSYS}" \
"${STAGEDIR}${MLBIN}/.run/run.$${ARCH}-$${OPSYS}.so" )
.if defined(ML_EVERYTHING)
.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}
.ifmake install${CALM_PORTLINT}
PKG_PREFIX=${PREFIX} MULTIEXEC_WRAPPER_VERBOSE=yes \
${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
.endif
${FIND} ${STAGEDIR} -type f -name '\._*' -delete
MLARCHOPSYS=`${STAGEDIR}${MLBIN}/.arch-n-opsys` && \
( eval $${MLARCHOPSYS} ; \
${STRIP_CMD} "${STAGEDIR}${MLBIN}/.run/run.$${ARCH}-$${OPSYS}" \
"${STAGEDIR}${MLBIN}/.run/run.$${ARCH}-$${OPSYS}.so" )
.ifndef MULTIEXEC_WRAPPER_VERBOSE
deinstall:
export MULTIEXEC_WRAPPER_VERBOSE=yes && \

View file

@ -1,42 +1,47 @@
SHA256 (smlnj/110.77/MLRISC.tgz) = 4b443ee9e27bc8d2010bdce5724302c7d338e8eba0051d45cb4e384204488a76
SIZE (smlnj/110.77/MLRISC.tgz) = 1479104
SHA256 (smlnj/110.77/boot.x86-unix.tgz) = 9982a36d9fb3d2d15590d0d8bb15a30d3e684ad49f56d69eef8684f4eaf3bf02
SIZE (smlnj/110.77/boot.x86-unix.tgz) = 5905482
SHA256 (smlnj/110.77/ckit.tgz) = 29145b1739d46173cbaa87456b2bed35977c4ae7e83c48134a591459939b3966
SIZE (smlnj/110.77/ckit.tgz) = 206672
SHA256 (smlnj/110.77/cm.tgz) = 1c60316b3f16ae1a93cb87e281edcf2a84a554ac0415f010b8d565c2ae3a0a82
SIZE (smlnj/110.77/cm.tgz) = 209949
SHA256 (smlnj/110.77/cml.tgz) = bc4548eda9531c52029ed68a7988985b62ad17e95841c04dbbe32b4b30df4ef7
SIZE (smlnj/110.77/cml.tgz) = 119083
SHA256 (smlnj/110.77/compiler.tgz) = fcc7388167ee2d0048644bb2147bbca3e16f60be326dd724407e0f51e254e52f
SIZE (smlnj/110.77/compiler.tgz) = 841677
SHA256 (smlnj/110.77/config.tgz) = 6bed2026e05367f247e2fcfa918edb835bdab24182f02f3253c1baf2f301b552
SIZE (smlnj/110.77/config.tgz) = 514900
SHA256 (smlnj/110.77/doc.tgz) = 8301bccdc1e99e8865e905070f7719d94a0ae39b44733d961a3e3002d97dd27e
SIZE (smlnj/110.77/doc.tgz) = 10240
SHA256 (smlnj/110.77/eXene.tgz) = d4d3ccbde1bc11943054fb093a34c8531c9e8f56731293ca2470eab21602ea33
SIZE (smlnj/110.77/eXene.tgz) = 729294
SHA256 (smlnj/110.77/heap2asm.tgz) = f3f5c26d11dbe8019e6b3349ab07c04ffe553780a3a6ca0b000fe8084886ada5
SIZE (smlnj/110.77/heap2asm.tgz) = 1606
SHA256 (smlnj/110.77/ml-burg.tgz) = 9bc7bb014d34a63cb3ac8c42104bd579e8990ab2803c32a6a4410fcf8cfcbd4c
SIZE (smlnj/110.77/ml-burg.tgz) = 37604
SHA256 (smlnj/110.77/ml-lex.tgz) = c4c0e108bf166f77e083692a27f9231d730c5b2a73a2f9f5409e55928c679553
SIZE (smlnj/110.77/ml-lex.tgz) = 34081
SHA256 (smlnj/110.77/ml-lpt.tgz) = eff30e6a3c4afb7f8265650e3e1cc83a8ff252ed19f22b30c2c431c9beca126e
SIZE (smlnj/110.77/ml-lpt.tgz) = 266511
SHA256 (smlnj/110.77/ml-yacc.tgz) = 24a2b1d955e990c6f2a64d6be4df0c7d9bf430f56501587ecf95d30732cf266c
SIZE (smlnj/110.77/ml-yacc.tgz) = 103554
SHA256 (smlnj/110.77/nlffi.tgz) = 8729d2aa203329fa76f9a7dccafe6fe88d0f397f1238727fea8fa1c67ae38cf0
SIZE (smlnj/110.77/nlffi.tgz) = 79026
SHA256 (smlnj/110.77/pgraph.tgz) = 5b46d4d9668f27b7538b5a8f6b62d9cd2c5797118e303aa691266df67f6e818c
SIZE (smlnj/110.77/pgraph.tgz) = 5907
SHA256 (smlnj/110.77/runtime.tgz) = 8e40aa7d39c806d36360174d36bc376fa53662b5ac4f0a4add120c8c2fe67f2b
SIZE (smlnj/110.77/runtime.tgz) = 349470
SHA256 (smlnj/110.77/smlnj-c.tgz) = 6de6f0d5a41e7fe097f3fae2815829c4bb14729145efa293fc74bd138180f01d
SIZE (smlnj/110.77/smlnj-c.tgz) = 11462
SHA256 (smlnj/110.77/smlnj-lib.tgz) = 9232f7cf61a9a7a859dc9249a47a77b954a746137e8d8f6e57236f8c030677e7
SIZE (smlnj/110.77/smlnj-lib.tgz) = 434946
SHA256 (smlnj/110.77/system.tgz) = 367cce5e0ab848d28bc019862a30c2b5b774fd4733301bb72fec811d8e9d7f54
SIZE (smlnj/110.77/system.tgz) = 246164
SHA256 (smlnj/110.77/trace-debug-profile.tgz) = e6c7a4ed96de076b8d27af44eb8bfc1121e32f915d9a0b8fc356b5a27c761908
SIZE (smlnj/110.77/trace-debug-profile.tgz) = 4329
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

View file

@ -0,0 +1,9 @@
+++ asdl/configure 2018-12-17 15:01:00.142964000 +0100
@@ -4893,6 +4893,7 @@
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 ;;

View file

@ -0,0 +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 @@
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 @@
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 ####################

View file

@ -0,0 +1,10 @@
--- 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 @@
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]);
%%

View file

@ -0,0 +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 @@
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]);
%%

View file

@ -1,6 +1,6 @@
--- base/runtime/mach-dep/signal-sysdep.h.orig 2018-03-16 11:21:38.240870000 -0700
+++ base/runtime/mach-dep/signal-sysdep.h 2018-03-16 11:22:06.398280000 -0700
@@ -447,8 +447,8 @@ extern void SetFSR();
--- 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
@ -11,3 +11,14 @@
# 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)

View file

@ -1,6 +1,6 @@
--- base/runtime/objs/makefile.orig 2012-04-18 02:28:08.000000000 +0200
+++ base/runtime/objs/makefile 2014-06-30 20:25:38.000000000 +0200
@@ -5,10 +5,10 @@
+++ base/runtime/objs/makefile 2018-12-20 21:57:09.499392000 +0100
@@ -5,10 +5,11 @@
SHELL = /bin/sh
MAKE = make
@ -11,10 +11,11 @@
LD_LIBS =
-AS = as
+AS ?= as
+ASFLAGS ?=
AR = ar
ARFLAGS = rcv
RANLIB = ranlib
@@ -38,7 +38,7 @@
@@ -38,7 +39,7 @@
CLIB_DIR = $(ROOT_DIR)/c-libs
CONFIG_DIR = $(ROOT_DIR)/config
@ -23,7 +24,25 @@
INCLUDES = -I$(OBJS_DIR) -I$(INC_DIR)
GC_INCLUDES = $(INCLUDES) -I$(GC_DIR)
@@ -329,7 +329,7 @@
@@ -275,7 +276,7 @@
$(INC_DIR)/asm-base.h \
mlstate-offsets.h
$(CPP) -D_ASM_ $(DEFS) -I$(BC_DIR) $(INCLUDES) $(MACH_DIR)/$(TARGET).prim.asm > prim.s
- $(AS) -o prim.o 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 @@
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 @@
#
MK_ARGS = VERSION="$(VERSION)" \
MAKE="$(MAKE)" \
@ -32,7 +51,7 @@
AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
RANLIB="$(RANLIB)" \
INCLUDES="$(GC_INCLUDES) -I../bytecode"
@@ -420,7 +420,7 @@
@@ -420,7 +421,7 @@
#
LIB_MK_ARGS = VERSION="$(VERSION)" \
MAKE="$(MAKE)" \

View file

@ -1,5 +1,5 @@
--- base/runtime/objs/mk.x86-freebsd.orig 2006-04-20 15:28:53 UTC
+++ base/runtime/objs/mk.x86-freebsd
--- 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
@@ -5,19 +5,19 @@
SHELL = /bin/sh
@ -13,7 +13,7 @@
-CPP = gcc -x assembler-with-cpp -E -P
+CC ?= gcc -ansi
+CFLAGS ?= -O2
+CPP = ${CC} -x assembler-with-cpp -E -P
+CPP = $(CC) -x assembler-with-cpp -E -P
#CPP = /usr/bin/cpp -P
XOBJS =
@ -25,13 +25,13 @@
TARGET = X86
VERSION = v-x86-freebsd
RUNTIME = run.x86-freebsd
@@ -25,6 +25,6 @@ RUNTIME_SO = run.x86-freebsd.so
@@ -25,6 +25,6 @@
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)" 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)" 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)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="$(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))

View file

@ -1,49 +0,0 @@
--- base/system/smlnj/installer/generic-install.sml.orig 2014-08-23 04:18:09.000000000 +0200
+++ base/system/smlnj/installer/generic-install.sml 2014-08-28 21:51:06.000000000 +0200
@@ -233,28 +233,26 @@
(* ------------------------------ *)
(* parse the targets file *)
- fun loop (ml, srcReqs, allsrc) =
+ fun loop (ml, allsrc) =
case getInputTokens s of
- NONE => (TextIO.closeIn s; (ml, srcReqs, allsrc))
+ NONE => (TextIO.closeIn s; (ml, allsrc))
| SOME [x as ("dont_move_libraries" | "move_libraries")] =>
(warn ["\"", x, "\" no longer supported",
" (installer always moves libraries)\n"];
- loop (ml, srcReqs, allsrc))
- | SOME ["request", "src-smlnj"] => loop (ml, srcReqs, true)
- | SOME ["request", module] => if SS.member(allmoduleset, module)
- then loop (ml, module :: srcReqs, allsrc)
- else loop (module :: ml, srcReqs, allsrc)
- | SOME [] => loop (ml, srcReqs, allsrc)
+ loop (ml, allsrc))
+ | SOME ["request", "src-smlnj"] => loop (ml, true)
+ | SOME ["request", module] => loop (module :: ml, allsrc)
+ | SOME [] => loop (ml, allsrc)
| SOME l => fail ["ill-formed targets line: ", tokenLine l, "\n"]
- val (modules, srcReqs, allsrc) = loop ([], [], false)
+ val (modules, allsrc) = loop ([], false)
(* now resolve dependencies; get full list of modules
* in correct build order: *)
val modules = resolve (modules, depfile)
val moduleset = SS.addList (SS.empty, modules)
val srcmoduleset = if allsrc then SS.union (moduleset, allmoduleset)
- else SS.addList (moduleset, srcReqs)
+ else moduleset
(* fetch and unpack source trees, using auxiliary helper command
* which takes the root directory as its first and the module
@@ -386,7 +384,8 @@
salist := (fn () => standalone args) :: (!salist)
in case SM.find (actions, module) of
SOME al => app perform (rev al)
- | NONE => fail ["unknown module: ", module, "\n"]
+ | NONE => if SS.member(allmoduleset, module) then ()
+ else fail ["unknown module: ", module, "\n"]
end
in
(command_pathconfig "bindir"; (* dummy -- for CM make tool *)

View file

@ -0,0 +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 @@
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 @@
| _ => 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))

View file

@ -0,0 +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 @@
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)

View file

@ -0,0 +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 @@
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 @@
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 @@
(* 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)

View file

@ -1,6 +1,6 @@
--- config/_arch-n-opsys.orig 2014-08-22 15:20:03.000000000 +0200
+++ config/_arch-n-opsys 2014-08-23 14:19:47.056122710 +0200
@@ -85,6 +85,8 @@
--- config/_arch-n-opsys.orig 2018-06-22 14:49:01 UTC
+++ config/_arch-n-opsys
@@ -91,6 +91,8 @@ case `uname -s` in
HEAP_OPSYS=bsd
case `uname -m` in
*86) ARCH=x86;;

View file

@ -1,6 +1,6 @@
--- config/_heap2exec.orig 2006-04-20 17:28:53.000000000 +0200
+++ config/_heap2exec 2013-06-14 22:18:55.050990989 +0200
@@ -83,6 +83,7 @@
--- config/_heap2exec.orig 2006-04-20 15:28:53 UTC
+++ config/_heap2exec
@@ -83,6 +83,7 @@ SO_LIBS=
A_PROG=
A_FLAGS=
A_LIBS=
@ -8,7 +8,7 @@
case ${OPSYS} in
darwin)
@@ -96,6 +97,13 @@
@@ -96,6 +97,13 @@ case ${OPSYS} in
A_PROG=${CC}
A_FLAGS=-Wl,--export-dynamic
A_LIBS=-lm
@ -22,7 +22,7 @@
;;
linux)
SO_PROG=${CC}
@@ -116,7 +124,7 @@
@@ -116,7 +124,7 @@ fi
RESULT=0
if ${H2A} "$heapfile" "$execfile".s ; then
if [ -f "$execfile".s ] ; then

View file

@ -1,4 +1,4 @@
--- config/install.sh.orig 2014-08-22 13:20:03 UTC
--- config/install.sh.orig 2018-08-28 15:30:41 UTC
+++ config/install.sh
@@ -17,6 +17,8 @@ else
nolib=false
@ -68,7 +68,7 @@
#
# the release version that we are installing
#
@@ -326,7 +371,12 @@ fi
@@ -344,7 +389,12 @@ fi
# the name of the bin files directory
#
BOOT_ARCHIVE=boot.$ARCH-unix
@ -82,7 +82,7 @@
#
# build the run-time system
@@ -335,9 +385,15 @@ if [ -x "$RUNDIR"/run.$ARCH-$OPSYS ]; then
@@ -353,9 +403,15 @@ if [ -x "$RUNDIR"/run.$ARCH-$OPSYS ]; then
vsay $this: Run-time system already exists.
else
"$CONFIGDIR"/unpack "$ROOT" runtime
@ -94,12 +94,12 @@
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\"" CFLAGS=\"$CFLAGS\" LDFLAGS=\"$LDFLAGS\""
+ $MAKE -f mk.$ARCH-$OPSYS $EXTRA_DEFS AS="$AS" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"
+ 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"
if [ -x run.$ARCH-$OPSYS ]; then
mv run.$ARCH-$OPSYS "$RUNDIR"
if [ -f runx.$ARCH-$OPSYS ]; then
@@ -349,7 +405,7 @@ else
@@ -367,7 +423,7 @@ else
if [ -f run.$ARCH-$OPSYS.a ]; then
mv run.$ARCH-$OPSYS.a "$RUNDIR"
fi
@ -108,7 +108,7 @@
else
complain "$this: !!! Run-time system build failed for some reason."
fi
@@ -375,7 +431,7 @@ if [ -r "$HEAPDIR"/sml.$HEAP_SUFFIX ]; then
@@ -393,7 +449,7 @@ if [ -r "$HEAPDIR"/sml.$HEAP_SUFFIX ]; then
complain "$this !!! Unable to re-create heap image (sml.$HEAP_SUFFIX)."
fi
else
@ -117,7 +117,7 @@
fish "$ROOT"/"$BOOT_FILES"/smlnj/basis
@@ -410,7 +466,7 @@ else
@@ -428,7 +484,7 @@ else
cd "$ROOT"/"$BOOT_FILES"
for anchor in * ; do
if [ -d $anchor ] ; then
@ -126,7 +126,7 @@
move $anchor "$LIBDIR"/$anchor
fi
done
@@ -433,6 +489,18 @@ installdriver _ml-build ml-build
@@ -451,6 +507,18 @@ installdriver _ml-build ml-build
cd "$ROOT"
@ -145,7 +145,7 @@
#
# Now do all the rest using the precompiled installer
# (see base/system/smlnj/installer for details)
@@ -442,6 +510,12 @@ if [ $nolib = false ] ; then
@@ -460,6 +528,12 @@ if [ $nolib = false ] ; then
export ROOT INSTALLDIR CONFIGDIR BINDIR
CM_TOLERATE_TOOL_FAILURES=true
export CM_TOLERATE_TOOL_FAILURES
@ -158,7 +158,7 @@
if "$BINDIR"/sml -m \$smlnj/installer.cm
then
vsay $this: Installation complete.
@@ -449,5 +523,20 @@ if [ $nolib = false ] ; then
@@ -467,5 +541,20 @@ if [ $nolib = false ] ; then
complain "$this: !!! Installation of libraries and programs failed."
fi
fi

View file

@ -0,0 +1,12 @@
--- config/unpack.orig 2016-08-04 14:38:24 UTC
+++ config/unpack
@@ -291,6 +291,9 @@ do
# cd $ROOT/doc
# build $ROOT
;;
+ asdl)
+ unpack "Abstract Syntax Description Library" "$ROOT" asdl asdl
+ ;;
*)
echo Unknown package: ${i}.
echo Trying default method...

View file

@ -5,6 +5,7 @@ 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
@ -19,6 +20,7 @@ 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
@ -31,6 +33,7 @@ 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
@ -59,6 +62,10 @@ 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
@ -75,6 +82,7 @@ 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
@ -115,7 +123,6 @@ 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
@ -130,7 +137,6 @@ 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
@ -140,7 +146,6 @@ 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
@ -163,7 +168,6 @@ 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