FSHARPC(1)

๐Ÿ“ฆ version 4.0.0.4, in ubuntu jammy, ubuntu noble

โœจ NAME โœจ

okay so bestie, this is the manual page for fsharpc โ€” that's section 1 of the User Commands manual, iykyk โ€” and it's literally the F# 3.0 Compiler (Open Source Edition). ๐Ÿฆ‹


๐Ÿ’… DESCRIPTION ๐Ÿ’…

It's the compiler for the F# language, version 3.0. That's the whole vibe. It takes your F# and it makes it go. โœจ


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

fsharpc [options...] file [file...]

like, options first, then as many files as your heart desires. no cap. ๐Ÿซถ


๐Ÿ‘‘ OPTIONS ๐Ÿ‘‘

๐ŸŒธ OUTPUT FILES ๐ŸŒธ

  • --out:file, -o file โ€” names your output file. that's it, that's the whole job. ๐Ÿ’–
  • --target:exe โ€” builds a console executable ๐Ÿ–ฅ๏ธ
  • --target:winexe โ€” builds a Windows executable ๐ŸชŸ
  • --target:library, -a โ€” builds a library ๐Ÿ“š
  • --target:module โ€” builds a module that can be added to another assembly ๐Ÿงฉ
  • --delaysign[+|-] โ€” delay-signs the assembly using only the public portion of the strong name key ๐Ÿ‘€
  • --doc:file โ€” writes the xmldoc of the assembly to the given file ๐Ÿ“
  • --keyfile:file โ€” specifies a strong name key file ๐Ÿ”‘
  • --keycontainer:string โ€” specifies a strong name key container ๐Ÿ—๏ธ
  • --platform:string โ€” limits which platforms this code can run on: x86, Itanium, x64, anycpu32bitpreferred, or anycpu.

the default is anycpu. periodt.

  • --nooptimizationdata โ€” only includes optimization information essential for implementing inlined constructs. it inhibits cross-module inlining but improves binary compatibility. it's giving tradeoff energy. โš–๏ธ
  • --nointerfacedata โ€” doesn't add a resource to the generated assembly containing F#-specific metadata ๐Ÿ™ˆ
  • --sig:file โ€” prints the inferred interface of the assembly to a file ๐Ÿ–จ๏ธ

๐Ÿ“ INPUT FILES ๐Ÿ“

  • --reference:file, -r file โ€” references an assembly ๐Ÿ”—

๐Ÿงš RESOURCES ๐Ÿงš

  • --win32res:file โ€” specifies a Win32 resource file (.res) ๐Ÿ—‚๏ธ
  • --win32manifest:file โ€” specifies a Win32 manifest file ๐Ÿ“„
  • --nowin32manifest โ€” do NOT include the default Win32 manifest ๐Ÿšซ
  • --resource:file[,string_name[,public|private]] โ€” embeds the specified managed resource ๐Ÿ“ฆ
  • --linkresource:file[,string_name[,public|private]] โ€” links the specified resource to this assembly ๐Ÿชข

๐Ÿ’œ CODE GENERATION ๐Ÿ’œ

  • --debug[+|-], -g โ€” emits debug information ๐Ÿ›
  • --debug:[full|pdbonly] โ€” specifies debugging type: full, pdbonly. full is the default and enables attaching a debugger to a running program. main character debugger energy fr fr ๐Ÿ”
  • --optimize[+|-], -O โ€” enables optimizations โšก
  • --tailcalls[+|-] โ€” enables tailcalls ๐ŸŒ€
  • --crossoptimize[+|-] โ€” enables cross-module optimizations ๐ŸŒˆ

๐Ÿ’€ ERRORS AND WARNINGS ๐Ÿ’€

  • --warnaserror[+|-] โ€” reports ALL warnings as errors. every single one. no survivors ๐Ÿ˜ญ
  • --warnaserror[+|-]:warn[;warn[;...]] โ€” reports specific warnings as errors ๐ŸŽฏ
  • --warn:n โ€” sets a warning level (0-5) ๐Ÿ“Š
  • --nowarn:warn[;warn[;...]] โ€” disables specific warning messages ๐Ÿ”‡
  • --warnon:warn[;warn[;...]] โ€” enables specific warnings that may be off by default ๐Ÿ””
  • --consolecolors[+|-] โ€” outputs warning and error messages in color ๐ŸŒˆ (yes bestie, the errors are pretty now)

๐Ÿฆ‹ LANGUAGE ๐Ÿฆ‹

  • --checked[+|-] โ€” generates overflow checks ๐Ÿงฎ
  • --define:string, -d string โ€” defines conditional compilation symbols ๐Ÿท๏ธ
  • --mlcompatibility โ€” ignores ML compatibility warnings ๐Ÿค

โญ MISCELLANEOUS โญ

  • --nologo โ€” suppresses the compiler copyright message ๐Ÿ™Š
  • --help, -? โ€” displays this usage message ๐Ÿ†˜

๐Ÿ”ฅ ADVANCED ๐Ÿ”ฅ

  • --codepage:n โ€” specifies the codepage used to read source files ๐Ÿ”ค
  • --utf8output โ€” outputs messages in UTF-8 encoding ๐ŸŒ
  • --fullpaths โ€” outputs messages with fully qualified paths ๐Ÿ›ฃ๏ธ
  • --lib:dir[;dir[;...]], -I dir[;dir[;...]] โ€” specifies a directory for the include path, which is used to resolve source files and assemblies ๐Ÿ“
  • --baseaddress:address โ€” base address for the library to be built ๐Ÿ 
  • --noframework โ€” does not reference the default CLI assemblies by default ๐Ÿšท
  • --standalone โ€” statically links the F# library and all referenced DLLs that depend on it into the assembly being generated ๐Ÿงท
  • --staticlink:assembly โ€” statically links the given assembly and all referenced DLLs that depend on this assembly. use an assembly name e.g. mylib, not a DLL name. โš ๏ธ (like, actually, use the assembly name, not the DLL name โ€” the manpage is being so serious about this)
bestie if you pass a DLL name here you're gonna have a bad time, the page literally says assembly name, ok? ๐Ÿ’–
  • --resident โ€” uses a resident background compilation service to improve compiler startup times ๐Ÿƒโ™€๏ธ
  • --pdb:file โ€” names the output debug file ๐Ÿž
  • --simpleresolution โ€” resolves assembly references using directory-based rules rather than MSBuild resolution ๐Ÿงญ
  • --highentropyva[+|-] โ€” enables high-entropy ASLR ๐ŸŽฒ
  • --subsystemversion:string โ€” specifies subsystem version of this assembly ๐Ÿ—๏ธ

and that's the whole page, bestie. every flag, every default, every little detail โ€” preserved with love, no cap. ๐Ÿ’…

this was fsharpc 3.0.34, dated February 2014 โ€” shoutout to the iconique FSHARPC(1) era, you ate and left no crumbs. ๐Ÿซถโœจ๐ŸŽ€

๐Ÿ“ฆ where this page comes from