On 2/13/11 2:05 PM, Walter Bright wrote:
golgeliyele wrote:
2. dmd compiler's command line options:
This is mostly an esthetic issue. However, it is like the entrance to
your house. People who are not sure about entering in
care about what it looks like from the outside. If Walter is willing,
I can work on a command line options interface proposal
that would keep backwards compatibility with the existing options.
This would enable a staged transition. Would there be
an interest in this?
A proposal would be nice. But please keep in mind that people often view
their build systems / makefiles as black boxes, and breaking them with
incompatible changes can be extremely annoying.
Here is one proposal:
Digital Mars D Compiler v2.051
Copyright (c) 1999-2010 by Digital Mars written by Walter Bright
Documentation: http://www.digitalmars.com/d/2.0/index.html
Usage:
dmd [options] <files>
<files> D source files
Options:
--commands <file> read arguments from a command file
-c, --compile only compile, do not link
--coverage do code coverage analysis
-D, --ddoc generate documentation
--ddoc-dir <dir> write documentation file to a directory
--ddoc-file <file> write documentation file to a file
-d, --deprecated allow deprecated features
--debug compile in debug code
--debug-level <level> compile in debug code <= level
--debug-ident <ident> compile in debug code identified by ident
--debug-lib <name> set symbolic debug library to name
--default-lib <name> set default library to name
--dependencies <file> write module dependencies to a file
--dylib generate dylib
-g, --sym-debug add symbolic debug info
--sym-debug-c add symbolic debug info, pretend to be C
-H, --header generate 'header' file
--header-dir <dir> write 'header' file to a directory
--header-file <file> write 'header' file to a file
--help print this help
-I, --imports <path> where to look for imports
--ignore-bad-pragmas ignore unsupported pragmas
--inline do function inlining
-J, --string-imports <path> where to look for string imports
-L, --linker-flags <flags> pass flags to the linker
--lib generate library rather than object files
--man open web browser on manual page
--linker-map generate linker .map file
--no-bounds-check turns off array bounds checking
--no-float do not emit reference to floating point
-O, --optimize optimize
-n, --no-object-file do not write object file
--object-dir <dir> write object, library files to a directory
--output <file> name output file to a file name
--no-path-strip do not strip paths from source file
--profile profile runtime performance of code
--quiet suppress unnecessary messages
--release compile release version
--run <prog> <args...> run resulting program file, passing args
--unittest compile in unit tests
-v, --verbose verbose
--version <level> compile in version >= level
--version <ident> compile in version identified by ident
--tls-vars list all variables going into thread
local storage
-w, --warnings enable warnings
-W, --info-warnings enable informational warnings
-X, --json generate JSON file
--json-file <file> write JSON file to a given file