From 4dd335d4a21cdd649ea44774a63e8df616568142 Mon Sep 17 00:00:00 2001 From: James McCoy Date: Sat, 18 Feb 2012 22:46:38 -0500 Subject: [PATCH] Imported Debian patch 110.74-1 --- debian/README.Debian | 66 ++++++ debian/changelog | 268 +++++++++++++++++++++++ debian/compat | 1 + debian/control | 202 +++++++++++++++++ debian/copyright | 40 ++++ debian/deregister | 12 + debian/libckit-smlnj.doc-base | 9 + debian/libckit-smlnj.docs | 3 + debian/libckit-smlnj.install | 1 + debian/libcml-smlnj.docs | 3 + debian/libcml-smlnj.install | 1 + debian/libcmlutil-smlnj.install | 1 + debian/libexene-smlnj.docs | 3 + debian/libexene-smlnj.examples | 2 + debian/libexene-smlnj.install | 1 + debian/libmlnlffi-smlnj.docs | 2 + debian/libmlnlffi-smlnj.examples | 1 + debian/libmlnlffi-smlnj.install | 1 + debian/libmlrisctools-smlnj.install | 1 + debian/libpgraphutil-smlnj.install | 1 + debian/libsmlnj-smlnj.docs | 5 + debian/libsmlnj-smlnj.install | 1 + debian/mkorig | 45 ++++ debian/ml-antlr.1 | 38 ++++ debian/ml-build.1 | 43 ++++ debian/ml-burg.1 | 42 ++++ debian/ml-burg.examples | 1 + debian/ml-burg.install | 3 + debian/ml-burg.manpages | 1 + debian/ml-lex.1 | 31 +++ debian/ml-lex.docs | 3 + debian/ml-lex.install | 3 + debian/ml-lex.manpages | 1 + debian/ml-lpt.docs | 3 + debian/ml-lpt.install | 9 + debian/ml-lpt.manpages | 2 + debian/ml-makedepend.1 | 73 ++++++ debian/ml-nlffigen.1 | 257 ++++++++++++++++++++++ debian/ml-nlffigen.docs | 1 + debian/ml-nlffigen.install | 3 + debian/ml-nlffigen.manpages | 1 + debian/ml-ulex.1 | 43 ++++ debian/ml-yacc.1 | 30 +++ debian/ml-yacc.docs | 2 + debian/ml-yacc.examples | 1 + debian/ml-yacc.install | 4 + debian/ml-yacc.manpages | 1 + debian/nowhere.1 | 59 +++++ debian/nowhere.docs | 1 + debian/nowhere.install | 3 + debian/nowhere.manpages | 1 + debian/patches/use-psfig-not-epsfig.diff | 89 ++++++++ debian/pkg-deregister | 17 ++ debian/pkg-register | 17 ++ debian/postinst.in | 7 + debian/prerm.in | 7 + debian/register | 15 ++ debian/rules | 193 ++++++++++++++++ debian/sml.1 | 101 +++++++++ debian/smlnj-doc.doc-base.ml-lpt | 14 ++ debian/smlnj-doc.doc-base.mlrisc | 13 ++ debian/smlnj-doc.doc-base.mltex | 11 + debian/smlnj-doc.doc-base.nlffi | 8 + debian/smlnj-doc.doc-base.nowhere | 10 + debian/smlnj-doc.doc-base.smlnjcm | 9 + debian/smlnj-doc.docs | 5 + debian/smlnj-doc.install | 3 + debian/smlnj-runtime.dirs | 1 + debian/smlnj-runtime.install | 1 + debian/smlnj-runtime.postinst | 12 + debian/smlnj-runtime.postrm | 9 + debian/smlnj-runtime.prerm | 7 + debian/smlnj.docs | 2 + debian/smlnj.install | 5 + debian/smlnj.manpages | 3 + debian/source/format | 1 + debian/targets | 43 ++++ debian/watch | 13 ++ debian/wrapper.in | 5 + 79 files changed, 1951 insertions(+) create mode 100644 debian/README.Debian create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/deregister create mode 100644 debian/libckit-smlnj.doc-base create mode 100644 debian/libckit-smlnj.docs create mode 100644 debian/libckit-smlnj.install create mode 100644 debian/libcml-smlnj.docs create mode 100644 debian/libcml-smlnj.install create mode 100644 debian/libcmlutil-smlnj.install create mode 100644 debian/libexene-smlnj.docs create mode 100644 debian/libexene-smlnj.examples create mode 100644 debian/libexene-smlnj.install create mode 100644 debian/libmlnlffi-smlnj.docs create mode 100644 debian/libmlnlffi-smlnj.examples create mode 100644 debian/libmlnlffi-smlnj.install create mode 100644 debian/libmlrisctools-smlnj.install create mode 100644 debian/libpgraphutil-smlnj.install create mode 100644 debian/libsmlnj-smlnj.docs create mode 100644 debian/libsmlnj-smlnj.install create mode 100644 debian/mkorig create mode 100644 debian/ml-antlr.1 create mode 100644 debian/ml-build.1 create mode 100644 debian/ml-burg.1 create mode 100644 debian/ml-burg.examples create mode 100644 debian/ml-burg.install create mode 100644 debian/ml-burg.manpages create mode 100644 debian/ml-lex.1 create mode 100644 debian/ml-lex.docs create mode 100644 debian/ml-lex.install create mode 100644 debian/ml-lex.manpages create mode 100644 debian/ml-lpt.docs create mode 100644 debian/ml-lpt.install create mode 100644 debian/ml-lpt.manpages create mode 100644 debian/ml-makedepend.1 create mode 100644 debian/ml-nlffigen.1 create mode 100644 debian/ml-nlffigen.docs create mode 100644 debian/ml-nlffigen.install create mode 100644 debian/ml-nlffigen.manpages create mode 100644 debian/ml-ulex.1 create mode 100644 debian/ml-yacc.1 create mode 100644 debian/ml-yacc.docs create mode 100644 debian/ml-yacc.examples create mode 100644 debian/ml-yacc.install create mode 100644 debian/ml-yacc.manpages create mode 100644 debian/nowhere.1 create mode 100644 debian/nowhere.docs create mode 100644 debian/nowhere.install create mode 100644 debian/nowhere.manpages create mode 100644 debian/patches/use-psfig-not-epsfig.diff create mode 100644 debian/pkg-deregister create mode 100644 debian/pkg-register create mode 100644 debian/postinst.in create mode 100644 debian/prerm.in create mode 100644 debian/register create mode 100755 debian/rules create mode 100644 debian/sml.1 create mode 100644 debian/smlnj-doc.doc-base.ml-lpt create mode 100644 debian/smlnj-doc.doc-base.mlrisc create mode 100644 debian/smlnj-doc.doc-base.mltex create mode 100644 debian/smlnj-doc.doc-base.nlffi create mode 100644 debian/smlnj-doc.doc-base.nowhere create mode 100644 debian/smlnj-doc.doc-base.smlnjcm create mode 100644 debian/smlnj-doc.docs create mode 100644 debian/smlnj-doc.install create mode 100644 debian/smlnj-runtime.dirs create mode 100644 debian/smlnj-runtime.install create mode 100644 debian/smlnj-runtime.postinst create mode 100644 debian/smlnj-runtime.postrm create mode 100644 debian/smlnj-runtime.prerm create mode 100644 debian/smlnj.docs create mode 100644 debian/smlnj.install create mode 100644 debian/smlnj.manpages create mode 100644 debian/source/format create mode 100644 debian/targets create mode 100644 debian/watch create mode 100644 debian/wrapper.in diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..476dd80 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,66 @@ +Creating Upstream Tarball +------------------------- + +The upstream maintainers distribute SML/NJ as a collection of +tarballs. This source package requires all of them, so the Debian orig +tar file contains all the upstream tarballs placed where the upstream +install.sh script expects them to be unpacked. + +For example: + + smlnj-110.x.orig/ckit.tgz + smlnj-110.x.orig/config.tgz + smlnj-110.x.orig/src/MLRISC.tgz + smlnj-110.x.orig/src/cm.tgz + smlnj-110.x.orig/src/cml.tgz + smlnj-110.x.orig/src/compiler.tgz + smlnj-110.x.orig/src/eXene.tgz + smlnj-110.x.orig/src/ml-burg.tgz + smlnj-110.x.orig/src/ml-lex.tgz + smlnj-110.x.orig/src/ml-nlffi-lib.tgz + smlnj-110.x.orig/src/ml-nlffigen.tgz + smlnj-110.x.orig/src/ml-yacc.tgz + smlnj-110.x.orig/src/runtime.tgz + smlnj-110.x.orig/src/smlnj-c.tgz + smlnj-110.x.orig/src/smlnj-lib.tgz + smlnj-110.x.orig/src/system.tgz + smlnj-110.x.orig/src/tools.tgz + +The upstream boot images, used to create the bootstrap compiler are +kept in the bootstrap directory, like this: + + smlnj-110.x.orig/bootstrap/boot.alpha32-unix.tgz + smlnj-110.x.orig/bootstrap/boot.hppa-unix.tgz + smlnj-110.x.orig/bootstrap/boot.mipseb-unix.tgz + smlnj-110.x.orig/bootstrap/boot.ppc-unix.tgz + smlnj-110.x.orig/bootstrap/boot.sparc-unix.tgz + smlnj-110.x.orig/bootstrap/boot.x86-unix.tgz + +Use the mkorig script in this directory to create the upstream tarball +as used by Debian. Support for the mkorig script has now been +integrated into the debian/watch file. Just calling "uscan" will now +automatically build a new tarball, if a new upstream version is +available. You will need to manually make the mkorig script executable: + +$ chmod +x debian/mkorig +$ uscan --verbose + +You can still call mkorig manually, although the syntax is a bit +different: + +$ mkorig --upstream-version 110.53 + +SML/NJ for amd64 architecture +----------------------------- + +This version of the smlnj package for the amd64 architecture has i386 +binaries in it. As the upstream says it: + # As long as we do not natively support the amd64 architecture, + # we should fallback to the x86 compatibility mode. --Stef + x86_64) ARCH=x86;; + +Building packages at all for amd64 is arguably broken under these +circumstances, but it still seemed like the better option. As long as +you're aware of this. + + -- Daniel Moerner , Fri, 16 Oct 2009 01:01:37 -0700 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..a19d053 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,268 @@ +smlnj (110.74-1) unstable; urgency=low + + * New upstream release. + + Fixes building on 3.x kernels. + * Remove sparc from Architecture list. + + -- James McCoy Sat, 18 Feb 2012 22:46:38 -0500 + +smlnj (110.73-2) unstable; urgency=low + + * Only set {build,binary}-arch as a prerequisite for the {build,binary} + targets. + + -- James McCoy Fri, 20 Jan 2012 18:00:42 -0500 + +smlnj (110.73-1) unstable; urgency=low + + * New upstream version. + * Use DEB_BUILD_OPTIONS=nodoc to disable building of documentation. + * Declare source format 1.0 + * Lintian fixes: + + Remove HISTORY from libckit-smlnj.docs, already installed as upstream + changelog. + + Remove leading article from libckit-smlnj's short description. + + -- James McCoy Wed, 18 Jan 2012 20:33:37 -0500 + +smlnj (110.72-1) unstable; urgency=low + + * New upstream release. + - Upstream has integrated a patch I forwarded to remove bashisms. + (Closes: #530119) + * Switch to debhelper compat level 7. + * debian/control: + - Replace obsolete tetex-extra with texlive-latex-extra in + Build-Depends-Indep. (Closes: #562359) + - Remove dvipdfmx from Build-Depends-Indep (superfluous). + - Remove dvi2ps from Build-Depends-Indep (in texlive-binaries) + - New maintainer (Closes: #428273) + - Update to Debian Policy 3.8.4. + - Move smlnj-doc to Section: doc to follow Debian override file. + - Remove duplicate words from descriptions + - Expand and correct short and long descriptions for almost all + shipped packages. (Closes: #493601) + - Renable sparc in Architecture line. + - Add ${misc:Depends} to binary packages for debhelper. + * debian/dirs: Deleted, superfluous file. + * debian/libckit-smlnj.doc-base: Added doc-base registration. + * debian/{libmlnlffi-smlnj,ml-lpt}.docs: Don't ship pdf documentation in + these packages; it is already shipped in smlnj-doc. + * debian/mkorig: Modified script so it can be called automatically by + uscan. + * debian/{ml-ulex.1,ml-antlr.1,ml-lpt.manpages}: Add missing manpages for + these two binaries. + * debian/README.Debian: Updated to reflect changes to debian/mkorig. + * debian/rules: + - Add dh_installchangelog calls for libckit-smlnj. + - Update to reflect namechange of templates in debian directory. + - Use dh_prep instead of dh_clean -k. + - Switch to separate unpack-source target and update .PHONY. + * debian/smlnj.docs: Don't ship latex source in binary. + * debian/smlnj-doc.doc-base.*: Register all documentation in smlnj-doc + with doc-base. + * debian/smlnj-doc.prerm: Remove this file; it was needed to fix a bug + related to upgrades from smlnj-doc_110.67-3. This version predates Lenny + and was never in a release of Debian stable. + * debian/watch: Added commented watch file which calls debian/mkorig. + * debian/{_wrapper,_postinst,_prerm}: Rename templates to filename.in. + * debian/patches/use-psfig-not-epsfig.diff: SML/NJ's documentation still + includes deprecated calls to psfig.sty, which has been removed from + Debian. This patch uses the wrapper epsfig.sty. Long term, upstream + has been encouraged to port SML/NJ to use the graphicx package. + + -- Daniel Moerner Wed, 24 Feb 2010 02:53:56 -0800 + +smlnj (110.69-1) unstable; urgency=low + + * Orphaned package. + * New upstream release. + * Standards-Version 3.8.1 (no changes necessary). + * Use 110.68's bootstrap images instead of 110.69's. + + -- Kari Pahula Sat, 06 Jun 2009 14:54:02 +0300 + +smlnj (110.67-4) unstable; urgency=low + + * Don't create postinst/prerm scripts that would try to register + smlnj-doc as a library. (Closes: #502752) + + -- Kari Pahula Sun, 19 Oct 2008 20:04:36 +0300 + +smlnj (110.67-3) unstable; urgency=high + + * Fixed an FTBFS due to missing ghostscript dependency in + Build-Depends-Indep (transfig only Recommends it) (Closes: #486957) + * Actually put something in smlnj-doc's long description. (Closes: #487199) + + -- Kari Pahula Wed, 02 Jul 2008 10:56:31 +0300 + +smlnj (110.67-2) unstable; urgency=low + + * Fixed an FTBFS due to a faulty check on whether Build-Depends-Indep + were installed. + + -- Kari Pahula Mon, 09 Jun 2008 22:44:50 +0300 + +smlnj (110.67-1) unstable; urgency=low + + * New upstream release + * Fixed typo ml-antrl -> ml-antlr in ml-lpt's description (Closes: #442949) + * Set homepage field in debian/control. + * Built some more documentation and set up smlnj-doc package for them. + * Added amd64 as an architecture, using gcc-multilib emulation layer. + * Don't even try to build on sparc. + + -- Kari Pahula Sat, 24 May 2008 22:11:34 +0300 + +smlnj (110.65-1) unstable; urgency=low + + * New upstream release + * Added package ml-lpt (Closes: #417906) + * Install smlnj's changelog (Closes: #412040) + * smlnj now Recommends libsmlnj-smlnj + + -- Kari Pahula Mon, 06 Aug 2007 07:17:09 +0300 + +smlnj (110.62-1) unstable; urgency=low + + * New upstream release + * Set architecture to i386 sparc powerpc + * Removed the broken hack to add symlinks to modules in the library dir + * Install base pathconfig rules to smlnj-runtime package (Closes: #409714) + * Added -f to rm /usr/lib/smlnj/lib/pathconfig in smlnj-runtime's postrm + + -- Kari Pahula Thu, 22 Feb 2007 12:46:17 +0200 + +smlnj (110.60-1) experimental; urgency=low + + * New release (Closes: #283407, #375537) + * New maintainer (Closes: #319801) + * Make sure that the build path doesn't get in the run and link scripts + (Closes: #329875) + * Changed the Debian build scripts to take the new 110.60 directory + layout into account + * Install some more documents and examples + * Make sure that /usr/bin/sml finds the modules from the directories + where it expects to. + + [Aaron Matthew Read] + * Bootstraps from an included image. (Closes: #308877, #362445) + * Purges itself cleanly now. (Closes: #328486) + + -- Kari Pahula Fri, 24 Nov 2006 00:17:57 +0200 + +smlnj (110.54-1) unstable; urgency=low + + * Upstream release of 110.54. + + -- Aaron Matthew Read Sun, 12 Jun 2005 17:51:24 -0700 + +smlnj (110.53-1) unstable; urgency=low + + * Upstream release of 110.53. closes:#283407 + * Supply bootstrap images as part of the source package. Use these + images to bootstrap the build, rather than an installed + compiler. closes:#308877 + + -- Aaron Matthew Read Fri, 13 May 2005 14:28:36 -0700 + +smlnj (110.52-1) unstable; urgency=low + + * Upstream release of 110.52. + * arch-n-opsys recognizes x86_64. closes: #286817 + + -- Aaron Matthew Read Wed, 22 Dec 2004 12:25:57 -0800 + +smlnj (110.51-1) unstable; urgency=low + + * Upstream release of 110.51. closes:#283407 + + -- Aaron Matthew Read Sun, 28 Nov 2004 15:12:55 -0800 + +smlnj (110.50-1) unstable; urgency=low + + * Upstream release of 110.50. + * Better short descriptions. closes:#277432, #276839 + + -- Aaron Matthew Read Fri, 29 Oct 2004 11:26:58 -0700 + +smlnj (110.49-1) unstable; urgency=low + + * Upstream release of 110.49. + + -- Aaron Matthew Read Wed, 15 Sep 2004 11:27:40 -0700 + +smlnj (110.48-3) unstable; urgency=low + + * Include scripts to maintain the pathconfig file. + + -- Aaron Matthew Read Mon, 13 Sep 2004 00:10:15 -0700 + +smlnj (110.48-2) unstable; urgency=low + + * Include documentation and examples. + * Upstream made Option an alias for Option.Option. closes:#184125 + + -- Aaron Matthew Read Thu, 9 Sep 2004 19:04:18 -0700 + +smlnj (110.48-1) unstable; urgency=low + + * Upstream release of 110.48. + + -- Aaron Matthew Read Thu, 12 Aug 2004 11:30:52 -0700 + +smlnj (110.47-1) unstable; urgency=low + + * New upstream release. + + -- Aaron Matthew Read Sat, 7 Aug 2004 16:49:52 -0700 + +smlnj (110.46-2) unstable; urgency=low + + * Added new binary packages: libpgraph-smlnj, libcml-smlnj, libcmlutil-smlnj, + libexene-smlnj, libckit-smlnj, libmlnlffi-smlnj, ml-nlffigen, + libmlrisctools-smlnj, nowhere. closes:#186538 + + -- Aaron Matthew Read Wed, 21 Jul 2004 00:57:39 -0700 + +smlnj (110.46-1) unstable; urgency=low + + * New upstream release. + * New packaging using debhelper. + + -- Aaron Matthew Read Sun, 18 Jul 2004 19:18:01 -0700 + +smlnj-runtime (110.45-1) unstable; urgency=low + + * New upstream release. + + -- Aaron Matthew Read Sun, 7 Mar 2004 15:51:54 -0800 + +smlnj-runtime (110.44-2) unstable; urgency=low + + * Bug fix: postinst script fails if /usr/local is mounted read-only, + thanks to Laurent Bonnaud. closes:#228708 + + -- Aaron Matthew Read Tue, 20 Jan 2004 11:16:42 -0800 + +smlnj-runtime (110.44-1) unstable; urgency=low + + * New upstream release. + * smlnj-runtime: hppa port. closes:Bug#199328 + + -- Aaron Matthew Read Tue, 9 Dec 2003 00:19:27 -0800 + +smlnj-runtime (110.42-2) unstable; urgency=low + + * Fixed compile problem with new C Preprocessor. closes:Bug#195036 + + -- Aaron Matthew Read Wed, 28 May 2003 21:02:32 -0700 + +smlnj-runtime (110.42-1) unstable; urgency=low + + * Split compiler, tools, and runtime system into separate packages. + This way, applications written in SML will depend only on the (small) + smlnj-runtime package. + + -- Aaron Matthew Read Tue, 14 Jan 2003 20:18:39 -0800 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +7 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..7e1f4f8 --- /dev/null +++ b/debian/control @@ -0,0 +1,202 @@ +Source: smlnj +Section: devel +Priority: optional +Maintainer: James McCoy +Build-Depends: debhelper (>= 7), gcc-multilib [amd64] +Build-Depends-Indep: texlive-latex-base, texlive-pictures, texlive-math-extra, texlive-latex-recommended, transfig, texlive-generic-extra, texlive-latex-extra, ghostscript, texlive-binaries +Standards-Version: 3.8.4 +Homepage: http://www.smlnj.org/ + +Package: smlnj +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, smlnj-runtime (= ${binary:Version}) +Replaces: sml-nj +Recommends: libsmlnj-smlnj +Suggests: smlnj-doc +Description: Standard ML of New Jersey interactive compiler + SML/NJ is an implementation of the Standard ML programming language. + Standard ML has many features, including type safety, polymorphism, + algebraic data types with pattern matching, higher-order functions, + and a sophisticated module system. It is especially well-suited for + writing compilers and other language processors. + . + This package includes the interactive compiler (sml), the compilation + manager (CM), and some essential libraries. It is a "working" + version, but believed to be stable. + . + Install this package if you want to program in SML. + +Package: smlnj-doc +Architecture: all +Section: doc +Depends: ${misc:Depends} +Suggests: smlnj +Description: Documentation for Standard ML of New Jersey + This package contains various documentation for SML/NJ, an + implementation of the Standard ML programming language. + . + More documentation can be found on the web site. + +Package: smlnj-runtime +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: Standard ML of New Jersey runtime system + SML/NJ is an implementation of the Standard ML programming language. + This package includes the runtime system only -- it provides garbage + collection and other support for compiled SML programs. + . + Install this package if you want to run programs compiled with SML/NJ. + +Package: libsmlnj-smlnj +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, smlnj (= ${binary:Version}) +Description: Useful libraries for Standard ML of New Jersey + A library for SML, including: + * Util A general utility library. + * Controls A library of support code for managing application controls. + * HashCons A library supporting hash-consing of data structures and + efficient sets and maps using hash-consed keys. + * HTML Provides parsing and pretty printing of HTML. + * INet Networking utilities. + * PP Pretty-printing library. + * Reactive A low-level reactive scripting library. + * RegExp Regular-expression library. + * Unix A set of unix specific utilities. + +Package: ml-lex +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, smlnj-runtime (= ${binary:Version}) +Description: Lexical analyzer generator for Standard ML + Lexical analysis is the problem of segmenting input into words and + recognizing different classes of words. ml-lex uses regular + expressions to describe classes of words. It transforms a simple + declarative language specification into an efficient SML program for + analyzing that language. + . + Install this package if you want to produce a lexer in Standard ML. + +Package: ml-yacc +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, smlnj-runtime (= ${binary:Version}) +Description: Parser generator for Standard ML + SML version of the yacc program, generates a parser for a LALR language. + This package is useful for SML developers requiring a parser in their + work. + +Package: ml-burg +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, ml-lex (= ${binary:Version}) +Description: Code generator generator for Standard ML + ml-burg generates a Standard ML program to perform bottom-up + rewriting of an input tree. Cost information associated with each + rewrite rule is used to derive the minimum rewrite cost for the + entire tree. A successful reduction corresponds to rewriting the + input tree to a special non-terminal symbol called the "start" + non-terminal. Upon successful reduction, facilities are provided to + walk the tree emitting semantic actions corresponding to the rules + that matched. + . + Install this package if you want to write a compiler in SML using a + burg specification. + +Package: libpgraphutil-smlnj +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, smlnj (= ${binary:Version}) +Description: Portable graph utility library for SML Compilation Manager + Utility routines for use with portable dependency graphs. This + package contains support to build list-of-edges dependency graphs and + convert them back into valid SML code. + +Package: libcml-smlnj +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, libsmlnj-smlnj (= ${binary:Version}) +Description: Concurrent ML extension of SML + An SML library for message-passing concurrency. This library adds + threading support to SML. Each thread is then manually executed by + running a separate function, rather than being called directly by the + top-level SML loop. + +Package: libcmlutil-smlnj +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, libcml-smlnj (= ${binary:Version}) +Description: Concurrent ML utility library + Not all modules in the normal SML/NJ library are thread safe. This + library provides thread-safe implementations of these + libraries. + +Package: libexene-smlnj +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, libcml-smlnj (= ${binary:Version}), libcmlutil-smlnj (= ${binary:Version}) +Description: Concurrent ML library for the X Window System + A multi-threaded X Window System toolkit written in Concurrent + ML. Many other windowing toolkits, such as Xlib, register separate + functions that are called by a centralized event processing loop. In + contrast, eXene maintains each window and graphical object in a + separate thread that has the ability to update itself. + +Package: libckit-smlnj +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, smlnj (= ${binary:Version}) +Description: SML library for parsing and type-checking C programs + ckit is a C front end written in SML that translates C source code (after + preprocessing) into abstract syntax represented as a set of SML datatypes. + It also provides facilities for extending the C language with additional + syntactic constructs, which can be useful for implementing "C-like" + domain-specific languages as well as C dialects. + +Package: libmlnlffi-smlnj +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, smlnj (= ${binary:Version}) +Recommends: ml-nlffigen +Description: No Longer Foreign Function Interface + Allows ML programs to inspect and manipulate C data structures + directly. This is implemented through three separate libraries, one + that provides a user-code accessible frontend, one that + implements this, and another that handles low-level raw memory + access. + +Package: ml-nlffigen +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, libsmlnj-smlnj (= ${binary:Version}), libckit-smlnj (= ${binary:Version}) +Description: ML generator for C glue code + This tool reads in C source code and outputs ML code and a CM + description file for use with the ML "No Longer Foreign Function + Interface" library. This tool works by separating each top-level C + declaration into a new ML source file. For large programs, this + puts some strain on the SML Compilation Manager, but this should only + marginally increase the program run-time. + +Package: libmlrisctools-smlnj +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, smlnj (= ${binary:Version}) +Description: Library for generating MLRISC modules + The MLRISC system allows an easy way to create a back-end to convert + SML into machine code. These tools provide an easy way to generate + MLRISC modules from machine descriptions. + +Package: nowhere +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, libmlrisctools-smlnj (= ${binary:Version}) +Description: Translates programs from an extended Standard ML to Standard ML + This is a source-to-source translation tool that expands case + expressions that use conditional patterns. Conditional patterns that + use the "where" keyword are converted into SML. + +Package: ml-lpt +Architecture: i386 amd64 powerpc +Depends: ${misc:Depends}, smlnj (= ${binary:Version}) +Provides: ml-ulex, ml-antlr +Description: SML/NJ language processing tools + Tradition has it that when a new programming language is introduced, + new scanner and parser generators are written in that language, and + generate code for that language. Traditional also has it that the + new tools are modeled after the old lex and yacc tools, both in terms + of the algorithms used, and often the syntax as well. The language + Standard ML is no exception: ml-lex and ml-yacc are the SML + incarnations of the old Unix tools. + . + This package has two new tools, ml-ulex and ml-antlr, that follow + tradition in separating scanning from parsing, but break from + tradition in their implementation: ml-ulex is based on regular + expression derivatives rather than subset-construction, and ml-antlr + is based on LL(k) parsing rather than LALR(1) parsing. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..c7ef2cf --- /dev/null +++ b/debian/copyright @@ -0,0 +1,40 @@ +This package was debianized by Aaron Matthew Read on +Fri, 25 Oct 2002 16:54:10 -0800. + +It was downloaded from http://smlnj.cs.uchicago.edu/dist/working + +Upstream Authors: The SML/NJ Team + +Copyright: 2003-2008 The SML/NJ Fellowship + 1989-2002 Lucent Technologies + 1991-2003 John Reppy + 1996-1998,2000 YALE FLINT PROJECT + 1992 Vrije Universiteit, The Netherlands + 1989-1992 Andrew W. Appel, James S. Mattson, David R. Tarditi + 1988 Evans & Sutherland Computer Corporation, Salt Lake City, Utah + +STANDARD ML OF NEW JERSEY COPYRIGHT NOTICE, LICENSE AND DISCLAIMER. + +Copyright (c) 1989-2002 by Lucent Technologies + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both the copyright notice and this permission notice and warranty +disclaimer appear in supporting documentation, and that the name of +Lucent Technologies, Bell Labs or any Lucent entity not be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission. + +Lucent disclaims all warranties with regard to this software, +including all implied warranties of merchantability and fitness. In no +event shall Lucent be liable for any special, indirect or +consequential damages or any damages whatsoever resulting from loss of +use, data or profits, whether in an action of contract, negligence or +other tortious action, arising out of or in connection with the use +or performance of this software. + + +The SML/NJ distribution also includes code licensed under the same +terms as above, but with "David R. Tarditi Jr. and Andrew W. Appel", +"Vrije Universiteit" or "Evans & Sutherland" instead of "Lucent". diff --git a/debian/deregister b/debian/deregister new file mode 100644 index 0000000..af97ed2 --- /dev/null +++ b/debian/deregister @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +if [ $# -ne 1 ] ; then + echo "usage: deregister name" + exit 1 +fi + +name=$1 + +sed -i -e "/^$name /d" /usr/lib/smlnj/lib/pathconfig diff --git a/debian/libckit-smlnj.doc-base b/debian/libckit-smlnj.doc-base new file mode 100644 index 0000000..6388b75 --- /dev/null +++ b/debian/libckit-smlnj.doc-base @@ -0,0 +1,9 @@ +Document: libckit-smlnj +Title: ckit - A Front End for C in SML +Author: Dave MacQueen +Abstract: An overview describing the use of ckit as a C front end. +Section: Programming + +Format: HTML +Index: /usr/share/doc/libckit-smlnj/doc/overview.html +Files: /usr/share/doc/libckit-smlnj/doc/overview.html diff --git a/debian/libckit-smlnj.docs b/debian/libckit-smlnj.docs new file mode 100644 index 0000000..a8ea475 --- /dev/null +++ b/debian/libckit-smlnj.docs @@ -0,0 +1,3 @@ +ckit/BUGS +ckit/README +ckit/doc/ diff --git a/debian/libckit-smlnj.install b/debian/libckit-smlnj.install new file mode 100644 index 0000000..7461a18 --- /dev/null +++ b/debian/libckit-smlnj.install @@ -0,0 +1 @@ +lib/ckit-lib.cm usr/lib/smlnj/lib diff --git a/debian/libcml-smlnj.docs b/debian/libcml-smlnj.docs new file mode 100644 index 0000000..945b0bf --- /dev/null +++ b/debian/libcml-smlnj.docs @@ -0,0 +1,3 @@ +cml/README +cml/TODO +cml/doc/ diff --git a/debian/libcml-smlnj.install b/debian/libcml-smlnj.install new file mode 100644 index 0000000..9ca0d71 --- /dev/null +++ b/debian/libcml-smlnj.install @@ -0,0 +1 @@ +lib/cml usr/lib/smlnj/lib diff --git a/debian/libcmlutil-smlnj.install b/debian/libcmlutil-smlnj.install new file mode 100644 index 0000000..886f958 --- /dev/null +++ b/debian/libcmlutil-smlnj.install @@ -0,0 +1 @@ +lib/cml-lib usr/lib/smlnj/lib diff --git a/debian/libexene-smlnj.docs b/debian/libexene-smlnj.docs new file mode 100644 index 0000000..5a04d2f --- /dev/null +++ b/debian/libexene-smlnj.docs @@ -0,0 +1,3 @@ +eXene/README +eXene/README-0.5 +eXene/README-1.0 diff --git a/debian/libexene-smlnj.examples b/debian/libexene-smlnj.examples new file mode 100644 index 0000000..acc3196 --- /dev/null +++ b/debian/libexene-smlnj.examples @@ -0,0 +1,2 @@ +eXene/examples/* +eXene/demos/tactic-tree/ diff --git a/debian/libexene-smlnj.install b/debian/libexene-smlnj.install new file mode 100644 index 0000000..6b804d0 --- /dev/null +++ b/debian/libexene-smlnj.install @@ -0,0 +1 @@ +lib/eXene.cm usr/lib/smlnj/lib diff --git a/debian/libmlnlffi-smlnj.docs b/debian/libmlnlffi-smlnj.docs new file mode 100644 index 0000000..a7a9acf --- /dev/null +++ b/debian/libmlnlffi-smlnj.docs @@ -0,0 +1,2 @@ +nlffi/lib/Doc/mini-tutorial.txt +nlffi/lib/README diff --git a/debian/libmlnlffi-smlnj.examples b/debian/libmlnlffi-smlnj.examples new file mode 100644 index 0000000..df991c3 --- /dev/null +++ b/debian/libmlnlffi-smlnj.examples @@ -0,0 +1 @@ +nlffi/lib/Tests diff --git a/debian/libmlnlffi-smlnj.install b/debian/libmlnlffi-smlnj.install new file mode 100644 index 0000000..798ad04 --- /dev/null +++ b/debian/libmlnlffi-smlnj.install @@ -0,0 +1 @@ +lib/c usr/lib/smlnj/lib diff --git a/debian/libmlrisctools-smlnj.install b/debian/libmlrisctools-smlnj.install new file mode 100644 index 0000000..96bcc31 --- /dev/null +++ b/debian/libmlrisctools-smlnj.install @@ -0,0 +1 @@ +lib/mlrisc-tools usr/lib/smlnj/lib diff --git a/debian/libpgraphutil-smlnj.install b/debian/libpgraphutil-smlnj.install new file mode 100644 index 0000000..9342fab --- /dev/null +++ b/debian/libpgraphutil-smlnj.install @@ -0,0 +1 @@ +lib/pgraph-util.cm usr/lib/smlnj/lib diff --git a/debian/libsmlnj-smlnj.docs b/debian/libsmlnj-smlnj.docs new file mode 100644 index 0000000..bdc5806 --- /dev/null +++ b/debian/libsmlnj-smlnj.docs @@ -0,0 +1,5 @@ +smlnj-lib/Doc +smlnj-lib/HTML +smlnj-lib/PORTING +smlnj-lib/README +smlnj-lib/TODO diff --git a/debian/libsmlnj-smlnj.install b/debian/libsmlnj-smlnj.install new file mode 100644 index 0000000..256c07f --- /dev/null +++ b/debian/libsmlnj-smlnj.install @@ -0,0 +1 @@ +lib/SMLNJ-LIB lib/hash-cons-lib.cm lib/inet-lib.cm lib/reactive-lib.cm lib/regexp-lib.cm lib/unix-lib.cm usr/lib/smlnj/lib diff --git a/debian/mkorig b/debian/mkorig new file mode 100644 index 0000000..fe28b09 --- /dev/null +++ b/debian/mkorig @@ -0,0 +1,45 @@ +#!/bin/sh + +# Builds upstream tarball +# Uses the new layout of 110.60 version + +# Updated by Daniel Moerner in October 2009 to accept --upstream-version +# argument so this script can be called by uscan. + +if [ "$1" -ne "--upstream-version" ] ; then + echo "Usage: mkorig --upstream-version version" + exit 1 +fi + +shift + +version=$1 +orig=../smlnj-$version + +url=http://smlnj.cs.uchicago.edu/dist/working + +root_tarballs="ckit config pgraph smlnj-lib MLRISC cml eXene heap2asm \ + ml-burg ml-lex ml-yacc smlnj-c nlffi ml-lpt \ + trace-debug-profile" +base_tarballs="cm compiler runtime system" +archs="x86 ppc sparc" + +mkdir -p $orig +for t in $root_tarballs ; do + wget -O $orig/$t.tgz $url/$version/$t.tgz +done + +mkdir -p $orig/bootstrap +for t in $archs ; do + img=boot.$t-unix.tgz + wget -O $orig/bootstrap/$img $url/$version/$img +done + +mkdir -p $orig/base +for t in $base_tarballs ; do + wget -O $orig/base/$t.tgz $url/$version/$t.tgz +done + +tar zcf ../smlnj_$version.orig.tar.gz $orig +rm -rf $orig +rm -f index.html diff --git a/debian/ml-antlr.1 b/debian/ml-antlr.1 new file mode 100644 index 0000000..115ae71 --- /dev/null +++ b/debian/ml-antlr.1 @@ -0,0 +1,38 @@ +.TH ml-antlr 1 "September 4, 2009" +.SH NAME +ml-antlr \- parser generator for Standard ML +.SH SYNOPSIS +.B ml-antlr +.RI "[--dot] [--latex] file" +.br +.SH DESCRIPTION +This manual page documents briefly the +.B ml-antlr +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +The +.B ml-antlr +script is part of the +.B SML/NJ CM +(Compilation and Library Manager) that is used to generate standalone +programs. +.TP +.BI --dot +Generate DOT output (for graphviz). +.TP +.BI --latex +Generate LaTeX output. +.SH SEE ALSO +.BR sml (1), +.BR ml-lex (1), +.BR ml-ulex (1), +.BR ml-yacc (1). +.br +The programs are documented fully by +.IR "CM: The SML/NJ Compilation and Library Manager, User Manual" , +Matthias Blume, which is +available via . +.SH AUTHOR +This manual page was written by Daniel Moerner , +for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/ml-build.1 b/debian/ml-build.1 new file mode 100644 index 0000000..4553d2c --- /dev/null +++ b/debian/ml-build.1 @@ -0,0 +1,43 @@ +.TH ml-build 1 "October 25, 2002" +.SH NAME +ml-build \- for generating standalone programs +.SH SYNOPSIS +.B ml-build +.RI "[ " DU-options " ]" " root-group main-function heapfile" +.br +.SH DESCRIPTION +This manual page documents briefly the +.B ml-build +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +The +.B ml-build +script is part of the +.B SML/NJ CM +(Compilation and Library Manager) that is used to generate standalone +programs. +.SH OPTIONS +A summary of options is included below. +.TP +.BI -D name = value +Set CM variable to given value. +.TP +.BI -D name +Set CM variable to 1. +.TP +.BI -U name +Unset CM variable. +.SH SEE ALSO +.BR sml (1), +.BR ml-lex (1), +.BR ml-makedepend (1), +.BR ml-yacc (1). +.br +The programs are documented fully by +.IR "CM: The SML/NJ Compilation and Library Manager, User Manual" , +Matthias Blume, which is +available via . +.SH AUTHOR +This manual page was written by Aaron Matthew Read , +for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/ml-burg.1 b/debian/ml-burg.1 new file mode 100644 index 0000000..add9d70 --- /dev/null +++ b/debian/ml-burg.1 @@ -0,0 +1,42 @@ +.TH ml-burg 1 "November 14, 2002" +.SH NAME +ml-burg \- a tree parser generator for Standard ML +.SH SYNOPSIS +.B ml-burg +.IR file .burg +.br +.SH DESCRIPTION +This manual page documents briefly the +.B ml-burg +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. + +The +.B ml-burg +program generates a Standard ML program to perform bottom-up rewriting +of an input tree. Cost information associated with each rewrite rule +is used to derive the minimum rewrite cost for the entire tree. A +successful reduction corresponds to rewriting the input tree to a +special non-terminal symbol called the +.IR "start non-terminal" . +Upon successful reduction, facilities are provided to walk the tree +emitting semantic actions corresponding to the rules that matched. + +When +.IR ml-burg " is presented with " file ".burg, the file " file ".sml" +is generated. +.SH SEE ALSO +.BR sml (1), +.BR ml-lex (1), +.BR ml-yacc (1), +.BR ml-makedepend (1), +.BR ml-build (1). +.br +The programs are documented fully by +.IR "The ML-Burg -- Documentation" ", Florent Guillaume and Lal George, " +which is available in +.IR /usr/share/doc/ml-burg/doc.pdf . +.SH AUTHOR +This manual page was written by Aaron Matthew Read , +for the Debian GNU/Linux system (but may be used by others) diff --git a/debian/ml-burg.examples b/debian/ml-burg.examples new file mode 100644 index 0000000..84e19bd --- /dev/null +++ b/debian/ml-burg.examples @@ -0,0 +1 @@ +ml-burg/example*.burg diff --git a/debian/ml-burg.install b/debian/ml-burg.install new file mode 100644 index 0000000..41747c6 --- /dev/null +++ b/debian/ml-burg.install @@ -0,0 +1,3 @@ +bin/.heap/ml-burg.*linux usr/lib/smlnj/bin/.heap +bin/ml-burg usr/lib/smlnj/bin +wrapper/ml-burg usr/bin diff --git a/debian/ml-burg.manpages b/debian/ml-burg.manpages new file mode 100644 index 0000000..57d34d1 --- /dev/null +++ b/debian/ml-burg.manpages @@ -0,0 +1 @@ +debian/ml-burg.1 diff --git a/debian/ml-lex.1 b/debian/ml-lex.1 new file mode 100644 index 0000000..31dbc9d --- /dev/null +++ b/debian/ml-lex.1 @@ -0,0 +1,31 @@ +.TH ml-lex 1 "October 25, 2002" +.SH NAME +ml-lex \- a parser generator for ML +.SH SYNOPSIS +.B ml-lex +.I file.lex +.br +.SH DESCRIPTION +This manual page documents briefly the +.B ml-lex +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +The +.B ml-lex +proogram generates a lexical analyzer from the specification in +.IR file.lex ", and produces the file, " file.lex.sml "." +.SH SEE ALSO +.BR sml (1), +.BR ml-yacc (1), +.BR ml-makedepend (1), +.BR ml-build (1). +.br +The programs are documented fully by +.IR "A lexical analyzer generator for Standard ML" , +Andrew W. Appel, James S. Mattson, and David R. Tarditi +which is available via +. +.SH AUTHOR +This manual page was written by Aaron Matthew Read , +for the Debian GNU/Linux system (but may be used by others) diff --git a/debian/ml-lex.docs b/debian/ml-lex.docs new file mode 100644 index 0000000..fd73359 --- /dev/null +++ b/debian/ml-lex.docs @@ -0,0 +1,3 @@ +ml-lex/lexgen.doc +ml-lex/mlex_int.doc +ml-lex/README diff --git a/debian/ml-lex.install b/debian/ml-lex.install new file mode 100644 index 0000000..6f22fba --- /dev/null +++ b/debian/ml-lex.install @@ -0,0 +1,3 @@ +bin/.heap/ml-lex.*linux usr/lib/smlnj/bin/.heap +bin/ml-lex usr/lib/smlnj/bin +wrapper/ml-lex usr/bin diff --git a/debian/ml-lex.manpages b/debian/ml-lex.manpages new file mode 100644 index 0000000..0904ffc --- /dev/null +++ b/debian/ml-lex.manpages @@ -0,0 +1 @@ +debian/ml-lex.1 diff --git a/debian/ml-lpt.docs b/debian/ml-lpt.docs new file mode 100644 index 0000000..ddafe21 --- /dev/null +++ b/debian/ml-lpt.docs @@ -0,0 +1,3 @@ +ml-lpt/todo +ml-lpt/ml-antlr/examples/ +ml-lpt/ml-antlr/README diff --git a/debian/ml-lpt.install b/debian/ml-lpt.install new file mode 100644 index 0000000..3899253 --- /dev/null +++ b/debian/ml-lpt.install @@ -0,0 +1,9 @@ +bin/.heap/ml-antlr.*linux usr/lib/smlnj/bin/.heap +bin/.heap/ml-ulex.*linux usr/lib/smlnj/bin/.heap +bin/ml-antlr usr/lib/smlnj/bin +bin/ml-ulex usr/lib/smlnj/bin +wrapper/ml-ulex usr/bin +wrapper/ml-antlr usr/bin +lib/ml-antlr-tool.cm usr/lib/smlnj/lib +lib/ml-ulex-tool.cm usr/lib/smlnj/lib +lib/ml-lpt-lib.cm usr/lib/smlnj/lib diff --git a/debian/ml-lpt.manpages b/debian/ml-lpt.manpages new file mode 100644 index 0000000..7c12775 --- /dev/null +++ b/debian/ml-lpt.manpages @@ -0,0 +1,2 @@ +debian/ml-ulex.1 +debian/ml-antlr.1 diff --git a/debian/ml-makedepend.1 b/debian/ml-makedepend.1 new file mode 100644 index 0000000..03a8f30 --- /dev/null +++ b/debian/ml-makedepend.1 @@ -0,0 +1,73 @@ +.TH ml-makedepend 1 "October 25, 2002" +.SH NAME +ml-makedepend \- list files a ML program depends upon +.SH SYNOPSIS +.B ml-makedepend +.RI "[ " DU-options " ] " +.RB "[ " -n " ] [ " -f +.IB makefile " ] " " project.cm target" +.br +.B ml-makedepend +.RI "[ " DU-options " ] " +.RB "[ " -a +.IR arch " ] [ " +.BI -o " os" +.RB " ] [ " -f +.IR makefile " ] " "project.cm target" +.br +.SH DESCRIPTION +This manual page documents briefly the +.B ml-makedepend +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +The +.B ml-makedepend +script is part of the +.B SML/NJ CM +(Compilation and Library Manager) that is used to generate +a list of files that a ML program depends on for use by +.BR make . +.SH OPTIONS +A summary of options is included below. +.TP +.B -n +.BR ml-makedepend " usually uses the " make +.RI variables " $(ARCH) " and " $(OPSYS) " +in the filenames for the +.IR Makefile ". " +This option disables this feature. +.TP +.BI -a " arch" +.RI "Use " arch " in place of " $(ARCH) . +.TP +.BI -o " os" +.RI "Use " os " in place of " $(OPSYS) . +.TP +.BI -f " makefile" +Name of the +.I makefile +to be used rather than the default +.IR Makefile . +.TP +.BI -D name = value +Set CM variable to given value. +.TP +.BI -D name +Set CM variable to 1. +.TP +.BI -U name +Unset CM variable. +.SH SEE ALSO +.BR sml (1), +.BR ml-lex (1), +.BR ml-build (1), +.BR ml-yacc (1). +.br +The programs are documented fully by +.IR "CM: The SML/NJ Compilation and Library Manager, User Manual" , +Matthias Blume, which is +available via . +.SH AUTHOR +This manual page was written by Aaron Matthew Read , +for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/ml-nlffigen.1 b/debian/ml-nlffigen.1 new file mode 100644 index 0000000..7147aa0 --- /dev/null +++ b/debian/ml-nlffigen.1 @@ -0,0 +1,257 @@ +.TH ml-nlffigen 1 "April 25, 2003" +.SH NAME +ml-nlffigen \- SML No Longer Foreign Function Interface tool +.SH SYNOPSIS +.B ml-nlffigen +.RI [ option ] +-- +.I file +.br +.SH DESCRIPTION +This manual page documents briefly the +.B ml-nlffigen +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +.PP +.BR ml-nlffigen , +a glue-code generator for +the new +.SM NLFFI +foreign function interface. The generator reads +C source code and emits ML code along with a description file for CM. +.SH OPTIONS +A summary of options is included below. +.IP "\fB-dir \fIdir" 4 +.PD 0 +.IP "\fB-d \fId" 4 +.PD +Output directory where all generated files are placed. +.BR default : +.IR NLFFI-Generated . +.IP "\fB-allSU" +.PD +Instructs +.B ml-nlffigen +to include all structs and unions, +even those that are defined in included files (as opposed +to files explicitly listed as arguments). +.BR default : +.IR off . +.IP "\fB-width \fIw" +.PD 0 +.IP "\fB-w \fIw" +.PD +Sets output line width (just a guess) to +.IR w . +.BR default : +.IR 75 . +.IP "\fB-smloption \fIx" +.PD +Instructs +.B ml-nlffigen +to include +.I x +into the list +of options to annotate .sml entries in the generated .cm +file with. +.BR default : +.IR noguid . +.IP "\fB-guid" +.PD +Removes the default +.B -noguid +from the list of sml options. +(This re-enables strict handling of type- and object-identity +but can have negative impact on CM cutoff recompilation +performance if the programmer routinely removes the entire +tree of ml-nlffigen-generated files during development.) +.IP "\fB-lambdasplit \fIx" +.PD 0 +.IP "\fB-ls \fIx" +.PD +Instructs +.B ml-nlffigen +to generate "lambdasplit" +options for all ML files (see CM manual for what this means; +it does not currently work anyway because cross-module +inlining is broken). +.BR default : +nothing. +.IP "\fB-target \fIt" +.PD 0 +.IP "\fB-t \fIt" +.PD +Sets the target to +.I t +(which must be one of "sparc-unix","x86-unix", or "x86-win32"). +.BR default : +current architecture. +.IP "\fB-light" +.PD 0 +.IP "\fB-l" +.PD +Suppress "heavy" versions of function wrappers and +field accessors; also resets any earlier +.B -heavy +to default. +.BR default ": not suppressed." +.IP "\fB-heavy" +.PD 0 +.IP "\fB-h" +.PD +suppress "light" versions of function wrappers and +field accessors; also resets any earlier +.B -light +to default. +.BR default ": not suppressed" +.IP "\fB-namedargs" +.PD 0 +.IP "\fB-na" +.PD +Instruct +.B ml-nlffigen +to generated function wrappers that +use named arguments (ML records) instead of tuples if +there is enough information for this in the C source; +(this is not always very useful). +.BR default ": off." +.IP "\fB-nocollect" +.PD +Do not do the following: +Collect enum constants from truly unnamed enumerations +(those without tags that occur at toplevel or in an +unnamed context, i.e., not in a typedef or another +named struct or union) into a single artificial +enumeration tagged by ' (single apostrohe). The corresponding +ML-side representative will be a structure named E_'. +.IP "\fB-enum-constructors" +.PD 0 +.IP "\fB-ec" +.PD +When possible (i.e., if all values of a given enumeration +are different from each other), make the ML representation +type of the enumeration a datatype. The default (and +fallback) is to make that type the same as +.BR MLRep.Signed.int . +.IP "\fB-libhandle \fIh" +.PD 0 +.IP "\fB-lh \fIh" +.PD +Use the variable +.I h +to refer to the handle to the +shared library object. Given the constraints of CM, +.I h +must have the form of a long ML identifier, e.g., +.BR MyLibrary.libhandle . default : Library.libh . +.IP "\fB-include \fIf" +.PD 0 +.IP "\fB-add \fIf" +.PD +Mention file +.I f +in the generated .cm file. This option +is necessary at least once for providing the library handle. +It can be used arbitrarily many times, resulting in more +than one such programmer-supplied file to be mentioned. +If +.I f +is relative, then it must be relative to the directory +specified in the +.BI -dir " dir" +option. +.IP "\fB-cmfile \fIf" +.PD 0 +.IP "\fB-cm \fIf" +.PD +Specify name of the generated .cm file, relative to +the directory specified by the +.BI -dir " dir" +option. +.BR default : +.IR nlffi-generated.cm . +.IP "\fB-cppopt \fIo" +.PD +The string +.I o +gets added to the list of options to be +passed to cpp (the C preprocessor). The list of options +gets substituted for +.I %o +in the cpp command line template. +.IP "\fB-U \fIx" +.PD +The string +.BI -U x +gets added to the list of cpp options. +.IP "\fB-D \fIx" +.PD +The string +.BI -D x +gets added to the list of cpp options. +.IP "\fB-I \fIx" +.PD +The string +.BI -I x +gets added to the list of cpp options. +.IP "\fB-version" +.PD +Just write the version number of +.B ml-nlffigen +to standard +output and then quit. +.IP "\fB-match \fIr" +.PD 0 +.IP "\fB-m \fIr" +.PD +Normally +.B ml-nlffigen +will include ML definitions for a C +declaration if the C declaration textually appears in +one of the files specified at the command line. Definitions +in #include-d files will normally not appear (unless +their absence would lead to inconsistencies). +By specifying +.BI -match r +, +.B ml-nlffigen +will also include +definitions that occur in recursively #include-d files +for which the +.BR awk -style +regular expression +.I r +matches their names. +.IP "\fB-prefix \fIp" +.PD 0 +.IP "\fB-p \fIp" +.PD +Generated ML structure names will all have prefix +.I p +(in addition to the usual "S_" or "U_" or "F_" ...) +.IP "\fB-gensym \fIg" +.IP "\fB-g \fIg" +Names "gensym-ed" by +.B ml-nlffigen +(for anonymous struct/union/ +enums) will get an additional suffix +.RI _ g. +(This should +be used if output from several indepdendent runs of +.B ml-nlffigen +are to coexist in the same ML program.) +.IP "\fB--" +Terminate processing of options, remaining arguments are +taken to be C sources. +.SH SEE ALSO +.BR sml (1), +.BR ml-build (1). +.br +This program described in more detail in +.I No-Longer-Foreign: Teaching an ML compiler to speak C \"natively\" +, Matthias Blume, +which is available via . +.SH AUTHOR +This manual page was written by Aaron Matthew Read , +for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/ml-nlffigen.docs b/debian/ml-nlffigen.docs new file mode 100644 index 0000000..91af631 --- /dev/null +++ b/debian/ml-nlffigen.docs @@ -0,0 +1 @@ +nlffi/gen/README diff --git a/debian/ml-nlffigen.install b/debian/ml-nlffigen.install new file mode 100644 index 0000000..7e1ee6d --- /dev/null +++ b/debian/ml-nlffigen.install @@ -0,0 +1,3 @@ +bin/.heap/ml-nlffigen.*linux usr/lib/smlnj/bin/.heap +bin/ml-nlffigen usr/lib/smlnj/bin +wrapper/ml-nlffigen usr/bin diff --git a/debian/ml-nlffigen.manpages b/debian/ml-nlffigen.manpages new file mode 100644 index 0000000..31b15b4 --- /dev/null +++ b/debian/ml-nlffigen.manpages @@ -0,0 +1 @@ +debian/ml-nlffigen.1 diff --git a/debian/ml-ulex.1 b/debian/ml-ulex.1 new file mode 100644 index 0000000..5bcd676 --- /dev/null +++ b/debian/ml-ulex.1 @@ -0,0 +1,43 @@ +.TH ml-ulex 1 "September 4, 2009" +.SH NAME +ml-ulex \- lexer generator for Standard ML +.SH SYNOPSIS +.B ml-ulex +.RI "[--dot] [--dump] [--match] [--ml-lex-mode] [--minimize] file" +.br +.SH DESCRIPTION +This manual page documents briefly the +.B ml-ulex +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +The +.B ml-ulex +script is part of the +.B SML/NJ CM +(Compilation and Library Manager) that is used to generate standalone +programs. +.SH OPTIONS +A summary of some of the options is included below. +.TP +.BI --dot +Generate DOT output (for graphviz). +.TP +.BI --match +Enter interactive matching mode. +.TP +.BI --ml-lex-mode +Operate in ml-lex compatibility mode. +.SH SEE ALSO +.BR sml (1), +.BR ml-antlr (1), +.BR ml-lex (1), +.BR ml-yacc (1). +.br +The programs are documented fully by +.IR "CM: The SML/NJ Compilation and Library Manager, User Manual" , +Matthias Blume, which is +available via . +.SH AUTHOR +This manual page was written by Daniel Moerner , +for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/ml-yacc.1 b/debian/ml-yacc.1 new file mode 100644 index 0000000..b55e06c --- /dev/null +++ b/debian/ml-yacc.1 @@ -0,0 +1,30 @@ +.TH ml-yacc 1 "October 25, 2002" +.SH NAME +ml-yacc \- a parser generator for ML +.SH SYNOPSIS +.B ml-yacc +.I file +.br +.SH DESCRIPTION +This manual page documents briefly the +.B ml-yacc +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +The +.B ml-yacc +program generates a parser for an LALR language from the specification in +.IR file ". Two files are generated, " file.sig " and " file.sml . +.SH SEE ALSO +.BR sml (1), +.BR ml-lex (1), +.BR ml-makedepend (1), +.BR ml-build (1). +.br +The programs are documented fully by +.IR "The ML-Yacc User's Manual" ", David R. Tarditi and Andrew W. Appel, " +which is +available via . +.SH AUTHOR +This manual page was written by Aaron Matthew Read , +for the Debian GNU/Linux system (but may be used by others) diff --git a/debian/ml-yacc.docs b/debian/ml-yacc.docs new file mode 100644 index 0000000..d6aeb5e --- /dev/null +++ b/debian/ml-yacc.docs @@ -0,0 +1,2 @@ +ml-yacc/README +ml-yacc/doc diff --git a/debian/ml-yacc.examples b/debian/ml-yacc.examples new file mode 100644 index 0000000..050c79b --- /dev/null +++ b/debian/ml-yacc.examples @@ -0,0 +1 @@ +ml-yacc/examples/* diff --git a/debian/ml-yacc.install b/debian/ml-yacc.install new file mode 100644 index 0000000..5930e54 --- /dev/null +++ b/debian/ml-yacc.install @@ -0,0 +1,4 @@ +bin/.heap/ml-yacc.*linux usr/lib/smlnj/bin/.heap +bin/ml-yacc usr/lib/smlnj/bin +lib/SMLNJ-ML-YACC-LIB usr/lib/smlnj/lib +wrapper/ml-yacc usr/bin diff --git a/debian/ml-yacc.manpages b/debian/ml-yacc.manpages new file mode 100644 index 0000000..b08063a --- /dev/null +++ b/debian/ml-yacc.manpages @@ -0,0 +1 @@ +debian/ml-yacc.1 diff --git a/debian/nowhere.1 b/debian/nowhere.1 new file mode 100644 index 0000000..c1fe330 --- /dev/null +++ b/debian/nowhere.1 @@ -0,0 +1,59 @@ +.TH nowhere 1 "July 21, 2004" +.SH NAME +nowhere \- a tree parser generator for Standard ML +.SH SYNOPSIS +.B nowhere +.I file +.br +.SH DESCRIPTION +This manual page documents briefly the +.B nowhere +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. + +The +.B nowhere +program is a simple source to source translation tool that expands out +case expressions with conditional patterns. + +Conditional patterns use the "where" keyword. For example: + + case l of + [x,y,z] where x=1 => 1 + | _ => 2 + +means the same as: + + case l of + [1,y,z] => 1 + | _ => 2 + +Currently, the input file must be of the following form: + + local + + in + + end + + +should include all datatypes definitions that are used inside the +.IR body . +It is only for the tool's benefit and does not appear in the output. +Only +.I body +appears at the output. You can use the special declaration + + include "filename" + +to import extra definitions. + +The tool translates all case expressions with guards into the appropriate code. + +.SH SEE ALSO +.I /usr/share/doc/nowhere/README +.br +.SH AUTHOR +This manual page was written by Aaron Read . for the +Debian GNU/Linux system (but may be used by others) diff --git a/debian/nowhere.docs b/debian/nowhere.docs new file mode 100644 index 0000000..5fdb028 --- /dev/null +++ b/debian/nowhere.docs @@ -0,0 +1 @@ +MLRISC/Tools/nowhere/README diff --git a/debian/nowhere.install b/debian/nowhere.install new file mode 100644 index 0000000..19fd20a --- /dev/null +++ b/debian/nowhere.install @@ -0,0 +1,3 @@ +bin/.heap/nowhere.*linux usr/lib/smlnj/bin/.heap +bin/nowhere usr/lib/smlnj/bin +wrapper/nowhere usr/bin diff --git a/debian/nowhere.manpages b/debian/nowhere.manpages new file mode 100644 index 0000000..c117c5e --- /dev/null +++ b/debian/nowhere.manpages @@ -0,0 +1 @@ +debian/nowhere.1 diff --git a/debian/patches/use-psfig-not-epsfig.diff b/debian/patches/use-psfig-not-epsfig.diff new file mode 100644 index 0000000..e9edb2b --- /dev/null +++ b/debian/patches/use-psfig-not-epsfig.diff @@ -0,0 +1,89 @@ +Description: Port MLRISC latex documentation to epsfig.sty + Upstream uses the deprecated psfig.sty package, which is no longer in + TeXLive 2009. This patch uses the drop-in substitute wrapper, epsfig.sty. + . + The long-term solution will be to port the documentation to use the + graphicx package directly. +Forwarded: http://smlnj-gforge.cs.uchicago.edu/tracker/index.php?func=detail&aid=53&group_id=33&atid=215 +Author: Daniel Moerner +Last-Update: 2010-02-09 + +diff --git a/MLRISC/Doc/latex/graphs.tex b/MLRISC/Doc/latex/graphs.tex +index 01e626d..992f64a 100644 +--- a/MLRISC/Doc/latex/graphs.tex ++++ b/MLRISC/Doc/latex/graphs.tex +@@ -877,7 +877,7 @@ with sources and targets in $S$. $S$ must be a subset of $V$. + + \begin{wrapfigure}{r}{3in} + \begin{Boxit} +- \psfig{figure=../pictures/eps/trace.eps,width=2.8in} ++ \epsfig{figure=../pictures/eps/trace.eps,width=2.8in} + \end{Boxit} + \label{fig:trace-view} + \caption{A trace view} +@@ -910,7 +910,7 @@ be both since it exits from \sml{G} and enters into \sml{A}. + \end{SML} + \begin{wrapfigure}{r}{3in} + \begin{Boxit} +- \psfig{figure=../pictures/eps/subgraph.eps,width=2.8in} ++ \epsfig{figure=../pictures/eps/subgraph.eps,width=2.8in} + \end{Boxit} + \label{fig:acyclic-subgraph-view} + \caption{An acyclic subgraph} +diff --git a/MLRISC/Doc/latex/mlrisc-ir.tex b/MLRISC/Doc/latex/mlrisc-ir.tex +index c346baa..f437e22 100644 +--- a/MLRISC/Doc/latex/mlrisc-ir.tex ++++ b/MLRISC/Doc/latex/mlrisc-ir.tex +@@ -187,7 +187,7 @@ operate on more complex representations which use this + representation as the base layer. + \begin{wrapfigure}{r}{4.5in} + \begin{Boxit} +- \psfig{figure=../pictures/eps/mlrisc-IR.eps,width=4.5in} ++ \epsfig{figure=../pictures/eps/mlrisc-IR.eps,width=4.5in} + \end{Boxit} + \caption{The MLRISC IR} + \end{wrapfigure} +@@ -514,7 +514,7 @@ These functions have the following meanings: + \end{SML} + \begin{Figure} + \begin{boxit} +-\cpsfig{figure=../pictures/eps/tail-duplication.eps,width=3in} ++\cepsfig{figure=../pictures/eps/tail-duplication.eps,width=3in} + \end{boxit} + \label{fig:tail-duplication} + \caption{Tail-duplication} +diff --git a/MLRISC/Doc/latex/mltex.sty b/MLRISC/Doc/latex/mltex.sty +index 04d3477..8a30680 100644 +--- a/MLRISC/Doc/latex/mltex.sty ++++ b/MLRISC/Doc/latex/mltex.sty +@@ -5,7 +5,7 @@ + \ProvidesPackage{mltex}[2000/2/12 defines mltex environment] + + \usepackage{latexsym} +-\usepackage{psfig} ++\usepackage{epsfig} + \usepackage{fancyheadings} + \usepackage{sml} + \usepackage{color} +@@ -34,7 +34,7 @@ + + % Images and Figures + \newcommand{\image}[3]{} +-\newcommand{\cpsfig}[1]{\centerline{\psfig{#1}}} ++\newcommand{\cepsfig}[1]{\centerline{\epsfig{#1}}} + + % Formatting + \newenvironment{Bold}{\begingroup\bf}{\endgroup} +diff --git a/MLRISC/Doc/latex/mltex.tex b/MLRISC/Doc/latex/mltex.tex +index c9cbdbb..343d6fe 100644 +--- a/MLRISC/Doc/latex/mltex.tex ++++ b/MLRISC/Doc/latex/mltex.tex +@@ -104,7 +104,7 @@ environments and macros, and will translate them into HTML equivalents. + \section \subsection \subsubsection \paragraph + \ref \label + \noindent \linebreak +- \psfig ++ \epsfig + \end{verbatim} + + \subsection{Bugs and Shortcomings} diff --git a/debian/pkg-deregister b/debian/pkg-deregister new file mode 100644 index 0000000..67f5b76 --- /dev/null +++ b/debian/pkg-deregister @@ -0,0 +1,17 @@ +#!/bin/sh + +set -e + +SMLNJ_HOME=/usr/lib/smlnj + +list=/var/lib/dpkg/info/$1.list + +for l in $(grep "$SMLNJ_HOME/lib/[^.][^/]*$" $list) ; do + base=$(basename $l) + $SMLNJ_HOME/bin/deregister $base +done + +for b in $(grep "$SMLNJ_HOME/bin/[^.][^/]*$" $list) ; do + base=$(basename $b) + $SMLNJ_HOME/bin/deregister $base +done diff --git a/debian/pkg-register b/debian/pkg-register new file mode 100644 index 0000000..0f16088 --- /dev/null +++ b/debian/pkg-register @@ -0,0 +1,17 @@ +#!/bin/sh + +set -e + +SMLNJ_HOME=/usr/lib/smlnj + +list=/var/lib/dpkg/info/$1.list + +for l in $(grep "$SMLNJ_HOME/lib/[^.][^/]*$" $list) ; do + base=$(basename $l) + $SMLNJ_HOME/bin/register $base $base +done + +for b in $(grep "$SMLNJ_HOME/bin/[^.][^/]*$" $list) ; do + base=$(basename $b) + $SMLNJ_HOME/bin/register $base ../bin +done diff --git a/debian/postinst.in b/debian/postinst.in new file mode 100644 index 0000000..87faf29 --- /dev/null +++ b/debian/postinst.in @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +@SMLNJ_HOME@/bin/pkg-register @PKG@ + +#DEBHELPER# diff --git a/debian/prerm.in b/debian/prerm.in new file mode 100644 index 0000000..eecb019 --- /dev/null +++ b/debian/prerm.in @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +@SMLNJ_HOME@/bin/pkg-deregister @PKG@ + +#DEBHELPER# diff --git a/debian/register b/debian/register new file mode 100644 index 0000000..1def8e9 --- /dev/null +++ b/debian/register @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +if [ $# -ne 2 ] ; then + echo "usage: register name target" + exit 1 +fi + +name=$1 +target=$2 + +/usr/lib/smlnj/bin/deregister $name + +echo "$name $target" >> /usr/lib/smlnj/lib/pathconfig diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..d0d3722 --- /dev/null +++ b/debian/rules @@ -0,0 +1,193 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +export DH_OPTIONS + +SHELL:=/bin/sh + +ROOT:=$(CURDIR) + +CONFIGDIR:=$(ROOT)/config +SRCDIR:=$(ROOT)/src +BS_SML:=$(ROOT)/bootstrap/bin/sml +BS_LINK:=$(ROOT)/bootstrap/bin/.link-sml + +SMLNJ_HOME:=/usr/lib/smlnj +BINDIR:=$(SMLNJ_HOME)/bin +HEAPDIR:=$(BINDIR)/heap +RUNDIR:=$(BINDIR)/run +LIBDIR:=$(BINDIR)/lib + +VERSION=$(shell cat $(CONFIGDIR)/version) + +debscripts:=$(addprefix debian/,deregister mkorig pkg-deregister pkg-register register) + +srcdirs:=$(basename $(wildcard *tgz)) +basedirs:=$(basename $(notdir $(wildcard base/*tgz))) + +notlibs:=smlnj-runtime smlnj-doc +libpkgs:=$(filter-out $(notlibs),$(shell dh_listpackages)) +postinsts:=$(addsuffix .postinst,$(addprefix debian/,$(libpkgs))) +prerms:=$(addsuffix .prerm,$(addprefix debian/,$(libpkgs))) + +vars.sed: + echo "s,@SHELL@,$(SHELL),g" > vars.sed + echo "s,@SMLNJ_HOME@,$(SMLNJ_HOME)," >> vars.sed + echo "s,@BINDIR@,$(BINDIR)," >> vars.sed + echo "s,@VERSION@,$(VERSION)," >> vars.sed + +arch-n-opsys: $(CONFIGDIR)/_arch-n-opsys vars.sed + cat $< | sed -f vars.sed > $@ + chmod 777 $@ + +$(BS_SML): + for f in *tgz; do tar zxf $$f -C bootstrap; done + mkdir -p bootstrap/base + for f in base/*tgz; do tar zxf $$f -C bootstrap/base; done + cd bootstrap && URLGETTER=/bin/false ./config/install.sh + +boot.%.tgz: $(BS_SML) + cd base/system && echo "CMB.make();" | $< "\$$smlnj/cmb.cm"; + cd base/system/sml.boot.$* \ + && $(BS_LINK) @SMLboot=BOOTLIST @SMLheap=sml @SMLalloc=1M \ + @SMLrebuild="foo" + rm -r base/system/sml.boot.$* + rm -r base/system/*.bin.$* + mv base/system/foo.boot.$* base/system/sml.boot.$* + cd base/system && tar zcf $(ROOT)/$@ sml.boot.$*; + +boot: arch-n-opsys + eval `./arch-n-opsys` && $(MAKE) -f debian/rules boot.$$ARCH-unix.tgz; + +smlnj: boot + config/install.sh + + mkdir -p wrapper + for c in `cd bin && ls`; do \ + cat debian/wrapper.in | sed -f vars.sed -e "s/@CMD@/$$c/g" > wrapper/$$c; \ + chmod 555 wrapper/$$c; \ + done + +debian/%.postinst: debian/postinst.in vars.sed + cat $< | sed -f vars.sed -e "s/@PKG@/$*/" > $@ + +debian/%.prerm: debian/prerm.in vars.sed + cat $< | sed -f vars.sed -e "s/@PKG@/$*/" > $@ + +instscripts: $(postinsts) $(prerms) + +unpack-source: unpack-source-stamp +unpack-source-stamp: + cd base && for t in $(basedirs); do tar zxf $$t.tgz; done + for t in $(srcdirs); do tar zxf $$t.tgz; done + touch $@ + +# Architecture +build: build-arch + +build-arch: build-arch-stamp +build-arch-stamp: unpack-source-stamp + mkdir -p debscripts + install -m 555 $(debscripts) debscripts + + cat debian/patches/* | patch -N -p1 1>/dev/null || true + cp config/targets config/targets.orig + cp debian/targets config/targets + $(MAKE) -f debian/rules smlnj + + touch $@ + +build-indep: build-indep-stamp +build-indep-stamp: unpack-source-stamp +ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS))) + cd base/cm/Doc; latex manual.tex && latex manual.tex && dvipdfmx -o cm_manual.pdf manual.dvi + cd ml-lpt/doc; latex manual.tex && latex manual.tex && dvipdfmx -o ml-lpt_manual.pdf manual.dvi + cd nlffi/lib/Doc/manual; latex nlffi.tex && latex nlffi.tex && dvipdfmx nlffi.dvi + cd MLRISC/Doc; make + cd MLRISC/Tools/Doc; make + cd ml-lex; latex lexgen.tex && latex lexgen.tex && dvipdfmx lexgen.dvi +endif + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f *-stamp + + rm -f vars.sed + rm -f $(prerms) $(postinsts) + rm -f arch-n-opsys + rm -f boot*tgz + cd bootstrap && rm -rf bin ckit config lib src + rm -rf $(SRCDIR)/system/foo.* $(SRCDIR)/system/sml.* + rm -rf bin lib wrapper debscripts + + cd base && rm -rf $(basedirs) + rm -rf $(srcdirs) + rm -rf sml.boot.* + + cd bootstrap && rm -rf `ls | grep -v unix.tgz` + + dh_clean + +install: install-arch-stamp install-indep-stamp + +install-indep: build-indep-stamp + dh_testdir + dh_testroot + dh_installdirs -i + dh_install -i + +install-arch: build-arch-stamp instscripts + dh_testdir + dh_testroot + dh_prep + dh_installdirs -s + + dh_installchangelogs -psmlnj base/compiler/ChangeLog upstream + dh_installchangelogs -plibcml-smlnj cml/CHANGES upstream + dh_installchangelogs -plibexene-smlnj eXene/CHANGES upstream + dh_installchangelogs -plibsmlnj-smlnj smlnj-lib/CHANGES upstream + dh_installchangelogs -plibckit-smlnj ckit/HISTORY upstream + + dh_install -s + +# make sure that the build path doesn't sneak in the link and run scripts + sed -i 's/BIN_DIR=".*smlnj.*"/BIN_DIR="\/usr\/lib\/smlnj\/bin\/"/' $(CURDIR)/debian/smlnj-runtime/usr/lib/smlnj/bin/.*-sml +# install base pathconfig rules to smlnj-runtime package + install -m 644 config/extrapathconfig $(CURDIR)/debian/smlnj-runtime/usr/lib/smlnj/lib/pathconfig + +binary-arch: install-arch + dh_testdir -a + dh_testroot -a + dh_installchangelogs -a + dh_installdocs --exclude=".cvsignore" -a + dh_installexamples --exclude=".cvsignore" -a + dh_installman -a + dh_strip -a + dh_compress -a + dh_fixperms -a + dh_installdeb -a + dh_shlibdeps -a + dh_gencontrol -a + dh_md5sums -a + dh_builddeb -a + +binary-indep: install-indep + dh_testdir -i + dh_testroot -i + dh_installchangelogs -i + dh_installdocs --exclude=".cvsignore" -i + dh_installexamples --exclude=".cvsignore" -i + dh_installman -i + dh_strip -i + dh_compress -i + dh_fixperms -i + dh_installdeb -i + dh_shlibdeps -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +binary: binary-arch +.PHONY: unpack-source build build-arch build-indep clean binary-arch binary-indep binary install install-arch install-indep diff --git a/debian/sml.1 b/debian/sml.1 new file mode 100644 index 0000000..e7649b6 --- /dev/null +++ b/debian/sml.1 @@ -0,0 +1,101 @@ +.\" Hey, EMACS: -*- nroff -*- +.TH SML 1 "October 25, 2002" +.SH NAME +sml \- SML compiler +.SH SYNOPSIS +.B sml +.RI "[ " rtsargs " ] [ " options " ] [" files " ]" +.SH DESCRIPTION +This manual page documents briefly the +.B sml +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +This is a compiler for Standard ML which may be used +interactively. +.SH OPTIONS +A summary of options is included below. +.SS rtsargs: +.TP +.BI @SMLload= heapimage +Start specified heap image. +.TP +.BI @SMLalloc= size +Specify size of allocation area. +.TP +.BI @SMLcmdname= name +Set command name. +.TP +.B @SMLquiet +Load heap image silently. +.TP +.B @SMLverbose +Show heap image load progress. +.TP +.B @SMLobjects +Show list of executable objects. +.TP +.BI @SMLdebug= file +Write debugging info to file. +.SS options: +.TP +.BI -D name = value +Set CM variable to given value. +.TP +.BI -D name +Set CM variable to 1. +.TP +.BI -U name +Unset CM variable. +.TP +.BI -C control = value +Set named control. +.TP +.B -H +Produce complete help listing. +.TP +.B -h +Produce minimal help listing. +.TP +.BI -h level +Help with obscurity limit. +.TP +.B -S +List all current settings. +.TP +.BI -s level +Limited list of settings. + +.SS files: +.TP +.I file.cm +CM.make or CM.autoload. +.TP +.B -m +Switch to CM.make. +.TP +.B -a +Switch to CM.autoload; default. +.TP +.I file.sig +Use. +.TP +.I file.sml +Use. +.TP +.I file.fun +Use. + + +.SH SEE ALSO +.BR ml-build (1), +.BR ml-lex (1), +.BR ml-makedepend (1), +.BR ml-yacc (1). +.br +Standard ML is defined in +.IR "The Definition of Standard ML" , +Robin Milner, Mads Tofte, Robert Harper and David MacQueen. +.SH AUTHOR +This manual page was written by Aaron Matthew Read , +for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/smlnj-doc.doc-base.ml-lpt b/debian/smlnj-doc.doc-base.ml-lpt new file mode 100644 index 0000000..963b900 --- /dev/null +++ b/debian/smlnj-doc.doc-base.ml-lpt @@ -0,0 +1,14 @@ +Document: ml-lpt +Title: SML/NJ Language Processing Tools: User Guide +Author: Aaron Turon +Abstract: This manual describes two new tools, ml-ulex and ml-antlr, that + follow tradition in separating scanning from parsing, but break from + tradition in their implementation: ml-ulex is based on regular expression + derivatives rather than subset-construction, and ml-antlr is based on LL(k) + parsing rather than LALR(1) parsing. +Section: Programming + +Format: PDF +Files: /usr/share/doc/smlnj-doc/ml-lpt_manual.pdf.gz + /usr/share/doc/smlnj-doc/impl-pic.pdf.gz + /usr/share/doc/smlnj-doc/design.pdf.gz diff --git a/debian/smlnj-doc.doc-base.mlrisc b/debian/smlnj-doc.doc-base.mlrisc new file mode 100644 index 0000000..b79885b --- /dev/null +++ b/debian/smlnj-doc.doc-base.mlrisc @@ -0,0 +1,13 @@ +Document: mlrisc +Title: MLRISC Manual +Author: Lal George, Allen Leung +Abstract: Manual for MLRISC, a framework for retargetable and + optimizing compiler back ends. +Section: Programming + +Format: HTML +Index: /usr/share/doc/smlnj-doc/mlrisc/index.html +Files: /usr/share/doc/smlnj-doc/mlrisc/*.html + +Format: PostScript +Files: /usr/share/doc/smlnj-doc/mlrisc.ps.gz diff --git a/debian/smlnj-doc.doc-base.mltex b/debian/smlnj-doc.doc-base.mltex new file mode 100644 index 0000000..7a5b105 --- /dev/null +++ b/debian/smlnj-doc.doc-base.mltex @@ -0,0 +1,11 @@ +Document: mltex +Title: MLTeX - A special package for writing MLRISC documentation +Author: Allen Leung, Lal George +Abstract: MLTeX is a special LaTeX package for writing MLRISC + documentation. It is similar to the latex2html tool except that MLTeX has + special environments for documentating Standard ML code. In addition, there + is an accompanying tool called mltex2html for generating HTML pages. +Section: Programming + +Format: PostScript +Files: /usr/share/doc/smlnj-doc/mltexdoc.ps.gz diff --git a/debian/smlnj-doc.doc-base.nlffi b/debian/smlnj-doc.doc-base.nlffi new file mode 100644 index 0000000..5769df5 --- /dev/null +++ b/debian/smlnj-doc.doc-base.nlffi @@ -0,0 +1,8 @@ +Document: nlffi +Title: NLFFI - A New SML/NJ Foreign-Function Interface +Author: Matthias Blume +Abstract: This document describes the use of the NLFFI. +Section: Programming + +Format: PDF +Files: /usr/share/doc/smlnj-doc/nlffi.pdf.gz diff --git a/debian/smlnj-doc.doc-base.nowhere b/debian/smlnj-doc.doc-base.nowhere new file mode 100644 index 0000000..524a598 --- /dev/null +++ b/debian/smlnj-doc.doc-base.nowhere @@ -0,0 +1,10 @@ +Document: nowhere +Title: Nowhere - A pattern matching tool for SML/NJ +Author: Allen Leung +Abstract: An overview of the use of nowhere to translate SML programs that + use conditional pattern matching into normal SML code. +Section: Programming + +Format: PostScript +Files: /usr/share/doc/smlnj-doc/nowhere.ps.gz + diff --git a/debian/smlnj-doc.doc-base.smlnjcm b/debian/smlnj-doc.doc-base.smlnjcm new file mode 100644 index 0000000..f179f07 --- /dev/null +++ b/debian/smlnj-doc.doc-base.smlnjcm @@ -0,0 +1,9 @@ +Document: smlnjcm +Title: CM - The SML/NJ Compilation and Library Manager +Author: Matthias Blume +Abstract: User Manual for the new implementation of the Compilation and + Library Manager in SML/NJ 110.40 and later. +Section: Programming + +Format: PDF +Files: /usr/share/doc/smlnj-doc/cm_manual.pdf.gz diff --git a/debian/smlnj-doc.docs b/debian/smlnj-doc.docs new file mode 100644 index 0000000..94df895 --- /dev/null +++ b/debian/smlnj-doc.docs @@ -0,0 +1,5 @@ +MLRISC/Doc/latex/*.ps +MLRISC/Tools/Doc/nowhere.ps +base/cm/Doc/*.pdf +ml-lpt/doc/*.pdf +nlffi/lib/Doc/manual/*.pdf diff --git a/debian/smlnj-doc.install b/debian/smlnj-doc.install new file mode 100644 index 0000000..eae2566 --- /dev/null +++ b/debian/smlnj-doc.install @@ -0,0 +1,3 @@ +MLRISC/Doc/html/*.html /usr/share/doc/smlnj-doc/mlrisc/ +MLRISC/Doc/graphics/ /usr/share/doc/smlnj-doc/mlrisc/ +MLRISC/Doc/pictures/ /usr/share/doc/smlnj-doc/mlrisc/ diff --git a/debian/smlnj-runtime.dirs b/debian/smlnj-runtime.dirs new file mode 100644 index 0000000..38eb1d8 --- /dev/null +++ b/debian/smlnj-runtime.dirs @@ -0,0 +1 @@ +usr/lib/smlnj/lib diff --git a/debian/smlnj-runtime.install b/debian/smlnj-runtime.install new file mode 100644 index 0000000..3dfa08a --- /dev/null +++ b/debian/smlnj-runtime.install @@ -0,0 +1 @@ +bin/.arch-n-opsys bin/.link-sml bin/.run-sml bin/.run debscripts/* usr/lib/smlnj/bin diff --git a/debian/smlnj-runtime.postinst b/debian/smlnj-runtime.postinst new file mode 100644 index 0000000..0e529f7 --- /dev/null +++ b/debian/smlnj-runtime.postinst @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +SMLNJ_HOME=/usr/lib/smlnj + +touch $SMLNJ_HOME/lib/pathconfig +chmod 664 $SMLNJ_HOME/lib/pathconfig + +$SMLNJ_HOME/bin/register bindir ../bin + +#DEBHELPER# diff --git a/debian/smlnj-runtime.postrm b/debian/smlnj-runtime.postrm new file mode 100644 index 0000000..61d4fa9 --- /dev/null +++ b/debian/smlnj-runtime.postrm @@ -0,0 +1,9 @@ +#!/bin/sh + +set -e + +if [ "$1" = "purge" ] ; then + rm -f /usr/lib/smlnj/lib/pathconfig +fi + +#DEBHELPER# diff --git a/debian/smlnj-runtime.prerm b/debian/smlnj-runtime.prerm new file mode 100644 index 0000000..80b9e9f --- /dev/null +++ b/debian/smlnj-runtime.prerm @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +/usr/lib/smlnj/bin/deregister bindir + +#DEBHELPER# diff --git a/debian/smlnj.docs b/debian/smlnj.docs new file mode 100644 index 0000000..eb4f1e4 --- /dev/null +++ b/debian/smlnj.docs @@ -0,0 +1,2 @@ +base/system/README +base/cm/Overview diff --git a/debian/smlnj.install b/debian/smlnj.install new file mode 100644 index 0000000..b19b8f9 --- /dev/null +++ b/debian/smlnj.install @@ -0,0 +1,5 @@ +bin/.heap/sml.*linux usr/lib/smlnj/bin/.heap +bin/sml bin/ml-build bin/ml-makedepend usr/lib/smlnj/bin +lib/SMLNJ-MLRISC lib/SMLNJ-BASIS lib/burg-ext.cm lib/dir-tool.cm lib/grm-ext.cm lib/lex-ext.cm lib/make-tool.cm lib/mlburg-tool.cm lib/mllex-tool.cm lib/mlyacc-tool.cm lib/noweb-tool.cm lib/nw-ext.cm lib/pgraph.cm lib/pickle-lib.cm lib/shell-tool.cm lib/smlnj lib/smlnj-tdp usr/lib/smlnj/lib +wrapper/ml-build wrapper/ml-makedepend wrapper/sml usr/bin +MLRISC/demo/* usr/share/doc/smlnj/MLRISC-demo/ diff --git a/debian/smlnj.manpages b/debian/smlnj.manpages new file mode 100644 index 0000000..e047b76 --- /dev/null +++ b/debian/smlnj.manpages @@ -0,0 +1,3 @@ +debian/sml.1 +debian/ml-build.1 +debian/ml-makedepend.1 diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..d3827e7 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +1.0 diff --git a/debian/targets b/debian/targets new file mode 100644 index 0000000..53e7748 --- /dev/null +++ b/debian/targets @@ -0,0 +1,43 @@ +# targets file for Debian, to be copied as config/targets +# See the upstream file for more details about this file + +request src-smlnj +request ml-ulex +# WARNING: This is incompatible with ml-ulex-lex-ext!! +#request ml-ulex-lex-ext +# WARNING: This is incompatible with ml-lex-mllex-tool!! +request ml-ulex-mllex-tool +request ml-lex +# WARNING: This is incompatible with ml-ulex-mllex-tool!! +#request ml-lex-mllex-tool +# WARNING: This is incompatible with ml-ulex-lex-ext!! +request ml-lex-lex-ext +request ml-yacc +# WARNING: This is incompatible with ml-antlr-grm-ext!! +request ml-yacc-grm-ext +request ml-antlr +# WARNING: This is incompatible with ml-yacc-grm-ext!! +#request ml-antlr-grm-ext +request ml-lpt-lib +request ml-burg +request smlnj-lib +request pgraph-util +request tdp-util +request cml +request cml-lib +request eXene +request mlrisc +request ckit + +# This preview release currently works under X86/Linux, Sparc/Solaris, +# PPC/MacOSX, and X86/Win32. +# +request ml-nlffi-lib +# This preview release currently works under X86/Linux, Sparc/Solaris, +# PPC/MacOSX, and X86/Win32. +# +request ml-nlffigen + +request mlrisc-tools +request nowhere +request heap2asm diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..d42baf2 --- /dev/null +++ b/debian/watch @@ -0,0 +1,13 @@ +# This watchfile will call the debian/mkorig script, which will +# download the individual parts of the upstream distribution and construct +# a tarball from them in the directory below the source directory. +# +# For this watchfile to download the tarball, you will need to run: +# +# $ chmod +x debian/mkorig +# + +version=3 +http://www.smlnj.org/ \ + dist/working/(.*)/index.html \ + debian debian/mkorig diff --git a/debian/wrapper.in b/debian/wrapper.in new file mode 100644 index 0000000..496f2ea --- /dev/null +++ b/debian/wrapper.in @@ -0,0 +1,5 @@ +#!/bin/sh + +export SMLNJ_HOME=${SMLNJ_HOME:-@SMLNJ_HOME@} + +exec $SMLNJ_HOME/bin/@CMD@ $@ -- 2.20.1