Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions docs/fsharp/language-reference/compiler-directives.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,27 @@ let str = "Debugging!"
#endif
```

### Automatically Defined Symbols

The F# compiler automatically defines certain symbols based on the build configuration. These symbols can be used with `#if` directives for conditional compilation.

| Symbol | Description |
|---------|-------------|
| `DEBUG` | Automatically defined in debug builds when compiling with the `Debug` configuration. |
| `TRACE` | Defined when tracing is enabled in the project settings. |

For example, you can use these symbols in conditional compilation:

```fsharp
#if DEBUG
printfn "Debugging mode is enabled."
#else
printfn "Release mode."
#endif
```

These symbols are typically set by the compiler and do not require explicit definition in the source code.

## NULLABLE directive

Starting with F# 9, you can enable nullable reference types in the project:
Expand Down