mlton usage message

Stephen Weeks MLton@sourcelight.com
Thu, 21 Jun 2001 10:06:37 -0700


I would like to simplify the mlton usage message.  My proposal is to move many
of the switches that are only used by compiler hackers so that they are only
displayed if the verbosity level is >= 2, so you would only see the switch on a
usage message if you do "mlton -v2 -z".  I also propose removing some switches.
Let me know what you think of the following.

Remove
--------------------
    -contify-diag {true|false}         ?specify contify diag
    -contify {call|cc|cont|dom|none}   ?specify contify strategy

-v2
--------------------
    -g                                 produce executable with debug info
    -indentation n                     specify indentation level in ILs
    -native {true|false}               use native x86 code generation
    -native-commented n                ?level of comments  (0)
    -native-copy-prop {true|false}     ?enable/disable copy propagation
    -native-live-transfer {true|false} ?enable/disable live transfer
    -native-move-hoist {true|false}    ?enable/disable move hoisting
    -native-optimize n                 ?level of optimizations
    -native-split n                    ?split assembly files at ~n lines
    -show-types {false|true}           print types in ILs
    -use-basis-library {true|false}    prefix the basis library onto the program

Keep as is
--------------------
    -detect-overflow {true|false}      overflow checking on Int.{+,*,-}
    -Ddefine                           define symbolic constant
    -h heapSize [{k|m}]                specify heap size used by executable
    -iinclude                          include a .h file in the C code
    -inline n                          specify inlining threshold
    -Idir                              specify a dir to search for include files
    -keep {cps|g|il|o|sml}             save intermediate files
    -llibrary                          link with a library
    -Ldir                              specify a dir to search for libraries
    -native-ieee-fp {false|true}       ?enable/disable strict IEEE floating-point
    -no-polyvariance                   don't use polyvariance
    -o file                            specify name of output file
    -p                                 produce executable with profiling info
    -safe {true|false}                 bounds checking on arrays and other checks
    -show-basis                        display the basis library
    -static                            produce a statically linked executable
    -stop {f|g|o|sml}                  specify where to stop
    -v[0123]                           how verbose to be about compiler passes

I would also like to change -native-ieee-fp to -ieee-fp and change
-no-polyvariance to -polyvariance {true|false}.