Verified Commit bd113376 authored by Camil Staps's avatar Camil Staps
Browse files

Reorder compilation options in help and manpage; explain the difference...

Reorder compilation options in help and manpage; explain the difference between compilation options, project options, and main module options
parent c165817c
Pipeline #49198 passed with stage
in 28 seconds
......@@ -20,63 +20,83 @@ print version information.
append `path` to the search path.
.IP -P\ pathlist
search path is `pathlist`.
.SH MAIN MODULE OPTIONS
.IP -w\ -nw
enable/disable warnings. (default: -w)
.IP -d\ -nd
enable/disable the generation of readable label names. (default: -nd)
.IP -sa\ -nsa
enable/disable strictness analysis. (default: -sa)
.IP -ou\ -nou
enable/disable optimizing uniqueness typing. (default: -ou)
.IP -fusion\ -nfusion
enable/disable optimizing by fusion transformation. (default: -nfusion)
.IP -generic_fusion\ -ngeneric_fusion
enable/disable optimizing by generic fusion transformation. (default: -ngeneric_fusion)
.SH PROJECT OPTIONS
.IP -mv
verbose output of the make process.
.IP -ms
silent make process.
.IP -O
only generate object (.o) file of main module.
.IP -S
only generate assembly (.s) file of main module.
.IP -clc\ file
Use <file> as the compiler executable.
.IP -aC,option(s)
pass comma separated <option(s)> to the compiler (e.g. to set the compiler's
heap size: -aC,-h,100m).
.IP -RE\ file
redirect the compiler stderror to <file>
.IP -RO\ file
redirect the compiler stdout to <file>
.SH BUILD OPTIONS
These options determine which build steps are performed.
.IP -c
only check the syntax of the main module.
.IP -ABC
only generate abc (.abc) file of main module.
.IP -PO
only generate object (.o) files of modules in the project.
.IP -PS
only generate assembly (.s) files of modules in the project.
only generate abc (.abc) file of the main module.
.IP -S
only generate assembly (.s) file of the main module.
.IP -O
only generate object (.o) file of the main module.
.IP -PABC
only generate abc (.abc) files of modules in the project.
.IP -c
only syntax check main module. (note: compilation only considers the main
module)
.IP -lt\ -nlt
enable/disable listing only the inferred types. (default -nlt)
.IP -lat\ -nlat
enable/disable listing all the types. (default: -nlat)
.IP -lset
list the types of functions for which not all strictness information has been
exported.
.IP -PS
only generate assembly (.s) files of modules in the project.
.IP -PO
only generate object (.o) files of modules in the project.
.SH COMPILATION OPTIONS
These options apply whenever a module is recompiled, but do not trigger recompilation themselves.
.IP -ci\ -nci
enable/disable array indices checking. (default: -nci)
.IP -pt\ -npt
enable/disable the generation of code for time profiling. (default: -npt)
.IP -pg\ -npg
enable/disable the generation of code for callgraph profiling. (default: -npg)
.IP -desc
generate all descriptors.
.IP -exl
export local labels.
.IP -dynamics
enable support for dynamics.
.IP -lt\ -nlt
enable/disable listing only the inferred types. (default -nlt)
.IP -lat\ -nlat
enable/disable listing all the types. (default: -nlat)
.IP -lset
list the types of functions for which not all strictness information has been exported.
.IP -funcmayfail
enable the function totality checker.
.IP -warnfuncmayfail
enable the function totality checker but only emit it as a warning.
.SH LINKER OPTIONS
.SH PROJECT OPTIONS
These options apply to the whole project.
If a module was previously compiled with different options, it is recompiled.
.IP -tst
enable the generation of code for stack tracing. (default disabled)
.IP -pt\ -npt
enable/disable the generation of code for time profiling. (default: -npt)
.IP -pg\ -npg
enable/disable the generation of code for callgraph profiling. (default: -npg)
.IP -pic
only on ARM: generate position-independent code.
.SH MAIN MODULE OPTIONS
These options are applied to the main module only.
When it was compiled with different options it is recompiled.
The other modules in the project are not affected.
.IP -w\ -nw
enable/disable warnings. (default: -w)
.IP -d\ -nd
enable/disable the generation of readable label names. (default: -nd)
.IP -sa\ -nsa
enable/disable strictness analysis. (default: -sa)
.IP -ou\ -nou
enable/disable optimizing uniqueness typing. (default: -ou)
.IP -fusion\ -nfusion
enable/disable optimizing by fusion transformation. (default: -nfusion)
.IP -generic_fusion\ -ngeneric_fusion
enable/disable optimizing by generic fusion transformation. (default: -ngeneric_fusion)
.SH LINKER OPTIONS
.IP -ns
disable stripping the application.
.IP -no-opt-link
......@@ -90,18 +110,12 @@ export the label name <symbol> for shared libraries.
.IP -E\ file
same as -e, but the exported label names are specified in the file <file>,
separated by newlines.
.SH COMPILER APPLICATION OPTIONS
.IP -clc\ file
Use <file> as the compiler executable.
.IP -aC,option(s)
pass comma separated <option(s)> to the compiler (e.g. to set the compiler's
heap size: -aC,-h,100m).
.IP -RE\ file
redirect the compiler stderror to <file>
.IP -RO\ file
redirect the compiler stdout to <file>
same as -e, but the exported label names are specified in the file <file>,
.SH APPLICATION OPTIONS
.SH APPLICATION OPTIONS
These options do not trigger recompilation but modify behaviour of the application.
They can be given to
.BR clm ,
to change the default for the application, or to the application itself during execution (unless it was built with
.BR -nortsopts ).
.IP -h\ size
set the heap size to size in bytes (note: append k, K, m, or M to denote
kilobytes or megabytes). (default: 2m)
......@@ -118,6 +132,8 @@ enable/disable displaying the heap size after garbage collection. (default:
.IP -st\ -nst
enable/disable displaying the stack size before garbage collection. (default:
-nst)
.IP -nr
disable displaying the result of the application.
.IP -gcm
use marking/compacting garbage collection.
.IP -gcc
......@@ -128,7 +144,7 @@ multiply the heap size with <n> after garbage collection. (default: 20)
set the initial heap size to <size> in bytes (note: append k, K, m, or M to denote
kilobytes or megabytes). (default: 100k)
.IP -nortsopts
disable RTS command line arguments in the generated application
disable RTS command line arguments in the generated application.
.SH MAKING A PROJECT
Clm makes a project in the following way:
.IP 1.
......@@ -145,8 +161,12 @@ out information or is generated with an other compiler version.
.IP \-
the .abc file is older than a corresponding .icl or .dcl file.
.IP \-
the .abc file is compiled with different
.BR PROJECT\ OPTIONS .
.IP \-
the .icl file is the main module and the .abc file is compiled
with different compiler options (except for (not)verbose).
with different
.BR MAIN\ MODULE\ OPTIONS .
.IP \-
the .abc file is older than any of the .dcl files which are imported
by this module.
......
......@@ -4027,36 +4027,38 @@ static void argument_error (void)
printf (" Print the version and variables\n");
printf (" clm --version\n");
printf (" Print the version\n");
printf ("\nPath options:\n");
printf ("\nConfiguration options:\n");
printf (" -I <path> Append <path> to the search path\n");
printf (" -IL <path> Prepend the library path to <path> and append to the search path\n");
printf (" -P <path> Replace the complete search path with <path>\n");
printf ("\nMain module options:\n");
printf (" -w -nw Enable/disable warnings\n");
printf (" (default: -w)\n");
printf (" -d -nd Enable/disable the generation of readable label names\n");
printf (" (default: -nd)\n");
printf (" -sa -nsa Enable/disable strictness analysis\n");
printf (" (default: -sa)\n");
printf (" -ou -nou Enable/disable optimizing uniqueness typing\n");
printf (" (default: -ou)\n");
printf (" -fusion -nfusion\n");
printf (" Enable/disable optimizing by fusion transformation\n");
printf (" (default: -nfusion)\n");
printf (" -generic_fusion -ngeneric_fusion\n");
printf (" Enable/disable optimizing by generic fusion transformation\n");
printf (" (default: -ngeneric_fusion)\n");
printf ("\nProject options:\n");
printf (" -mv Verbose output of the make process\n");
printf (" -ms Silent make process\n");
printf (" -O Only generate the object file of the main module\n");
printf (" -PO Only generate object files of the project modules\n");
printf (" -S Only generate the assembly file of the main module\n");
printf (" -PS Only generate assembly files of the project modules\n");
printf (" -clc <file> Use <file> as the compiler executable\n");
#ifndef _WINDOWS_
printf (" -aC,<option(s)>\n");
printf (" Pass comma separated <option(s)> to the compiler\n");
printf (" (e.g. to set the compiler's heap size: -aC,-h,100m)\n");
#endif
printf (" -RE <file> Redirect compiler stderror to <file>\n");
printf (" -RO <file> Redirect compiler stdout to <file>\n");
#ifdef _WINDOWS_
printf (" -no-redirect-stderr\n");
printf (" Do not redirect stderr of child processes to stdout\n");
#endif
printf ("\nBuild options:\n");
printf (" -c Only check the syntax of the main module\n");
printf (" -ABC Only generate the ABC file of the main module\n");
printf (" -S Only generate the assembly file of the main module\n");
printf (" -O Only generate the object file of the main module\n");
printf (" -PABC Only generate ABC files of the project modules\n");
printf (" -c Only check the syntax\n");
printf (" (note: compilation only considers the main module)\n");
printf (" -PS Only generate assembly files of the project modules\n");
printf (" -PO Only generate object files of the project modules\n");
printf ("\nCompilation options:\n");
printf (" -ci -nci Enable/disable array indices checking\n");
printf (" (default: -nci)\n");
printf (" -desc Generate all descriptors\n");
printf (" -exl Export local labels\n");
printf (" -dynamics Enable support for dynamics\n");
printf (" -lt -nlt Enable/disable listing only the inferred types\n");
printf (" (note: strictness information is never included)\n");
printf (" (default: -nlt)\n");
......@@ -4064,22 +4066,33 @@ static void argument_error (void)
printf (" (default: -nlat)\n");
printf (" -lset List the types of functions for which not all strictness\n");
printf (" information has been exported\n");
printf (" -ci -nci Enable/disable array indices checking\n");
printf (" (default: -nci)\n");
#ifdef ARM
printf (" -pic Generate position independent code\n");
#endif
printf (" -funcmayfail Enable the function totality checker\n");
printf (" -warnfuncmayfail\n");
printf (" Enable the function totality checker but only emit warnings\n");
printf ("\nProject options:\n");
printf (" -tst Generate code for stack tracing\n");
printf (" -pt -npt Enable/disable the generation of code for time profiling\n");
printf (" (default: -npt)\n");
printf (" -pg -npg Enable/disable the generation of code for callgraph profiling\n");
printf (" (default: -npg)\n");
printf (" -desc Generate all descriptors\n");
printf (" -exl Export local labels\n");
printf (" -tst Generate code for stack tracing\n");
printf (" -dynamics Enable support for dynamics\n");
printf (" -funcmayfail Enable the function totality checker\n");
printf (" -warnfuncmayfail\n");
printf (" Enable the function totality checker but only emit it as a warning\n");
#ifdef ARM
printf (" -pic Generate position-independent code\n");
#endif
printf ("\nMain module options:\n");
printf (" -w -nw Enable/disable warnings\n");
printf (" (default: -w)\n");
printf (" -d -nd Enable/disable the generation of readable label names\n");
printf (" (default: -nd)\n");
printf (" -sa -nsa Enable/disable strictness analysis\n");
printf (" (default: -sa)\n");
printf (" -ou -nou Enable/disable optimizing uniqueness typing\n");
printf (" (default: -ou)\n");
printf (" -fusion -nfusion\n");
printf (" Enable/disable optimizing by fusion transformation\n");
printf (" (default: -nfusion)\n");
printf (" -generic_fusion -ngeneric_fusion\n");
printf (" Enable/disable optimizing by generic fusion transformation\n");
printf (" (default: -ngeneric_fusion)\n");
printf ("\nLinker options:\n");
printf (" -ns Disable stripping the application\n");
#ifdef OPTIMISE_LINK
......@@ -4090,19 +4103,6 @@ static void argument_error (void)
printf (" -e <symbol> Export the label name <symbol> for shared libraries\n");
printf (" -E <file> Same as -e, but the exported label names are specified in the\n");
printf (" file <file>, separated by newlines\n");
printf ("\nCompiler application options:\n");
printf (" -clc <file> Use <file> as the compiler executable\n");
#ifndef _WINDOWS_
printf (" -aC,<option(s)>\n");
printf (" Pass comma separated <option(s)> to the compiler\n");
printf (" (e.g. to set the compiler's heap size: -aC,-h,100m)\n");
#endif
printf (" -RE <file> Redirect compiler stderror to <file>\n");
printf (" -RO <file> Redirect compiler stdout to <file>\n");
#ifdef _WINDOWS_
printf (" -no-redirect-stderr\n");
printf (" Do not redirect stderr of child processes to stdout\n");
#endif
printf ("\nApplication options:\n");
printf (" -h <size> Set the heap size to <size> in bytes\n");
printf (" (note: append k, K, m, or M to denote kilobytes or megabytes)\n");
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment