[MLton] Memory problems with latest CVS?

Matthew Fluet fluet@cs.cornell.edu
Tue, 31 Aug 2004 13:57:11 -0400 (EDT)


I think this is related to my space leak question yesterday.  I think that
some of the runtime reorganization introduced/exposed a GC bug.  I can
reliably get a segmentation fault during a mark-compact GC, although it's
quite sensitive to fiddling with ram-slop and fixed-heap options.  You're
log is also showing very high GC % times.  How much total RAM do you
compile with?

On Tue, 31 Aug 2004, Brent Fulgham wrote:

> I just tried building MLton (using CVS from yesterday,
> just prior to the MLton.Share checkin), and cannot
> bootstrap the compiler for Cygwin.  I get an
> out-of-memory error after the compiler has been built,
> when it's rebuilding the basis.
>
> This used to work until recently.
>
> -Brent
>
> ==================================================
> Build log
> ==================================================
> Compiling mlton (takes a while)
> mlton @MLton ram-slop 0.5 gc-summary  -- -default-ann
> 'sequenceUnit true' -targe
> t self -verbose 3 -output mlton-compile  mlton.cm
> MLton starting
> MLton MLTONVERSION (built Mon Aug 30 17:19:41 2004 on
> bfulgham)
>   created this file on Mon Aug 30 17:20:53 2004.
> Do not edit this file.
> Flag settings:
>    align: 4
>    atMLtons: (mlton-compile, @MLton, --)
>    basis library: basis-2002
>    log2 (card size): 8
>    chunk: chunk per function
>    codegen: Native
>    contifyIntoMain: false
>    debug: false
>    defines: []
>    detect overflow: true
>    diag passes: []
>    drop passes: []
>    elaborate allowConstant (default): false
>    elaborate allowConstant (enabled): true
>    elaborate allowExport (default): false
>    elaborate allowExport (enabled): true
>    elaborate allowImport (default): false
>    elaborate allowImport (enabled): true
>    elaborate allowPrim (default): false
>    elaborate allowPrim (enabled): true
>    elaborate allowOverload (default): false
>    elaborate allowOverload (enabled): true
>    elaborate allowRebindEquals (default): false
>    elaborate allowRebindEquals (enabled): true
>    elaborate deadCode (default): false
>    elaborate deadCode (enabled): true
>    elaborate forceUsed (default): 0
>    elaborate forceUsed (enabled): true
>    elaborate sequenceUnit (default): true
>    elaborate sequenceUnit (enabled): true
>    elaborate warnMatch (default): true
>    elaborate warnMatch (enabled): true
>    elaborate warnUnused (default): false
>    elaborate warnUnused (enabled): true
>    elaborate only: false
>    eliminate overflow: true
>    export header: None
>    exn history: false
>    gc check: Limit
>    handlers: Flow
>    indentation: 3
>    inline: NonRecursive {product = 320, small = 60}
>    inlineIntoMain: true
>    input file: mlton
>    instrument: false
>    instrument Sxml: false
>    keep Machine: false
>    keep RSSA: false
>    keep SSA: false
>    keep dot: false
>    keep passes: []
>    extra_: true
>    lib dir:
> /cygdrive/c/fulgham/projects/mlton/build/bin/../lib
>    lib target dir:
> /cygdrive/c/fulgham/projects/mlton/build/bin/../lib/self
>    limit check: loop headers (fullCFG = false,
> loopExits = true)
>    limit check counts: false
>    loop passes: 1
>    mark cards: true
>    max function size: 10000
>    may load world: true
>    native commented: 0
>    native live stack: false
>    native optimize: 1
>    native move hoist: true
>    native copy prop: true
>    native copy prop cutoff: 1000
>    native cutoff: 100
>    native live transfer: 8
>    native future: 64
>    native shuffle: true
>    native ieee fp: false
>    native split: Some 20000
>    new return: false
>    polyvariance: Some {rounds = 2, small = 30, product
> = 300}
>    prof passes: []
>    profile: None
>    profile basis: false
>    profile branch: false
>    profile IL: ProfileSource
>    profile stack: false
>    reserve esp: None
>    safe: true
>    show basis: None
>    show def-use: None
>    show types: false
>    ssaPassesSet: <ssaPassesSet>
>    ssaPasses: [default]
>    ssa2PassesSet: <ssa2PassesSet>
>    ssa2Passes: [default]
>    stack cont: false
>    static: false
>    sxmlPassesSet: <sxmlPassesSet>
>    sxmlPasses: [default]
>    target: self
>    target arch: X86
>    target OS: Cygwin
>    TextIO buffer size: 4096
>    type check: false
>    type error: concise
>    use basis library: true
>    verbosity: Detail
>    warn unrecognized annotation: true
>    xmlPassesSet: <xmlPassesSet>
>    xmlPasses: [default]
>    zone cut depth: 100
>    Compile SML starting
>       pre codegen starting
>          parseAndElaborate starting
>          parseAndElaborate finished in 18.65 + 263.68
> (93% GC)
>          core-ml size is 370,703,140 bytes
>          numPeeks = 18592801
>          maxLength = 3
>          average position in property list = 0.256
>          numPeeks = 350539
>          average position in bucket = 1.035
>          lex and parse totals 0.01 + 0.01 (50% GC)
>          elaborate totals 18.64 + 263.67 (93% GC)
>          deadCode starting
>          deadCode finished in 0.12 + 0.06 (33% GC)
>          basis size is 363,419,776 bytes
>          numPeeks = 18756302
>          maxLength = 3
>          average position in property list = 0.257
>          numPeeks = 350539
>          average position in bucket = 1.035
>          defunctorize starting
>          defunctorize finished in 1.97 + 116.71 (98%
> GC)
>          xml size is 372,581,548 bytes
>          numPeeks = 19967873
>          maxLength = 4
>          average position in property list = 0.281
>          numPeeks = 524741
>          average position in bucket = 0.996
>          simplify Xml starting
>             size = 398173
>             num types in program = 56378
>             num distinct types = 67914
>             hash table size is 0 bytes
>             xmlShrink1 starting
>             xmlShrink1 finished in 1.52 + 78.09 (98%
> GC)
>             post.xml size is 25,856,512 bytes
>             numPeeks = 27624286
>             maxLength = 4
>             average position in property list = 0.206
>             numPeeks = 821566
>             average position in bucket = 1.075
>             size = 195235
>             num types in program = 40977
>             num distinct types = 67914
>             hash table size is 0 bytes
>             simplifyTypes starting
>             simplifyTypes finished in 0.39 + 17.39
> (98% GC)
>             post.xml size is 29,068,428 bytes
>             numPeeks = 28716584
>             maxLength = 4
>             average position in property list = 0.201
>             numPeeks = 862566
>             average position in bucket = 1.076
>             size = 195235
>             num types in program = 40967
>             num distinct types = 67924
>             hash table size is 0 bytes
>          simplify Xml finished in 4.87 + 131.35 (96%
> GC)
>          xml size is 28,528,328 bytes
>          numPeeks = 30899184
>          maxLength = 4
>          average position in property list = 0.222
>          numPeeks = 1091923
>          average position in bucket = 1.102
>          size = 195235
>          num types in program = 40967
>          num distinct types = 67927
>          hash table size is 0 bytes
>          mono starting
>          mono finished in 3.80 + 216.78 (98% GC)
>          sxml size is 68,646,168 bytes
>          numPeeks = 41084200
>          maxLength = 4
>          average position in property list = 0.259
>          numPeeks = 2952187
>          average position in bucket = 1.463
>          monoSimplify starting
> Out of memory.  Unable to allocate 568,772,836 bytes.
>
> make[2]: *** [mlton-compile] Error 1
> make[2]: Leaving directory
> `/cygdrive/c/fulgham/projects/mlton/mlton'
> make[1]: *** [compiler] Error 2
> make[1]: Leaving directory
> `/cygdrive/c/fulgham/projects/mlton'
> make: *** [all-no-docs] Error 2
>
> bfulgham@bfulgham ~/mlton
> $
>
> _______________________________________________
> MLton mailing list
> MLton@mlton.org
> http://www.mlton.org/mailman/listinfo/mlton
>