[MonoDevelop] CSharpCompilerParameters and CSharpProjectParameters

Vasili I. Galchin vigalchin at gmail.com
Thu Apr 8 18:09:41 EDT 2010


To put my question another way, of all "fsc --help" CLI parms which
make sense to support in MonoDevelop F# support:

                - OUTPUT FILES -
--out:<file>                   Name of the output file (Short form: -o)
--target:exe                   Build a console executable
--target:winexe                Build a Windows executable
--target:library               Build a library (Short form: -a)
--target:module                Build a module that can be added to another
                               assembly
--delaysign[+|-]               Delay-sign the assembly using only the public
                               portion of the strong name key
--doc:<file>                   Write the xmldoc of the assembly to the given
                               file
--keyfile:<file>               Specify a strong name key file
--keycontainer:<string>        Specify a strong name key container
--platform:<string>            Limit which platforms this code can run on: x86,
                               Itanium, x64 or anycpu. The default is anycpu.
--nooptimizationdata           Only include optimization information essential
                               for implementing inlined constructs. Inhibits
                               cross-module inlining but improves binary
                               compatibility.
--nointerfacedata              Don't add a resource to the generated assembly
                               containing F#-specific metadata
--sig:<file>                   Print the inferred interface of the assembly to
                               a file


                - INPUT FILES -
--reference:<file>             Reference an assembly (Short form: -r)


                - RESOURCES -
--win32res:<file>              Specify a Win32 resource file (.res)
--win32manifest:<file>         Specify a Win32 manifest file
--nowin32manifest              Do not include the default Win32 manifest
--resource:<resinfo>           Embed the specified managed resource
--linkresource:<resinfo>       Link the specified resource to this assembly
                               where the resinfo format is <file>[,<string
                               name>[,public|private]]


                - CODE GENERATION -
--debug[+|-]                   Emit debug information (Short form: -g)
 --debug:{full|pdbonly}         Specify debugging type: full, pdbonly. ('full'
                               is the default and enables attaching a debugger
                               to a running program).
--optimize[+|-]                Enable optimizations (Short form: -O)
--tailcalls[+|-]               Enable or disable tailcalls
--crossoptimize[+|-]           Enable or disable cross-module optimizations


                - ERRORS AND WARNINGS -
--warnaserror[+|-]             Report all warnings as errors
--warnaserror[+|-]:<warn;...>  Report specific warnings as errors
--warn:<n>                     Set a warning level (0-4)
--nowarn:<warn;...>            Disable specific warning messages


                - LANGUAGE -
--checked[+|-]                 Generate overflow checks
--define:<string>              Define conditional compilation symbols (Short
                               form: -d)
--mlcompatibility              Ignore ML compatibility warnings


                - MISCELLANEOUS -
--nologo                       Suppress compiler copyright message
--help                         Display this usage message (Short form: -?)


                - ADVANCED -
--codepage:<n>                 Specify the codepage used to read source files
--utf8output                   Output messages in UTF-8 encoding
--fullpaths                    Output messages with fully qualified paths
--lib:<dir;...>                Specify a directory for the include path which
                               is used to resolve source files and assemblies
                               (Short form: -I)
--baseaddress:<address>        Base address for the library to be built
--noframework                  Do not reference the default CLI assemblies by
                               default
--standalone                   Statically link the F# library and all
                               referenced DLLs that depend on it into the
                               assembly being generated
--staticlink:<file>            Statically link the given assembly and all
                               referenced DLLs that depend on this assembly.
                               Use an assembly name e.g. mylib, not a DLL name.
--resident                     Use a resident background compilation service to
                               improve compiler startup times.
--pdb:<string>                 Name the output debug file
--simpleresolution             Resolve assembly references using
                               directory-based mono rules rather than MSBuild
                               resolution (Default=false except when running
                               fsc.exe under mono)


On 4/8/10, Vasili I. Galchin <vigalchin at gmail.com> wrote:
> Hi Lluis and Mike,
>
>     Mike wrote CSharpCompilerParameters and Lluis wrote
> CSharpProjectParameters. For F# I haven't changed either one of these
> classes. How did you come up with the configuration parameters? I am
> trying to decide what is correct and complete for F#. Any advice?
> Currently I have FSharpBindingCompilerManager.cs(which is one of the
> consumers of your two classes above) coded conservatively to hopefully
> avoid problems, However, I need to go into my
> FSharpCompilerParameters/FSharpProjectParameters and clean things up
> in a way that is appropriate, e.g. I am guessing that any parms
> dealing with "unsafeness" are inappropriate for F#. Any cool advice on
> this process?
>
> Regards,
>
> Vasili
>
> BTW I did do a "fsc --help" and "csc --help" to see CLI parms
>


More information about the Monodevelop-list mailing list