Import Debian changes 20180207-1 debian/20180207-1
authorWesley W. Terpstra <terpstra@debian.org>
Tue, 10 Apr 2018 20:38:06 +0000 (13:38 -0700)
committerClinton Ebadi <clinton@unknownlamer.org>
Sat, 15 Feb 2020 19:23:44 +0000 (14:23 -0500)
mlton (20180207-1) unstable; urgency=low

  * New upstream release; new build-depends:
   * changed from htmldoc to python-pygments
   * changed from imagemagick to graphicsmagick
   * removed dblatex, ruby-albino, librsvg2-bin
  * Bump debhelper compat to 10 (cdbs broken with 11/12)
  * Bump standards version to 4.1.4
   * mlton now only recommends mlton-doc
  * Added riscv64 port

mlton (20130715-3) unstable; urgency=low

  * Build-depend only on mlton-compiler and mlton-tools
   * Buildds got stuck by looking at the mlton all package
  * Remove heap-size hacks; debian buildds have >2GB RAM now
  * Source-only upload to ensure full rebuild

mlton (20130715-2) unstable; urgency=low

  * Remove policy-problematic smlnj HTML4 from the package
  * Remove ports for hurd-i386 (unreliable) and ia64 (dead)
  * Add arm64 port (use supplied patch; closes: #791936)
  * Add mips64el port (needed a complete arch patch)
  * Add ppc64el port (needs bin/platform patch)
  * Track s390 port name change to s390x
  * Fix kfreebsd ports (removed getpgrp work-around)
  * Added build dependency on librsvg2-bin

mlton (20130715-1) unstable; urgency=low

  * New upstream release (closes: #762143)
  * Always build PIC on Linux (closes: #837567)
  * Bump debhelper compat to 9 (disable empty dbgsym packages)
  * Bump standards version to 3.9.8 (use DEB_HOST_MULTIARCH)
  * Replace README link with contents to help dh_installdocs

mlton (20100608-5.1) unstable; urgency=low

  * Non-Maintainer Upload
  * Apply upstream patch to avoid __gmp_const breakage
    (Closes: 707410)
  * Apply patch from Matthias Klose to allow building on more target
    triplets on i386, not just i486-linux-gnu (Closes: 640137)

mlton (20100608-5) unstable; urgency=low

  * Newest gcc and binutils fix mips[el] jump problem
   * Uploaded mips[el] bootstrap packages as 20100608-4
   * Build-Depend on newest gcc and binutils
   * Removed explicit-relocs patch
  * Include a diffs to current release head
   * Necessary for 8-bit aligned MIPS read/writes
   * Increase heap-size for mips post-alignment
  * Building armel on debian buildd instead of qemu
   * Heap-size 1.2g on 1.5g machines
  * Added armhf port

mlton (20100608-4) unstable; urgency=low

  * Add missing install file for sparc runtime
  * Make the self target symlink relative
  * Added Replaces and Breaks the old version for smooth upgrades
  * Previous build needed manual uploads, so buildd rebuild needed
  * Still needing bootstrap:
   * mips(el) gcc bug still unresolved and no-explicit-relocs fails too

mlton (20100608-3) unstable; urgency=low

  * Include all bugfixes since 20100608 release
  * Depend on libgmp-dev (closes: #618268)
  * Split package into compiler, runtime, basis, tools, and doc
   * Use multiarch to support cross-compiling
   * Eliminates the need for a mlton-cross package
  * Updated standards version (no changes needed)

mlton (20100608-2) unstable; urgency=low

  * Added a new '-mno-explicit-relocs' mips work-around.
   * Bug filed with gcc upstream (#44537)

mlton (20100608-1) unstable; urgency=low

  * New upstream release
  * Removed the mips -fPIC work-around
   * Filing a new gcc bug report upstream

mlton (20100504~svn-r7459) unstable; urgency=low

  * New snapshot from svn/HEAD
   * Includes fixes for PIC codegen on x86
   * Better handling of memory exhaustion
   * Fix aliasing problem with newest gcc
  * Switch to using quilt source format

mlton (20100206~svn-r7414) unstable; urgency=low

  * s390 and hurd need fixed-heap to stop thrashing on resize
  * qemu'd armel needs max-heap to work-around mmap emulation problems
   => heap-size must choose {fixed/max}-heap

mlton (20100206~svn-r7412) unstable; urgency=low

  * Restored -fPIC work-around and reopened #552314.
  * Got a qemu-linux-user with 1G of RAM to work => added armel target.

mlton (20100205~svn-r7410) unstable; urgency=low

  * New snapshot from svn/HEAD
   * Split targets into sub-folder
   * makes cross-compiler packages possible
  * Add a debian/watch file for lintian
  * Correct spelling errors in the manual page
  * Updated to policy 3.8.4.0 (no changes)
  * Removed -fPIC work-around for mips (closes: #552314)

mlton (20091212~svn-r7383) unstable; urgency=low

  * New snapshot from svn/HEAD
   * Works around incompatible change to 'patch' (closes: #560623)
  * Use a version number that reflects the snapshot nature (closes: #559014)
   * Both upstream and debian packaging live in the same svn repository
    * Prune the packaging folder from snapshots as well as releases
   * For release versions use 20YYMMDD-rXXX, where
    * 20YYMMDD is the name of the release soruce tarball
    * XXX is the svn version of the packaging used
   * For snapshots use 20YYMMDD~svn-rXXX, where
    * 20YYMMDD is the date the snapshot was made
    * XXX is the svn version of the packaging and source used

mlton (20091107) unstable; urgency=low

  * gcc-4.4 miscompiles more than just fpclassify. It is unusable.
  * gcc-4.1 ICEs so also not an option.
  * => use gcc-4.3, despite an off-by-one bug in mips branch generation
  * Using -fPIC to compile changes the assembler enough to get past #552341

mlton (20091104) unstable; urgency=low

  * Two more regressions disabled on hurd (thread2 and world5)
  * Switch mips back to gcc-4.4
   * Found the cause of the segfault: fpclassify is broken on mips
   * Disable its on linux/mips and use the MLton IEEE work-around code

mlton (20091101) unstable; urgency=low

  * The mips saga continues
   * gcc-4.4 miscompiles code
   * gcc-4.3 outputs bad branch statements
   * => gcc-4.1 might work!
  * Don't override gcc version on any architecture but mips[el]
  * Change dependencies to require gcc-4.1 only on mips[el]

mlton (20091029) unstable; urgency=low

  * Bump the heap-size up a bit to 800m (850m for align8) -> fixes s390.
  * Without a porter box it's hard to find the cause of mips(el) build failure
   * One likely in the gcc changelog is an ABI change in gcc 4.4
   * Apparently the packed attribute behaves differently now
   * Since the runtime uses this attribute, rebuild it using gcc 4.4 as well

mlton (20091028) unstable; urgency=low

  * Added hurd memory-layout definition for mlnlffigen.
  * Use gcc-4.4; it works around #552314 on mips.
  * Switch to using cdbs and debhelper.
  * Appease lintian (hyphens in manual, licence file, empty directories)
  * Set the Homepage field

mlton (20091022) unstable; urgency=low

  * Added missing hurd variant to mlton-stubs bootstrap library.

mlton (20091021) unstable; urgency=low

  * Revised the heap-size script again to ensure 300m free for the OS.
  * Got these buildds black-listed for low ram: fano, nautilus, rem
  * Changed s390 alignment to 8 to fix Real64 regressions.
  * Filled in regression tests for alpha, hppa, mips/el, powerpc, and s390.
  * Added option DEB_BUILD_HEAP to override debian/heap-size defaults.

mlton (20091018) unstable; urgency=low

  * Apparently, procps needs to be installed to use 'free'.
  * The buildds aren't overloaded, they just suck. Revised heap-size.

mlton (20091017) unstable; urgency=low

  * Debian buildds are heavily loaded -> ram-slop 0.7 is a bad idea.
   * caused thrashing on nautilus (amd64)
   * bootstrap troubles from 20070812 on paer (hppa)
  * Solution => fixed-heap based on debian target (rules/heap-size)
   * 800MB for 32-bit systems
    * hppa, i386, kfreebsd-i386, mips, mipsel, powerpc, s390, sparc
   * 1400MB for 64-bit systems
    * alpha, amd64, ia64, kfreebsd-amd64
   * Added hurd-i386 port
    * 700MB fixed-heap (hurd can only map 800MB physical RAM)
    * Disable regression suite on hurd; there is a bug in signal handling on
      this platform (#551470) which causes these tests to hang:
        mutex prodcons signals signals2 suspend timeout
    * Otherwise all regressions pass

mlton (20091015) unstable; urgency=low

  * Rebuild proper packages using the buildd
  * Added mips and mipsel architectures (bootstrap already uploaded)
  * Switch to debian native version numbers
  * Base the MLton version on the changelog
  * Mark the smlnj script as bash-specific (closes: #530142)

mlton (20091013-1) unstable; urgency=low

  * New maintainer
  * New upstream version taken from svn r7263
  * Standards-version 3.8.3.0 (no changes)
  * Added alpha ia64 kfreebsd-i386 s390 ports
    * manual uploads of (half-broken) bootstrap packages will follow
  * Handle nostrip build option (closes: #437581)

mlton (20070826-1) unstable; urgency=low

  * new upstream version

mlton (20061107-1) unstable; urgency=low

  * new upstream version
  * Use max-heap 640m instead of fixed-heap 512m.  hopefully closes: #396980

mlton (20061026-1) unstable; urgency=low

  * new upstream version
  * Eliminated broken "cd" in bin/make-pdf-guide.  closes: #394981

mlton (20060213-1) unstable; urgency=low

  * new upstream version
  * Added dependence on libc6-dev.  closes: #352645

mlton (20051202-1) unstable; urgency=low

  * new upstream version

mlton (20051109-1) unstable; urgency=low

  * new upstream version

mlton (20051102-1) unstable; urgency=low

  * new upstream version

mlton (20050930-1) unstable; urgency=low

  * Fixed postinst problem.  closes: #329692

mlton (20050906-1) unstable; urgency=low

  * Replaces -mv8 with -mcpu=v8 for Sparc.

mlton (20050901-1) unstable; urgency=low

  * remaking package, linking normally with libgmp.  Thus, the package
    will depend on libgmp3c2, but that is OK for unstable.
  * Fixed postinst script. closes: #325850

mlton (20050826-1) unstable; urgency=low

  * new upstream version
  * Fixed broken $lib in mlton script.  The previous package didn't
    work at all.

mlton (20050825-1) unstable; urgency=low

  * new upstream version
  * don't build statically, just link statically with libgmp.a

mlton (20050824-1) unstable; urgency=low

  * new upstream version
  * built statically, closes: #324859

mlton (20050823-1) unstable; urgency=low

  * new upstream version

mlton (20050822-1) unstable; urgency=low

  * new upstream version

mlton (20041109-1) unstable; urgency=low

  * new upstream version

mlton (20040227-1) unstable; urgency=low

  * new upstream version

mlton (20040106-1) unstable; urgency=low

  * new upstream version

mlton (20031202-1) unstable; urgency=low

  * new upstream version
  * define MREMAP_MAYMOVE to avoid including linux/mman.h, closes: #219987
  * Switched from laxex2html to HeVeA, closes: #221341

mlton (20030716-1) unstable; urgency=low

  * new upstream version

mlton (20030710-1) unstable; urgency=low

  * new upstream version

mlton (20021122-1) unstable; urgency=low

  * new upstream version
  * build in an unstable environment instead of testing
  * renaming original source package -- treating as nonnative package
  * added man page for mllex, closes: #166880
  * added man page for mlyacc, closes: #166882

mlton (20021018.1-1) unstable; urgency=low

  * Build in a testing environment instead of stable.
  * Put doc files in /usr/share/doc, not /usr/doc.

mlton (20020930.1-1) unstable; urgency=low

  * Recompiling without setting rpath.

mlton (20020929.1-1) unstable; urgency=low

  * Took over packaging and maintenance responsibilites from Barak.
  * Moved the debian packaging stuff into the MLton CVS.

mlton (20020728.1-1) unstable; urgency=low

  * new upstream version

mlton (20020410.1-1) unstable; urgency=low

  * new upstream version

mlton (20011006.1-2) unstable; urgency=low

  * remove dependency on gcc; upstream 20011006 no longer uses it.

mlton (20011006.1-1) unstable; urgency=low

  * new upstream source

mlton (20010806-3) unstable; urgency=low

  * add build-time dependency on package time
  * ignore upstream, use libgmp3-dev (closes: #111000) (closes: #111327)

mlton (20010806-2) unstable; urgency=low

  * add dependency on libgmp2-dev; mlton links its output with libgmp2
  * add dependency on gcc; mlton calls it
  * stop dh_strip from gnawing crucial bits off libmlton.a (closes: #109825)
  * remove redundant license files
  * longer explanation of compilation requirements in README.Debian
  * rename upstream documentation file CHANGES.gz to changelog

mlton (20010806-1) unstable; urgency=low

  * Initial Release.

39 files changed:
debian/README.Debian [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/mlton-basis.install [new file with mode: 0644]
debian/mlton-compiler.install [new file with mode: 0644]
debian/mlton-doc.doc-base.mlton [new file with mode: 0644]
debian/mlton-doc.install [new file with mode: 0644]
debian/mlton-runtime-aarch64-linux-gnu.install [new file with mode: 0644]
debian/mlton-runtime-alpha-linux-gnu.install [new file with mode: 0644]
debian/mlton-runtime-arm-linux-gnueabi.install [new file with mode: 0644]
debian/mlton-runtime-arm-linux-gnueabihf.install [new file with mode: 0644]
debian/mlton-runtime-hppa-linux-gnu.install [new file with mode: 0644]
debian/mlton-runtime-i486-kfreebsd-gnu.install [new file with mode: 0644]
debian/mlton-runtime-i486-linux-gnu.install [new file with mode: 0644]
debian/mlton-runtime-mips-linux-gnu.install [new file with mode: 0644]
debian/mlton-runtime-mips64el-linux-gnuabi64.install [new file with mode: 0644]
debian/mlton-runtime-mipsel-linux-gnu.install [new file with mode: 0644]
debian/mlton-runtime-powerpc-linux-gnu.install [new file with mode: 0644]
debian/mlton-runtime-powerpc64le-linux-gnu.install [new file with mode: 0644]
debian/mlton-runtime-riscv64-linux-gnu.install [new file with mode: 0644]
debian/mlton-runtime-s390x-linux-gnu.install [new file with mode: 0644]
debian/mlton-runtime-sparc-linux-gnu.install [new file with mode: 0644]
debian/mlton-runtime-x86-64-kfreebsd-gnu.install [new file with mode: 0644]
debian/mlton-runtime-x86-64-linux-gnu.install [new file with mode: 0644]
debian/mlton-tools.doc-base.mllex [new file with mode: 0644]
debian/mlton-tools.doc-base.mlyacc [new file with mode: 0644]
debian/mlton-tools.install [new file with mode: 0644]
debian/patches/kfreebsd.patch [new file with mode: 0644]
debian/patches/linux-pic.patch [new file with mode: 0644]
debian/patches/mips64el.patch [new file with mode: 0644]
debian/patches/ppc64el.patch [new file with mode: 0644]
debian/patches/riscv64-regression.patch [new file with mode: 0644]
debian/patches/riscv64.patch [new file with mode: 0644]
debian/patches/series [new file with mode: 0644]
debian/patches/stack-hardening.patch [new file with mode: 0644]
debian/rules [new file with mode: 0755]
debian/source/format [new file with mode: 0644]

diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644 (file)
index 0000000..fcbc41b
--- /dev/null
@@ -0,0 +1,34 @@
+mlton for Debian
+----------------
+
+                   NOTE TO PORTERS AND AUTOBUILDERS
+
+MLton is self-hosting, ie building MLton requires a working ML
+compiler, and the Makefiles assume that this is MLton itself.  This
+means MLton build-depends upon itself.  Please don't whine about this
+fact (eg file bugs) unless you have something constructive to suggest.
+
+You can build MLton with older versions of itself, as long as the
+command-line switches haven't changed too much.  You can also
+bootstrap with SML/NJ.  See the User Guide for details.
+
+It is easy enough to manually build: fetch the latest linux binary tgz
+from www.mlton.org, symbolic link the binaries it contains into
+/usr/bin/ and its library directory as /usr/lib/mlton, and you're good
+to go.
+
+                        HARDWARE REQUIREMENTS
+
+Compiling MLton requires at least 1024M of actual RAM.  Thus, if your
+machine has less than this, it is likely that self-compilation will
+take a very long time due to paging.  Even if you have enough memory,
+there simply may not be enough available, due to memory consumed by
+other processes.  In this case, you may see an ``Out of memory''
+message, or self-compilation may become extremely slow.  The only fix
+is to make sure that enough memory is available.
+
+Now, get out there and have a MLton of fun!
+
+ -- Barak Pearlmutter <bap@cs.unm.edu>, Fri, 12 Oct 2001 11:31:16 -0600
+ -- Stephen Weeks <sweeks@sweeks.com>, Fri, 11 Jul 2003 12:27:26 -0700
+ -- Wesley W. Terpstra <terpstra@debian.org>, Tue, 13 Oct 2009 03:47:12 +0200
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..9e8408b
--- /dev/null
@@ -0,0 +1,486 @@
+mlton (20180207-1) unstable; urgency=low
+
+  * New upstream release; new build-depends:
+   * changed from htmldoc to python-pygments
+   * changed from imagemagick to graphicsmagick
+   * removed dblatex, ruby-albino, librsvg2-bin
+  * Bump debhelper compat to 10 (cdbs broken with 11/12)
+  * Bump standards version to 4.1.4
+   * mlton now only recommends mlton-doc
+  * Added riscv64 port
+
+ -- Wesley W. Terpstra <terpstra@debian.org>  Tue, 10 Apr 2018 13:38:06 -0700
+
+mlton (20130715-3) unstable; urgency=low
+
+  * Build-depend only on mlton-compiler and mlton-tools
+   * Buildds got stuck by looking at the mlton all package
+  * Remove heap-size hacks; debian buildds have >2GB RAM now
+  * Source-only upload to ensure full rebuild
+
+ -- Wesley W. Terpstra <terpstra@debian.org>  Sun, 18 Dec 2016 22:48:17 +0100
+
+mlton (20130715-2) unstable; urgency=low
+
+  * Remove policy-problematic smlnj HTML4 from the package
+  * Remove ports for hurd-i386 (unreliable) and ia64 (dead)
+  * Add arm64 port (use supplied patch; closes: #791936)
+  * Add mips64el port (needed a complete arch patch)
+  * Add ppc64el port (needs bin/platform patch)
+  * Track s390 port name change to s390x
+  * Fix kfreebsd ports (removed getpgrp work-around)
+  * Added build dependency on librsvg2-bin
+
+ -- Wesley W. Terpstra <terpstra@debian.org>  Sat, 17 Dec 2016 03:39:49 +0100
+
+mlton (20130715-1) unstable; urgency=low
+
+  * New upstream release (closes: #762143)
+  * Always build PIC on Linux (closes: #837567)
+  * Bump debhelper compat to 9 (disable empty dbgsym packages)
+  * Bump standards version to 3.9.8 (use DEB_HOST_MULTIARCH)
+  * Replace README link with contents to help dh_installdocs
+
+ -- Wesley W. Terpstra <terpstra@debian.org>  Fri, 9 Dec 2016 12:11:32 +0200
+
+mlton (20100608-5.1) unstable; urgency=low
+
+  * Non-Maintainer Upload
+  * Apply upstream patch to avoid __gmp_const breakage
+    (Closes: 707410)
+  * Apply patch from Matthias Klose to allow building on more target
+    triplets on i386, not just i486-linux-gnu (Closes: 640137)
+
+ -- Florian Weimer <fw@deneb.enyo.de>  Sat, 19 Oct 2013 19:39:58 +0200
+
+mlton (20100608-5) unstable; urgency=low
+
+  * Newest gcc and binutils fix mips[el] jump problem
+   * Uploaded mips[el] bootstrap packages as 20100608-4
+   * Build-Depend on newest gcc and binutils
+   * Removed explicit-relocs patch
+  * Include a diffs to current release head
+   * Necessary for 8-bit aligned MIPS read/writes
+   * Increase heap-size for mips post-alignment
+  * Building armel on debian buildd instead of qemu
+   * Heap-size 1.2g on 1.5g machines
+  * Added armhf port
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Tue, 19 Jul 2011 12:29:52 +0200
+
+mlton (20100608-4) unstable; urgency=low
+
+  * Add missing install file for sparc runtime
+  * Make the self target symlink relative
+  * Added Replaces and Breaks the old version for smooth upgrades
+  * Previous build needed manual uploads, so buildd rebuild needed
+  * Still needing bootstrap:
+   * mips(el) gcc bug still unresolved and no-explicit-relocs fails too
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Fri, 01 Apr 2011 22:57:25 +0200
+
+mlton (20100608-3) unstable; urgency=low
+
+  * Include all bugfixes since 20100608 release
+  * Depend on libgmp-dev (closes: #618268)
+  * Split package into compiler, runtime, basis, tools, and doc
+   * Use multiarch to support cross-compiling
+   * Eliminates the need for a mlton-cross package
+  * Updated standards version (no changes needed)
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Sun, 20 Mar 2011 14:05:32 +0100
+
+mlton (20100608-2) unstable; urgency=low
+
+  * Added a new '-mno-explicit-relocs' mips work-around.
+   * Bug filed with gcc upstream (#44537)
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Mon, 14 Jun 2010 18:28:58 +0200
+
+mlton (20100608-1) unstable; urgency=low
+
+  * New upstream release
+  * Removed the mips -fPIC work-around
+   * Filing a new gcc bug report upstream
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Fri, 11 Jun 2010 16:11:59 +0200
+
+mlton (20100504~svn-r7459) unstable; urgency=low
+
+  * New snapshot from svn/HEAD
+   * Includes fixes for PIC codegen on x86
+   * Better handling of memory exhaustion
+   * Fix aliasing problem with newest gcc
+  * Switch to using quilt source format
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Tue, 04 May 2010 19:26:59 +0200
+
+mlton (20100206~svn-r7414) unstable; urgency=low
+
+  * s390 and hurd need fixed-heap to stop thrashing on resize
+  * qemu'd armel needs max-heap to work-around mmap emulation problems
+   => heap-size must choose {fixed/max}-heap
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Mon, 08 Feb 2010 20:22:20 +0100
+
+mlton (20100206~svn-r7412) unstable; urgency=low
+
+  * Restored -fPIC work-around and reopened #552314.
+  * Got a qemu-linux-user with 1G of RAM to work => added armel target.
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Sat, 06 Feb 2010 11:16:31 +0100
+
+mlton (20100205~svn-r7410) unstable; urgency=low
+
+  * New snapshot from svn/HEAD
+   * Split targets into sub-folder
+   * makes cross-compiler packages possible
+  * Add a debian/watch file for lintian
+  * Correct spelling errors in the manual page
+  * Updated to policy 3.8.4.0 (no changes)
+  * Removed -fPIC work-around for mips (closes: #552314)
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Fri, 05 Feb 2010 17:13:06 +0100
+
+mlton (20091212~svn-r7383) unstable; urgency=low
+
+  * New snapshot from svn/HEAD
+   * Works around incompatible change to 'patch' (closes: #560623)
+  * Use a version number that reflects the snapshot nature (closes: #559014)
+   * Both upstream and debian packaging live in the same svn repository
+    * Prune the packaging folder from snapshots as well as releases
+   * For release versions use 20YYMMDD-rXXX, where
+    * 20YYMMDD is the name of the release soruce tarball
+    * XXX is the svn version of the packaging used
+   * For snapshots use 20YYMMDD~svn-rXXX, where
+    * 20YYMMDD is the date the snapshot was made
+    * XXX is the svn version of the packaging and source used
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Sat, 12 Dec 2009 02:37:12 +0100
+
+mlton (20091107) unstable; urgency=low
+
+  * gcc-4.4 miscompiles more than just fpclassify. It is unusable.
+  * gcc-4.1 ICEs so also not an option.
+  * => use gcc-4.3, despite an off-by-one bug in mips branch generation
+  * Using -fPIC to compile changes the assembler enough to get past #552341
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Sat, 07 Nov 2009 17:26:11 +0100
+
+mlton (20091104) unstable; urgency=low
+
+  * Two more regressions disabled on hurd (thread2 and world5)
+  * Switch mips back to gcc-4.4
+   * Found the cause of the segfault: fpclassify is broken on mips
+   * Disable its on linux/mips and use the MLton IEEE work-around code
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Wed, 04 Nov 2009 12:04:36 +0100
+
+mlton (20091101) unstable; urgency=low
+
+  * The mips saga continues
+   * gcc-4.4 miscompiles code
+   * gcc-4.3 outputs bad branch statements
+   * => gcc-4.1 might work!
+  * Don't override gcc version on any architecture but mips[el]
+  * Change dependencies to require gcc-4.1 only on mips[el]
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Sun, 01 Nov 2009 18:38:37 +0100
+
+mlton (20091029) unstable; urgency=low
+
+  * Bump the heap-size up a bit to 800m (850m for align8) -> fixes s390.
+  * Without a porter box it's hard to find the cause of mips(el) build failure
+   * One likely in the gcc changelog is an ABI change in gcc 4.4
+   * Apparently the packed attribute behaves differently now
+   * Since the runtime uses this attribute, rebuild it using gcc 4.4 as well
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Sun, 01 Nov 2009 07:19:14 +0100
+
+mlton (20091028) unstable; urgency=low
+
+  * Added hurd memory-layout definition for mlnlffigen.
+  * Use gcc-4.4; it works around #552314 on mips.
+  * Switch to using cdbs and debhelper.
+  * Appease lintian (hyphens in manual, licence file, empty directories)
+  * Set the Homepage field
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Wed, 28 Oct 2009 18:35:04 +0100
+
+mlton (20091022) unstable; urgency=low
+
+  * Added missing hurd variant to mlton-stubs bootstrap library.
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Thu, 22 Oct 2009 12:00:13 +0200
+
+mlton (20091021) unstable; urgency=low
+
+  * Revised the heap-size script again to ensure 300m free for the OS.
+  * Got these buildds black-listed for low ram: fano, nautilus, rem
+  * Changed s390 alignment to 8 to fix Real64 regressions.
+  * Filled in regression tests for alpha, hppa, mips/el, powerpc, and s390.
+  * Added option DEB_BUILD_HEAP to override debian/heap-size defaults.
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Mon, 19 Oct 2009 14:37:57 +0200
+
+mlton (20091018) unstable; urgency=low
+
+  * Apparently, procps needs to be installed to use 'free'.
+  * The buildds aren't overloaded, they just suck. Revised heap-size.
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Mon, 19 Oct 2009 02:32:45 +0200
+
+mlton (20091017) unstable; urgency=low
+
+  * Debian buildds are heavily loaded -> ram-slop 0.7 is a bad idea.
+   * caused thrashing on nautilus (amd64)
+   * bootstrap troubles from 20070812 on paer (hppa)
+  * Solution => fixed-heap based on debian target (rules/heap-size)
+   * 800MB for 32-bit systems
+    * hppa, i386, kfreebsd-i386, mips, mipsel, powerpc, s390, sparc
+   * 1400MB for 64-bit systems
+    * alpha, amd64, ia64, kfreebsd-amd64
+   * Added hurd-i386 port
+    * 700MB fixed-heap (hurd can only map 800MB physical RAM)
+    * Disable regression suite on hurd; there is a bug in signal handling on
+      this platform (#551470) which causes these tests to hang:
+        mutex prodcons signals signals2 suspend timeout
+    * Otherwise all regressions pass
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Sat, 17 Oct 2009 19:12:00 +0200
+
+mlton (20091015) unstable; urgency=low
+
+  * Rebuild proper packages using the buildd
+  * Added mips and mipsel architectures (bootstrap already uploaded)
+  * Switch to debian native version numbers
+  * Base the MLton version on the changelog
+  * Mark the smlnj script as bash-specific (closes: #530142)
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Thu, 15 Oct 2009 21:09:17 +0200
+
+mlton (20091013-1) unstable; urgency=low
+
+  * New maintainer
+  * New upstream version taken from svn r7263
+  * Standards-version 3.8.3.0 (no changes)
+  * Added alpha ia64 kfreebsd-i386 s390 ports
+    * manual uploads of (half-broken) bootstrap packages will follow
+  * Handle nostrip build option (closes: #437581)
+
+ -- Wesley W. Terpstra (Debian) <terpstra@debian.org>  Wed, 14 Oct 2009 15:37:25 +0200
+
+mlton (20070826-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Mon, 03 Sep 2007 13:34:12 -0400
+
+mlton (20061107-1) unstable; urgency=low
+
+  * new upstream version
+  * Use max-heap 640m instead of fixed-heap 512m.  hopefully closes: #396980
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Tue, 07 Nov 2006 14:01:53 -0800
+
+mlton (20061026-1) unstable; urgency=low
+
+  * new upstream version
+  * Eliminated broken "cd" in bin/make-pdf-guide.  closes: #394981
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Thu, 26 Oct 2006 12:04:20 -0700
+
+mlton (20060213-1) unstable; urgency=low
+
+  * new upstream version
+  * Added dependence on libc6-dev.  closes: #352645
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Mon, 13 Feb 2006 10:16:46 -0800
+
+mlton (20051202-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Thu, 01 Dec 2005 22:53:04 -0800
+
+mlton (20051109-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Wed, 09 Nov 2005 18:47:04 -0800
+
+mlton (20051102-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Wed, 02 Nov 2005 18:45:50 -0800
+
+mlton (20050930-1) unstable; urgency=low
+
+  * Fixed postinst problem.  closes: #329692
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Fri, 30 Sep 2005 09:19:50 -0700
+
+mlton (20050906-1) unstable; urgency=low
+
+  * Replaces -mv8 with -mcpu=v8 for Sparc.
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Tue, 06 Sep 2005 14:57:46 -0700
+
+mlton (20050901-1) unstable; urgency=low
+
+  * remaking package, linking normally with libgmp.  Thus, the package
+    will depend on libgmp3c2, but that is OK for unstable.
+  * Fixed postinst script. closes: #325850
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Thu, 01 Sep 2005 00:20:20 -0700
+
+mlton (20050826-1) unstable; urgency=low
+
+  * new upstream version
+  * Fixed broken $lib in mlton script.  The previous package didn't
+    work at all.
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Thu, 25 Aug 2005 13:33:41 -0700
+
+mlton (20050825-1) unstable; urgency=low
+
+  * new upstream version
+  * don't build statically, just link statically with libgmp.a
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Thu, 25 Aug 2005 06:14:06 -0700
+
+mlton (20050824-1) unstable; urgency=low
+
+  * new upstream version
+  * built statically, closes: #324859
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Wed, 24 Aug 2005 15:13:19 -0700
+
+mlton (20050823-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Tue, 23 Aug 2005 14:56:59 -0700
+
+mlton (20050822-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Mon, 22 Aug 2005 17:13:09 -0700
+
+mlton (20041109-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Tue, 09 Nov 2004 00:00:00 -0800
+
+mlton (20040227-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Fri, 27 Feb 2004 17:20:04 -0800
+
+mlton (20040106-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Wed, 10 Dec 2003 10:45:33 -0800
+
+mlton (20031202-1) unstable; urgency=low
+
+  * new upstream version
+  * define MREMAP_MAYMOVE to avoid including linux/mman.h, closes: #219987
+  * Switched from laxex2html to HeVeA, closes: #221341
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Tue, 02 Dec 2003 06:54:35 -0800
+
+mlton (20030716-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Wed, 16 Jul 2003 10:42:34 -0700
+
+mlton (20030710-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Fri, 14 Mar 2003 00:23:46 -0800
+
+mlton (20021122-1) unstable; urgency=low
+
+  * new upstream version
+  * build in an unstable environment instead of testing
+  * renaming original source package -- treating as nonnative package
+  * added man page for mllex, closes: #166880
+  * added man page for mlyacc, closes: #166882
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Mon, 28 Oct 2002 20:08:36 -0800
+
+mlton (20021018.1-1) unstable; urgency=low
+
+  * Build in a testing environment instead of stable.
+  * Put doc files in /usr/share/doc, not /usr/doc.
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Thu, 17 Oct 2002 15:07:53 -0700
+
+mlton (20020930.1-1) unstable; urgency=low
+
+  * Recompiling without setting rpath.
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Mon, 30 Sep 2002 15:37:04 -0700
+
+mlton (20020929.1-1) unstable; urgency=low
+
+  * Took over packaging and maintenance responsibilites from Barak.
+  * Moved the debian packaging stuff into the MLton CVS.
+
+ -- Stephen Weeks <sweeks@sweeks.com>  Sun, 29 Sep 2002 00:01:46 -0700
+
+mlton (20020728.1-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Barak Pearlmutter <bap@cs.unm.edu>  Mon, 29 Jul 2002 10:57:36 -0600
+
+mlton (20020410.1-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Barak Pearlmutter <bap@cs.unm.edu>  Sun, 14 Apr 2002 13:49:16 -0600
+
+mlton (20011006.1-2) unstable; urgency=low
+
+  * remove dependency on gcc; upstream 20011006 no longer uses it.
+
+ -- Barak Pearlmutter <bap@cs.unm.edu>  Mon, 15 Oct 2001 02:49:26 -0600
+
+mlton (20011006.1-1) unstable; urgency=low
+
+  * new upstream source
+
+ -- Barak Pearlmutter <bap@cs.unm.edu>  Thu, 11 Oct 2001 02:20:57 -0600
+
+mlton (20010806-3) unstable; urgency=low
+
+  * add build-time dependency on package time
+  * ignore upstream, use libgmp3-dev (closes: #111000) (closes: #111327)
+
+ -- Barak Pearlmutter <bap@cs.unm.edu>  Thu,  6 Sep 2001 01:35:40 -0600
+
+mlton (20010806-2) unstable; urgency=low
+
+  * add dependency on libgmp2-dev; mlton links its output with libgmp2
+  * add dependency on gcc; mlton calls it
+  * stop dh_strip from gnawing crucial bits off libmlton.a (closes: #109825)
+  * remove redundant license files
+  * longer explanation of compilation requirements in README.Debian
+  * rename upstream documentation file CHANGES.gz to changelog
+
+ -- Barak Pearlmutter <bap@cs.unm.edu>  Fri, 24 Aug 2001 01:05:27 -0600
+
+mlton (20010806-1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Barak Pearlmutter <bap@cs.unm.edu>  Mon, 20 Aug 2001 01:57:57 -0600
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..f599e28
--- /dev/null
@@ -0,0 +1 @@
+10
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..ed8e59f
--- /dev/null
@@ -0,0 +1,423 @@
+Source: mlton
+Section: devel
+Priority: optional
+Maintainer: Wesley W. Terpstra <terpstra@debian.org>
+Build-Depends: mlton-compiler, mlton-tools, libgmp-dev, debhelper (>= 10.0.0), cdbs (>= 0.4.52), quilt, binutils (>= 2.21.51.201104) [mips mipsel], gcc (>= 4:4.6.0-5) [mips mipsel], procps, texlive-latex-base, asciidoc, python-pygments, graphicsmagick
+Standards-Version: 4.1.4
+
+Package: mlton
+Architecture: all
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-compiler (>= ${source:Version}), mlton-compiler (<< ${source:Version}.1~), mlton-tools (>= ${source:Version}), mlton-tools (<< ${source:Version}.1~)
+Recommends: mlton-doc (= ${source:Version})
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This metapackage depends on all MLton packages.
+
+Package: mlton-basis
+Architecture: all
+Multi-Arch: foreign
+Depends: ${misc:Depends}
+Breaks: mlton (<< 20100608-3)
+Replaces: mlton (<< 20100608-3)
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - basis library
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package includes the cross-platform basis.
+
+Package: mlton-doc
+Section: doc
+Architecture: all
+Multi-Arch: foreign
+Depends: ${misc:Depends}
+Breaks: mlton (<< 20100608-3)
+Replaces: mlton (<< 20100608-3)
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - documentation
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package includes non-man-page documentation.
+
+Package: mlton-compiler
+Architecture: alpha amd64 arm64 armel armhf hppa i386 kfreebsd-i386 kfreebsd-amd64 mips64el mips mipsel powerpc ppc64el riscv64 s390x sparc
+Multi-Arch: foreign
+Depends: ${shlibs:Depends}, ${misc:Depends}, gcc, libc6-dev, libgmp-dev, mlton-basis (= ${source:Version}), mlton-runtime-native (= ${binary:Version}) | mlton-runtime
+Breaks: mlton (<< 20100608-3)
+Replaces: mlton (<< 20100608-3)
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - compiler
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package includes the compiler itself.
+
+Package: mlton-tools
+Architecture: alpha amd64 arm64 armel armhf hppa i386 kfreebsd-i386 kfreebsd-amd64 mips64el mips mipsel powerpc ppc64el riscv64 s390x sparc
+Multi-Arch: foreign
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Breaks: mlton (<< 20100608-3)
+Replaces: mlton (<< 20100608-3)
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - tools
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package includes tools which autogenerate SML.
+
+Package: mlton-runtime-native
+Architecture: alpha amd64 arm64 armel armhf hppa i386 kfreebsd-i386 kfreebsd-amd64 mips64el mips mipsel powerpc ppc64el riscv64 s390x sparc
+Depends: ${misc:Depends}, mlton-runtime-alpha-linux-gnu (= ${binary:Version}) [alpha] | mlton-runtime-x86-64-linux-gnu (= ${binary:Version}) [amd64] | mlton-runtime-aarch64-linux-gnu (= ${binary:Version}) [arm64] | mlton-runtime-arm-linux-gnueabi (= ${binary:Version}) [armel] | mlton-runtime-arm-linux-gnueabihf (= ${binary:Version}) [armhf] | mlton-runtime-hppa-linux-gnu (= ${binary:Version}) [hppa] | mlton-runtime-i486-linux-gnu (= ${binary:Version}) [i386] | mlton-runtime-i486-kfreebsd-gnu (= ${binary:Version}) [kfreebsd-i386] | mlton-runtime-x86-64-kfreebsd-gnu (= ${binary:Version}) [kfreebsd-amd64] | mlton-runtime-mips64el-linux-gnuabi64 (= ${binary:Version}) [mips64el] | mlton-runtime-mips-linux-gnu (= ${binary:Version}) [mips] | mlton-runtime-mipsel-linux-gnu (= ${binary:Version}) [mipsel] | mlton-runtime-powerpc-linux-gnu (= ${binary:Version}) [powerpc] | mlton-runtime-powerpc64le-linux-gnu (= ${binary:Version}) [ppc64el] | mlton-runtime-s390x-linux-gnu (= ${binary:Version}) [s390x] | mlton-runtime-sparc-linux-gnu (= ${binary:Version}) [sparc]
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - native runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This metapackage depends on native target libraries.
+
+Package: mlton-runtime-alpha-linux-gnu
+Architecture: alpha
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - alpha runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides alpha target libraries.
+
+Package: mlton-runtime-x86-64-linux-gnu
+Architecture: amd64
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - amd64 runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides x86-64 target libraries.
+
+Package: mlton-runtime-aarch64-linux-gnu
+Architecture: arm64
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - arm64 runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides arm64 target libraries.
+
+Package: mlton-runtime-arm-linux-gnueabi
+Architecture: armel
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - armel runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides arm target libraries.
+
+Package: mlton-runtime-arm-linux-gnueabihf
+Architecture: armhf
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - armhf runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides armhf target libraries.
+
+Package: mlton-runtime-hppa-linux-gnu
+Architecture: hppa
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - hppa runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides hppa target libraries.
+
+Package: mlton-runtime-i486-linux-gnu
+Architecture: i386
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - i386 runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides i486 target libraries.
+
+Package: mlton-runtime-i486-kfreebsd-gnu
+Architecture: kfreebsd-i386
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - kfreebsd-i386 runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides kfreebsd i386 target libraries.
+
+Package: mlton-runtime-x86-64-kfreebsd-gnu
+Architecture: kfreebsd-amd64
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - kfreebsd-amd64 runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides kfreebsd amd64 target libraries.
+
+Package: mlton-runtime-mips64el-linux-gnuabi64
+Architecture: mips64el
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - mips64el runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides mips64el target libraries.
+
+Package: mlton-runtime-mips-linux-gnu
+Architecture: mips
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - mips runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides mips target libraries.
+
+Package: mlton-runtime-mipsel-linux-gnu
+Architecture: mipsel
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - mipsel runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides mipsel target libraries.
+
+Package: mlton-runtime-powerpc-linux-gnu
+Architecture: powerpc
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - powerpc runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides powerpc target libraries.
+
+Package: mlton-runtime-powerpc64le-linux-gnu
+Architecture: ppc64el
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - ppc64el runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides ppc64el target libraries.
+
+Package: mlton-runtime-riscv64-linux-gnu
+Architecture: riscv64
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - riscv64 runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides riscv64 target libraries.
+
+Package: mlton-runtime-s390x-linux-gnu
+Architecture: s390x
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - s390x runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides s390x target libraries.
+
+Package: mlton-runtime-sparc-linux-gnu
+Architecture: sparc
+Multi-Arch: foreign
+Depends: ${misc:Depends}, mlton-basis (= ${source:Version})
+Provides: mlton-runtime
+Homepage: http://mlton.org/
+Description: Optimizing compiler for Standard ML - sparc runtime libraries
+ MLton is a whole-program optimizing compiler
+ for Standard ML.  MLton generates standalone 
+ executables with excellent runtime performance,
+ is SML 97 compliant, and has a complete basis
+ library.  MLton has source-level profiling,
+ a fast C FFI, an interface to the GNU
+ multiprecision library, and lots of useful
+ libraries.
+ .
+ This package provides sparc target libraries.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..61bdab7
--- /dev/null
@@ -0,0 +1,106 @@
+Now maintained by Wesley W. Terpstra <terpstra@debian.org>.
+This package was debianized by Stephen Weeks <sweeks@sweeks.com>.
+The original debianization was done by Barak Pearlmutter <bap@cs.unm.edu>.
+
+Upstream Authors:
+   See http://mlton.org/Developers
+
+   To send a comment, question, or bug report to MLton's authors, use
+   MLton@mlton.org.
+
+MLton's copyright is held in part by the NEC Research Institute.  It
+is released under a BSD-style license.
+
+   MLton COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
+   
+   Copyright (C) 1999-2009 Henry Cejtin, Matthew Fluet, Suresh
+      Jagannathan, and Stephen Weeks.
+   Copyright (c) 1997-2000 by the NEC Research Institute
+   
+   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
+   NEC, or any NEC entity not be used in advertising or publicity
+   pertaining to distribution of the software without specific, written
+   prior permission.
+
+   The above copyright holders disclaim all warranties with regard to
+   this software, including all implied warranties of merchantability and
+   fitness. In no event shall the above copyright holders 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 following portions of the software are derived from the Standard ML
+of New Jersey compiler:
+
+  front-end mllex specification, front-end mlyacc specification,
+  precedence parser, CM lexer and parser
+
+Parts of MLton's Basis Library are derived from the following portions
+of the Basis Library code of the SMLNJ compiler:
+
+  OS.IO, Posix.IO, Process, and Unix
+
+The following utilities and libraries are derived from the SMLNJ system:
+
+  mllex, mlyacc and MLYacc Library, Concurrent ML Library, SML/NJ
+  Library, CKit Library, mlnlffigen and MLNLFFI Library
+
+SMLNJ's copyright is held by Lucent Technologies.  It was released
+under a BSD-style license.
+
+   STANDARD ML OF NEW JERSEY COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
+
+   Copyright (c) 1989-1998 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.
+
+Parts of MLton's Basis Library are derived from the following portions
+of the Basis Library code of the ML Kit compiler:
+
+   Path, Time, and Date
+
+The ML Kit Basis Bibrary is distributed under the MIT License.
+
+   Copyright (c) 2004 IT University of Copenhagen
+   
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   "Software"), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is furnished to do so, subject to
+   the following conditions:
+   
+   The above copyright notice and this permission notice shall be
+   included in all copies or substantial portions of the Software.
+   
+   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+   LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+   OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+   WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+   
diff --git a/debian/mlton-basis.install b/debian/mlton-basis.install
new file mode 100644 (file)
index 0000000..74f162f
--- /dev/null
@@ -0,0 +1,2 @@
+usr/lib/mlton/include
+usr/lib/mlton/sml
diff --git a/debian/mlton-compiler.install b/debian/mlton-compiler.install
new file mode 100644 (file)
index 0000000..09c20d2
--- /dev/null
@@ -0,0 +1,5 @@
+usr/bin/mlton
+usr/lib/mlton/mlton-compile
+usr/lib/mlton/static-library
+usr/lib/mlton/targets/self
+usr/share/man/man1/mlton.1.gz
diff --git a/debian/mlton-doc.doc-base.mlton b/debian/mlton-doc.doc-base.mlton
new file mode 100644 (file)
index 0000000..8b3c66e
--- /dev/null
@@ -0,0 +1,10 @@
+Document: mlton
+Title: MLton Guide
+Author: The MLton Team
+Abstract: This document describes how to use MLton, a whole-program
+ optimizing compiler for the Standard ML Programming language.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/mlton/guide/Home
+Files: /usr/share/doc/mlton/guide/*.html
diff --git a/debian/mlton-doc.install b/debian/mlton-doc.install
new file mode 100644 (file)
index 0000000..5ddc7e7
--- /dev/null
@@ -0,0 +1,4 @@
+usr/share/doc/mlton/examples
+usr/share/doc/mlton/guide
+usr/share/doc/mlton/cm2mlb
+usr/share/doc/mlton/mlton-guide.pdf
diff --git a/debian/mlton-runtime-aarch64-linux-gnu.install b/debian/mlton-runtime-aarch64-linux-gnu.install
new file mode 100644 (file)
index 0000000..b2797bb
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/aarch64-linux-gnu/*
diff --git a/debian/mlton-runtime-alpha-linux-gnu.install b/debian/mlton-runtime-alpha-linux-gnu.install
new file mode 100644 (file)
index 0000000..249487a
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/alpha-linux-gnu/*
diff --git a/debian/mlton-runtime-arm-linux-gnueabi.install b/debian/mlton-runtime-arm-linux-gnueabi.install
new file mode 100644 (file)
index 0000000..f3b3791
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/arm-linux-gnueabi/*
diff --git a/debian/mlton-runtime-arm-linux-gnueabihf.install b/debian/mlton-runtime-arm-linux-gnueabihf.install
new file mode 100644 (file)
index 0000000..e4d6a48
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/arm-linux-gnueabihf/*
diff --git a/debian/mlton-runtime-hppa-linux-gnu.install b/debian/mlton-runtime-hppa-linux-gnu.install
new file mode 100644 (file)
index 0000000..b15ef8b
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/hppa-linux-gnu/*
diff --git a/debian/mlton-runtime-i486-kfreebsd-gnu.install b/debian/mlton-runtime-i486-kfreebsd-gnu.install
new file mode 100644 (file)
index 0000000..58568da
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/i*86-kfreebsd-gnu/*
diff --git a/debian/mlton-runtime-i486-linux-gnu.install b/debian/mlton-runtime-i486-linux-gnu.install
new file mode 100644 (file)
index 0000000..2d0f9cc
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/i*86-linux-gnu/*
diff --git a/debian/mlton-runtime-mips-linux-gnu.install b/debian/mlton-runtime-mips-linux-gnu.install
new file mode 100644 (file)
index 0000000..363ef01
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/mips-linux-gnu/*
diff --git a/debian/mlton-runtime-mips64el-linux-gnuabi64.install b/debian/mlton-runtime-mips64el-linux-gnuabi64.install
new file mode 100644 (file)
index 0000000..2783426
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/mips64el-linux-gnuabi64/*
diff --git a/debian/mlton-runtime-mipsel-linux-gnu.install b/debian/mlton-runtime-mipsel-linux-gnu.install
new file mode 100644 (file)
index 0000000..57bea5c
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/mipsel-linux-gnu/*
diff --git a/debian/mlton-runtime-powerpc-linux-gnu.install b/debian/mlton-runtime-powerpc-linux-gnu.install
new file mode 100644 (file)
index 0000000..14cf8e4
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/powerpc-linux-gnu/*
diff --git a/debian/mlton-runtime-powerpc64le-linux-gnu.install b/debian/mlton-runtime-powerpc64le-linux-gnu.install
new file mode 100644 (file)
index 0000000..9dc4bf5
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/powerpc64le-linux-gnu/*
diff --git a/debian/mlton-runtime-riscv64-linux-gnu.install b/debian/mlton-runtime-riscv64-linux-gnu.install
new file mode 100644 (file)
index 0000000..4144868
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/riscv64-linux-gnu/*
diff --git a/debian/mlton-runtime-s390x-linux-gnu.install b/debian/mlton-runtime-s390x-linux-gnu.install
new file mode 100644 (file)
index 0000000..3ee482c
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/s390x-linux-gnu/*
diff --git a/debian/mlton-runtime-sparc-linux-gnu.install b/debian/mlton-runtime-sparc-linux-gnu.install
new file mode 100644 (file)
index 0000000..8af2606
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/sparc-linux-gnu/*
diff --git a/debian/mlton-runtime-x86-64-kfreebsd-gnu.install b/debian/mlton-runtime-x86-64-kfreebsd-gnu.install
new file mode 100644 (file)
index 0000000..760c0a0
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/x86_64-kfreebsd-gnu/*
diff --git a/debian/mlton-runtime-x86-64-linux-gnu.install b/debian/mlton-runtime-x86-64-linux-gnu.install
new file mode 100644 (file)
index 0000000..ec65286
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/mlton/targets/x86_64-linux-gnu/*
diff --git a/debian/mlton-tools.doc-base.mllex b/debian/mlton-tools.doc-base.mllex
new file mode 100644 (file)
index 0000000..1fe9cfe
--- /dev/null
@@ -0,0 +1,9 @@
+Document: mllex
+Title: A lexical analyzer generator for Standard ML
+Author: Andrew W. Appel, James S. Mattson, David R. Tarditi
+Abstract: This document describes how write lexer specification files for 
+ mllex.
+Section: Programming
+
+Format: PDF
+Files: /usr/share/doc/mlton/mllex.pdf.gz
diff --git a/debian/mlton-tools.doc-base.mlyacc b/debian/mlton-tools.doc-base.mlyacc
new file mode 100644 (file)
index 0000000..8425ec8
--- /dev/null
@@ -0,0 +1,9 @@
+Document: mlyacc
+Title: ML-Yacc User's Manual
+Author: David R. Tarditi, Andrew W. Appel
+Abstract: This document describes how to write parser specification files for
+ mlyacc.
+Section: Programming
+
+Format: PDF
+Files: /usr/share/doc/mlton/mlyacc.pdf.gz
diff --git a/debian/mlton-tools.install b/debian/mlton-tools.install
new file mode 100644 (file)
index 0000000..58491fe
--- /dev/null
@@ -0,0 +1,10 @@
+usr/bin/mllex
+usr/bin/mlyacc
+usr/bin/mlprof
+usr/bin/mlnlffigen
+usr/share/man/man1/mllex.1.gz
+usr/share/man/man1/mlyacc.1.gz
+usr/share/man/man1/mlprof.1.gz
+usr/share/man/man1/mlnlffigen.1.gz
+usr/share/doc/mlton/mllex.pdf
+usr/share/doc/mlton/mlyacc.pdf
diff --git a/debian/patches/kfreebsd.patch b/debian/patches/kfreebsd.patch
new file mode 100644 (file)
index 0000000..663e392
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/runtime/platform/freebsd.h
++++ b/runtime/platform/freebsd.h
+@@ -38,9 +38,4 @@
+ #define MLton_Platform_OS_host "freebsd"
+-/* This is probably debian specific, since freebsd worked w/o it before. */
+-#if (defined (__FreeBSD_kernel__))
+-#define getpgrp() getpgrp(getpid())
+-#endif
+-
+ extern char **environ; /* for Posix_ProcEnv_environ */
diff --git a/debian/patches/linux-pic.patch b/debian/patches/linux-pic.patch
new file mode 100644 (file)
index 0000000..48ec668
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/mlton/main/main.fun
++++ b/mlton/main/main.fun
+@@ -977,6 +977,7 @@
+             (* On ELF systems, we only need PIC for LibArchive/Library *)
+           | (_, _, Library) => true
+           | (_, _, LibArchive) => true
++          | (Linux, _, _) => true
+           | _ => false
+       val () = Control.positionIndependent := positionIndependent
diff --git a/debian/patches/mips64el.patch b/debian/patches/mips64el.patch
new file mode 100644 (file)
index 0000000..0be4010
--- /dev/null
@@ -0,0 +1,117 @@
+--- a/basis-library/mlton/platform.sig
++++ b/basis-library/mlton/platform.sig
+@@ -10,7 +10,7 @@
+       structure Arch:
+          sig
+             datatype t = Alpha | AMD64 | ARM | ARM64 | HPPA | IA64 | m68k |
+-                         MIPS | PowerPC | PowerPC64 | S390 | Sparc | X86
++                         MIPS | MIPS64 | PowerPC | PowerPC64 | S390 | Sparc | X86
+             val fromString: string -> t option
+             val host: t
+--- a/basis-library/mlton/platform.sml
++++ b/basis-library/mlton/platform.sml
+@@ -25,6 +25,7 @@
+                 (IA64, "IA64"),
+                 (m68k, "m68k"),
+                 (MIPS, "MIPS"),
++                (MIPS64, "MIPS64"),
+                 (PowerPC, "PowerPC"),
+                 (PowerPC64, "PowerPC64"),
+                 (S390, "S390"),
+--- a/basis-library/primitive/prim-mlton.sml
++++ b/basis-library/primitive/prim-mlton.sml
+@@ -154,6 +154,7 @@
+              | IA64
+              | m68k
+              | MIPS
++             | MIPS64
+              | PowerPC
+              | PowerPC64
+              | S390
+@@ -170,6 +171,7 @@
+                 | "ia64" => IA64
+                 | "m68k" => m68k
+                 | "mips" => MIPS
++                | "mips64" => MIPS64
+                 | "powerpc" => PowerPC
+                 | "powerpc64" => PowerPC64
+                 | "s390" => S390
+--- a/bin/platform
++++ b/bin/platform
+@@ -108,6 +108,9 @@
+ m68k*)
+         HOST_ARCH=m68k
+ ;;
++mips64*)
++      HOST_ARCH=mips64
++;;
+ mips*)
+ # big-endian and little-endian detect via headers
+         HOST_ARCH=mips
+--- a/lib/stubs/mlton-stubs/mlton.sml
++++ b/lib/stubs/mlton-stubs/mlton.sml
+@@ -159,7 +159,7 @@
+             structure Arch =
+                struct
+                   datatype t = Alpha | AMD64 | ARM | ARM64 | HPPA | IA64 | m68k |
+-                               MIPS | PowerPC | PowerPC64 | S390 | Sparc | X86
++                               MIPS | MIPS64 | PowerPC | PowerPC64 | S390 | Sparc | X86
+                   val all = [(Alpha, "Alpha"),
+                              (AMD64, "AMD64"),
+@@ -169,6 +169,7 @@
+                              (IA64, "IA64"),
+                              (m68k, "m68k"),
+                              (MIPS, "MIPS"),
++                             (MIPS64, "MIPS64"),
+                              (PowerPC, "PowerPC"),
+                              (PowerPC64, "PowerPC64"),
+                              (S390, "S390"),
+--- a/lib/stubs/mlton-stubs/platform.sig
++++ b/lib/stubs/mlton-stubs/platform.sig
+@@ -10,7 +10,7 @@
+       structure Arch:
+          sig
+             datatype t = Alpha | AMD64 | ARM | ARM64 | HPPA | IA64 | m68k |
+-                         MIPS | PowerPC | PowerPC64 | S390 | Sparc | X86
++                         MIPS | MIPS64 | PowerPC | PowerPC64 | S390 | Sparc | X86
+             val fromString: string -> t option
+             val host: t
+--- a/mlton/main/main.fun
++++ b/mlton/main/main.fun
+@@ -192,6 +192,7 @@
+        | HPPA => true
+        | IA64 => true
+        | MIPS => true
++       | MIPS64 => true
+        | Sparc => true
+        | S390 => true
+        | _ => false
+--- a/runtime/cenv.h
++++ b/runtime/cenv.h
+@@ -101,6 +101,8 @@
+ #include "platform/ia64.h"
+ #elif (defined (__m68k__))
+ #include "platform/m68k.h"
++#elif (defined (__mips64))
++#include "platform/mips64.h"
+ #elif (defined (__mips__))
+ #include "platform/mips.h"
+ #elif (defined (__powerpc64__))
+--- /dev/null
++++ b/runtime/platform/mips64.h
+@@ -0,0 +1 @@
++#define MLton_Platform_Arch_host "mips64"
+--- a/runtime/platform/linux.c
++++ b/runtime/platform/linux.c
+@@ -37,7 +37,7 @@
+ #else
+         GC_handleSigProf ((code_pointer) scp->si_regs.pc);
+ #endif
+-#elif (defined (__mips__))
++#elif (defined (__mips64)) || (defined (__mips__))
+         ucontext_t* ucp = (ucontext_t*)context;
+ #ifdef __UCLIBC__
+         GC_handleSigProf ((code_pointer) ucp->uc_mcontext.gpregs[CTX_EPC]);
diff --git a/debian/patches/ppc64el.patch b/debian/patches/ppc64el.patch
new file mode 100644 (file)
index 0000000..8078a69
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/bin/platform
++++ b/bin/platform
+@@ -115,7 +115,7 @@
+ powerpc64)
+       HOST_ARCH=powerpc64
+ ;;
+-ppc64)
++ppc64*)
+         HOST_ARCH=powerpc64
+ ;;
+ powerpc)
diff --git a/debian/patches/riscv64-regression.patch b/debian/patches/riscv64-regression.patch
new file mode 100644 (file)
index 0000000..5e5b5e7
--- /dev/null
@@ -0,0 +1,865 @@
+--- /dev/null
++++ b/regression/mlton.share.riscv64-linux.ok
+@@ -0,0 +1,718 @@
++size of a is 2408
++0 => NONE
++1 => (1, 1)
++2 => (0, 2)
++3 => (1, 0)
++4 => (0, 1)
++5 => (1, 2)
++6 => (0, 0)
++7 => (1, 1)
++8 => (0, 2)
++9 => (1, 0)
++10 => (0, 1)
++11 => (1, 2)
++12 => (0, 0)
++13 => (1, 1)
++14 => (0, 2)
++15 => (1, 0)
++16 => (0, 1)
++17 => (1, 2)
++18 => (0, 0)
++19 => (1, 1)
++20 => (0, 2)
++21 => (1, 0)
++22 => (0, 1)
++23 => (1, 2)
++24 => (0, 0)
++25 => (1, 1)
++26 => (0, 2)
++27 => (1, 0)
++28 => (0, 1)
++29 => (1, 2)
++30 => (0, 0)
++31 => (1, 1)
++32 => (0, 2)
++33 => (1, 0)
++34 => (0, 1)
++35 => (1, 2)
++36 => (0, 0)
++37 => (1, 1)
++38 => (0, 2)
++39 => (1, 0)
++40 => (0, 1)
++41 => (1, 2)
++42 => (0, 0)
++43 => (1, 1)
++44 => (0, 2)
++45 => (1, 0)
++46 => (0, 1)
++47 => (1, 2)
++48 => (0, 0)
++49 => (1, 1)
++50 => (0, 2)
++51 => (1, 0)
++52 => (0, 1)
++53 => (1, 2)
++54 => (0, 0)
++55 => (1, 1)
++56 => (0, 2)
++57 => (1, 0)
++58 => (0, 1)
++59 => (1, 2)
++60 => (0, 0)
++61 => (1, 1)
++62 => (0, 2)
++63 => (1, 0)
++64 => (0, 1)
++65 => (1, 2)
++66 => (0, 0)
++67 => (1, 1)
++68 => (0, 2)
++69 => (1, 0)
++70 => (0, 1)
++71 => (1, 2)
++72 => (0, 0)
++73 => (1, 1)
++74 => (0, 2)
++75 => (1, 0)
++76 => (0, 1)
++77 => (1, 2)
++78 => (0, 0)
++79 => (1, 1)
++80 => (0, 2)
++81 => (1, 0)
++82 => (0, 1)
++83 => (1, 2)
++84 => (0, 0)
++85 => (1, 1)
++86 => (0, 2)
++87 => (1, 0)
++88 => (0, 1)
++89 => (1, 2)
++90 => (0, 0)
++91 => (1, 1)
++92 => (0, 2)
++93 => (1, 0)
++94 => (0, 1)
++95 => (1, 2)
++96 => (0, 0)
++97 => (1, 1)
++98 => (0, 2)
++99 => (1, 0)
++size of a is 920
++0 => NONE
++1 => (1, 1)
++2 => (0, 2)
++3 => (1, 0)
++4 => (0, 1)
++5 => (1, 2)
++6 => (0, 0)
++7 => (1, 1)
++8 => (0, 2)
++9 => (1, 0)
++10 => (0, 1)
++11 => (1, 2)
++12 => (0, 0)
++13 => (1, 1)
++14 => (0, 2)
++15 => (1, 0)
++16 => (0, 1)
++17 => (1, 2)
++18 => (0, 0)
++19 => (1, 1)
++20 => (0, 2)
++21 => (1, 0)
++22 => (0, 1)
++23 => (1, 2)
++24 => (0, 0)
++25 => (1, 1)
++26 => (0, 2)
++27 => (1, 0)
++28 => (0, 1)
++29 => (1, 2)
++30 => (0, 0)
++31 => (1, 1)
++32 => (0, 2)
++33 => (1, 0)
++34 => (0, 1)
++35 => (1, 2)
++36 => (0, 0)
++37 => (1, 1)
++38 => (0, 2)
++39 => (1, 0)
++40 => (0, 1)
++41 => (1, 2)
++42 => (0, 0)
++43 => (1, 1)
++44 => (0, 2)
++45 => (1, 0)
++46 => (0, 1)
++47 => (1, 2)
++48 => (0, 0)
++49 => (1, 1)
++50 => (0, 2)
++51 => (1, 0)
++52 => (0, 1)
++53 => (1, 2)
++54 => (0, 0)
++55 => (1, 1)
++56 => (0, 2)
++57 => (1, 0)
++58 => (0, 1)
++59 => (1, 2)
++60 => (0, 0)
++61 => (1, 1)
++62 => (0, 2)
++63 => (1, 0)
++64 => (0, 1)
++65 => (1, 2)
++66 => (0, 0)
++67 => (1, 1)
++68 => (0, 2)
++69 => (1, 0)
++70 => (0, 1)
++71 => (1, 2)
++72 => (0, 0)
++73 => (1, 1)
++74 => (0, 2)
++75 => (1, 0)
++76 => (0, 1)
++77 => (1, 2)
++78 => (0, 0)
++79 => (1, 1)
++80 => (0, 2)
++81 => (1, 0)
++82 => (0, 1)
++83 => (1, 2)
++84 => (0, 0)
++85 => (1, 1)
++86 => (0, 2)
++87 => (1, 0)
++88 => (0, 1)
++89 => (1, 2)
++90 => (0, 0)
++91 => (1, 1)
++92 => (0, 2)
++93 => (1, 0)
++94 => (0, 1)
++95 => (1, 2)
++96 => (0, 0)
++97 => (1, 1)
++98 => (0, 2)
++99 => (1, 0)
++size of a is 1640
++0 => NONE
++1 => (1, 1)
++2 => (1, 1)
++3 => (0, 0)
++4 => (1, 1)
++5 => (2, 2)
++6 => (1, 1)
++7 => (1, 1)
++8 => (1, 1)
++9 => (0, 0)
++10 => (1, 1)
++11 => (2, 2)
++12 => (1, 1)
++13 => (1, 1)
++14 => (1, 1)
++15 => (0, 0)
++16 => (1, 1)
++17 => (2, 2)
++18 => (1, 1)
++19 => (1, 1)
++20 => (1, 1)
++21 => (0, 0)
++22 => (1, 1)
++23 => (2, 2)
++24 => (1, 1)
++25 => (1, 1)
++26 => (1, 1)
++27 => (0, 0)
++28 => (1, 1)
++29 => (2, 2)
++30 => (1, 1)
++31 => (1, 1)
++32 => (1, 1)
++33 => (0, 0)
++34 => (1, 1)
++35 => (2, 2)
++36 => (1, 1)
++37 => (1, 1)
++38 => (1, 1)
++39 => (0, 0)
++40 => (1, 1)
++41 => (2, 2)
++42 => (1, 1)
++43 => (1, 1)
++44 => (1, 1)
++45 => (0, 0)
++46 => (1, 1)
++47 => (2, 2)
++48 => (1, 1)
++49 => (1, 1)
++50 => (1, 1)
++51 => (0, 0)
++52 => (1, 1)
++53 => (2, 2)
++54 => (1, 1)
++55 => (1, 1)
++56 => (1, 1)
++57 => (0, 0)
++58 => (1, 1)
++59 => (2, 2)
++60 => (1, 1)
++61 => (1, 1)
++62 => (1, 1)
++63 => (0, 0)
++64 => (1, 1)
++65 => (2, 2)
++66 => (1, 1)
++67 => (1, 1)
++68 => (1, 1)
++69 => (0, 0)
++70 => (1, 1)
++71 => (2, 2)
++72 => (1, 1)
++73 => (1, 1)
++74 => (1, 1)
++75 => (0, 0)
++76 => (1, 1)
++77 => (2, 2)
++78 => (1, 1)
++79 => (1, 1)
++80 => (1, 1)
++81 => (0, 0)
++82 => (1, 1)
++83 => (2, 2)
++84 => (1, 1)
++85 => (1, 1)
++86 => (1, 1)
++87 => (0, 0)
++88 => (1, 1)
++89 => (2, 2)
++90 => (1, 1)
++91 => (1, 1)
++92 => (1, 1)
++93 => (0, 0)
++94 => (1, 1)
++95 => (2, 2)
++96 => (1, 1)
++97 => (1, 1)
++98 => (1, 1)
++99 => (0, 0)
++size of a is 872
++0 => NONE
++1 => (1, 1)
++2 => (1, 1)
++3 => (0, 0)
++4 => (1, 1)
++5 => (2, 2)
++6 => (1, 1)
++7 => (1, 1)
++8 => (1, 1)
++9 => (0, 0)
++10 => (1, 1)
++11 => (2, 2)
++12 => (1, 1)
++13 => (1, 1)
++14 => (1, 1)
++15 => (0, 0)
++16 => (1, 1)
++17 => (2, 2)
++18 => (1, 1)
++19 => (1, 1)
++20 => (1, 1)
++21 => (0, 0)
++22 => (1, 1)
++23 => (2, 2)
++24 => (1, 1)
++25 => (1, 1)
++26 => (1, 1)
++27 => (0, 0)
++28 => (1, 1)
++29 => (2, 2)
++30 => (1, 1)
++31 => (1, 1)
++32 => (1, 1)
++33 => (0, 0)
++34 => (1, 1)
++35 => (2, 2)
++36 => (1, 1)
++37 => (1, 1)
++38 => (1, 1)
++39 => (0, 0)
++40 => (1, 1)
++41 => (2, 2)
++42 => (1, 1)
++43 => (1, 1)
++44 => (1, 1)
++45 => (0, 0)
++46 => (1, 1)
++47 => (2, 2)
++48 => (1, 1)
++49 => (1, 1)
++50 => (1, 1)
++51 => (0, 0)
++52 => (1, 1)
++53 => (2, 2)
++54 => (1, 1)
++55 => (1, 1)
++56 => (1, 1)
++57 => (0, 0)
++58 => (1, 1)
++59 => (2, 2)
++60 => (1, 1)
++61 => (1, 1)
++62 => (1, 1)
++63 => (0, 0)
++64 => (1, 1)
++65 => (2, 2)
++66 => (1, 1)
++67 => (1, 1)
++68 => (1, 1)
++69 => (0, 0)
++70 => (1, 1)
++71 => (2, 2)
++72 => (1, 1)
++73 => (1, 1)
++74 => (1, 1)
++75 => (0, 0)
++76 => (1, 1)
++77 => (2, 2)
++78 => (1, 1)
++79 => (1, 1)
++80 => (1, 1)
++81 => (0, 0)
++82 => (1, 1)
++83 => (2, 2)
++84 => (1, 1)
++85 => (1, 1)
++86 => (1, 1)
++87 => (0, 0)
++88 => (1, 1)
++89 => (2, 2)
++90 => (1, 1)
++91 => (1, 1)
++92 => (1, 1)
++93 => (0, 0)
++94 => (1, 1)
++95 => (2, 2)
++96 => (1, 1)
++97 => (1, 1)
++98 => (1, 1)
++99 => (0, 0)
++size of a is 4008
++0 => NONE
++1 => (1, 1)
++2 => (0, 2)
++3 => (1, 0)
++4 => (0, 1)
++5 => (1, 2)
++6 => (0, 0)
++7 => (1, 1)
++8 => (0, 2)
++9 => (1, 0)
++10 => (0, 1)
++11 => (1, 2)
++12 => (0, 0)
++13 => (1, 1)
++14 => (0, 2)
++15 => (1, 0)
++16 => (0, 1)
++17 => (1, 2)
++18 => (0, 0)
++19 => (1, 1)
++20 => (0, 2)
++21 => (1, 0)
++22 => (0, 1)
++23 => (1, 2)
++24 => (0, 0)
++25 => (1, 1)
++26 => (0, 2)
++27 => (1, 0)
++28 => (0, 1)
++29 => (1, 2)
++30 => (0, 0)
++31 => (1, 1)
++32 => (0, 2)
++33 => (1, 0)
++34 => (0, 1)
++35 => (1, 2)
++36 => (0, 0)
++37 => (1, 1)
++38 => (0, 2)
++39 => (1, 0)
++40 => (0, 1)
++41 => (1, 2)
++42 => (0, 0)
++43 => (1, 1)
++44 => (0, 2)
++45 => (1, 0)
++46 => (0, 1)
++47 => (1, 2)
++48 => (0, 0)
++49 => (1, 1)
++50 => (0, 2)
++51 => (1, 0)
++52 => (0, 1)
++53 => (1, 2)
++54 => (0, 0)
++55 => (1, 1)
++56 => (0, 2)
++57 => (1, 0)
++58 => (0, 1)
++59 => (1, 2)
++60 => (0, 0)
++61 => (1, 1)
++62 => (0, 2)
++63 => (1, 0)
++64 => (0, 1)
++65 => (1, 2)
++66 => (0, 0)
++67 => (1, 1)
++68 => (0, 2)
++69 => (1, 0)
++70 => (0, 1)
++71 => (1, 2)
++72 => (0, 0)
++73 => (1, 1)
++74 => (0, 2)
++75 => (1, 0)
++76 => (0, 1)
++77 => (1, 2)
++78 => (0, 0)
++79 => (1, 1)
++80 => (0, 2)
++81 => (1, 0)
++82 => (0, 1)
++83 => (1, 2)
++84 => (0, 0)
++85 => (1, 1)
++86 => (0, 2)
++87 => (1, 0)
++88 => (0, 1)
++89 => (1, 2)
++90 => (0, 0)
++91 => (1, 1)
++92 => (0, 2)
++93 => (1, 0)
++94 => (0, 1)
++95 => (1, 2)
++96 => (0, 0)
++97 => (1, 1)
++98 => (0, 2)
++99 => (1, 0)
++size of a is 2520
++0 => NONE
++1 => (1, 1)
++2 => (0, 2)
++3 => (1, 0)
++4 => (0, 1)
++5 => (1, 2)
++6 => (0, 0)
++7 => (1, 1)
++8 => (0, 2)
++9 => (1, 0)
++10 => (0, 1)
++11 => (1, 2)
++12 => (0, 0)
++13 => (1, 1)
++14 => (0, 2)
++15 => (1, 0)
++16 => (0, 1)
++17 => (1, 2)
++18 => (0, 0)
++19 => (1, 1)
++20 => (0, 2)
++21 => (1, 0)
++22 => (0, 1)
++23 => (1, 2)
++24 => (0, 0)
++25 => (1, 1)
++26 => (0, 2)
++27 => (1, 0)
++28 => (0, 1)
++29 => (1, 2)
++30 => (0, 0)
++31 => (1, 1)
++32 => (0, 2)
++33 => (1, 0)
++34 => (0, 1)
++35 => (1, 2)
++36 => (0, 0)
++37 => (1, 1)
++38 => (0, 2)
++39 => (1, 0)
++40 => (0, 1)
++41 => (1, 2)
++42 => (0, 0)
++43 => (1, 1)
++44 => (0, 2)
++45 => (1, 0)
++46 => (0, 1)
++47 => (1, 2)
++48 => (0, 0)
++49 => (1, 1)
++50 => (0, 2)
++51 => (1, 0)
++52 => (0, 1)
++53 => (1, 2)
++54 => (0, 0)
++55 => (1, 1)
++56 => (0, 2)
++57 => (1, 0)
++58 => (0, 1)
++59 => (1, 2)
++60 => (0, 0)
++61 => (1, 1)
++62 => (0, 2)
++63 => (1, 0)
++64 => (0, 1)
++65 => (1, 2)
++66 => (0, 0)
++67 => (1, 1)
++68 => (0, 2)
++69 => (1, 0)
++70 => (0, 1)
++71 => (1, 2)
++72 => (0, 0)
++73 => (1, 1)
++74 => (0, 2)
++75 => (1, 0)
++76 => (0, 1)
++77 => (1, 2)
++78 => (0, 0)
++79 => (1, 1)
++80 => (0, 2)
++81 => (1, 0)
++82 => (0, 1)
++83 => (1, 2)
++84 => (0, 0)
++85 => (1, 1)
++86 => (0, 2)
++87 => (1, 0)
++88 => (0, 1)
++89 => (1, 2)
++90 => (0, 0)
++91 => (1, 1)
++92 => (0, 2)
++93 => (1, 0)
++94 => (0, 1)
++95 => (1, 2)
++96 => (0, 0)
++97 => (1, 1)
++98 => (0, 2)
++99 => (1, 0)
++size of a is 4008
++0 => NONE
++1 => (1, 1)
++2 => (0, 2)
++3 => (1, 0)
++4 => (0, 1)
++5 => (1, 2)
++6 => (0, 0)
++7 => (1, 1)
++8 => (0, 2)
++9 => (1, 0)
++10 => (0, 1)
++11 => (1, 2)
++12 => (0, 0)
++13 => (1, 1)
++14 => (0, 2)
++15 => (1, 0)
++16 => (0, 1)
++17 => (1, 2)
++18 => (0, 0)
++19 => (1, 1)
++20 => (0, 2)
++21 => (1, 0)
++22 => (0, 1)
++23 => (1, 2)
++24 => (0, 0)
++25 => (1, 1)
++26 => (0, 2)
++27 => (1, 0)
++28 => (0, 1)
++29 => (1, 2)
++30 => (0, 0)
++31 => (1, 1)
++32 => (0, 2)
++33 => (1, 0)
++34 => (0, 1)
++35 => (1, 2)
++36 => (0, 0)
++37 => (1, 1)
++38 => (0, 2)
++39 => (1, 0)
++40 => (0, 1)
++41 => (1, 2)
++42 => (0, 0)
++43 => (1, 1)
++44 => (0, 2)
++45 => (1, 0)
++46 => (0, 1)
++47 => (1, 2)
++48 => (0, 0)
++49 => (1, 1)
++50 => (0, 2)
++51 => (1, 0)
++52 => (0, 1)
++53 => (1, 2)
++54 => (0, 0)
++55 => (1, 1)
++56 => (0, 2)
++57 => (1, 0)
++58 => (0, 1)
++59 => (1, 2)
++60 => (0, 0)
++61 => (1, 1)
++62 => (0, 2)
++63 => (1, 0)
++64 => (0, 1)
++65 => (1, 2)
++66 => (0, 0)
++67 => (1, 1)
++68 => (0, 2)
++69 => (1, 0)
++70 => (0, 1)
++71 => (1, 2)
++72 => (0, 0)
++73 => (1, 1)
++74 => (0, 2)
++75 => (1, 0)
++76 => (0, 1)
++77 => (1, 2)
++78 => (0, 0)
++79 => (1, 1)
++80 => (0, 2)
++81 => (1, 0)
++82 => (0, 1)
++83 => (1, 2)
++84 => (0, 0)
++85 => (1, 1)
++86 => (0, 2)
++87 => (1, 0)
++88 => (0, 1)
++89 => (1, 2)
++90 => (0, 0)
++91 => (1, 1)
++92 => (0, 2)
++93 => (1, 0)
++94 => (0, 1)
++95 => (1, 2)
++96 => (0, 0)
++97 => (1, 1)
++98 => (0, 2)
++99 => (1, 0)
++size of a is 2400008
++(1, 1)
++size of a is 800120
++(1, 1)
++size is 296
++size is 136
++abcdef abcdef
++size is 88
++size is 56
++abcdef abcdef
++1 2
+--- /dev/null
++++ b/regression/size2.riscv64-linux.ok
+@@ -0,0 +1,24 @@
++The size of a char is = 0 bytes.
++The size of an int list of length 4 is = 96 bytes.
++The size of a string of length 10 is = 40 bytes.
++The size of an int array of length 10 is = 64 bytes.
++The size of a double array of length 10 is = 104 bytes.
++The size of a (word32 * double) array of length 10 is = 184 bytes.
++The size of a (word32 * word32 * double) array of length 10 is = 184 bytes.
++The size of a (word64 * double) array of length 10 is = 184 bytes.
++The size of a (word16 * double) array of length 10 is = 184 bytes.
++The size of a word64 array of length 10 is = 104 bytes.
++The size of a (word32 * word64) array of length 10 is = 184 bytes.
++The size of a (word32 * word32 * word64) array of length 10 is = 184 bytes.
++The size of a (word64 * word64) array of length 10 is = 184 bytes.
++The size of a (word16 * word64) array of length 10 is = 184 bytes.
++The size of an array of length 10 of 2-ples of ints is = 104 bytes.
++The size of an array of length 10 of 2-ples of (shared) ints is = 104 bytes.
++The size of an array of length 10 of arrays of length 20 of ints is = 1144 bytes.
++The size of an array of length 10 of (shared) arrays of length 20 of ints is = 208 bytes.
++The size of an array of length 10 of tuples of word16 * (arrays of length 20 of ints) is = 1224 bytes.
++The size of an array of length 10 of tuples of word32 * (arrays of length 20 of ints) is = 1224 bytes.
++The size of an array of length 10 of tuples of word64 * (arrays of length 20 of ints) is = 1224 bytes.
++The size of an array of length 10 of tuples of real32 * (arrays of length 20 of ints) is = 1224 bytes.
++The size of an array of length 10 of tuples of real64 * (arrays of length 20 of ints) is = 1224 bytes.
++The size of a useless function is = 0 bytes.
+--- /dev/null
++++ b/regression/size3.riscv64-linux.ok
+@@ -0,0 +1,114 @@
++The size of unit is = 0 bytes.
++The size of unit * unit is = 0 bytes.
++The size of bool is = 0 bytes.
++The size of bool * bool is = 16 bytes.
++The size of day is = 0 bytes.
++The size of day * day is = 0 bytes.
++The size of a char is = 0 bytes.
++The size of a char * char is = 0 bytes.
++The size of a word8 is = 0 bytes.
++The size of a word8 * word8 is = 0 bytes.
++The size of a word16 is = 0 bytes.
++The size of a word16 * word16 is = 0 bytes.
++The size of a word32 is = 0 bytes.
++The size of a word32 * word32 is = 16 bytes.
++The size of a word64 is = 0 bytes.
++The size of a word64 * word64 is = 24 bytes.
++The size of a word64 * word64 * word64 is = 32 bytes.
++The size of a word64 * word64 * word64 * word64 is = 40 bytes.
++The size of a unit list of length 4 is = 64 bytes.
++The size of a bool list of length 4 is = 96 bytes.
++The size of a day list of length 4 is = 96 bytes.
++The size of an int list of length 4 is = 96 bytes.
++The size of a string of length 10 is = 40 bytes.
++The size of a word64 array of length 0 is = 24 bytes.
++The size of a word64 array of length 1 is = 32 bytes.
++The size of a word64 array of length 2 is = 40 bytes.
++The size of a word64 array of length 3 is = 48 bytes.
++The size of a word64 array of length 4 is = 56 bytes.
++The size of a word64 array of length 5 is = 64 bytes.
++The size of a word64 array of length 6 is = 72 bytes.
++The size of a word64 array of length 7 is = 80 bytes.
++The size of a word64 array of length 8 is = 88 bytes.
++The size of a word64 array of length 9 is = 96 bytes.
++The size of a word64 array of length 10 is = 104 bytes.
++The size of a word64 array of length 11 is = 112 bytes.
++The size of a word64 array of length 12 is = 120 bytes.
++The size of a word32 array of length 0 is = 24 bytes.
++The size of a word32 array of length 1 is = 32 bytes.
++The size of a word32 array of length 2 is = 32 bytes.
++The size of a word32 array of length 3 is = 40 bytes.
++The size of a word32 array of length 4 is = 40 bytes.
++The size of a word32 array of length 5 is = 48 bytes.
++The size of a word32 array of length 6 is = 48 bytes.
++The size of a word32 array of length 7 is = 56 bytes.
++The size of a word32 array of length 8 is = 56 bytes.
++The size of a word32 array of length 9 is = 64 bytes.
++The size of a word32 array of length 10 is = 64 bytes.
++The size of a word32 array of length 11 is = 72 bytes.
++The size of a word32 array of length 12 is = 72 bytes.
++The size of a word16 array of length 0 is = 24 bytes.
++The size of a word16 array of length 1 is = 32 bytes.
++The size of a word16 array of length 2 is = 32 bytes.
++The size of a word16 array of length 3 is = 32 bytes.
++The size of a word16 array of length 4 is = 32 bytes.
++The size of a word16 array of length 5 is = 40 bytes.
++The size of a word16 array of length 6 is = 40 bytes.
++The size of a word16 array of length 7 is = 40 bytes.
++The size of a word16 array of length 8 is = 40 bytes.
++The size of a word16 array of length 9 is = 48 bytes.
++The size of a word16 array of length 10 is = 48 bytes.
++The size of a word16 array of length 11 is = 48 bytes.
++The size of a word16 array of length 12 is = 48 bytes.
++The size of a word8 array of length 0 is = 24 bytes.
++The size of a word8 array of length 1 is = 32 bytes.
++The size of a word8 array of length 2 is = 32 bytes.
++The size of a word8 array of length 3 is = 32 bytes.
++The size of a word8 array of length 4 is = 32 bytes.
++The size of a word8 array of length 5 is = 32 bytes.
++The size of a word8 array of length 6 is = 32 bytes.
++The size of a word8 array of length 7 is = 32 bytes.
++The size of a word8 array of length 8 is = 32 bytes.
++The size of a word8 array of length 9 is = 40 bytes.
++The size of a word8 array of length 10 is = 40 bytes.
++The size of a word8 array of length 11 is = 40 bytes.
++The size of a word8 array of length 12 is = 40 bytes.
++The size of a unit array of length 0 is = 24 bytes.
++The size of a unit array of length 1 is = 24 bytes.
++The size of a unit array of length 2 is = 24 bytes.
++The size of a unit array of length 3 is = 24 bytes.
++The size of a unit array of length 4 is = 24 bytes.
++The size of a unit array of length 5 is = 24 bytes.
++The size of a unit array of length 6 is = 24 bytes.
++The size of a unit array of length 7 is = 24 bytes.
++The size of a unit array of length 8 is = 24 bytes.
++The size of a unit array of length 9 is = 24 bytes.
++The size of a unit array of length 10 is = 24 bytes.
++The size of a unit array of length 11 is = 24 bytes.
++The size of a unit array of length 12 is = 24 bytes.
++The size of a word64 ref is = 16 bytes.
++The size of a word32 ref is = 16 bytes.
++The size of a word16 ref is = 16 bytes.
++The size of a word8 ref is = 16 bytes.
++The size of a unit ref is = 8 bytes.
++The size of a double array of length 10 is = 104 bytes.
++The size of a (word32 * double) array of length 10 is = 184 bytes.
++The size of a (word32 * word32 * double) array of length 10 is = 184 bytes.
++The size of a (word64 * double) array of length 10 is = 184 bytes.
++The size of a (word16 * double) array of length 10 is = 184 bytes.
++The size of a word64 array of length 10 is = 104 bytes.
++The size of a (word32 * word64) array of length 10 is = 184 bytes.
++The size of a (word32 * word32 * word64) array of length 10 is = 184 bytes.
++The size of a (word64 * word64) array of length 10 is = 184 bytes.
++The size of a (word16 * word64) array of length 10 is = 184 bytes.
++The size of an array of length 10 of 2-ples of ints is = 104 bytes.
++The size of an array of length 10 of 2-ples of (shared) ints is = 104 bytes.
++The size of an array of length 10 of arrays of length 20 of ints is = 1144 bytes.
++The size of an array of length 10 of (shared) arrays of length 20 of ints is = 208 bytes.
++The size of an array of length 10 of tuples of word16 * (arrays of length 20 of ints) is = 1224 bytes.
++The size of an array of length 10 of tuples of word32 * (arrays of length 20 of ints) is = 1224 bytes.
++The size of an array of length 10 of tuples of word64 * (arrays of length 20 of ints) is = 1224 bytes.
++The size of an array of length 10 of tuples of real32 * (arrays of length 20 of ints) is = 1224 bytes.
++The size of an array of length 10 of tuples of real64 * (arrays of length 20 of ints) is = 1224 bytes.
++The size of a useless function is = 0 bytes.
++The size of an empty string is = 24 bytes.
diff --git a/debian/patches/riscv64.patch b/debian/patches/riscv64.patch
new file mode 100644 (file)
index 0000000..c3822a2
--- /dev/null
@@ -0,0 +1,129 @@
+--- a/basis-library/mlton/platform.sig
++++ b/basis-library/mlton/platform.sig
+@@ -10,7 +10,7 @@
+       structure Arch:
+          sig
+             datatype t = Alpha | AMD64 | ARM | ARM64 | HPPA | IA64 | m68k |
+-                         MIPS | MIPS64 | PowerPC | PowerPC64 | S390 | Sparc | X86
++                         MIPS | MIPS64 | PowerPC | PowerPC64 | RISCV64 | S390 | Sparc | X86
+             val fromString: string -> t option
+             val host: t
+--- a/basis-library/mlton/platform.sml
++++ b/basis-library/mlton/platform.sml
+@@ -28,6 +28,7 @@
+                 (MIPS64, "MIPS64"),
+                 (PowerPC, "PowerPC"),
+                 (PowerPC64, "PowerPC64"),
++                (RISCV64, "RISCV64"),
+                 (S390, "S390"),
+                 (Sparc, "Sparc"),
+                 (X86, "X86")]
+--- a/basis-library/primitive/prim-mlton.sml
++++ b/basis-library/primitive/prim-mlton.sml
+@@ -157,6 +157,7 @@
+              | MIPS64
+              | PowerPC
+              | PowerPC64
++             | RISCV64
+              | S390
+              | Sparc
+              | X86
+@@ -174,6 +175,7 @@
+                 | "mips64" => MIPS64
+                 | "powerpc" => PowerPC
+                 | "powerpc64" => PowerPC64
++                | "riscv64" => RISCV64
+                 | "s390" => S390
+                 | "sparc" => Sparc
+                 | "x86" => X86
+--- a/bin/platform
++++ b/bin/platform
+@@ -130,6 +130,9 @@
+ Power*)
+         HOST_ARCH=powerpc
+ ;;
++riscv64)
++      HOST_ARCH=riscv64
++;;
+ s390*)
+         HOST_ARCH=s390
+ ;;
+--- a/doc/guide/src/MLtonPlatform.adoc
++++ b/doc/guide/src/MLtonPlatform.adoc
+@@ -8,7 +8,7 @@
+       structure Arch:
+          sig
+             datatype t = Alpha | AMD64 | ARM | ARM64 | HPPA | IA64 | m68k
+-                       | MIPS | PowerPC | PowerPC64 | S390 | Sparc | X86
++                       | MIPS | PowerPC | PowerPC64 | RISCV64 | S390 | Sparc | X86
+             val fromString: string -> t option
+             val host: t
+--- a/lib/stubs/mlton-stubs/mlton.sml
++++ b/lib/stubs/mlton-stubs/mlton.sml
+@@ -159,7 +159,7 @@
+             structure Arch =
+                struct
+                   datatype t = Alpha | AMD64 | ARM | ARM64 | HPPA | IA64 | m68k |
+-                               MIPS | MIPS64 | PowerPC | PowerPC64 | S390 | Sparc | X86
++                               MIPS | MIPS64 | PowerPC | PowerPC64 | RISCV64 | S390 | Sparc | X86
+                   val all = [(Alpha, "Alpha"),
+                              (AMD64, "AMD64"),
+@@ -172,6 +172,7 @@
+                              (MIPS64, "MIPS64"),
+                              (PowerPC, "PowerPC"),
+                              (PowerPC64, "PowerPC64"),
++                             (RISCV64, "RISCV64"),
+                              (S390, "S390"),
+                              (Sparc, "Sparc"),
+                              (X86, "X86")]
+--- a/lib/stubs/mlton-stubs/platform.sig
++++ b/lib/stubs/mlton-stubs/platform.sig
+@@ -10,7 +10,7 @@
+       structure Arch:
+          sig
+             datatype t = Alpha | AMD64 | ARM | ARM64 | HPPA | IA64 | m68k |
+-                         MIPS | MIPS64 | PowerPC | PowerPC64 | S390 | Sparc | X86
++                         MIPS | MIPS64 | PowerPC | PowerPC64 | RISCV64 | S390 | Sparc | X86
+             val fromString: string -> t option
+             val host: t
+--- a/mlton/main/main.fun
++++ b/mlton/main/main.fun
+@@ -193,6 +193,7 @@
+        | IA64 => true
+        | MIPS => true
+        | MIPS64 => true
++       | RISCV64 => true
+        | Sparc => true
+        | S390 => true
+        | _ => false
+--- a/runtime/cenv.h
++++ b/runtime/cenv.h
+@@ -109,6 +109,8 @@
+ #include "platform/powerpc64.h"
+ #elif (defined (__ppc__)) || (defined (__powerpc__))
+ #include "platform/powerpc.h"
++#elif (defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64)
++#include "platform/riscv64.h"
+ #elif (defined (__s390__))
+ #include "platform/s390.h"
+ #elif (defined (__sparc__))
+--- a/runtime/platform/linux.c
++++ b/runtime/platform/linux.c
+@@ -30,6 +30,9 @@
+ #elif (defined (__ppc__)) || (defined (__powerpc__))
+         ucontext_t* ucp = (ucontext_t*)context;
+         GC_handleSigProf ((code_pointer) ucp->uc_mcontext.regs->nip);
++#elif (defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64)
++        ucontext_t* ucp = (ucontext_t*)context;
++        GC_handleSigProf ((code_pointer) ucp->uc_mcontext.__gregs[REG_PC]);
+ #elif (defined (__sparc__))
+         struct sigcontext* scp = (struct sigcontext*)context;
+ #if __WORDSIZE == 64
+--- /dev/null
++++ b/runtime/platform/riscv64.h
+@@ -0,0 +1 @@
++#define MLton_Platform_Arch_host "riscv64"
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644 (file)
index 0000000..f083216
--- /dev/null
@@ -0,0 +1,7 @@
+linux-pic.patch
+stack-hardening.patch
+ppc64el.patch
+kfreebsd.patch
+mips64el.patch
+riscv64.patch
+riscv64-regression.patch
diff --git a/debian/patches/stack-hardening.patch b/debian/patches/stack-hardening.patch
new file mode 100644 (file)
index 0000000..d0d8a71
--- /dev/null
@@ -0,0 +1,33 @@
+--- a/bin/mlton-script
++++ b/bin/mlton-script
+@@ -87,6 +87,7 @@
+         -target-cc-opt alpha                                     \
+                 '-mieee -mbwx -mtune=ev6 -mfp-rounding-mode=d'   \
+         -target-cc-opt amd64 '-m64'                              \
++        -target-cc-opt linux '-fstack-protector-strong'          \
+         -target-cc-opt aix '-maix64'                             \
+         -target-cc-opt ia64-hpux "-mlp64"                        \
+         -target-cc-opt ia64 "-mtune=itanium2"                    \
+@@ -104,7 +105,7 @@
+                 '-mieee -mbwx -mtune=ev6 -mfp-rounding-mode=d'   \
+         -target-link-opt aix '-maix64'                           \
+         -target-link-opt ia64-hpux "-mlp64"                      \
+-        -target-link-opt linux '-Wl,-znoexecstack'               \
++        -target-link-opt linux '-Wl,-znoexecstack,-zrelro'       \
+         -target-link-opt mingw                                   \
+                 '-lws2_32 -lkernel32 -lpsapi -lnetapi32 -lwinmm' \
+         -target-link-opt mingw '-Wl,--enable-stdcall-fixup'      \
+--- a/runtime/Makefile
++++ b/runtime/Makefile
+@@ -106,6 +106,11 @@
+ DEBUGXCFLAGS := -DASSERT=1 -Wno-uninitialized -O0 -g
+ PICXCFLAGS :=
++# Use stack hardening for the C method calls on linux
++ifeq ($(TARGET_OS), linux)
++XCFLAGS += -fstack-protector-strong
++endif
++
+ # Win32&64 don't use PIC code, all other platforms do
+ ifeq ($(findstring $(TARGET_OS), mingw cygwin),)
+ PICXCFLAGS += -fPIC
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..2b8f33e
--- /dev/null
@@ -0,0 +1,38 @@
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+# MLton compiles optimized, debug, and pic versions on its own.
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) make -C $(DEB_BUILDDIR)
+
+# The MLton guide is html. Don't compress example .sml files.
+DEB_COMPRESS_EXCLUDE_ALL = mlton/guide .sml
+
+DEB_MAKE_CLEAN_TARGET   = clean
+DEB_MAKE_BUILD_TARGET   = all docs
+DEB_MAKE_INSTALL_TARGET = install DESTDIR=$(CURDIR)/debian/tmp/ PREFIX=/usr
+DEB_MAKE_CHECK_TARGET   = check
+
+DEB_DH_STRIP_ARGS_DEFAULT = --no-automatic-dbgsym
+
+# Useful when inspecting build logs
+common-configure-arch::
+       free
+
+# Move MLton target to per-architecture path
+common-install-arch::
+       mv $(CURDIR)/debian/tmp/usr/lib/mlton/targets/self $(CURDIR)/debian/tmp/usr/lib/mlton/targets/$(DEB_HOST_MULTIARCH)
+       ln -s $(DEB_HOST_MULTIARCH) $(CURDIR)/debian/tmp/usr/lib/mlton/targets/self
+
+# Remove licenses and empty directories to appease lintian
+common-install-indep::
+       cp README.adoc README
+       rm -f $(CURDIR)/debian/tmp/usr/lib/mlton/sml/smlnj-lib/HTML4/helper.py # we don't need a python dependency for an unrelated helper script
+       rm -f $(CURDIR)/debian/tmp/usr/lib/mlton/sml/smlnj-lib/HTML4/tests/test001.html # would reveal user IP if loaded due to external validation image
+       find $(CURDIR)/debian/tmp -type d -empty -delete
+       if test -n "$(DEB_ISNATIVE)"; then mv \
+               $(CURDIR)/debian/tmp/usr/share/doc/mlton/changelog \
+               $(CURDIR)/debian/tmp/usr/share/doc/mlton/changelog.PreviousRelease; \
+       fi
diff --git a/debian/source/format b/debian/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)