HaxeFoundation / HaxeFoundation/haxe

Undocumented compiler define flags

Open
#10,379 6 comments 1 reaction 0 assignees View on GitHub
Dominant language
Haxe
Stars
6.9k
Forks
715
Avg merge
2d 2h
Merged PRs (30d)
11

Description

There are a number of defines that are not documented on the [page in the manual.](https://haxe.org/manual/compiler-usage-flags.html)

Furthermore, in the compiler code they are access via a raw string rather than a strict value, so even if some should be hidden from documentation it would be good to add them to `defines.json` for cleaner and slightly safer code.

Is there any reason why any of these should not be documented?

## Here are the lists:

- `net-loader-debug`
- `java-loader-debug`
- `cs-safe-casts`
- `gen-hx-classes`
- `haxe.noNativeLibsCache`
- `hl-no-opt`
- `hl-check`
- `hl-no-debug`
- `run` (Running .hl file after compilation)
- `jvm-times`
- `nodejs`

Mentioned in #7965:
- `analyzer-no-const-propagation`
- `analyzer-no-copy-propagation`
- `analyzer-no-local-dce`
- `analyzer-no-fusion`
- `analyzer-no-purity-inference`
- `analyzer-times`
- `analyzer-user-var-fusion`
- `analyzer-no-user-var-fusion`

These might be deprecated:
- `haxe3`
- `haxe4`
- `js-es5`

And these are related to version numbers:
- `java7`, `java6` etc
- `NET_50`, `NET_45` etc (documented [here]( https://haxe.org/manual/target-cs-defines.html) actually)
- `flash10`, `flash9` etc

Defines that are documented but don't generate automatically and are accessed internally via raw strings:
- `target.static`
- `target.sys`
- `target.utf16`
- `target.threaded`
- `target.unicode`
- `target.name`

Contributor guide

Open the contributing guide

Research direction

Start by comparing the compiler's raw-string defines with defines.json and the compiler usage flags manual page. Review the listed flags, including those mentioned in #7965 and the possibly deprecated or version-specific defines, to determine which should be documented or represented in defines.json. Done means the applicable defines are documented and the relevant raw-string accesses are covered consistently.

Written by the indexing model from the issue text.

Assessment

Domain
compilers, documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.