Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2006-02-03 19:51:41

Rene Rivera <grafik.list_at_[hidden]> writes:

> I just checked in the changes I talked about earlier with regards to
> adding options to the SHELL/COMMAND builtin. In the process I also added
> to the EXIT builtin the ability to specify a result value to exit with.
> I needed it to be able to implement a very minimal unit test facility
> for testing the SHELL changes. QuickBook documentation for both is also
> updated:
> [pre
> rule EXIT ( /message/ * : /result-value/ ? )
> ]

I'm not sure you should italicize parameter names; it's just bjam
code. If you meant for them to be replaceable it would be

  EXIT ( [~message] : [~result-value] )

or something, but then you wouldn't be writing it as a rule

> Blurts out the /message/ to stdout and then exits with a failure status
> if no /result-value/ is given, otherwise it exits with the given
> /result-value/.
> "=Echo=", "=echo=", "=Exit=", and "=exit=" are accepted as aliases for
> =ECHO= and =EXIT=, since it is hard to tell that these are built-in
> rules and not part of the language, like "=include=".

Wouldn't that same logic hold for every builtin rule? Why are these

> [pre
> rule SHELL ( /command/ : * )
> ]
> =SHELL= executes /command/, and then returns the standard output of
> /command/. =SHELL= only works on platforms with a =popen()= function in
> the C library. On platforms without a working =popen()= function,
> =SHELL= is implemented as a no-op. =SHELL= works on Unix, MacOS X, and
> most Windows compilers. =SHELL= is a no-op on Metrowerks compilers under
> Windows. There is a variable set of allowed options as additional arguments:
> [variablelist
> [[=exit-status=] [In addition to the output the result status of
> the executed command is returned as a second element of the result.]]
> [[=no-output=] [Don't capture the output of the command. Instead an
> empty ("") string value is returned in place of the output.]]
> ]
> Because the Perforce/Jambase defines a =Shell= rule which hides the
> builtin

Why would it? Jam is case sensitive.

Dave Abrahams
Boost Consulting

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at