summaryrefslogtreecommitdiff
path: root/lang/sml-nj-devel
diff options
context:
space:
mode:
authorJoseph Koshy <jkoshy@FreeBSD.org>2002-03-26 08:58:34 +0000
committerJoseph Koshy <jkoshy@FreeBSD.org>2002-03-26 08:58:34 +0000
commit58a69e664e3a10afdebdf6d891598832b5dc102e (patch)
treed7912a9e10999a963f3d75f64fae50f6127bb013 /lang/sml-nj-devel
parentUpdate to 0.99c.6 (diff)
Upgrade to v110.39. Compilation of this port is now controlled by three
knobs: - the default compiles the basic runtime, heap, libs, ml-yacc, ml-lex and smlnj-lib - WITH_EVERYTHING installs everything in the distribution, including sources - WITH_RECOMPILE recompiles the compiler, implies WITH_EVERYTHING - WITH_FLINT applies the patch to access FLINT, implies WITH_RECOMPILE Submitted by: Johannes 5 Joemann <joemann@beefree.free.de> (MAINTAINER)
Notes
Notes: svn path=/head/; revision=56690
Diffstat (limited to 'lang/sml-nj-devel')
-rw-r--r--lang/sml-nj-devel/Makefile195
-rw-r--r--lang/sml-nj-devel/distinfo34
-rw-r--r--lang/sml-nj-devel/files/optional-patch-flint-access54
-rw-r--r--lang/sml-nj-devel/files/patch-ab56
-rw-r--r--lang/sml-nj-devel/files/plist-cml12
-rw-r--r--lang/sml-nj-devel/files/plist-eXene4
-rw-r--r--lang/sml-nj-devel/files/plist-everything54
-rw-r--r--lang/sml-nj-devel/files/plist-flint1
-rw-r--r--lang/sml-nj-devel/pkg-plist26
9 files changed, 285 insertions, 151 deletions
diff --git a/lang/sml-nj-devel/Makefile b/lang/sml-nj-devel/Makefile
index 29c5178944d6..0da908e08a50 100644
--- a/lang/sml-nj-devel/Makefile
+++ b/lang/sml-nj-devel/Makefile
@@ -6,34 +6,34 @@
#
PORTNAME= smlnj
-PORTVERSION= 110.37
+PORTVERSION= 110.39
CATEGORIES= lang
MASTER_SITES= ftp://ftp.research.bell-labs.com/dist/smlnj/working/${PORTVERSION}/ \
ftp://flint.cs.yale.edu/pub/smlnj/working/${PORTVERSION}/ \
- ftp://sunsite.doc.ic.ac.uk/computing/programming/languages/ml/smlnj/working/${PORTVERSION}/ \
- ftp://ftp.diku.dk/pub/smlnj/working/${PORTVERSION}/
+ ftp://gd.tuwien.ac.at/languages/smlnj/working/${PORTVERSION}/
DISTFILES= config.tgz runtime.tgz
.if (${MACHINE_ARCH} == "i386")
DISTFILES+= boot.x86-unix.tgz
.elif (${MACHINE_ARCH} == "alpha")
DISTFILES+= boot.alpha32-unix.tgz
.endif
-DISTFILES+= ckit.tgz ml-burg.tgz ml-lex.tgz \
- ml-nlffi-lib.tgz ml-nlffigen.tgz \
- ml-yacc.tgz smlnj-lib.tgz
-.if defined(WITH_CML) || defined(WITH_EXENE)
-DISTFILES+= cml.tgz
-.endif
-.if defined(WITH_EXENE)
-DISTFILES+= eXene.tgz
-.endif
-.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
-DISTFILES+= MLRISC.tgz cm.tgz compiler.tgz system.tgz
+DISTFILES+= ml-yacc.tgz ml-lex.tgz smlnj-lib.tgz
+.if defined(WITH_EVERYTHING) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+DISTFILES+= ml-burg.tgz \
+ ckit.tgz ml-nlffi-lib.tgz ml-nlffigen.tgz \
+ cml.tgz eXene.tgz \
+ MLRISC.tgz cm.tgz compiler.tgz system.tgz
.endif
EXTRACT_ONLY= config.tgz
MAINTAINER= joemann@beefree.free.de
+DIST_SUBDIR= sml-nj/${PORTVERSION}
+NO_WRKSUBDIR= yes
+USE_GMAKE= yes
+
+NO_LATEST_LINK= yes
+
.if (${MACHINE_ARCH} == "i386")
MLARCH= x86
.elif (${MACHINE_ARCH} == "alpha")
@@ -42,61 +42,52 @@ MLARCH= alpha32
BROKEN= not ported to ${MACHINE_ARCH}
.endif
-MLTARGETS= ml-burg ckit ml-nlffi-lib ml-nlffigen
-MLEXE= ml-build ml-makedepend sml ml-yacc ml-lex ml-burg ml-nlffigen
-.if defined(WITH_CML) || defined(WITH_EXENE) || defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+.if defined(WITH_FLINT)
+WITH_RECOMPILE?= ${WITH_FLINT}
+.endif
+.if defined(WITH_RECOMPILE)
+WITH_EVERYTHING?= ${WITH_RECOMPILE}
+.endif
+
+MLROOTRELATIVE= smlnj
+MLROOT= ${PREFIX}/${MLROOTRELATIVE}
+MLBIN= ${MLROOT}/bin
+MLLIB= ${MLROOT}/lib
+MLSRCSBASE= ckit src
+MLSRCSRELATIVE= ${MLROOTRELATIVE}/ckit ${MLROOTRELATIVE}/src
+MLSRCS= ${MLROOT}/ckit ${MLROOT}/src
+MLEXE= sml ml-yacc ml-lex ml-build ml-makedepend
+.if defined(WITH_EVERYTHING)
+MLTARGETS= ml-burg eXene src-smlnj \
+ ml-nlffi-lib ml-nlffigen nowhere pgraph-util
+MLEXE+= ml-burg ml-nlffigen nowhere
PLIST= ${WRKDIR}/.PLIST
-MLPLISTFILES= ${.CURDIR}/pkg-plist
MLSRCPLIST= ${WRKDIR}/.PLIST.src
+MLPLISTFILES= ${.CURDIR}/pkg-plist ${FILESDIR}/plist-everything ${MLSRCPLIST}
+.if defined(WITH_FLINT)
+MLPLISTFILES+= ${FILESDIR}/plist-flint
.endif
-
-.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
-# the pkg-plist for sources is large, so we'll generate it on the fly (during do-install)
-MLPLISTFILES+= ${MLSRCPLIST}
-MLTARGETS+= src-smlnj
-.endif
-.if defined(WITH_CML) || defined(WITH_EXENE)
-MLPLISTFILES+= ${FILESDIR}/plist-cml
-MLTARGETS+= cml cml-lib
-.endif
-.if defined(WITH_EXENE)
-MLPLISTFILES+= ${FILESDIR}/plist-eXene
-MLTARGETS+= eXene
.endif
-# Other mirror sites that generally carry only released versions of SML
-# ftp://rodin.stanford.edu/pub/smlnj/release/
-# ftp://ftp.cl.cam.ac.uk/MIRRORED/smlnj/release/
-# ftp://ftp.ntua.gr/pub/lang/smlnj/release/
-# Mirror sites that keep files around in gzipped format
-# ftp://flint.cs.yale.edu/pub/smlnj/working/110.9.1/
-
-DIST_SUBDIR= sml-nj/${PORTVERSION}
-NO_WRKSUBDIR= yes
-USE_GMAKE= yes
-
-NO_LATEST_LINK= yes
-
pre-fetch:
@${ECHO}
-.if !defined(WITH_EXENE)
-.if !defined(WITH_CML)
- @${ECHO} 'Use make WITH_CML=yes to build CML (Concurrent ML).'
-.endif
- @${ECHO} 'Use make WITH_EXENE=yes to build eXene (X Windows toolkit),'
- @${ECHO} ' this implies WITH_CML.'
+.if !defined(WITH_EVERYTHING)
+ @${ECHO} 'Use make WITH_EVERYTHING=yes to also build ml-burg,'
+ @${ECHO} ' CML (Concurrent ML), eXene (X Windows toolkit),'
+ @${ECHO} ' ml-nlffi (foreign function interface to C code),'
+ @${ECHO} ' nowhere (preprocessor for conditional patterns),'
+ @${ECHO} ' and all the sources.'
.endif
-.if !defined(WITH_FLINT)
.if !defined(WITH_RECOMPILE)
-.if !defined(WITH_SRC)
- @${ECHO} 'Use make WITH_SRC=yes to have the sources installed.'
-.endif
- @${ECHO} 'Use make WITH_RECOMPILE=yes to recompile the compiler,'
- @${ECHO} ' this implies WITH_SRC.'
+ @${ECHO} 'Use make WITH_RECOMPILE=yes to recompile the compiler.'
+ @${ECHO} ' This implies WITH_EVERYTHING.'
.endif
- @${ECHO} 'Use make WITH_FLINT=yes to build sml with the FLINT'
- @${ECHO} ' structures accessible (see http://flint.cs.yale.edu),'
- @${ECHO} ' this implies WITH_RECOMPILE.'
+.if !defined(WITH_FLINT)
+ @${ECHO} 'Use make WITH_FLINT=yes to apply a p''atch w''hich makes'
+ @${ECHO} ' the compiler'"'"'s FLINT structures visible (see'
+ @${ECHO} ' http://flint.cs.yale.edu/flint/publications/tcif.html),'
+ @${ECHO} ' use it with CM.autoload "$$smlnj/viscomp/core_flint.cm";'
+ @${ECHO} ' This implies WITH_RECOMPILE.'
.endif
@${ECHO}
@@ -105,18 +96,19 @@ pre-fetch:
post-extract:
cd ${WRKDIR} && ${LN} -sf ${_DISTDIR}/* .
-# Configuring is done by uncommenting the appropriate #TARGETS="$TARGETS xxx"
-# lines of config/targets
+# Configuring is done by uncommenting the appropriate #request xxx
+# lines of config/targets. Dependency details are handled by
+# config/install.sh using config/dependencies.
+.if defined(WITH_EVERYTHING)
do-configure:
- test -f "${WRKDIR}/config/targets.orig" || \
- ${MV} "${WRKDIR}/config/targets" "${WRKDIR}/config/targets.orig"
${ECHO_CMD} -n > ${WRKDIR}/.tmp.sed
.for t in ${MLTARGETS}
- ${ECHO_CMD} '/^#TARGETS="\$$TARGETS[ ]+${t}"$$/s/#//' >> ${WRKDIR}/.tmp.sed
+ ${ECHO_CMD} '/^#request[ ]+${t}$$/s/^#//' >> ${WRKDIR}/.tmp.sed
.endfor
- ${SED} -E -f ${WRKDIR}/.tmp.sed "${WRKDIR}/config/targets.orig" \
- > "${WRKDIR}/config/targets"
+ ${SED} -E -f ${WRKDIR}/.tmp.sed "${WRKDIR}/config/targets" \
+ > "${WRKDIR}/config/targets.customized"
+.endif
# The build target builds and installs the system within the WRKDIR.
# The src/runtime is not cleaned afterwards to avoid recompilation during
@@ -128,32 +120,45 @@ MLFLINTPATCH= optional-patch-flint-access
.endif
do-build:
+.if defined(WITH_RECOMPILE)
+ ${MV} "${WRKDIR}/config/targets.customized" "${WRKDIR}/config/targets.customized.later"
+ ${SED} -E -e '/^#request[ ]+src-smlnj$$/s/^#//' \
+ "${WRKDIR}/config/targets" > "${WRKDIR}/config/targets.customized"
+.endif
cd ${WRKDIR} && unset PWD && \
FILESDIR="$(FILESDIR)" PATCH="$(PATCH)" PATCH_ARGS="$(PATCH_ARGS)" \
MLNORUNTIMECLEAN=yes ./config/install.sh
.if defined(WITH_FLINT)
- test -f "${WRKDIR}/.patch.${MLFLINTPATCH}" || \
+ ${TEST} -f "${WRKDIR}/.patch.${MLFLINTPATCH}" || \
( cd ${WRKDIR} && \
${PATCH} < "${FILESDIR}/${MLFLINTPATCH}" && \
${TOUCH} "${WRKDIR}/.patch.${MLFLINTPATCH}" )
.endif
-.if defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+.if defined(WITH_RECOMPILE)
cd ${WRKDIR}/src/system && ( \
${ECHO_CMD} 'CM.autoload "$$smlnj/cmb.cm";' ; \
${ECHO_CMD} 'CMB.make ();' ) | \
../../bin/sml && \
./makeml && \
- ./installml &&
+ ${RM} -rf ../../lib && ${MKDIR} ../../lib && \
+ ${FIND} ../../bin/.heap -name '*.${MLARCH}-bsd' \
+ \! -name 'sml.${MLARCH}-bsd' -delete && \
+ ./installml && \
+ ${MV} "${WRKDIR}/config/targets.customized.later" \
+ "${WRKDIR}/config/targets.customized"
+ cd ${WRKDIR} && unset PWD && \
+ FILESDIR="$(FILESDIR)" PATCH="$(PATCH)" PATCH_ARGS="$(PATCH_ARGS)" \
+ MLNORUNTIMECLEAN=yes ./config/install.sh
.endif
# The install target installs the heaps and libraries to their final
-# location in ${PREFIX}/smlnj.
+# location in ${MLBIN} and ${MLLIB}.
# In case of recompilation, installml installs the sml heap and the
-# libraries built during compiler bootstrap to ${PREFIX}/smlnj.
+# libraries built during compiler bootstrap to ${MLBIN} and ${MLLIB}.
-.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+.if defined(WITH_EVERYTHING)
MLNOINSTALL= CM
-.if defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+.if defined(WITH_RECOMPILE)
MLNOINSTALL+= sml.boot.${MLARCH}-unix sml.bin.${MLARCH}-unix
.endif
MLSRCEXCLUDES=
@@ -165,25 +170,41 @@ MLSRCEXCLUDES+= --exclude "${excl}"
PLIST_SUB= MLARCH=${MLARCH}
do-install:
- ${MKDIR} "${PREFIX}/smlnj"
+ ${MKDIR} "${MLROOT}"
+.if defined(WITH_RECOMPILE)
+ ${MV} "${WRKDIR}/config/targets.customized" "${WRKDIR}/config/targets.customized.later"
+ ${ECHO_CMD} -n > "${WRKDIR}/config/targets.customized"
+.endif
cd ${WRKDIR} && unset PWD && \
FILESDIR="$(FILESDIR)" PATCH="$(PATCH)" PATCH_ARGS="$(PATCH_ARGS)" \
- INSTALLDIR="$(PREFIX)/smlnj" ./config/install.sh
-.if defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+ INSTALLDIR="$(MLROOT)" ./config/install.sh
+ MLARCHOPSYS=`$(MLBIN)/.arch-n-opsys` && \
+ ( eval $${MLARCHOPSYS} ; \
+ $(STRIP_CMD) "$(MLBIN)/.run/run.$${ARCH}-$${OPSYS}" )
+.if defined(WITH_RECOMPILE)
cd ${WRKDIR}/src/system && \
- INSTALLROOT="${PREFIX}/smlnj" ./makeml && \
- INSTALLROOT="${PREFIX}/smlnj" ./installml
+ INSTALLROOT="${MLROOT}" ./makeml && \
+ ${RM} -rf "${MLLIB}" && ${MKDIR} "${MLLIB}" && \
+ ${FIND} "${MLBIN}"/.heap -name '*.${MLARCH}-bsd' \
+ \! -name 'sml.${MLARCH}-bsd' -delete && \
+ INSTALLROOT="${MLROOT}" ./installml
+ ${MV} "${WRKDIR}/config/targets.customized.later" \
+ "${WRKDIR}/config/targets.customized"
+ cd ${WRKDIR} && unset PWD && \
+ FILESDIR="$(FILESDIR)" PATCH="$(PATCH)" PATCH_ARGS="$(PATCH_ARGS)" \
+ INSTALLDIR="$(MLROOT)" ./config/install.sh
.endif
-.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+ @${CHOWN} -R ${BINOWN}:${BINGRP} "${MLBIN}" "${MLLIB}"
+.if defined(WITH_EVERYTHING)
cd ${WRKDIR}/src/runtime/objs && ${GMAKE} clean
- @${ECHO} -n 'Installing sources into ${PREFIX}/smlnj ...'
- @cd ${WRKDIR} && tar -cf - ${MLSRCEXCLUDES} ckit src | tar -xf - -C "${PREFIX}/smlnj"
+ @${ECHO} -n 'Installing sources into ${MLROOT} ...'
+ @cd ${WRKDIR} && ${TAR} -cf - ${MLSRCEXCLUDES} ${MLSRCSBASE} | \
+ ${TAR} -xf - -C "${MLROOT}"
+ @${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${MLSRCS}
@${ECHO} ' done.'
- cd "${PREFIX}" && ( find -s -d smlnj/src smlnj/ckit \! -type d ; \
- ( find -s -d smlnj/src smlnj/ckit -type d | ${AWK} '{ printf "@dirrm "; print }' ) \
- ) > ${MLSRCPLIST}
-.endif
-.if defined(WITH_CML) || defined(WITH_EXENE) || defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+ cd "${PREFIX}" && ( ${FIND} -s -d ${MLSRCSRELATIVE} \! -type d ; \
+ ( ${FIND} -s -d ${MLSRCSRELATIVE} -type d | \
+ ${AWK} '{ printf "@dirrm "; print }' ) ) > ${MLSRCPLIST}
${GREP} -h ^[^@] ${MLPLISTFILES} | sort -u > ${PLIST}
${GREP} -h ^@dirrm ${MLPLISTFILES} | sort -r -u >> ${PLIST}
.endif
@@ -191,7 +212,7 @@ do-install:
post-install:
${MKDIR} $(PREFIX)/bin
.for f in $(MLEXE)
- ${LN} -s $(PREFIX)/smlnj/bin/$f $(PREFIX)/bin/$f
+ ${LN} -s $(MLBIN)/$f $(PREFIX)/bin/$f
.endfor
.include <bsd.port.mk>
diff --git a/lang/sml-nj-devel/distinfo b/lang/sml-nj-devel/distinfo
index 2084112b1c54..6f6dc0284a93 100644
--- a/lang/sml-nj-devel/distinfo
+++ b/lang/sml-nj-devel/distinfo
@@ -1,17 +1,17 @@
-MD5 (sml-nj/110.37/MLRISC.tgz) = 708fb660c795a4f3732be4c8726aa5a4
-MD5 (sml-nj/110.37/boot.alpha32-unix.tgz) = 8d8960f1eb3e1edc5d5c438b4671b333
-MD5 (sml-nj/110.37/boot.x86-unix.tgz) = d767917c71d1785be68b27959f14aabb
-MD5 (sml-nj/110.37/ckit.tgz) = c0fa9466d95c55c6566c5ff580dc9c9d
-MD5 (sml-nj/110.37/cm.tgz) = 309de327ad0802ff3f3513eb1aa459d5
-MD5 (sml-nj/110.37/cml.tgz) = db484536beb7c80accca77c1bae444f9
-MD5 (sml-nj/110.37/compiler.tgz) = 367560e3bd57d077812cfaa7fb0e0076
-MD5 (sml-nj/110.37/config.tgz) = 8dde42fd783995df070f132b8c279e1f
-MD5 (sml-nj/110.37/eXene.tgz) = c05d7779343aaf54e8eda13e9c04e3c6
-MD5 (sml-nj/110.37/ml-burg.tgz) = d9351e39bbc38372950a8d8f53d8a2ad
-MD5 (sml-nj/110.37/ml-lex.tgz) = 770c68dbd4927636c6468dfada438e94
-MD5 (sml-nj/110.37/ml-nlffi-lib.tgz) = 7f9f90448a5e3777980c4907096a0c89
-MD5 (sml-nj/110.37/ml-nlffigen.tgz) = ee09b7f56cd8af9829760c85afa91e65
-MD5 (sml-nj/110.37/ml-yacc.tgz) = d8a58f23a8039f8b32c6b6f4fc97c112
-MD5 (sml-nj/110.37/runtime.tgz) = 3f28b17620d344d1c181c165111cb0e0
-MD5 (sml-nj/110.37/smlnj-lib.tgz) = c5d309dd8b99a8e05c04a4ef721db6a5
-MD5 (sml-nj/110.37/system.tgz) = 70074edfeda6d0b59c1da21cf64fa83d
+MD5 (sml-nj/110.39/MLRISC.tgz) = cb74a1c1fc9f5354ad4bf4c02b0915d4
+MD5 (sml-nj/110.39/boot.alpha32-unix.tgz) = cc856cd36ff8920f15004663104d896a
+MD5 (sml-nj/110.39/boot.x86-unix.tgz) = cabe4ed98d581c0f24a83a111e15fef1
+MD5 (sml-nj/110.39/ckit.tgz) = 5e3ba003b78228e8f0d3e945f023c334
+MD5 (sml-nj/110.39/cm.tgz) = 1c06333c1f2359aa39de5d8f2efa85e2
+MD5 (sml-nj/110.39/cml.tgz) = 558e43aeef15fcb024f0a12d5f921088
+MD5 (sml-nj/110.39/compiler.tgz) = 3c4202ec4d4dea3b23d4049ef095d991
+MD5 (sml-nj/110.39/config.tgz) = 132f56f7b2a253761331cd8786dabcc5
+MD5 (sml-nj/110.39/eXene.tgz) = 32c311a842ce0809b2bac8a3523f8bac
+MD5 (sml-nj/110.39/ml-burg.tgz) = b4b4c2d2979c2ce7c0a3f373257b45fa
+MD5 (sml-nj/110.39/ml-lex.tgz) = f1c675afb253325a041480779d5cc7c3
+MD5 (sml-nj/110.39/ml-nlffi-lib.tgz) = 665ce0d2257baa2faf53cf798154686f
+MD5 (sml-nj/110.39/ml-nlffigen.tgz) = 0c279fe7c55dfc2b7efeb54fa8477a66
+MD5 (sml-nj/110.39/ml-yacc.tgz) = b298f537dfb9ccb473bd077131339563
+MD5 (sml-nj/110.39/runtime.tgz) = 3f1e7c63f0cb04a24a3cf6fe053d485f
+MD5 (sml-nj/110.39/smlnj-lib.tgz) = 2ffec46d10e6dd9620c2895d8b59e570
+MD5 (sml-nj/110.39/system.tgz) = af051e0779d11a64dde36fcf25547948
diff --git a/lang/sml-nj-devel/files/optional-patch-flint-access b/lang/sml-nj-devel/files/optional-patch-flint-access
index 6ac420fe7406..3119f7e09729 100644
--- a/lang/sml-nj-devel/files/optional-patch-flint-access
+++ b/lang/sml-nj-devel/files/optional-patch-flint-access
@@ -1,5 +1,27 @@
---- src/compiler/core.cm.orig Fri Aug 24 19:48:52 2001
-+++ src/compiler/core.cm Thu Aug 30 11:51:20 2001
+--- src/cm/cm-lib.cm.orig Fri Feb 8 21:02:55 2002
++++ src/cm/cm-lib.cm Thu Feb 28 02:38:24 2002
+@@ -14,6 +14,8 @@
+ structure Sharing
+ signature TOOLS
+ structure Subst
++ (* required by Backend.Compile.elaborate: *)
++ structure UniquePid
+ is
+ $/basis.cm
+ $/smlnj-lib.cm
+--- src/cm/compile/uniquepid.sml.orig Fri Feb 8 21:02:55 2002
++++ src/cm/compile/uniquepid.sml Thu Feb 28 03:07:33 2002
+@@ -17,7 +17,7 @@
+ type triplet = { staticPid: pid, fingerprint: pid, pepper: string }
+ in
+ structure UniquePid :> sig
+- type info
++ type info = triplet option
+ val reset : unit -> unit
+ val getInfo : GeneralParams.info -> SrcPath.file -> info
+ val uniquepid : info -> pid -> pid * string
+--- src/compiler/core.cm.orig Fri Dec 14 22:01:23 2001
++++ src/compiler/core.cm Thu Feb 28 02:43:48 2002
@@ -81,6 +81,26 @@
signature PICKMOD
signature UNPICKMOD
@@ -27,3 +49,31 @@
is
TopLevel/environ/environ.sig
+--- src/system/smlnj/internal/intsys.cm.orig Thu Sep 13 17:19:18 2001
++++ src/system/smlnj/internal/intsys.cm Thu Feb 28 05:54:57 2002
+@@ -32,7 +32,7 @@
+ $smlnj/init/init.cmi : cm
+
+ $/basis.cm
+- $smlnj/viscomp/core.cm
++ $smlnj/viscomp/core_flint.cm
+
+ (* need access to CM's "init" function *)
+ $smlnj/internal/cm0.cm
+--- src/system/smlnj/viscomp/core_flint.cm.orig Thu Feb 28 03:06:08 2002
++++ src/system/smlnj/viscomp/core_flint.cm Thu Feb 28 03:46:52 2002
+@@ -0,0 +1,14 @@
++(*
++ * Just a quick hack to avoid a cyclic dependency between
++ * cm/cm-lib.cm and compiler/core.cm. This happens because
++ * Compiler.elaborate requires cm's structure UniquePid,
++ * and we need Compiler.elaborate to generate FLINT terms.
++ * -5- 20020228
++ *)
++
++Library
++ library($smlnj/viscomp/core.cm)
++ structure UniquePid
++is
++ $smlnj/viscomp/core.cm
++ $smlnj/internal/cm-lib.cm
diff --git a/lang/sml-nj-devel/files/patch-ab b/lang/sml-nj-devel/files/patch-ab
index fe93cf1d434b..0ea33ef5bdf3 100644
--- a/lang/sml-nj-devel/files/patch-ab
+++ b/lang/sml-nj-devel/files/patch-ab
@@ -1,8 +1,50 @@
---- config/install.sh.orig Wed Jun 20 22:39:12 2001
-+++ config/install.sh Wed Aug 15 19:16:18 2001
-@@ -408,6 +408,28 @@
+--- config/install.sh.orig Fri Feb 15 23:17:39 2002
++++ config/install.sh Wed Feb 20 03:36:14 2002
+@@ -92,6 +92,17 @@
+ return 0
}
++isin() {
++ tested_x=$1
++ shift
++ for set_y in "$@" ; do
++ if [ ${tested_x} = ${set_y} ] ; then
++ return 0
++ fi
++ done
++ return 1
++}
++
+ require() {
+ require_who=$1
+ shift
+@@ -105,8 +116,10 @@
+ }
+
+ onepass() {
+- while read depline ; do
+- require $depline
++ while read depwho depon ; do
++ if isin $depwho ${TARGETS} ; then
++ require $depwho $depon
++ fi
+ done
+ }
+
+@@ -123,9 +136,7 @@
+ #
+ NEWTARGETS=""
+ for t in ${ALLTARGETS} ; do
+- if isnotin $t ${TARGETS} ; then
+- :
+- else
++ if isin $t ${TARGETS} ; then
+ NEWTARGETS="$NEWTARGETS $t"
+ fi
+ done
+@@ -552,6 +563,28 @@
+ ######################################################################
+
#
+# do_patch patch-file
+# apply a patch file
@@ -29,16 +71,16 @@
# create the various sub directories
#
for dir in $BINDIR $HEAPDIR $RUNDIR $LIBDIR $SRCDIR ; do
-@@ -527,7 +549,7 @@
+@@ -668,7 +701,7 @@
$MAKE -f mk.$ARCH-$OPSYS $EXTRA_DEFS
if [ -x run.$ARCH-$OPSYS ]; then
mv run.$ARCH-$OPSYS $RUNDIR
- $MAKE MAKE=$MAKE clean
+ [ "$MLNORUNTIMECLEAN" ] || $MAKE MAKE=$MAKE clean
else
- echo "$this: !!! Run-time system build failed for some reason."
- exit 1
-@@ -594,6 +616,8 @@
+ complain "$this: !!! Run-time system build failed for some reason."
+ fi
+@@ -732,6 +765,8 @@
do
unpack $src $ROOT/src $src $src
done
diff --git a/lang/sml-nj-devel/files/plist-cml b/lang/sml-nj-devel/files/plist-cml
deleted file mode 100644
index 4f6fb60760b1..000000000000
--- a/lang/sml-nj-devel/files/plist-cml
+++ /dev/null
@@ -1,12 +0,0 @@
-smlnj/lib/cml/CM/%%MLARCH%%-unix/basis.cm
-smlnj/lib/cml/CM/%%MLARCH%%-unix/cml-internal.cm
-smlnj/lib/cml/CM/%%MLARCH%%-unix/cml.cm
-smlnj/lib/cml/CM/%%MLARCH%%-unix/core-cml.cm
-smlnj/lib/cml-lib/CM/%%MLARCH%%-unix/smlnj-lib.cm
-smlnj/lib/cml-lib/CM/%%MLARCH%%-unix/trace-cml.cm
-@dirrm smlnj/lib/cml/CM/%%MLARCH%%-unix
-@dirrm smlnj/lib/cml/CM
-@dirrm smlnj/lib/cml
-@dirrm smlnj/lib/cml-lib/CM/%%MLARCH%%-unix
-@dirrm smlnj/lib/cml-lib/CM
-@dirrm smlnj/lib/cml-lib
diff --git a/lang/sml-nj-devel/files/plist-eXene b/lang/sml-nj-devel/files/plist-eXene
deleted file mode 100644
index 3902a0c46ecb..000000000000
--- a/lang/sml-nj-devel/files/plist-eXene
+++ /dev/null
@@ -1,4 +0,0 @@
-smlnj/lib/eXene.cm/CM/%%MLARCH%%-unix/eXene.cm
-@dirrm smlnj/lib/eXene.cm/CM/%%MLARCH%%-unix
-@dirrm smlnj/lib/eXene.cm/CM
-@dirrm smlnj/lib/eXene.cm
diff --git a/lang/sml-nj-devel/files/plist-everything b/lang/sml-nj-devel/files/plist-everything
new file mode 100644
index 000000000000..36f585c7f633
--- /dev/null
+++ b/lang/sml-nj-devel/files/plist-everything
@@ -0,0 +1,54 @@
+bin/ml-burg
+bin/ml-nlffigen
+bin/nowhere
+smlnj/bin/.heap/ml-burg.%%MLARCH%%-bsd
+smlnj/bin/.heap/ml-nlffigen.%%MLARCH%%-bsd
+smlnj/bin/.heap/nowhere.%%MLARCH%%-bsd
+smlnj/bin/ml-burg
+smlnj/bin/ml-nlffigen
+smlnj/bin/nowhere
+smlnj/lib/c-int.cm/CM/%%MLARCH%%-unix/c-int.cm
+smlnj/lib/c.cm/CM/%%MLARCH%%-unix/c.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.cm
+smlnj/lib/cml/CM/%%MLARCH%%-unix/core-cml.cm
+smlnj/lib/cml-lib/CM/%%MLARCH%%-unix/smlnj-lib.cm
+smlnj/lib/cml-lib/CM/%%MLARCH%%-unix/trace-cml.cm
+smlnj/lib/eXene.cm/CM/%%MLARCH%%-unix/eXene.cm
+smlnj/lib/memory.cm/CM/%%MLARCH%%-unix/memory.cm
+smlnj/lib/mlrisc-tools/CM/%%MLARCH%%-unix/match-compiler.cm
+smlnj/lib/mlrisc-tools/CM/%%MLARCH%%-unix/parser.cm
+smlnj/lib/mlrisc-tools/CM/%%MLARCH%%-unix/pp.cm
+smlnj/lib/mlrisc-tools/CM/%%MLARCH%%-unix/prec-parser.cm
+smlnj/lib/mlrisc-tools/CM/%%MLARCH%%-unix/sml-ast.cm
+smlnj/lib/mlrisc-tools/CM/%%MLARCH%%-unix/source-map.cm
+smlnj/lib/pgraph-util.cm/CM/%%MLARCH%%-unix/pgraph-util.cm
+@dirrm smlnj/lib/cml/CM/%%MLARCH%%-unix
+@dirrm smlnj/lib/cml/CM
+@dirrm smlnj/lib/cml
+@dirrm smlnj/lib/cml-lib/CM/%%MLARCH%%-unix
+@dirrm smlnj/lib/cml-lib/CM
+@dirrm smlnj/lib/cml-lib
+@dirrm smlnj/lib/eXene.cm/CM/%%MLARCH%%-unix
+@dirrm smlnj/lib/eXene.cm/CM
+@dirrm smlnj/lib/eXene.cm
+@dirrm smlnj/lib/c-int.cm/CM/%%MLARCH%%-unix
+@dirrm smlnj/lib/c-int.cm/CM
+@dirrm smlnj/lib/c-int.cm
+@dirrm smlnj/lib/c.cm/CM/%%MLARCH%%-unix
+@dirrm smlnj/lib/c.cm/CM
+@dirrm smlnj/lib/c.cm
+@dirrm smlnj/lib/ckit-lib.cm/CM/%%MLARCH%%-unix
+@dirrm smlnj/lib/ckit-lib.cm/CM
+@dirrm smlnj/lib/ckit-lib.cm
+@dirrm smlnj/lib/memory.cm/CM/%%MLARCH%%-unix
+@dirrm smlnj/lib/memory.cm/CM
+@dirrm smlnj/lib/memory.cm
+@dirrm smlnj/lib/mlrisc-tools/CM/%%MLARCH%%-unix
+@dirrm smlnj/lib/mlrisc-tools/CM
+@dirrm smlnj/lib/mlrisc-tools
+@dirrm smlnj/lib/pgraph-util.cm/CM/%%MLARCH%%-unix
+@dirrm smlnj/lib/pgraph-util.cm/CM
+@dirrm smlnj/lib/pgraph-util.cm
diff --git a/lang/sml-nj-devel/files/plist-flint b/lang/sml-nj-devel/files/plist-flint
new file mode 100644
index 000000000000..6081641f6be7
--- /dev/null
+++ b/lang/sml-nj-devel/files/plist-flint
@@ -0,0 +1 @@
+smlnj/lib/smlnj/viscomp/CM/%%MLARCH%%-unix/core_flint.cm
diff --git a/lang/sml-nj-devel/pkg-plist b/lang/sml-nj-devel/pkg-plist
index 0e87683ce244..519a5ecbbd0b 100644
--- a/lang/sml-nj-devel/pkg-plist
+++ b/lang/sml-nj-devel/pkg-plist
@@ -1,24 +1,18 @@
bin/ml-build
-bin/ml-burg
bin/ml-lex
bin/ml-makedepend
-bin/ml-nlffigen
bin/ml-yacc
bin/sml
smlnj/bin/.arch-n-opsys
-smlnj/bin/.heap/ml-burg.%%MLARCH%%-bsd
smlnj/bin/.heap/ml-lex.%%MLARCH%%-bsd
-smlnj/bin/.heap/ml-nlffigen.%%MLARCH%%-bsd
smlnj/bin/.heap/ml-yacc.%%MLARCH%%-bsd
smlnj/bin/.heap/sml.%%MLARCH%%-bsd
smlnj/bin/.link-sml
smlnj/bin/.run/run.%%MLARCH%%-freebsd
smlnj/bin/.run-sml
smlnj/bin/ml-build
-smlnj/bin/ml-burg
smlnj/bin/ml-lex
smlnj/bin/ml-makedepend
-smlnj/bin/ml-nlffigen
smlnj/bin/ml-yacc
smlnj/bin/sml
smlnj/lib/SMLNJ-MLRISC/CM/%%MLARCH%%-unix/ALPHA.cm
@@ -34,16 +28,13 @@ smlnj/lib/SMLNJ-MLRISC/CM/%%MLARCH%%-unix/SPARC.cm
smlnj/lib/SMLNJ-MLRISC/CM/%%MLARCH%%-unix/Visual.cm
smlnj/lib/basis.cm/CM/%%MLARCH%%-unix/basis.cm
smlnj/lib/burg-ext.cm/CM/%%MLARCH%%-unix/burg-ext.cm
-smlnj/lib/c-int.cm/CM/%%MLARCH%%-unix/c-int.cm
-smlnj/lib/c.cm/CM/%%MLARCH%%-unix/c.cm
-smlnj/lib/ckit-lib.cm/CM/%%MLARCH%%-unix/ckit-lib.cm
smlnj/lib/dir-tool.cm/CM/%%MLARCH%%-unix/dir-tool.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/inet-lib.cm/CM/%%MLARCH%%-unix/inet-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/memory.cm/CM/%%MLARCH%%-unix/memory.cm
smlnj/lib/ml-yacc-lib.cm/CM/%%MLARCH%%-unix/ml-yacc-lib.cm
smlnj/lib/mlburg-tool.cm/CM/%%MLARCH%%-unix/mlburg-tool.cm
smlnj/lib/mllex-tool.cm/CM/%%MLARCH%%-unix/mllex-tool.cm
@@ -122,21 +113,15 @@ smlnj/lib/unix-lib.cm/CM/%%MLARCH%%-unix/unix-lib.cm
@dirrm smlnj/lib/burg-ext.cm/CM/%%MLARCH%%-unix
@dirrm smlnj/lib/burg-ext.cm/CM
@dirrm smlnj/lib/burg-ext.cm
-@dirrm smlnj/lib/c-int.cm/CM/%%MLARCH%%-unix
-@dirrm smlnj/lib/c-int.cm/CM
-@dirrm smlnj/lib/c-int.cm
-@dirrm smlnj/lib/c.cm/CM/%%MLARCH%%-unix
-@dirrm smlnj/lib/c.cm/CM
-@dirrm smlnj/lib/c.cm
-@dirrm smlnj/lib/ckit-lib.cm/CM/%%MLARCH%%-unix
-@dirrm smlnj/lib/ckit-lib.cm/CM
-@dirrm smlnj/lib/ckit-lib.cm
@dirrm smlnj/lib/dir-tool.cm/CM/%%MLARCH%%-unix
@dirrm smlnj/lib/dir-tool.cm/CM
@dirrm smlnj/lib/dir-tool.cm
@dirrm smlnj/lib/grm-ext.cm/CM/%%MLARCH%%-unix
@dirrm smlnj/lib/grm-ext.cm/CM
@dirrm smlnj/lib/grm-ext.cm
+@dirrm smlnj/lib/hash-cons-lib.cm/CM/%%MLARCH%%-unix
+@dirrm smlnj/lib/hash-cons-lib.cm/CM
+@dirrm smlnj/lib/hash-cons-lib.cm
@dirrm smlnj/lib/html-lib.cm/CM/%%MLARCH%%-unix
@dirrm smlnj/lib/html-lib.cm/CM
@dirrm smlnj/lib/html-lib.cm
@@ -149,9 +134,6 @@ smlnj/lib/unix-lib.cm/CM/%%MLARCH%%-unix/unix-lib.cm
@dirrm smlnj/lib/make-tool.cm/CM/%%MLARCH%%-unix
@dirrm smlnj/lib/make-tool.cm/CM
@dirrm smlnj/lib/make-tool.cm
-@dirrm smlnj/lib/memory.cm/CM/%%MLARCH%%-unix
-@dirrm smlnj/lib/memory.cm/CM
-@dirrm smlnj/lib/memory.cm
@dirrm smlnj/lib/ml-yacc-lib.cm/CM/%%MLARCH%%-unix
@dirrm smlnj/lib/ml-yacc-lib.cm/CM
@dirrm smlnj/lib/ml-yacc-lib.cm