mlton-s.git
15 months agoAdd extended literal syntax. master
Joshua Wise [Sat, 5 Feb 2011 03:50:41 +0000]
Add extended literal syntax.

15 months agoAdd line comments and a README.
Joshua Wise [Sat, 5 Feb 2011 02:27:13 +0000]
Add line comments and a README.

16 months agoFix bug in comment-handling in lexer for mlyacc's input language. git-svn
fluet [Mon, 17 Jan 2011 20:56:39 +0000]
Fix bug in comment-handling in lexer for mlyacc's input language.

[Submitted by Michael Norrish.]

In particular, if a comment was successfully lexed, it returned a
BOGUS_VALUE token, which then messed up the higher-level parsing.
This was due to the use of the idiom

  continue() before YYBEGIN SOMESTATE

making the return value of the continue the return value for the lexer
at that point.

This bug prevented the use of comments in code sections entirely.

It was somewhat masked in the prefix section by the fact that most
supposed comments there were never lexed as such anyway.  This could
be observed by a file that included %% in a comment in the prefix
section.

git-svn-id: svn://mlton.org/mlton/trunk@7500 b3333978-20fd-0310-ad32-8d6aa5e013d9

16 months agoThe static-library script is in lib, not bin.
wesley [Mon, 17 Jan 2011 08:34:17 +0000]
The static-library script is in lib, not bin.

git-svn-id: svn://mlton.org/mlton/trunk@7499 b3333978-20fd-0310-ad32-8d6aa5e013d9

22 months agoFormatMessage doesn't agree with strerror.
wesley [Tue, 6 Jul 2010 16:24:18 +0000]
FormatMessage doesn't agree with strerror.
It also gives poor strings back for networking related errors.
Augment MinGW's native strerror with a big network-specific lookup table.

git-svn-id: svn://mlton.org/mlton/trunk@7498 b3333978-20fd-0310-ad32-8d6aa5e013d9

22 months agoFix uncaught Subscript exception in elaboration of function clauses.
fluet [Tue, 22 Jun 2010 13:27:35 +0000]
Fix uncaught Subscript exception in elaboration of function clauses.

An erroneous function declaration that has different numbers of
arguments in different clauses would raise an unhandled Subscript
exception:

[mtf@fenrir tmp]$ cat z.sml
fun f true false = #"a" | f _ = #"b"

val g = 1 + false

[mtf@fenrir tmp]$ ~/devel/mlton/mlton-20100608/build/bin/mlton z.sml
Error: z.sml 1.1.
  Function defined with different numbers of arguments.
    clause: f true false = #"a"
    clause: f _ = #"b"
unhandled exception: Subscript

This was due to the type checking of arguments that uses the first
clause as the canonical arguments and performs a Vector.sub on each
clause's patterns to select the corresponding argument.  For
subsequent clauses with fewer arguments than the first clause, this
raises the Subscript exception.

The solution is to inspect all clauses to determine the maximum number
of arguments, use fresh unification types as the canonical argument
types, and perform a bounds check to ignore clauses with fewer
arguments.

[mtf@fenrir tmp]$ ~/devel/mlton/mlton.svn.trunk/build/bin/mlton z.sml
Error: z.sml 1.1.
  Function defined with different numbers of arguments.
    clause: f true false = #"a"
    clause: f _ = #"b"
Error: z.sml 3.11.
  Function applied to incorrect argument.
    expects: _ * [int]
    but got: _ * [bool]
    in: + (1, false)
compilation aborted: parseAndElaborate reported errors

git-svn-id: svn://mlton.org/mlton/trunk@7497 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months ago * Downgrade priority to extra
wesley [Thu, 17 Jun 2010 19:23:18 +0000]
  * Downgrade priority to extra
   * mlton-cross depends on apt-cross which is extra
  * Build-depend wine instead of wine-unstable

git-svn-id: svn://mlton.org/mlton/trunk@7496 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoDepend on apt-cross and include the emdebian keyring.
wesley [Wed, 16 Jun 2010 16:35:09 +0000]
Depend on apt-cross and include the emdebian keyring.

git-svn-id: svn://mlton.org/mlton/trunk@7495 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoIt seems emdebian-crush doesn't setup a sources.list.d file anymore.
wesley [Wed, 16 Jun 2010 16:20:00 +0000]
It seems emdebian-crush doesn't setup a sources.list.d file anymore.
Update the README install instructions and drop dependency on it.

git-svn-id: svn://mlton.org/mlton/trunk@7494 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoemdebian-tools was replaced by emdebian-crush
wesley [Wed, 16 Jun 2010 15:17:03 +0000]
emdebian-tools was replaced by emdebian-crush
don't use apt-get source ... there may be no source URI
c compilers depend on libc-dev already
  (and this way we don't need platform-specific libc dependencies)

git-svn-id: svn://mlton.org/mlton/trunk@7493 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoAppease lintian
wesley [Tue, 15 Jun 2010 17:27:39 +0000]
Appease lintian

git-svn-id: svn://mlton.org/mlton/trunk@7492 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoWork with the released MLton's Makefile stamps.
wesley [Tue, 15 Jun 2010 16:56:43 +0000]
Work with the released MLton's Makefile stamps.

git-svn-id: svn://mlton.org/mlton/trunk@7491 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoWork-around a missing header in the debian mingw64 package.
wesley [Tue, 15 Jun 2010 16:14:49 +0000]
Work-around a missing header in the debian mingw64 package.

git-svn-id: svn://mlton.org/mlton/trunk@7490 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoPrepare a new cross-compiler package for debian.
wesley [Tue, 15 Jun 2010 14:42:22 +0000]
Prepare a new cross-compiler package for debian.

git-svn-id: svn://mlton.org/mlton/trunk@7489 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoLine too long in changelog.
wesley [Tue, 15 Jun 2010 14:14:23 +0000]
Line too long in changelog.

git-svn-id: svn://mlton.org/mlton/trunk@7488 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoA quick-n-dirty work-around until gcc gets fixed.
wesley [Mon, 14 Jun 2010 16:37:30 +0000]
A quick-n-dirty work-around until gcc gets fixed.

git-svn-id: svn://mlton.org/mlton/trunk@7487 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoThe gdb basis libraries for mingw aren't shipped as they are huge.
wesley [Sat, 12 Jun 2010 14:41:06 +0000]
The gdb basis libraries for mingw aren't shipped as they are huge.

git-svn-id: svn://mlton.org/mlton/trunk@7486 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoIt's an x86 target too.
wesley [Fri, 11 Jun 2010 15:36:45 +0000]
It's an x86 target too.

git-svn-id: svn://mlton.org/mlton/trunk@7485 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoThis mips work-around doesn't work anymore, so kill it.
wesley [Fri, 11 Jun 2010 15:05:37 +0000]
This mips work-around doesn't work anymore, so kill it.

git-svn-id: svn://mlton.org/mlton/trunk@7484 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoBuild a new debian package.
wesley [Fri, 11 Jun 2010 14:14:49 +0000]
Build a new debian package.

git-svn-id: svn://mlton.org/mlton/trunk@7483 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoInclude a 'release' version number in the MinGW packages.
wesley [Fri, 11 Jun 2010 14:11:26 +0000]
Include a 'release' version number in the MinGW packages.
This wasn't necessary before since they were all svn snapshots.

git-svn-id: svn://mlton.org/mlton/trunk@7482 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoAdd noexecstack linker command for Linux, this avoids unnecessary executable stack
adam [Fri, 11 Jun 2010 05:11:53 +0000]
Add noexecstack linker command for Linux, this avoids unnecessary executable stack

git-svn-id: svn://mlton.org/mlton/trunk@7481 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoUpdate dates for release
fluet [Tue, 8 Jun 2010 14:55:50 +0000]
Update dates for release

git-svn-id: svn://mlton.org/mlton/trunk@7479 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoRan grab-wiki for release
fluet [Tue, 8 Jun 2010 14:55:29 +0000]
Ran grab-wiki for release

git-svn-id: svn://mlton.org/mlton/trunk@7478 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoSocket regression on Cygwin appears to fail in the same way as on OpenBSD. Perhaps...
fluet [Mon, 7 Jun 2010 21:31:55 +0000]
Socket regression on Cygwin appears to fail in the same way as on OpenBSD.  Perhaps due to a misuse of the socket API.

git-svn-id: svn://mlton.org/mlton/trunk@7477 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoRan grab-wiki.
fluet [Mon, 7 Jun 2010 20:22:37 +0000]
Ran grab-wiki.

git-svn-id: svn://mlton.org/mlton/trunk@7476 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoAdditional platforms (Debian/Linux and Solaris).
fluet [Mon, 7 Jun 2010 20:17:19 +0000]
Additional platforms (Debian/Linux and Solaris).

git-svn-id: svn://mlton.org/mlton/trunk@7475 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoCygwin 1.7 only likes unix-style paths.
fluet [Fri, 28 May 2010 18:00:53 +0000]
Cygwin 1.7 only likes unix-style paths.

git-svn-id: svn://mlton.org/mlton/trunk@7474 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoCygwin 1.7 has MSG_DONTWAIT.
fluet [Fri, 28 May 2010 18:00:11 +0000]
Cygwin 1.7 has MSG_DONTWAIT.

git-svn-id: svn://mlton.org/mlton/trunk@7473 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoRemove unreferenced file.
fluet [Fri, 28 May 2010 17:41:17 +0000]
Remove unreferenced file.

git-svn-id: svn://mlton.org/mlton/trunk@7472 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoRename displayMem.linux.c to displayMem.proc.c, as it is used by more than just linux.
fluet [Fri, 28 May 2010 17:41:15 +0000]
Rename displayMem.linux.c to displayMem.proc.c, as it is used by more than just linux.

git-svn-id: svn://mlton.org/mlton/trunk@7471 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agomkdir2 is unused by any platform.
fluet [Fri, 28 May 2010 17:41:12 +0000]
mkdir2 is unused by any platform.

git-svn-id: svn://mlton.org/mlton/trunk@7470 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoThe differences in output for the exception history regression tests
fluet [Fri, 28 May 2010 14:58:41 +0000]
The differences in output for the exception history regression tests
are only due to case insensitive paths on Windows platforms.  Rename
the tests to a lower-case file name to eliminate extra output files.

git-svn-id: svn://mlton.org/mlton/trunk@7469 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoRan grab-wiki.
fluet [Thu, 27 May 2010 21:51:25 +0000]
Ran grab-wiki.

git-svn-id: svn://mlton.org/mlton/trunk@7468 b3333978-20fd-0310-ad32-8d6aa5e013d9

23 months agoExcess precision on x86-cygwin.
fluet [Mon, 24 May 2010 20:50:49 +0000]
Excess precision on x86-cygwin.

git-svn-id: svn://mlton.org/mlton/trunk@7467 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoFilter out targets directory from mlton-polyml.use file.
fluet [Thu, 20 May 2010 17:58:09 +0000]
Filter out targets directory from mlton-polyml.use file.

git-svn-id: svn://mlton.org/mlton/trunk@7466 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoAdd type constraints to appease SML/NJ type checker.
fluet [Thu, 20 May 2010 17:36:18 +0000]
Add type constraints to appease SML/NJ type checker.

git-svn-id: svn://mlton.org/mlton/trunk@7465 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoCast offsetof and sizeof GC constants to Word32.
fluet [Wed, 19 May 2010 02:33:35 +0000]
Cast offsetof and sizeof GC constants to Word32.

The various GC constants are emitted by code like:
  fprintf (stdout, "stackTop_Offset = %"PRIu32"\n", offsetof (struct GC_state, stackTop));
The constants are known to be small, so Word32 suffices to represent
the offsets and sizes.  However, on a 64-bit platform, offsetof and
sizeof return a 64-bit unsigned integer.  Although not observed in
practice, an ABI might have sufficiently different calling conventions
for 32-bit and 64-bit values that passing a 64-bit value where a
varargs function expects a 32-bit value would not simply see the low
32-bits of the 64-bit value.

The simple solution is to cast the offsetof and sizeof expressions to
Word32 before passing them to fprintf.

git-svn-id: svn://mlton.org/mlton/trunk@7464 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoFormat the date in English.
wesley [Tue, 18 May 2010 10:57:46 +0000]
Format the date in English.
Otherwise you could get non-ascii from French locales, etc.

git-svn-id: svn://mlton.org/mlton/trunk@7463 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoAll remaining uses of memcpy are valid.
fluet [Thu, 13 May 2010 12:48:39 +0000]
All remaining uses of memcpy are valid.

Audited remaining uses of memcpy in garbage collector.  All are
certain to have non-overlapping source and destinations (e.g., nursery
to old-gen, one semi-space to another semi-space, one object to a
newly allocated object).  Furthermore, the (src == dst) check in
GC_memcpy is unnecessary.

git-svn-id: svn://mlton.org/mlton/trunk@7462 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoReplaced use of memcpy by memmove in mark-compact garbage collector.
fluet [Thu, 13 May 2010 12:48:35 +0000]
Replaced use of memcpy by memmove in mark-compact garbage collector.

Fixed bug in the mark-compact garbage collector where the C library's
memcpy was used to move objects during the compaction phase.  Objects
could be moved by an arbitrarily small amount, leading to cases where
the object's destination overlapped with the object's source.  This
could lead to heap corruption and segmentation faults with newer
versions of gcc and/or glibc, which assume that src and dst in a
memcpy do not overlap.

git-svn-id: svn://mlton.org/mlton/trunk@7461 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoAdd control and option to supress deprecation warnings.
fluet [Sun, 9 May 2010 21:50:42 +0000]
Add control and option to supress deprecation warnings.

git-svn-id: svn://mlton.org/mlton/trunk@7460 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoPrepare a new debian package
wesley [Tue, 4 May 2010 17:28:00 +0000]
Prepare a new debian package

git-svn-id: svn://mlton.org/mlton/trunk@7459 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years ago... Wow.
wesley [Tue, 4 May 2010 17:19:38 +0000]
... Wow.

gcc 4.4.3 no longer allows this:
  union X {
    int x;
    short y;
  };
  x = input;
  reutrn y;

According to the C99 standard, the result for y is undefined.
For the longest time the union approach has been the recommended fix to the
pre-C99 standard idiom of 'return *(short*)&input;'. Not any more!

I really want to hurt whoever decided to take this idiom away. There are no
alternatives except calling out to memcpy (or similar) via a char*. The cost
to performance for a simple endian-swap is absurd.

Since we're already gcc-specific, an easy fix is to mark these unions as
__attribute__((__may_alias__)). This gets us past all regressions on 4.4.3.

git-svn-id: svn://mlton.org/mlton/trunk@7458 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoUpdates to mlton.el, from Sean McLaughlin.
fluet [Mon, 3 May 2010 15:41:57 +0000]
Updates to mlton.el, from Sean McLaughlin.

* Replace removed elisp function (sub1 x) with (- x 1)
* Replace old-style backquotes with new-style backquotes.

git-svn-id: svn://mlton.org/mlton/trunk@7457 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoThe new debian source format means cdbs needs quilt
wesley [Sun, 2 May 2010 11:40:23 +0000]
The new debian source format means cdbs needs quilt

git-svn-id: svn://mlton.org/mlton/trunk@7456 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoUpdate to use new targets/X folder.
wesley [Sun, 2 May 2010 11:39:04 +0000]
Update to use new targets/X folder.
Removed all CRs (was only on some lines...)

git-svn-id: svn://mlton.org/mlton/trunk@7455 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoUpdate target cross version.
wesley [Thu, 29 Apr 2010 17:24:11 +0000]
Update target cross version.
Appease lintian complaints and descriptions.

git-svn-id: svn://mlton.org/mlton/trunk@7454 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoPush another debian build.
wesley [Thu, 29 Apr 2010 16:55:14 +0000]
Push another debian build.

git-svn-id: svn://mlton.org/mlton/trunk@7453 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoRemove reference to deprecated features.
fluet [Thu, 22 Apr 2010 13:48:12 +0000]
Remove reference to deprecated features.

git-svn-id: svn://mlton.org/mlton/trunk@7452 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoKill off the (no longer useful) x86Validate and amd64Validate modules.
fluet [Thu, 22 Apr 2010 13:48:09 +0000]
Kill off the (no longer useful) x86Validate and amd64Validate modules.

git-svn-id: svn://mlton.org/mlton/trunk@7451 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoUpdate documentation.
fluet [Fri, 2 Apr 2010 20:18:13 +0000]
Update documentation.

git-svn-id: svn://mlton.org/mlton/trunk@7450 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoUpdate SML/NJ libraries to 110.72.
fluet [Fri, 2 Apr 2010 19:22:37 +0000]
Update SML/NJ libraries to 110.72.

git-svn-id: svn://mlton.org/mlton/trunk@7449 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoWarn about deprecated features.
fluet [Thu, 25 Mar 2010 21:20:41 +0000]
Warn about deprecated features.

git-svn-id: svn://mlton.org/mlton/trunk@7448 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoDon't build basis-ffi.sml and basis-ffi.h when building from clean sources.
fluet [Thu, 25 Mar 2010 21:16:48 +0000]
Don't build basis-ffi.sml and basis-ffi.h when building from clean sources.

It is convenient (for cross-compiling and porting) for the runtime to
build without requiring a working mlton.  Since basis-ffi.def changes
rarely, both basis-ffi.sml and basis-ffi.h are kept in the source
repository.  Also keep the gen-basis-ffi.stamp file (used to support
the multiple target Makefile rule) in the source repository.

git-svn-id: svn://mlton.org/mlton/trunk@7447 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoHalve backoff factor after 64 backoffs.
fluet [Sat, 20 Mar 2010 01:37:24 +0000]
Halve backoff factor after 64 backoffs.

Results in more total backoffs, but faster convergence to maximum
available memory.

git-svn-id: svn://mlton.org/mlton/trunk@7446 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoAfter one successful remap, continue with binary search for maximal remap.
fluet [Sat, 20 Mar 2010 01:37:21 +0000]
After one successful remap, continue with binary search for maximal remap.

git-svn-id: svn://mlton.org/mlton/trunk@7445 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoRename variables associated with address scan.
fluet [Sat, 20 Mar 2010 01:37:19 +0000]
Rename variables associated with address scan.

git-svn-id: svn://mlton.org/mlton/trunk@7444 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoEnsure that minSize is page aligned.
fluet [Sat, 20 Mar 2010 01:37:16 +0000]
Ensure that minSize is page aligned.

Avoids assertions with sizeofCardMapAndCrossMap.

git-svn-id: svn://mlton.org/mlton/trunk@7443 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoMore tweaks to GC messages.
fluet [Wed, 17 Mar 2010 20:57:30 +0000]
More tweaks to GC messages.

git-svn-id: svn://mlton.org/mlton/trunk@7442 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoFixes and updates to GC messages.
fluet [Wed, 17 Mar 2010 20:57:27 +0000]
Fixes and updates to GC messages.

git-svn-id: svn://mlton.org/mlton/trunk@7441 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoAdaptive backoff doesn't require significant growth.
fluet [Wed, 17 Mar 2010 20:57:25 +0000]
Adaptive backoff doesn't require significant growth.

git-svn-id: svn://mlton.org/mlton/trunk@7440 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoSimplify backoff scheme with a biased binary search.
fluet [Wed, 17 Mar 2010 20:57:22 +0000]
Simplify backoff scheme with a biased binary search.

git-svn-id: svn://mlton.org/mlton/trunk@7439 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoUpdate hash function documentation.
fluet [Tue, 16 Mar 2010 02:39:17 +0000]
Update hash function documentation.

git-svn-id: svn://mlton.org/mlton/trunk@7438 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoMake MLton.hash a complete (linear time) hash.
fluet [Tue, 16 Mar 2010 02:39:12 +0000]
Make MLton.hash a complete (linear time) hash.

git-svn-id: svn://mlton.org/mlton/trunk@7437 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoOutput for withtype regression tests.
fluet [Sat, 13 Mar 2010 12:09:26 +0000]
Output for withtype regression tests.

git-svn-id: svn://mlton.org/mlton/trunk@7436 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoUnify the elaboration of datatype specifications and datatype declarations.
fluet [Fri, 12 Mar 2010 21:33:10 +0000]
Unify the elaboration of datatype specifications and datatype declarations.

git-svn-id: svn://mlton.org/mlton/trunk@7435 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoFix bug with type checking of datatype declarations with withtype bindings.
fluet [Fri, 12 Mar 2010 21:33:05 +0000]
Fix bug with type checking of datatype declarations with withtype bindings.

The type checking and elaboration of datatype declarations had been
implemented by repeatedly elaborating the withtype bindings (in the
scope of the datatype type constructors) followed by the datatype
bindings (constructors) until the equality status of the datatype
tycons stabilized.

This implementation, however, has a problem with the following:
  type u = real ;
  datatype t = A of v | B of u
  withtype u = int and v = u ;

This should elaborate as:
  type u = real;
  datatype t = A of real | B of int ;
  type u = int and v = real ;
where the tycon t does not have equality status.

It was mistakenly elaborating as:
  type u = real ;
  datatype t = A of int | B of int ;
  type u = int and v = int ;
where the tycon t does not have equality status.  This was due to the
fact that after the first round of elaboration, the tycon t changed
from having equality status to not having equality status.  This
triggered a second round of elaboration, but in an environment where
"type u = int and v = real".  Thus, in the second round of
elaboration, the withtype bindings elaborate to
"type u = int and v = int" and the constructors elaborate to
"A of int" and "B of int".  However, the monotonicity of equality
status changes meant that the tycon t remained as not having equality
status.

To implement proper type checking of datatype declarations with
withtype bindings, elaborate the bindings exactly once and make the
determination of equality status from a tycon application "lazy", and
therefore sensitive to the changes in the equality status of the
tycon.

git-svn-id: svn://mlton.org/mlton/trunk@7434 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoAdditional withtype regression tests.
fluet [Fri, 12 Mar 2010 21:33:03 +0000]
Additional withtype regression tests.

git-svn-id: svn://mlton.org/mlton/trunk@7433 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoUpdate copyright date in license.
fluet [Fri, 12 Mar 2010 21:33:01 +0000]
Update copyright date in license.

git-svn-id: svn://mlton.org/mlton/trunk@7432 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoFix the type cast warnings.
wesley [Mon, 1 Mar 2010 14:29:12 +0000]
Fix the type cast warnings.
Casting through void* is legitimate as it prevent alias analysis.

git-svn-id: svn://mlton.org/mlton/trunk@7431 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoFix register allocation spilling bug.
fluet [Fri, 19 Feb 2010 14:35:13 +0000]
Fix register allocation spilling bug.

With PIC on x86-linux, %ebx is reserved for the GOT; this eliminates
the only byte-sized callee save register, which caused the spilling
bug when trying to shuffle registers across a C call.

git-svn-id: svn://mlton.org/mlton/trunk@7430 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoFormatting
fluet [Fri, 19 Feb 2010 14:35:11 +0000]
Formatting

git-svn-id: svn://mlton.org/mlton/trunk@7429 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoFormatting.
fluet [Thu, 18 Feb 2010 18:33:01 +0000]
Formatting.

git-svn-id: svn://mlton.org/mlton/trunk@7428 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoReport failure of 'CM.Graph.graph sources' and use OS.Process.success.
fluet [Thu, 18 Feb 2010 18:32:51 +0000]
Report failure of 'CM.Graph.graph sources' and use OS.Process.success.

git-svn-id: svn://mlton.org/mlton/trunk@7427 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoCM.Graph.graph fails when built with ml-build.
fluet [Thu, 18 Feb 2010 18:08:43 +0000]
CM.Graph.graph fails when built with ml-build.

git-svn-id: svn://mlton.org/mlton/trunk@7426 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoAutomate building and installing of cm2mlb tool.
fluet [Thu, 18 Feb 2010 16:47:25 +0000]
Automate building and installing of cm2mlb tool.

git-svn-id: svn://mlton.org/mlton/trunk@7425 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoSync svn:ignore.
fluet [Thu, 18 Feb 2010 15:16:15 +0000]
Sync svn:ignore.

git-svn-id: svn://mlton.org/mlton/trunk@7424 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoMore regularization of Makefile.
fluet [Thu, 18 Feb 2010 15:15:29 +0000]
More regularization of Makefile.

git-svn-id: svn://mlton.org/mlton/trunk@7423 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoAppease lintian
wesley [Wed, 17 Feb 2010 19:24:49 +0000]
Appease lintian

git-svn-id: svn://mlton.org/mlton/trunk@7422 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoA debian package creates cross targets for use under debian.
wesley [Wed, 17 Feb 2010 15:06:15 +0000]
A debian package creates cross targets for use under debian.
This allows every debian architecture to target any other (and/or windows).

git-svn-id: svn://mlton.org/mlton/trunk@7421 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoAnother multiple target bug.
wesley [Mon, 15 Feb 2010 16:58:09 +0000]
Another multiple target bug.

git-svn-id: svn://mlton.org/mlton/trunk@7420 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoAnother multiple target bug.
wesley [Mon, 15 Feb 2010 16:55:35 +0000]
Another multiple target bug.

This says to build the two output files by executing the rule twice.
front-end/mlb.grm.sig front-end/mlb.grm.sml: front-end/mlb.grm
$(MAKE) -C front-end mlb.grm.sig mlb.grm.sml

This describes a target-group rule that generates two files at once.
front-end/%.grm.sig front-end/%.grm.sml: front-end/%.grm
$(MAKE) -C front-end $(<F).sig $(<F).sml

... though you'd think they behave the same since they look alike, they don't.

git-svn-id: svn://mlton.org/mlton/trunk@7419 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoAnother multiple target bug.
wesley [Mon, 15 Feb 2010 16:50:51 +0000]
Another multiple target bug.

Fortunately, in this case we can replace the rules with a pattern rule.
%.sig %.grm: %.

git-svn-id: svn://mlton.org/mlton/trunk@7418 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoMultiple target rules do not work the way the original Makefile author thinks.
wesley [Mon, 15 Feb 2010 16:40:30 +0000]
Multiple target rules do not work the way the original Makefile author thinks.

foo.h bar.h: deps
rule

This means run 'rule' twice. Once for foo.h and once for bar.h.
In a serial build this doesn't matter because make will notice bar.h is
up-to-date after building foo.h. In a parallel build, however, it will run
the 'rule' twice concurrently, leading to problems since the rule probably
affects both files.

git-svn-id: svn://mlton.org/mlton/trunk@7417 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoFix Makefile to work with 'make -j X'.
wesley [Mon, 15 Feb 2010 14:57:21 +0000]
Fix Makefile to work with 'make -j X'.
gdtoa/*.o was rebuilt in-place as pic, gdb, and normal.
This made it break if compiled concurrently.

git-svn-id: svn://mlton.org/mlton/trunk@7416 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agocopy-paste error.
wesley [Sat, 13 Feb 2010 12:47:42 +0000]
copy-paste error.

git-svn-id: svn://mlton.org/mlton/trunk@7415 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoAdjust build rules to satisfy all the targets
wesley [Sat, 13 Feb 2010 12:43:08 +0000]
Adjust build rules to satisfy all the targets

git-svn-id: svn://mlton.org/mlton/trunk@7414 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoTweak armel build options
wesley [Mon, 8 Feb 2010 17:06:12 +0000]
Tweak armel build options

git-svn-id: svn://mlton.org/mlton/trunk@7413 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoUsing qemu, armel looks possible!
wesley [Sat, 6 Feb 2010 14:13:07 +0000]
Using qemu, armel looks possible!

git-svn-id: svn://mlton.org/mlton/trunk@7412 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoThe gcc team lies.
wesley [Sat, 6 Feb 2010 10:18:18 +0000]
The gcc team lies.
Now gcc stops complaining about the bad branch instruction and creates bad object code.

git-svn-id: svn://mlton.org/mlton/trunk@7411 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoThis has been purported fixed in gcc.
wesley [Fri, 5 Feb 2010 16:21:38 +0000]
This has been purported fixed in gcc.

git-svn-id: svn://mlton.org/mlton/trunk@7410 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoBuild a new debian package
wesley [Fri, 5 Feb 2010 16:15:54 +0000]
Build a new debian package

git-svn-id: svn://mlton.org/mlton/trunk@7409 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoNew standards version
wesley [Fri, 5 Feb 2010 16:14:34 +0000]
New standards version

git-svn-id: svn://mlton.org/mlton/trunk@7408 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoExport C_POINTER signature.
fluet [Fri, 22 Jan 2010 19:39:05 +0000]
Export C_POINTER signature.

git-svn-id: svn://mlton.org/mlton/trunk@7407 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoDuplicate the functionality of MLton.Pointer to c-types.mlb:C_Pointer.
fluet [Fri, 22 Jan 2010 16:48:19 +0000]
Duplicate the functionality of MLton.Pointer to c-types.mlb:C_Pointer.
Furthermore, C_Pointer operations are all in terms of C_Size.t and
C_Ptrdiff.t, so as to be agnostic to the pointer size.  Also add
get/set operations for all of the C_* types exported by c-types.mlb.

git-svn-id: svn://mlton.org/mlton/trunk@7406 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoBetter primitive types for CPointer_* primitives.
fluet [Fri, 22 Jan 2010 16:48:13 +0000]
Better primitive types for CPointer_* primitives.

git-svn-id: svn://mlton.org/mlton/trunk@7405 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoSuppress unused variable warnings.
fluet [Fri, 22 Jan 2010 16:48:08 +0000]
Suppress unused variable warnings.

git-svn-id: svn://mlton.org/mlton/trunk@7404 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoExport more structures from c-types.mlb.
fluet [Fri, 22 Jan 2010 16:48:06 +0000]
Export more structures from c-types.mlb.

git-svn-id: svn://mlton.org/mlton/trunk@7403 b3333978-20fd-0310-ad32-8d6aa5e013d9

2 years agoFix sharing constraints for MLTON_MONO_{ARRAY,VECTOR}.{to,from}Poly.
fluet [Tue, 19 Jan 2010 19:49:43 +0000]
Fix sharing constraints for MLTON_MONO_{ARRAY,VECTOR}.{to,from}Poly.

git-svn-id: svn://mlton.org/mlton/trunk@7402 b3333978-20fd-0310-ad32-8d6aa5e013d9