summaryrefslogtreecommitdiff
path: root/lang/smlnj
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2003-03-21 22:20:55 +0000
committerwiz <wiz@pkgsrc.org>2003-03-21 22:20:55 +0000
commita0bce01167f6ff06124aad1942a7e178bc0599cd (patch)
treec635fb01d552dc75336b0a9fb06be18ada50bed6 /lang/smlnj
parent20b6250d452ffe8b761efe4085e5e15731627225 (diff)
downloadpkgsrc-a0bce01167f6ff06124aad1942a7e178bc0599cd.tar.gz
Reimport sml-nj as smlnj, which is the name commonly used by the community.
Suggested by Christopher Richards in connection with PR 18678.
Diffstat (limited to 'lang/smlnj')
-rw-r--r--lang/smlnj/DESCR6
-rw-r--r--lang/smlnj/Makefile109
-rw-r--r--lang/smlnj/PLIST264
-rw-r--r--lang/smlnj/distinfo42
-rw-r--r--lang/smlnj/patches/patch-aa85
-rw-r--r--lang/smlnj/patches/patch-ac13
-rw-r--r--lang/smlnj/patches/patch-ad16
-rw-r--r--lang/smlnj/patches/patch-ae187
-rw-r--r--lang/smlnj/patches/patch-af13
-rw-r--r--lang/smlnj/patches/patch-ag29
10 files changed, 764 insertions, 0 deletions
diff --git a/lang/smlnj/DESCR b/lang/smlnj/DESCR
new file mode 100644
index 00000000000..8db8aad709b
--- /dev/null
+++ b/lang/smlnj/DESCR
@@ -0,0 +1,6 @@
+A Standard ML implementation from Bell-Labs. Implements the SML '97
+definition including the new Basis library with a few minor omissions
+and discrepancies.
+
+If you are interested in a lighter weight implementation of ML, the
+Moscow-ML port is recommended.
diff --git a/lang/smlnj/Makefile b/lang/smlnj/Makefile
new file mode 100644
index 00000000000..393b1f5ec6c
--- /dev/null
+++ b/lang/smlnj/Makefile
@@ -0,0 +1,109 @@
+# $NetBSD: Makefile,v 1.1.1.1 2003/03/21 22:20:55 wiz Exp $
+#
+
+DISTNAME= boot.${BOX}-unix
+PKGNAME= smlnj-${SML_VERSION}
+CATEGORIES= lang
+MASTER_SITES= ftp://ftp.research.bell-labs.com/dist/smlnj/working/${SML_VERSION}/ \
+ ftp://flint.cs.yale.edu/pub/smlnj/working/${SML_VERSION}/
+DISTFILES= MLRISC.tgz \
+ boot.${BOX}-unix.tgz \
+ ckit.tgz \
+ cm.tgz \
+ cml.tgz \
+ compiler.tgz \
+ config.tgz \
+ eXene.tgz \
+ ml-burg.tgz \
+ ml-lex.tgz \
+ ml-nlffi-lib.tgz \
+ ml-nlffigen.tgz \
+ ml-yacc.tgz \
+ runtime.tgz \
+ smlnj-lib.tgz \
+ system.tgz
+
+MAINTAINER= packages@netbsd.org
+HOMEPAGE= http://cm.bell-labs.com/cm/cs/what/smlnj/index.html
+COMMENT= Popular functional language from Bell Labs
+
+SML_VERSION= 110.41
+
+# smlnj also supports hppa, sparc, ppc, mlrisc & alpha
+# pkg support for those platforms, and say, solaris-x86
+# is left as an (easy) exercise for the reader.
+ONLY_FOR_PLATFORM= NetBSD-*-i386 SunOS-*-sparc NetBSD-*-sparc
+
+# 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/
+
+DIST_SUBDIR= sml-nj-${SML_VERSION}
+WRKSRC= ${WRKDIR}
+USE_GMAKE= yes
+
+# previous versions of the package had an additional '-'
+CONFLICTS= sml-nj-[0-9]*
+
+SML_BASE= ${PREFIX}/lib/smlnj
+SML_LIBDIR= ${SML_BASE}/lib
+SML_BINDIR= ${SML_BASE}/bin
+
+.include "../../mk/bsd.prefs.mk"
+
+.if ${OPSYS} == "SunOS" && ${MACHINE_ARCH} == "sparc"
+BOX= sparc
+OS= ${LOWER_OPSYS}
+.elif ${OPSYS} == "NetBSD" && ${MACHINE_ARCH} == "i386"
+BOX= x86
+OS= bsd
+.elif ${OPSYS} == "NetBSD" && ${MACHINE_ARCH} == "sparc"
+BOX= sparc
+OS= bsd
+.endif
+
+PLIST_SUBST+= BOX=${BOX} OS=${OS}
+
+# create parent directory for the runtime system
+pre-extract:
+ ${MKDIR} ${WRKDIR}/src || ${TRUE}
+
+# make it easier to patch the runtime system
+do-extract:
+ ${_PKG_SILENT}${_PKG_DEBUG} \
+ extract_file="${_DISTDIR}/config.tgz"; export extract_file; \
+ cd ${WRKDIR}; ${EXTRACT_CMD}
+ ${_PKG_SILENT}${_PKG_DEBUG} \
+ extract_file="${_DISTDIR}/runtime.tgz"; export extract_file; \
+ cd ${WRKDIR}/src; ${EXTRACT_CMD}
+
+# make symlinks to the dist files
+post-extract:
+ cd ${WRKDIR} && ${LN} -sf ${_DISTDIR}/* .
+
+# The build target needs to run $WRKDIR/config/install.sh
+do-build:
+ cd ${WRKDIR} && unset PWD && \
+ FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \
+ ./config/install.sh
+
+# install target
+# (see ftp://ftp.research.bell-labs.com/dist/smlnj/working/110.38/INSTALL)
+# 1. create installation directories
+# 2. copy the ./bin and ./lib directories across
+# 3. edit scripts to override BIN_DIR and CM_PATHCONFIG
+# 4. install links to executables in $PREFIX/bin
+do-install:
+ ${INSTALL_DATA_DIR} ${SML_BASE}
+ (cd ${WRKDIR} && ${PAX} -rw -pam bin lib ${SML_BASE})
+.for script in .link-sml .run-sml ml-build ml-makedepend
+ ${RM} -f ${SML_BINDIR}/${script}
+ ${SED} -e "s,^BIN_DIR=.*\$$,BIN_DIR=${SML_BINDIR}," \
+ -e "s,^exec,CM_PATHCONFIG=${SML_LIBDIR}/pathconfig exec," \
+ ${WRKDIR}/bin/${script} > ${SML_BINDIR}/${script}
+ ${CHMOD} ${BINMODE} ${SML_BINDIR}/${script}
+.endfor
+ (cd ${PREFIX}/bin && ${LN} -sf ${SML_BINDIR}/* .)
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/lang/smlnj/PLIST b/lang/smlnj/PLIST
new file mode 100644
index 00000000000..c4a868cce78
--- /dev/null
+++ b/lang/smlnj/PLIST
@@ -0,0 +1,264 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2003/03/21 22:20:56 wiz Exp $
+bin/ml-build
+bin/ml-burg
+bin/ml-lex
+bin/ml-makedepend
+bin/ml-nlffigen
+bin/ml-yacc
+bin/nowhere
+bin/sml
+lib/smlnj/bin/.arch-n-opsys
+lib/smlnj/bin/.heap/ml-burg.${BOX}-${OS}
+lib/smlnj/bin/.heap/ml-lex.${BOX}-${OS}
+lib/smlnj/bin/.heap/ml-nlffigen.${BOX}-${OS}
+lib/smlnj/bin/.heap/ml-yacc.${BOX}-${OS}
+lib/smlnj/bin/.heap/nowhere.${BOX}-${OS}
+lib/smlnj/bin/.heap/sml.${BOX}-${OS}
+lib/smlnj/bin/.link-sml
+lib/smlnj/bin/.run-sml
+lib/smlnj/bin/.run/run.${BOX}-${LOWER_OPSYS}
+lib/smlnj/bin/ml-build
+lib/smlnj/bin/ml-burg
+lib/smlnj/bin/ml-lex
+lib/smlnj/bin/ml-makedepend
+lib/smlnj/bin/ml-nlffigen
+lib/smlnj/bin/ml-yacc
+lib/smlnj/bin/nowhere
+lib/smlnj/bin/sml
+lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/ALPHA.cm
+lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/Control.cm
+lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/Graphs.cm
+lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/HPPA.cm
+lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/IA32.cm
+lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/Lib.cm
+lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/MLRISC.cm
+lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/MLTREE.cm
+lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/PPC.cm
+lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/SPARC.cm
+lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/Visual.cm
+lib/smlnj/lib/basis.cm/CM/${BOX}-unix/basis.cm
+lib/smlnj/lib/burg-ext.cm/CM/${BOX}-unix/burg-ext.cm
+lib/smlnj/lib/c/CM/${BOX}-unix/c.cm
+lib/smlnj/lib/c/internals/CM/${BOX}-unix/c-int.cm
+lib/smlnj/lib/c/memory/CM/${BOX}-unix/memory.cm
+lib/smlnj/lib/ckit-lib.cm/CM/${BOX}-unix/ckit-lib.cm
+lib/smlnj/lib/cml-lib/CM/${BOX}-unix/smlnj-lib.cm
+lib/smlnj/lib/cml-lib/CM/${BOX}-unix/trace-cml.cm
+lib/smlnj/lib/cml/CM/${BOX}-unix/basis.cm
+lib/smlnj/lib/cml/CM/${BOX}-unix/cml-internal.cm
+lib/smlnj/lib/cml/CM/${BOX}-unix/cml.cm
+lib/smlnj/lib/cml/CM/${BOX}-unix/core-cml.cm
+lib/smlnj/lib/controls-lib.cm/CM/${BOX}-unix/controls-lib.cm
+lib/smlnj/lib/dir-tool.cm/CM/${BOX}-unix/dir-tool.cm
+lib/smlnj/lib/eXene.cm/CM/${BOX}-unix/eXene.cm
+lib/smlnj/lib/grm-ext.cm/CM/${BOX}-unix/grm-ext.cm
+lib/smlnj/lib/hash-cons-lib.cm/CM/${BOX}-unix/hash-cons-lib.cm
+lib/smlnj/lib/html-lib.cm/CM/${BOX}-unix/html-lib.cm
+lib/smlnj/lib/inet-lib.cm/CM/${BOX}-unix/inet-lib.cm
+lib/smlnj/lib/lex-ext.cm/CM/${BOX}-unix/lex-ext.cm
+lib/smlnj/lib/make-tool.cm/CM/${BOX}-unix/make-tool.cm
+lib/smlnj/lib/ml-yacc-lib.cm/CM/${BOX}-unix/ml-yacc-lib.cm
+lib/smlnj/lib/mlburg-tool.cm/CM/${BOX}-unix/mlburg-tool.cm
+lib/smlnj/lib/mllex-tool.cm/CM/${BOX}-unix/mllex-tool.cm
+lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix/match-compiler.cm
+lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix/parser.cm
+lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix/pp.cm
+lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix/prec-parser.cm
+lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix/sml-ast.cm
+lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix/source-map.cm
+lib/smlnj/lib/mlyacc-tool.cm/CM/${BOX}-unix/mlyacc-tool.cm
+lib/smlnj/lib/noweb-tool.cm/CM/${BOX}-unix/noweb-tool.cm
+lib/smlnj/lib/nw-ext.cm/CM/${BOX}-unix/nw-ext.cm
+lib/smlnj/lib/pathconfig
+lib/smlnj/lib/pgraph-util.cm/CM/${BOX}-unix/pgraph-util.cm
+lib/smlnj/lib/pgraph.cm/CM/${BOX}-unix/pgraph.cm
+lib/smlnj/lib/pickle-lib.cm/CM/${BOX}-unix/pickle-lib.cm
+lib/smlnj/lib/pp-lib.cm/CM/${BOX}-unix/pp-lib.cm
+lib/smlnj/lib/reactive-lib.cm/CM/${BOX}-unix/reactive-lib.cm
+lib/smlnj/lib/regexp-lib.cm/CM/${BOX}-unix/regexp-lib.cm
+lib/smlnj/lib/shell-tool.cm/CM/${BOX}-unix/shell-tool.cm
+lib/smlnj/lib/smlnj-lib.cm/CM/${BOX}-unix/smlnj-lib.cm
+lib/smlnj/lib/smlnj/CM/${BOX}-unix/cm.cm
+lib/smlnj/lib/smlnj/CM/${BOX}-unix/cmb.cm
+lib/smlnj/lib/smlnj/CM/${BOX}-unix/compiler.cm
+lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/ALPHA.cm
+lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/Control.cm
+lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/Graphs.cm
+lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/HPPA.cm
+lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/IA32.cm
+lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/Lib.cm
+lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/MLRISC.cm
+lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/MLTREE.cm
+lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/PPC.cm
+lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/SPARC.cm
+lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/Visual.cm
+lib/smlnj/lib/smlnj/cm/CM/${BOX}-unix/cm.cm
+lib/smlnj/lib/smlnj/cm/CM/${BOX}-unix/tools.cm
+lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/alpha32-unix.cm
+lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/current.cm
+lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/hppa-unix.cm
+lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/ppc-macos.cm
+lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/ppc-unix.cm
+lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/sparc-unix.cm
+lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/x86-unix.cm
+lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/x86-win32.cm
+lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/all.cm
+lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/alpha32.cm
+lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/compiler.cm
+lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/current.cm
+lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/hppa.cm
+lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/minimal-only.cm
+lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/minimal.cm
+lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/ppc.cm
+lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/sparc.cm
+lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/x86.cm
+lib/smlnj/lib/smlnj/init/CM/${BOX}-unix/init.cmi
+lib/smlnj/lib/smlnj/internal/CM/${BOX}-unix/cm-lib.cm
+lib/smlnj/lib/smlnj/internal/CM/${BOX}-unix/cm-sig-lib.cm
+lib/smlnj/lib/smlnj/internal/CM/${BOX}-unix/cm0.cm
+lib/smlnj/lib/smlnj/internal/CM/${BOX}-unix/intsys.cm
+lib/smlnj/lib/smlnj/internal/CM/${BOX}-unix/srcpath-lib.cm
+lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/alpha32.cm
+lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/basics.cm
+lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/core.cm
+lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/debugprof.cm
+lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/elabdata.cm
+lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/elaborate.cm
+lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/execute.cm
+lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/hppa.cm
+lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/parser.cm
+lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/ppc.cm
+lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/sparc.cm
+lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/x86.cm
+lib/smlnj/lib/unix-lib.cm/CM/${BOX}-unix/unix-lib.cm
+@dirrm lib/smlnj/lib/unix-lib.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/unix-lib.cm/CM
+@dirrm lib/smlnj/lib/unix-lib.cm
+@dirrm lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/smlnj/viscomp/CM
+@dirrm lib/smlnj/lib/smlnj/viscomp
+@dirrm lib/smlnj/lib/smlnj/internal/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/smlnj/internal/CM
+@dirrm lib/smlnj/lib/smlnj/internal
+@dirrm lib/smlnj/lib/smlnj/init/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/smlnj/init/CM
+@dirrm lib/smlnj/lib/smlnj/init
+@dirrm lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/smlnj/compiler/CM
+@dirrm lib/smlnj/lib/smlnj/compiler
+@dirrm lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/smlnj/cmb/CM
+@dirrm lib/smlnj/lib/smlnj/cmb
+@dirrm lib/smlnj/lib/smlnj/cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/smlnj/cm/CM
+@dirrm lib/smlnj/lib/smlnj/cm
+@dirrm lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/smlnj/MLRISC/CM
+@dirrm lib/smlnj/lib/smlnj/MLRISC
+@dirrm lib/smlnj/lib/smlnj/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/smlnj/CM
+@dirrm lib/smlnj/lib/smlnj-lib.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/smlnj-lib.cm/CM
+@dirrm lib/smlnj/lib/smlnj-lib.cm
+@dirrm lib/smlnj/lib/smlnj
+@dirrm lib/smlnj/lib/shell-tool.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/shell-tool.cm/CM
+@dirrm lib/smlnj/lib/shell-tool.cm
+@dirrm lib/smlnj/lib/regexp-lib.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/regexp-lib.cm/CM
+@dirrm lib/smlnj/lib/regexp-lib.cm
+@dirrm lib/smlnj/lib/reactive-lib.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/reactive-lib.cm/CM
+@dirrm lib/smlnj/lib/reactive-lib.cm
+@dirrm lib/smlnj/lib/pp-lib.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/pp-lib.cm/CM
+@dirrm lib/smlnj/lib/pp-lib.cm
+@dirrm lib/smlnj/lib/pickle-lib.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/pickle-lib.cm/CM
+@dirrm lib/smlnj/lib/pickle-lib.cm
+@dirrm lib/smlnj/lib/pgraph.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/pgraph.cm/CM
+@dirrm lib/smlnj/lib/pgraph.cm
+@dirrm lib/smlnj/lib/pgraph-util.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/pgraph-util.cm/CM
+@dirrm lib/smlnj/lib/pgraph-util.cm
+@dirrm lib/smlnj/lib/nw-ext.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/nw-ext.cm/CM
+@dirrm lib/smlnj/lib/nw-ext.cm
+@dirrm lib/smlnj/lib/noweb-tool.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/noweb-tool.cm/CM
+@dirrm lib/smlnj/lib/noweb-tool.cm
+@dirrm lib/smlnj/lib/mlyacc-tool.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/mlyacc-tool.cm/CM
+@dirrm lib/smlnj/lib/mlyacc-tool.cm
+@dirrm lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/mlrisc-tools/CM
+@dirrm lib/smlnj/lib/mlrisc-tools
+@dirrm lib/smlnj/lib/mllex-tool.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/mllex-tool.cm/CM
+@dirrm lib/smlnj/lib/mllex-tool.cm
+@dirrm lib/smlnj/lib/mlburg-tool.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/mlburg-tool.cm/CM
+@dirrm lib/smlnj/lib/mlburg-tool.cm
+@dirrm lib/smlnj/lib/ml-yacc-lib.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/ml-yacc-lib.cm/CM
+@dirrm lib/smlnj/lib/ml-yacc-lib.cm
+@dirrm lib/smlnj/lib/make-tool.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/make-tool.cm/CM
+@dirrm lib/smlnj/lib/make-tool.cm
+@dirrm lib/smlnj/lib/lex-ext.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/lex-ext.cm/CM
+@dirrm lib/smlnj/lib/lex-ext.cm
+@dirrm lib/smlnj/lib/inet-lib.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/inet-lib.cm/CM
+@dirrm lib/smlnj/lib/inet-lib.cm
+@dirrm lib/smlnj/lib/html-lib.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/html-lib.cm/CM
+@dirrm lib/smlnj/lib/html-lib.cm
+@dirrm lib/smlnj/lib/hash-cons-lib.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/hash-cons-lib.cm/CM
+@dirrm lib/smlnj/lib/hash-cons-lib.cm
+@dirrm lib/smlnj/lib/grm-ext.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/grm-ext.cm/CM
+@dirrm lib/smlnj/lib/grm-ext.cm
+@dirrm lib/smlnj/lib/eXene.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/eXene.cm/CM
+@dirrm lib/smlnj/lib/eXene.cm
+@dirrm lib/smlnj/lib/dir-tool.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/dir-tool.cm/CM
+@dirrm lib/smlnj/lib/dir-tool.cm
+@dirrm lib/smlnj/lib/controls-lib.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/controls-lib.cm/CM
+@dirrm lib/smlnj/lib/controls-lib.cm
+@dirrm lib/smlnj/lib/cml/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/cml/CM
+@dirrm lib/smlnj/lib/cml-lib/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/cml-lib/CM
+@dirrm lib/smlnj/lib/cml-lib
+@dirrm lib/smlnj/lib/cml
+@dirrm lib/smlnj/lib/ckit-lib.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/ckit-lib.cm/CM
+@dirrm lib/smlnj/lib/ckit-lib.cm
+@dirrm lib/smlnj/lib/c/memory/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/c/memory/CM
+@dirrm lib/smlnj/lib/c/memory
+@dirrm lib/smlnj/lib/c/internals/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/c/internals/CM
+@dirrm lib/smlnj/lib/c/internals
+@dirrm lib/smlnj/lib/c/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/c/CM
+@dirrm lib/smlnj/lib/c
+@dirrm lib/smlnj/lib/burg-ext.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/burg-ext.cm/CM
+@dirrm lib/smlnj/lib/burg-ext.cm
+@dirrm lib/smlnj/lib/basis.cm/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/basis.cm/CM
+@dirrm lib/smlnj/lib/basis.cm
+@dirrm lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix
+@dirrm lib/smlnj/lib/SMLNJ-MLRISC/CM
+@dirrm lib/smlnj/lib/SMLNJ-MLRISC
+@dirrm lib/smlnj/lib
+@dirrm lib/smlnj/bin/.run
+@dirrm lib/smlnj/bin/.heap
+@dirrm lib/smlnj/bin
+@dirrm lib/smlnj
diff --git a/lang/smlnj/distinfo b/lang/smlnj/distinfo
new file mode 100644
index 00000000000..16f975ac5cc
--- /dev/null
+++ b/lang/smlnj/distinfo
@@ -0,0 +1,42 @@
+$NetBSD: distinfo,v 1.1.1.1 2003/03/21 22:20:55 wiz Exp $
+
+SHA1 (sml-nj-110.41/MLRISC.tgz) = 7cb136457ceca0365619df974112344e1d7d3788
+Size (sml-nj-110.41/MLRISC.tgz) = 1170598 bytes
+SHA1 (sml-nj-110.41/boot.x86-unix.tgz) = 03807189ee8d591062a8c0ce9cbb065af4568653
+Size (sml-nj-110.41/boot.x86-unix.tgz) = 5072569 bytes
+SHA1 (sml-nj-110.41/boot.sparc-unix.tgz) = 0a353b1274f76b8f8f96262d43ceef0d80019460
+Size (sml-nj-110.41/boot.sparc-unix.tgz) = 5213967 bytes
+SHA1 (sml-nj-110.41/ckit.tgz) = bacd7cc348860eb3e8f6f7d9a770adb29fc50580
+Size (sml-nj-110.41/ckit.tgz) = 168118 bytes
+SHA1 (sml-nj-110.41/cm.tgz) = 25d2848798a25519f0154326e86d4cb0bb46c8bf
+Size (sml-nj-110.41/cm.tgz) = 201685 bytes
+SHA1 (sml-nj-110.41/cml.tgz) = 04b1e8cfd73291c353080ded420c2ac6ae9831cd
+Size (sml-nj-110.41/cml.tgz) = 127079 bytes
+SHA1 (sml-nj-110.41/compiler.tgz) = 1cef17d18d7763fea5431893dbf5981c5001c750
+Size (sml-nj-110.41/compiler.tgz) = 703537 bytes
+SHA1 (sml-nj-110.41/config.tgz) = a05d2c98ea4e7fa9650af5817a4fa4e02c38fe8d
+Size (sml-nj-110.41/config.tgz) = 13413 bytes
+SHA1 (sml-nj-110.41/eXene.tgz) = c89eecbeddd7f772ac1b327405690c8694e1e738
+Size (sml-nj-110.41/eXene.tgz) = 693018 bytes
+SHA1 (sml-nj-110.41/ml-burg.tgz) = 9fe9f305bd18b7c5c9f8a9952d81a310b64be48f
+Size (sml-nj-110.41/ml-burg.tgz) = 31719 bytes
+SHA1 (sml-nj-110.41/ml-lex.tgz) = 3008bd1bdd7ca2cfae19ca70b5123a8e84465b82
+Size (sml-nj-110.41/ml-lex.tgz) = 32010 bytes
+SHA1 (sml-nj-110.41/ml-nlffi-lib.tgz) = 48c39a8e27e7de6b0b48dbdea84001baadedeafd
+Size (sml-nj-110.41/ml-nlffi-lib.tgz) = 33913 bytes
+SHA1 (sml-nj-110.41/ml-nlffigen.tgz) = 0e9ce4f4c49f7dd37f1d2adc0bc5d61a21fc1418
+Size (sml-nj-110.41/ml-nlffigen.tgz) = 28800 bytes
+SHA1 (sml-nj-110.41/ml-yacc.tgz) = 29e03b707ca539d20385d220e3752d0e002f6ee5
+Size (sml-nj-110.41/ml-yacc.tgz) = 95493 bytes
+SHA1 (sml-nj-110.41/runtime.tgz) = 8060d52c55db7961fb7a7c3c5b347082ebfab7e2
+Size (sml-nj-110.41/runtime.tgz) = 311920 bytes
+SHA1 (sml-nj-110.41/smlnj-lib.tgz) = c7db78fa45fac689bb2e2e472d2bc5394f63d0ce
+Size (sml-nj-110.41/smlnj-lib.tgz) = 250010 bytes
+SHA1 (sml-nj-110.41/system.tgz) = fa69034cd2b06a052609280c8523a08a41c2770b
+Size (sml-nj-110.41/system.tgz) = 177127 bytes
+SHA1 (patch-aa) = 21e488442554b0970e11d4bdcc19639d3579e962
+SHA1 (patch-ac) = b010b0fd5b923ed954023a72dc763e20f8f1b213
+SHA1 (patch-ad) = c05aa7e345ca4827efb1b8de99dee9fb17e1770e
+SHA1 (patch-ae) = 5796401418fd91a795fdfe75060cf654dd315ac1
+SHA1 (patch-af) = 7bb089fbfc11e62f0a78d6cf48b6f0d855a462d8
+SHA1 (patch-ag) = c8a98f30e07ceb6ae3df42b3e5db11d97e1a1f5b
diff --git a/lang/smlnj/patches/patch-aa b/lang/smlnj/patches/patch-aa
new file mode 100644
index 00000000000..bb747d47cf7
--- /dev/null
+++ b/lang/smlnj/patches/patch-aa
@@ -0,0 +1,85 @@
+$NetBSD: patch-aa,v 1.1.1.1 2003/03/21 22:20:56 wiz Exp $
+
+--- config/targets.orig Fri Feb 22 21:42:15 2002
++++ config/targets
+@@ -41,7 +41,7 @@ request ml-lex
+
+ # build ML-Burg
+ #
+-#request ml-burg
++request ml-burg
+
+ # pre-compile and install the remaining components of the SML/NJ library
+ # (everything except smlnj-lib.cm, aka Util, itself)
+@@ -50,27 +50,27 @@ request smlnj-lib
+
+ # pre-compile and install CM "portable graph" utility library
+ #
+-#request pgraph-util
++request pgraph-util
+
+ # pre-compile and install Concurrent ML, which is a library for message-passing
+ # concurrency.
+ #
+-#request cml
++request cml
+
+ # pre-compile and install the CML Library, which provides some useful CML
+ # modules.
+ #
+-#request cml-lib
++request cml-lib
+
+ # pre-compile and install eXene, which is a library for X-Windows programming.
+ # EXene requires CML.
+ #
+-#request eXene
++request eXene
+
+ # pre-compile and install the C-Kit, which is a library for parsing and
+ # type-checking C programs
+ #
+-#request ckit
++request ckit
+
+ # pre-compile and install the ML-NLFFI Library, which is the core of
+ # a new foreign function interface (where "foreign" functions are
+@@ -79,7 +79,7 @@ request smlnj-lib
+ # the new FFI.
+ # This preview release currently works only under X86/Linux.
+ #
+-#request ml-nlffi-lib
++request ml-nlffi-lib
+
+ # build ML-NLFFI-Gen, a program generator tool used in conjunction with
+ # the new "NLFFI" foreign function interface. The tool generates ML
+@@ -87,13 +87,13 @@ request smlnj-lib
+ # (Requires ckit!)
+ # This preview release currently works only under X86/Linux.
+ #
+-#request ml-nlffigen
++request ml-nlffigen
+
+ # pre-compile and install the MLRISC Tools library.
+ # This library is for parsing and pretty printing SML code.
+ # It's used by various MLRISC code generator generator.
+ #
+-#request mlrisc-tools
++request mlrisc-tools
+
+ # Build and install the 'nowhere' program translator.
+ # This tool translates programs with conditional patterns (where clauses)
+@@ -101,11 +101,11 @@ request smlnj-lib
+ # (bad) documentation.
+ # (Requires the mlrisc-tools library!)
+ #
+-#request nowhere
++request nowhere
+
+ # unpack and install the documentation directory.
+ #
+-#request doc
++request doc
+
+ # Note: autoloading is always enabled.
+ # In order to customize what is being pre-registered for autoloading
diff --git a/lang/smlnj/patches/patch-ac b/lang/smlnj/patches/patch-ac
new file mode 100644
index 00000000000..b47a06f6c49
--- /dev/null
+++ b/lang/smlnj/patches/patch-ac
@@ -0,0 +1,13 @@
+$NetBSD: patch-ac,v 1.1.1.1 2003/03/21 22:20:56 wiz Exp $
+
+--- config/_arch-n-opsys.orig Fri Oct 20 18:02:25 2000
++++ config/_arch-n-opsys Fri Mar 9 14:07:05 2001
+@@ -107,6 +107,7 @@
+ i486) ARCH=x86;;
+ i586) ARCH=x86;;
+ i686) ARCH=x86;;
++ sparc) ARCH=sparc;;
+ *) exit 1;;
+ esac
+ ;;
+
diff --git a/lang/smlnj/patches/patch-ad b/lang/smlnj/patches/patch-ad
new file mode 100644
index 00000000000..9c8962cdd9b
--- /dev/null
+++ b/lang/smlnj/patches/patch-ad
@@ -0,0 +1,16 @@
+$NetBSD: patch-ad,v 1.1.1.1 2003/03/21 22:20:56 wiz Exp $
+
+--- src/runtime/include/asm-base.h.orig Fri Apr 12 13:54:31 2002
++++ src/runtime/include/asm-base.h
+@@ -36,6 +36,11 @@
+ # define _ASM
+ # include <sys/stack.h>
+ # include <sys/trap.h>
++# elif defined(OPSYS_NETBSD)
++# include <machine/trap.h>
++# define WINDOWSIZE (16*4)
++# define SA(x) (((x)+7)&~7)
++# define ST_INT_OVERFLOW 0x87
+ # endif
+ # define CGLOBAL(ID) .global CSYM(ID)
+ # define LABEL(ID) ID:
diff --git a/lang/smlnj/patches/patch-ae b/lang/smlnj/patches/patch-ae
new file mode 100644
index 00000000000..ae067927316
--- /dev/null
+++ b/lang/smlnj/patches/patch-ae
@@ -0,0 +1,187 @@
+$NetBSD: patch-ae,v 1.1.1.1 2003/03/21 22:20:56 wiz Exp $
+
+--- src/runtime/mach-dep/SPARC.prim.asm.orig Fri Jun 15 15:05:19 2001
++++ src/runtime/mach-dep/SPARC.prim.asm
+@@ -307,7 +307,7 @@ pending_sigs: /* there are pending signa
+ mov ALLOCPTR,LIMITPTR /* (delay slot) */
+
+
+-#if defined(OPSYS_SUNOS) || defined(OPSYS_NEXTSTEP)
++#if defined(OPSYS_SUNOS) || defined(OPSYS_NEXTSTEP) || defined(OPSYS_NETBSD)
+ /* ZeroLimitPtr:
+ *
+ * Zero the heap limit pointer so that a trap will be generated on the next limit
+@@ -622,13 +622,62 @@ _ml_mul:
+ mov %g1,%l1 /* save %g1 which may get trashed */
+ mov %g2,%l2
+ mov %g3,%l3
++#ifdef OPSYS_NETBSD
++ /* NetBSDs .mul trashes these */
++ mov %i4,%l4
++ mov %i5,%l5
++ mov %i0,%l6
++ mov %i1,%l7
++#endif
+ mov %i2,%o0
+ call .mul
+ mov %i3,%o1 /* (delay slot) */
+ mov %l1,%g1 /* restore %g1 */
+ mov %l2,%g2
+ mov %l3,%g3
++#ifdef OPSYS_NETBSD
++ mov %l4,%i4
++ mov %l5,%i5
++ mov %l6,%i0
++ mov %l7,%i1
++ /* the code below is a hack:
++ * NetBSDs .mul does a 32x32->64 bit signed multiply
++ * The SML code assumes that the multiply
++ * overflowed (over 32bit) if the Z flag is
++ * clear on return from .mul
++ * NetBSDs .mul doesn't do that, so we have to check
++ * for overflow. This is done in the following way:
++ * - If the upper 32 bits are clear:
++ * + if bit 31 is set => overflow
++ * + if bit 31 is clear => OK
++ * - If the upper 32 bits are != -1 => overflow
++ * - If the upper 32 bits are == -1:
++ * + If bit 31 is clear => overflow
++ * + If bit 31 is set => OK
++ *
++ * I should be shot for this code ...
++ */
++ cmp %o1,0
++ bnz 4f
++ nop
++ /* is bit 31 of %o0 set ? */
++ addcc %o0,%o0,%o1
++ bcc 2f
++ nop
++5: restore %o0,0,%o2 /* result in %o2 (delay slot) */
++ t ST_INT_OVERFLOW /* generate overflow trap */
++
++
++4: cmp %o1,-1 /* upper 32 bits == -1 ? */
++ bnz 5
++ nop
++ addcc %o0,%o0,%o1 /* bit 31 clear ? */
++ bcc 2f
++ nop
++#else
+ bnz 1f /* if z is clear, then overflow */
++#endif
++2:
+ restore %o0,0,%o2 /* result in %o2 (delay slot) */
+ retl
+ nop
+@@ -642,7 +691,15 @@ _ml_mul:
+ * locals of the new window, since .div is a leaf routine.
+ */
+ _ml_div:
+- save %sp,-SA(WINDOWSIZE),%sp
++#ifdef OPSYS_NETBSD
++ /* hack time again: NetBSDs .div trashes too many registers
++ * we have to store them in the stack frame, so make room
++ * for six registers (o0-o5)
++ */
++ save %sp,-SA(WINDOWSIZE+24),%sp
++#else
++ save %sp,-SA(WINDOWSIZE+24),%sp
++#endif
+ addcc %i3,%g0,%o1 /* %o1 is divisor (and check for zero) */
+ bz 1f
+ /* save %g1, %g2 and %g3 (using new window) */
+@@ -650,9 +707,30 @@ _ml_div:
+ mov %g1,%l1 /* (delay slot) */
+ mov %g2,%l2
+ mov %g3,%l3
++#ifdef OPSYS_NETBSD
++ /* save g6,g7,o0-o5, they get trashed.
++ Note that %o0-%o5 are now %i0-%i5, since we did a 'save'
++ Since %g6 is the global AllocPtr for SML, this
++ is rather bad :-)
++ */
++ mov %g6,%l4
++ mov %g7,%l5
++ std %i0,[%fp-16]
++ std %i2,[%fp-24]
++ std %i4,[%fp-32]
++#endif
++
+ call .div
+ mov %i2,%o0 /* (delay slot) */
+ /* restore %g1, %g2 and %g3 */
++#ifdef OPSYS_NETBSD
++ mov %l4,%g6
++ mov %l5,%g7
++ ldd [%fp-32],%i4
++ ldd [%fp-24],%i2
++ ldd [%fp-16],%i0
++#endif
++
+ mov %l3,%g3
+ mov %l2,%g2
+ mov %l1,%g1
+@@ -679,11 +757,24 @@ _ml_umul:
+ mov %g2,%l2
+ mov %g3,%l3
+ mov %i2,%o0
++#ifdef OPSYS_NETBSD
++ /* Save what might be trashed by NetBSDs .umul */
++ mov %i4,%l4
++ mov %i5,%l5
++ mov %i0,%l6
++ mov %i1,%l7
++#endif
+ call .umul
+ mov %i3,%o1 /* (delay slot) */
+ mov %l1,%g1 /* restore %g1 */
+ mov %l2,%g2
+ mov %l3,%g3
++#ifdef OPSYS_NETBSD
++ mov %l4,%i4
++ mov %l5,%i5
++ mov %l6,%i0
++ mov %l7,%i1
++#endif
+ ret
+ restore %o0,0,%o2 /* result in %o2 (delay slot) */
+
+@@ -694,7 +785,12 @@ _ml_umul:
+ * locals of the new window, since .div is a leaf routine.
+ */
+ _ml_udiv:
+- save %sp,-SA(WINDOWSIZE),%sp
++#ifdef OPSYS_NETBSD
++ /* see comment for _ml__div_ */
++ save %sp,-SA(WINDOWSIZE+24),%sp
++#else
++ save %sp,-SA(WINDOWSIZE+24),%sp
++#endif
+ addcc %i3,%g0,%o1 /* %o1 is divisor (and check for zero) */
+ bz 1f
+ /* save %g1, %g2 and %g3 (using new window) */
+@@ -702,9 +798,23 @@ _ml_udiv:
+ mov %g1,%l1 /* (delay slot) */
+ mov %g2,%l2
+ mov %g3,%l3
++#ifdef OPSYS_NETBSD
++ mov %g6,%l4
++ mov %g7,%l5
++ std %i0,[%fp-16]
++ std %i2,[%fp-24]
++ std %i4,[%fp-32]
++#endif
+ call .udiv
+ mov %i2,%o0 /* (delay slot) */
+ /* restore %g1, %g2 and %g3 */
++#ifdef OPSYS_NETBSD
++ mov %l4,%g6
++ mov %l5,%g7
++ ldd [%fp-32],%i4
++ ldd [%fp-24],%i2
++ ldd [%fp-16],%i0
++#endif
+ mov %l3,%g3
+ mov %l2,%g2
+ mov %l1,%g1
diff --git a/lang/smlnj/patches/patch-af b/lang/smlnj/patches/patch-af
new file mode 100644
index 00000000000..0d4acbcc90f
--- /dev/null
+++ b/lang/smlnj/patches/patch-af
@@ -0,0 +1,13 @@
+$NetBSD: patch-af,v 1.1.1.1 2003/03/21 22:20:56 wiz Exp $
+
+--- src/runtime/mach-dep/signal-sysdep.h.orig Fri Apr 20 09:26:45 2001
++++ src/runtime/mach-dep/signal-sysdep.h
+@@ -151,7 +151,7 @@ extern void SetFSR(int);
+ /* disable all FP exceptions */
+ # define SIG_InitFPE() SetFSR(0)
+
+-# if defined(OPSYS_SUNOS)
++# if defined(OPSYS_SUNOS) || defined(OPSYS_NETBSD)
+ /** SPARC, SUNOS **/
+ # define USE_ZERO_LIMIT_PTR_FN
+ # define SIG_FAULT1 SIGFPE
diff --git a/lang/smlnj/patches/patch-ag b/lang/smlnj/patches/patch-ag
new file mode 100644
index 00000000000..7975946adca
--- /dev/null
+++ b/lang/smlnj/patches/patch-ag
@@ -0,0 +1,29 @@
+$NetBSD: patch-ag,v 1.1.1.1 2003/03/21 22:20:56 wiz Exp $
+
+--- src/runtime/objs/mk.sparc-netbsd.orig Thu Sep 19 03:54:01 2002
++++ src/runtime/objs/mk.sparc-netbsd
+@@ -0,0 +1,24 @@
++# mk.sparc-netbsd
++#
++
++SHELL = /bin/sh
++
++MAKE = gmake
++GCC = gcc
++ARFLAGS = Trcv
++CFLAGS = -O2 -Wall
++LDFLAGS=
++CPP = $(GCC) -x c -E -P
++
++#XOBJS = xmonitor.o
++#LD_LIBS = -lX11
++#BASE_DEFS = -DHEAP_MONITOR -DPOLL_DEBUG
++XOBJS =
++XLIBS =
++DEFS = $(BASE_DEFS) -DHOST_SPARC -DTARGET_SPARC -DOPSYS_UNIX -DOPSYS_NETBSD -DCALLEESAVE=3 -DUNBOXEDFLOAT=1
++TARGET = SPARC
++VERSION = v-sparc-netbsd
++RUNTIME = run.sparc-netbsd
++
++all:
++ ($(MAKE) RUNTIME="$(RUNTIME)" MAKE="$(MAKE)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" AR="$(AR)" RANLIB="$(RANLIB)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))