dmd.mars

Entry point for DMD.

This modules defines the entry point (main) for DMD, as well as related utilities needed for arguments parsing, path manipulation, etc... This file is not shared with other compilers which use the DMD front-end.

Members

Functions

_Dmain
int _Dmain(char[][] )

Manual D main (for druntime initialization), which forwards to tryMain.

addDefaultVersionIdentifiers
void addDefaultVersionIdentifiers(Param params, Target tgt)

Add default version identifier for dmd, and set the target platform in params. https://dlang.org/spec/version.html#predefined-versions

createModule
Module createModule(const(char)* file, Strings libmodules)

Creates the module based on the file provided

createModules
Modules createModules(Strings files, Strings libmodules)

Creates the list of modules based on the files provided

flushMixins
void flushMixins()

we want to write the mixin expansion file also on error, but there are too many ways to terminate dmd (e.g. fatal() which calls exit(EXIT_FAILURE)), so we can't rely on scope(exit) ... in tryMain() actually being executed so we add atexit(&flushMixins); for those fatal exits (with the GC still valid)

getenv_setargv
void getenv_setargv(const(char)* envvalue, Strings* args)

Parses an environment variable containing command-line flags and append them to args.

main
int main(int argc, char** argv)

DMD's entry point, C main.

parseCommandLine
bool parseCommandLine(Strings arguments, size_t argc, Param params, Strings files)

Parse command line arguments.

parse_arch_arg
const(char)[] parse_arch_arg(Strings* args, const(char)[] arch)

Parse command line arguments for the last instance of -m32, -m64 or -m32mscoff to detect the desired architecture.

parse_conf_arg
const(char)[] parse_conf_arg(Strings* args)

Parse command line arguments for the last instance of -conf=path.

printInternalFailure
void printInternalFailure(FILE* stream)

Print DMD's logo with more debug information and error-reporting pointers.

Structs

DMDparams
struct DMDparams

DMD-specific parameters.

Meta

Suggestion Box / Bug Report