Skip to content

Document all accepted command-line options - #377

Open
4Luke4 wants to merge 1 commit into
WeiDUorg:develfrom
4Luke4:docs/issue-28-command-line-options
Open

Document all accepted command-line options#377
4Luke4 wants to merge 1 commit into
WeiDUorg:develfrom
4Luke4:docs/issue-28-command-line-options

Conversation

@4Luke4

@4Luke4 4Luke4 commented Aug 1, 2026

Copy link
Copy Markdown

Summary

  • document all 23 accepted long command-line options that were missing from the manual
  • group the new entries by purpose and describe their arguments, side effects, precedence, and limitations
  • move the existing --version entry alongside the other program-control options
  • document the accepted -help alias and explicitly identify the limitations of the experimental --rcmp-* options
  • add a source-derived parity check that prevents the command-line parser and manual from silently drifting apart
  • run that parity check automatically before generating the HTML manual
Newly documented options
  • --automate-file
  • --change-log
  • --change-log-list
  • --change-log-rest
  • --debug-boiic
  • --debug-change
  • --debug-ocaml
  • --exit
  • --help
  • --licence
  • --list-components
  • --list-components-json
  • --list-languages
  • --log-extern
  • --no-exit-pause
  • --print-backtrace
  • --process-script
  • --quick-log
  • --rcmp-from
  • --rcmp-to
  • --search-ids
  • --textcmp-from
  • --textcmp-to

Implementation

test/check_command_line_options.pl derives the accepted long options from:

  • argDescr in src/main.ml
  • the default options exposed by Myarg.usage in src/myarg.ml

It compares those options with the \DEFINE{--...} entries in doc/base.tex and fails when an option is:

  • implemented but undocumented
  • documented but no longer implemented
  • documented more than once

This avoids introducing another hard-coded command-line option inventory.

Validation

  • perl -c test/check_command_line_options.pl
  • perl test/check_command_line_options.pl
    • reports: 129 command-line options are documented exactly once.
  • make -C doc
    • builds the HeVeA HTML manual successfully
    • produces 129 unique rendered long-option anchors with no duplicates
  • Linux build with ocaml-variants.4.14.2+options,ocaml-option-default-unsafe-string
  • make
  • make linux_zip
  • TERM=xterm ./WeiDU-Linux/weidu --help
  • git diff --check origin/devel...origin/docs/issue-28-command-line-options

The disposable validation workflow passed both its documentation and supported-Linux build jobs. The workflow existed only for validation and was removed from the final branch.

Existing workflow context

The repository's permanent workflow on the clean commit passed both macOS builds.

Its Linux job stops before compilation because ocaml/setup-ocaml can no longer resolve the pinned 4.08.1+default-unsafe-string compiler; upstream devel exhibits the same setup failure.

The current Windows job reaches compilation but stops on incompatible-pointer diagnostics in unchanged src/reg.c. This pull request modifies only doc/Makefile, doc/base.tex, and the new parity test.

Closes #28

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document semi-undocumented command-line options

1 participant