[MLton-user] experimental release 20051109

Matthew Fluet fluet@cs.cornell.edu
Sun, 13 Nov 2005 19:31:23 -0500 (EST)


> John sent me the log and C code, and we discovered that his
> MLton-generated C code is identical to mine.  The difference we're
> seeing is due to the fact that John is using gcc 4.0.1, while I am
> using gcc 3.3.  At this point, I suspect we are running into a gcc
> 4.0.1 optimizer bug, or possibly a problem due to MLton generating
> non-compliant C.  As further evidence, I had John compile the C code
> with -O0, and it worked perfectly.

As another data point, I get errors with time profiling with gcc 4.0.1 on 
x86-linux with -codegen c:

[fluet@localhost temp]$ mlton-stable -verbose 1 -profile time -codegen c -keep g -keep o z.sml
MLton MLTONVERSION (built Sat Nov 12 16:56:13 2005 on 
localhost.localdomain)
MLton starting
    Compile SML starting
       pre codegen starting
       pre codegen finished in 1.92 + 1.02 (35% GC)
       C code gen starting
       C code gen finished in 0.02 + 0.00 (0% GC)
    Compile SML finished in 1.94 + 1.02 (34% GC)
    Compile C and Assemble starting
       gcc -std=gnu99 -c -I/home/fluet/mlton/mlton-stable/build/lib/include \
           -O1 -fno-strict-aliasing -fomit-frame-pointer -w -m32 \
           -mtune=opteron -o z.1.o z.1.c
z.1.c:162: error: 'MLtonProfile0 aliased to undefined symbol MLtonProfile0_internal'
z.1.c:163: error: 'MLtonProfile1 aliased to undefined symbol MLtonProfile1_internal'
...
z.1.c:950: error: 'MLtonProfile788 aliased to undefined symbol MLtonProfile788_internal'
z.1.c:951: error: 'MLtonProfile789 aliased to undefined symbol MLtonProfile789_internal'
    Compile C and Assemble raised in 1.53 + 0.00 (0% GC)
MLton raised in 3.48 + 1.03 (23% GC)
call to system failed with exit status 1:
gcc -std=gnu99 -c -I/home/fluet/mlton/mlton-stable/build/lib/include -O1 -fno-strict-aliasing -fomit-frame-pointer -w -m32 -mtune=opteron -o z.1.o z.1.c