When symbol canonicalization fails, $.Lexer_Implementation.Force_Symbol
calls Get_Symbol passing to it No_Thin_Symbol, so Get_Symbol needs to
support this case.
TN: T923-007
Put the declaration of these helper subprograms in $.Implementation's
spec so that we never get a warning about them being unused. This is now
the most common way to handle templating: first it removes the need to
do complex conditional code emission, simplifying templates, and second,
in the future, these helpers will belong to Langkit_Support: avoiding to
generate them when they are not needed (i.e. only for toy language
specs) is pointless.
TN: T320-010
- Allow just subclassing App.process_unit, by providing a default main
that iterates on units and calls process_unit on each
- Allow passing args to python App programmatically
This removes Python3.8-specific parts of Langkit so that users based on
not-too-recent Python distributions (for instance on Debian stable) can
use Langkit without building their own interpreter.
To detect such future 3.8 specificities, this commit also tunes the
Travis CI setup to run using Python 3.7.
TN: T911-014
We want coverage analysis to process only the root project (i.e. the
generated library, and not langkit_support & all). This used to be the
default, but gnatcov recently switched to a "recursive" mode by default.
Use the new --no-subprojects flag to get back to the previous behavior.
TN: S528-004
Will be used to store a reference to a logic var manually allocated
array in LAL. In general, can be useful to store data for extensions
that needs to be opaque from the DSL side because the type is not a DSL
compatible type.
Those extension points will allow us to store a logic var vector in the
analysis unit, and use it to lazily allocate logic vars rather than
storing them in nodes directly,