Skip to content

build-system.jam review et al (fix #562) 💎#564

Open
paolopas wants to merge 3 commits intobfgroup:mainfrom
paolopas:gnurant-7
Open

build-system.jam review et al (fix #562) 💎#564
paolopas wants to merge 3 commits intobfgroup:mainfrom
paolopas:gnurant-7

Conversation

@paolopas
Copy link
Copy Markdown
Contributor

  • replaced bjam with b2 in comments
  • fixed condition in find-target rule
  • removed checking for USER_MODULE in initialize-config-module, that rule was added in 2004 with 2698cc5
  • fixed long options big mess 🐞 #562 [1], safer and more robust command line argument parsing algorithm implemented in build/build-request.jam, among other changes this also required the moving of various options declarations before the call of the build-request.from-command-line rule, namely --durations, --clean, --clean-all, and --dump-generators
  • changed expanded variable in main from global to local
  • fixed processing of --durations value, which was ignored, and updated option description to remove default value (not applicable)
  • changed .target-times global variable in main to target-times local var
  • restored version.build (formerly version.boost-build) rule call, this fixes the --out-xml option
  • refined regex in --out-xml processing code
  • changed --out-xml target updating algorithm to always use UPDATE_NOW which is available since 2010 with b170b53

et al (b2)

  • fixed default value for -j in jam.cpp, the correct value was reported by -v option, which was different that the one reported in the usage by -h
  • fixed --keep-going option logic in jam.cpp
  • added test/core_cmd_line.py for basic test of command line options processing
  • added test/core_option_durations.py for testing of --durations
  • added test/core_option_out-xml.py for testing of --out-xml
  • updated test/core_fail_expected.py for testing of --keep-going

et al (Lyra)

  • removed unused templates/alias is_callable, make_void, valid_t, and basic_token_name
  • cleared trailing return type syntax on isContainer, isFlag, setValue, and setFlag methods
  • fixed token_iterator::value method
  • fixed documentation of bound_parser::choices, typo in main::operator()
  • fixed main::operator() method

[1]

In fixing of #562 an important role is played by the update of mod_args with the addiction of has-opt Jam rule (C++ has_opt), this also required the following changes/addictions on Lyra:

  • added lyra::has_option function for querying of configured options using same matching criteria (and code) of passed in cli instance
  • added forward declaration of class cli, friend declaration of has_option in arguments and cli classes
  • added public method bound_parser::is_flag
  • changed opt::is_match visibility from protected to public

* replaced bjam with b2 in comments
* fixed condition in find-target rule
* removed checking for USER_MODULE in initialize-config-module, that
rule was added in 2004 with 2698cc5
* fixed bfgroup#562 [1], safer and more robust command line argument
parsing algorithm implemented in build/build-request.jam, among other
changes this also required the moving of various options declarations
before the call of the build-request.from-command-line rule, namely
--durations, --clean, --clean-all, and --dump-generators
* changed 'expanded' variable in main from global to local
* fixed processing of --durations value, which was ignored, and updated
option description to remove default value (not applicable)
* changed '.target-times' global variable in main to 'target-times' local var
* restored version.build (formerly version.boost-build) rule call, this
fixes the --out-xml option
* refined regex in --out-xml processing code
* changed --out-xml target updating algorithm to always use UPDATE_NOW
which is available since 2010 with b170b53

et al (b2)

* fixed default value for -j in jam.cpp, the correct value was reported by
-v option, which was different that the one reported in the usage by -h
* fixed --keep-going option logic in jam.cpp
* added test/core_cmd_line.py for basic test of command line options
processing
* added test/core_option_durations.py for testing of --durations
* added test/core_option_out-xml.py for testing of --out-xml
* updated test/core_fail_expected.py for testing of --keep-going

et al (Lyra)

* removed unused templates/alias is_callable, make_void, valid_t, and
  basic_token_name
* cleared trailing return type syntax on isContainer, isFlag, setValue,
  and setFlag methods
* fixed token_iterator::value method
* fixed documentation of bound_parser::choices, typo in main::operator()
* fixed main::operator() method

[1]
In fixing of bfgroup#562 an important role is played by the update of mod_args
with the addiction of has-opt Jam rule (C++ has_opt), this also required
the following changes/addictions on Lyra:

* added lyra::has_option function for querying of configured options using
same matching criteria (and code) of passed in cli instance
* added forward declaration of class cli, friend declaration of
has_option in 'arguments' and 'cli' classes
* added public method bound_parser::is_flag
* changed opt::is_match visibility from protected to public
@paolopas paolopas changed the title build-system.jam review et al build-system.jam review et al (fix #562) Feb 28, 2026
Comment thread src/engine/ext_bfgroup_lyra.h
Comment thread src/engine/ext_bfgroup_lyra.h
Comment thread src/engine/ext_bfgroup_lyra.h
Comment thread src/engine/ext_bfgroup_lyra.h
Comment thread src/engine/ext_bfgroup_lyra.h
@grafikrobot grafikrobot moved this to 🆕 New in BFG Tasks Apr 5, 2026

import BoostBuild

t = BoostBuild.Tester(pass_d0=True)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pass_d0 here is used only for optimization, it works fine even without


import BoostBuild

t = BoostBuild.Tester(pass_d0=True)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pass_d0 here is used only for optimization, it works fine even without

Comment thread doc/src/history.adoc
algorithm implemented.
-- _Paolo Pastori_
* Fixed broken `--out-xml`, ignoring value `--durations`, and inverted
logic `--keep-going` options.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

alzheimer

@paolopas paolopas changed the title build-system.jam review et al (fix #562) build-system.jam review et al (fix #562) 💎 Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🆕 New

Development

Successfully merging this pull request may close these issues.

long options big mess 🐞

2 participants