From a441e504e8d82c19465abd4a01e9456a34057c86 Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" Date: Tue, 10 Apr 2018 13:38:06 -0700 Subject: [PATCH] Import Debian changes 20180207-1 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. --- debian/README.Debian | 34 + debian/changelog | 486 ++++++++++ debian/compat | 1 + debian/control | 423 +++++++++ debian/copyright | 106 +++ debian/mlton-basis.install | 2 + debian/mlton-compiler.install | 5 + debian/mlton-doc.doc-base.mlton | 10 + debian/mlton-doc.install | 4 + .../mlton-runtime-aarch64-linux-gnu.install | 1 + debian/mlton-runtime-alpha-linux-gnu.install | 1 + .../mlton-runtime-arm-linux-gnueabi.install | 1 + .../mlton-runtime-arm-linux-gnueabihf.install | 1 + debian/mlton-runtime-hppa-linux-gnu.install | 1 + .../mlton-runtime-i486-kfreebsd-gnu.install | 1 + debian/mlton-runtime-i486-linux-gnu.install | 1 + debian/mlton-runtime-mips-linux-gnu.install | 1 + ...on-runtime-mips64el-linux-gnuabi64.install | 1 + debian/mlton-runtime-mipsel-linux-gnu.install | 1 + .../mlton-runtime-powerpc-linux-gnu.install | 1 + ...lton-runtime-powerpc64le-linux-gnu.install | 1 + .../mlton-runtime-riscv64-linux-gnu.install | 1 + debian/mlton-runtime-s390x-linux-gnu.install | 1 + debian/mlton-runtime-sparc-linux-gnu.install | 1 + .../mlton-runtime-x86-64-kfreebsd-gnu.install | 1 + debian/mlton-runtime-x86-64-linux-gnu.install | 1 + debian/mlton-tools.doc-base.mllex | 9 + debian/mlton-tools.doc-base.mlyacc | 9 + debian/mlton-tools.install | 10 + debian/patches/kfreebsd.patch | 12 + debian/patches/linux-pic.patch | 10 + debian/patches/mips64el.patch | 117 +++ debian/patches/ppc64el.patch | 11 + debian/patches/riscv64-regression.patch | 865 ++++++++++++++++++ debian/patches/riscv64.patch | 129 +++ debian/patches/series | 7 + debian/patches/stack-hardening.patch | 33 + debian/rules | 38 + debian/source/format | 1 + 39 files changed, 2339 insertions(+) create mode 100644 debian/README.Debian create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/mlton-basis.install create mode 100644 debian/mlton-compiler.install create mode 100644 debian/mlton-doc.doc-base.mlton create mode 100644 debian/mlton-doc.install create mode 100644 debian/mlton-runtime-aarch64-linux-gnu.install create mode 100644 debian/mlton-runtime-alpha-linux-gnu.install create mode 100644 debian/mlton-runtime-arm-linux-gnueabi.install create mode 100644 debian/mlton-runtime-arm-linux-gnueabihf.install create mode 100644 debian/mlton-runtime-hppa-linux-gnu.install create mode 100644 debian/mlton-runtime-i486-kfreebsd-gnu.install create mode 100644 debian/mlton-runtime-i486-linux-gnu.install create mode 100644 debian/mlton-runtime-mips-linux-gnu.install create mode 100644 debian/mlton-runtime-mips64el-linux-gnuabi64.install create mode 100644 debian/mlton-runtime-mipsel-linux-gnu.install create mode 100644 debian/mlton-runtime-powerpc-linux-gnu.install create mode 100644 debian/mlton-runtime-powerpc64le-linux-gnu.install create mode 100644 debian/mlton-runtime-riscv64-linux-gnu.install create mode 100644 debian/mlton-runtime-s390x-linux-gnu.install create mode 100644 debian/mlton-runtime-sparc-linux-gnu.install create mode 100644 debian/mlton-runtime-x86-64-kfreebsd-gnu.install create mode 100644 debian/mlton-runtime-x86-64-linux-gnu.install create mode 100644 debian/mlton-tools.doc-base.mllex create mode 100644 debian/mlton-tools.doc-base.mlyacc create mode 100644 debian/mlton-tools.install create mode 100644 debian/patches/kfreebsd.patch create mode 100644 debian/patches/linux-pic.patch create mode 100644 debian/patches/mips64el.patch create mode 100644 debian/patches/ppc64el.patch create mode 100644 debian/patches/riscv64-regression.patch create mode 100644 debian/patches/riscv64.patch create mode 100644 debian/patches/series create mode 100644 debian/patches/stack-hardening.patch create mode 100755 debian/rules create mode 100644 debian/source/format diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..fcbc41b --- /dev/null +++ b/debian/README.Debian @@ -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 , Fri, 12 Oct 2001 11:31:16 -0600 + -- Stephen Weeks , Fri, 11 Jul 2003 12:27:26 -0700 + -- Wesley W. Terpstra , Tue, 13 Oct 2009 03:47:12 +0200 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..9e8408b --- /dev/null +++ b/debian/changelog @@ -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 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 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 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 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 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) Wed, 14 Oct 2009 15:37:25 +0200 + +mlton (20070826-1) unstable; urgency=low + + * new upstream version + + -- Stephen Weeks 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 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 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 Mon, 13 Feb 2006 10:16:46 -0800 + +mlton (20051202-1) unstable; urgency=low + + * new upstream version + + -- Stephen Weeks Thu, 01 Dec 2005 22:53:04 -0800 + +mlton (20051109-1) unstable; urgency=low + + * new upstream version + + -- Stephen Weeks Wed, 09 Nov 2005 18:47:04 -0800 + +mlton (20051102-1) unstable; urgency=low + + * new upstream version + + -- Stephen Weeks Wed, 02 Nov 2005 18:45:50 -0800 + +mlton (20050930-1) unstable; urgency=low + + * Fixed postinst problem. closes: #329692 + + -- Stephen Weeks Fri, 30 Sep 2005 09:19:50 -0700 + +mlton (20050906-1) unstable; urgency=low + + * Replaces -mv8 with -mcpu=v8 for Sparc. + + -- Stephen Weeks 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 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 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 Thu, 25 Aug 2005 06:14:06 -0700 + +mlton (20050824-1) unstable; urgency=low + + * new upstream version + * built statically, closes: #324859 + + -- Stephen Weeks Wed, 24 Aug 2005 15:13:19 -0700 + +mlton (20050823-1) unstable; urgency=low + + * new upstream version + + -- Stephen Weeks Tue, 23 Aug 2005 14:56:59 -0700 + +mlton (20050822-1) unstable; urgency=low + + * new upstream version + + -- Stephen Weeks Mon, 22 Aug 2005 17:13:09 -0700 + +mlton (20041109-1) unstable; urgency=low + + * new upstream version + + -- Stephen Weeks Tue, 09 Nov 2004 00:00:00 -0800 + +mlton (20040227-1) unstable; urgency=low + + * new upstream version + + -- Stephen Weeks Fri, 27 Feb 2004 17:20:04 -0800 + +mlton (20040106-1) unstable; urgency=low + + * new upstream version + + -- Stephen Weeks 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 Tue, 02 Dec 2003 06:54:35 -0800 + +mlton (20030716-1) unstable; urgency=low + + * new upstream version + + -- Stephen Weeks Wed, 16 Jul 2003 10:42:34 -0700 + +mlton (20030710-1) unstable; urgency=low + + * new upstream version + + -- Stephen Weeks 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 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 Thu, 17 Oct 2002 15:07:53 -0700 + +mlton (20020930.1-1) unstable; urgency=low + + * Recompiling without setting rpath. + + -- Stephen Weeks 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 Sun, 29 Sep 2002 00:01:46 -0700 + +mlton (20020728.1-1) unstable; urgency=low + + * new upstream version + + -- Barak Pearlmutter Mon, 29 Jul 2002 10:57:36 -0600 + +mlton (20020410.1-1) unstable; urgency=low + + * new upstream version + + -- Barak Pearlmutter 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 Mon, 15 Oct 2001 02:49:26 -0600 + +mlton (20011006.1-1) unstable; urgency=low + + * new upstream source + + -- Barak Pearlmutter 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 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 Fri, 24 Aug 2001 01:05:27 -0600 + +mlton (20010806-1) unstable; urgency=low + + * Initial Release. + + -- Barak Pearlmutter Mon, 20 Aug 2001 01:57:57 -0600 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +10 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..ed8e59f --- /dev/null +++ b/debian/control @@ -0,0 +1,423 @@ +Source: mlton +Section: devel +Priority: optional +Maintainer: Wesley W. Terpstra +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 index 0000000..61bdab7 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,106 @@ +Now maintained by Wesley W. Terpstra . +This package was debianized by Stephen Weeks . +The original debianization was done by Barak Pearlmutter . + +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 index 0000000..74f162f --- /dev/null +++ b/debian/mlton-basis.install @@ -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 index 0000000..09c20d2 --- /dev/null +++ b/debian/mlton-compiler.install @@ -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 index 0000000..8b3c66e --- /dev/null +++ b/debian/mlton-doc.doc-base.mlton @@ -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 index 0000000..5ddc7e7 --- /dev/null +++ b/debian/mlton-doc.install @@ -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 index 0000000..b2797bb --- /dev/null +++ b/debian/mlton-runtime-aarch64-linux-gnu.install @@ -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 index 0000000..249487a --- /dev/null +++ b/debian/mlton-runtime-alpha-linux-gnu.install @@ -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 index 0000000..f3b3791 --- /dev/null +++ b/debian/mlton-runtime-arm-linux-gnueabi.install @@ -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 index 0000000..e4d6a48 --- /dev/null +++ b/debian/mlton-runtime-arm-linux-gnueabihf.install @@ -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 index 0000000..b15ef8b --- /dev/null +++ b/debian/mlton-runtime-hppa-linux-gnu.install @@ -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 index 0000000..58568da --- /dev/null +++ b/debian/mlton-runtime-i486-kfreebsd-gnu.install @@ -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 index 0000000..2d0f9cc --- /dev/null +++ b/debian/mlton-runtime-i486-linux-gnu.install @@ -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 index 0000000..363ef01 --- /dev/null +++ b/debian/mlton-runtime-mips-linux-gnu.install @@ -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 index 0000000..2783426 --- /dev/null +++ b/debian/mlton-runtime-mips64el-linux-gnuabi64.install @@ -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 index 0000000..57bea5c --- /dev/null +++ b/debian/mlton-runtime-mipsel-linux-gnu.install @@ -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 index 0000000..14cf8e4 --- /dev/null +++ b/debian/mlton-runtime-powerpc-linux-gnu.install @@ -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 index 0000000..9dc4bf5 --- /dev/null +++ b/debian/mlton-runtime-powerpc64le-linux-gnu.install @@ -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 index 0000000..4144868 --- /dev/null +++ b/debian/mlton-runtime-riscv64-linux-gnu.install @@ -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 index 0000000..3ee482c --- /dev/null +++ b/debian/mlton-runtime-s390x-linux-gnu.install @@ -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 index 0000000..8af2606 --- /dev/null +++ b/debian/mlton-runtime-sparc-linux-gnu.install @@ -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 index 0000000..760c0a0 --- /dev/null +++ b/debian/mlton-runtime-x86-64-kfreebsd-gnu.install @@ -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 index 0000000..ec65286 --- /dev/null +++ b/debian/mlton-runtime-x86-64-linux-gnu.install @@ -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 index 0000000..1fe9cfe --- /dev/null +++ b/debian/mlton-tools.doc-base.mllex @@ -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 index 0000000..8425ec8 --- /dev/null +++ b/debian/mlton-tools.doc-base.mlyacc @@ -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 index 0000000..58491fe --- /dev/null +++ b/debian/mlton-tools.install @@ -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 index 0000000..663e392 --- /dev/null +++ b/debian/patches/kfreebsd.patch @@ -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 index 0000000..48ec668 --- /dev/null +++ b/debian/patches/linux-pic.patch @@ -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 index 0000000..0be4010 --- /dev/null +++ b/debian/patches/mips64el.patch @@ -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 index 0000000..8078a69 --- /dev/null +++ b/debian/patches/ppc64el.patch @@ -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 index 0000000..5e5b5e7 --- /dev/null +++ b/debian/patches/riscv64-regression.patch @@ -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 index 0000000..c3822a2 --- /dev/null +++ b/debian/patches/riscv64.patch @@ -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 index 0000000..f083216 --- /dev/null +++ b/debian/patches/series @@ -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 index 0000000..d0d8a71 --- /dev/null +++ b/debian/patches/stack-hardening.patch @@ -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 index 0000000..2b8f33e --- /dev/null +++ b/debian/rules @@ -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 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) -- 2.20.1