9865 Commits

Author SHA1 Message Date
Pierre-Marie de Rodat
7d842e067c Merge branch 'mr/pmderodat/26.1-aarch64-linux' into '26.1'
[26.1] $.Implementation: avoid implementation-dependent evaluation order

See merge request eng/libadalang/langkit!1480
2025-12-05 10:24:26 +00:00
Pierre-Marie de Rodat
4ac98ee9b2 $.Implementation: avoid implementation-dependent evaluation order
Ada does not specify the order of evaluation for call actuals. As a
consequence, in `Dump_Lexical_Env`, `Get_Env_Id` may currently be called
first on the parent env, or on the current env depending on what the
compiler thinks is best for code generation, and so the order in which
IDs are assigned may change from one platform to another or from one
compiler version to another.

Rework calls to `Get_Env_Id` so that the order is stable.

(cherry picked from commit 086c4f7df6)
2025-12-05 09:51:26 +00:00
Pierre-Marie de Rodat
166e8738dc Merge branch 'mr/pmderodat/26.1-ci' into '26.1'
[26.1] Use the same version of e3-testsuite as the Anod sandbox

See merge request eng/libadalang/langkit!1482
2025-12-05 09:50:49 +00:00
Pierre-Marie de Rodat
a695273dc8 Use the same version of e3-testsuite as the Anod sandbox
(cherry picked from commit cd47dbda16)
2025-12-04 16:55:38 +01:00
Pierre-Marie de Rodat
5cc60b2541 Merge branch 'mr/pmderodat/26.1-969' into '26.1'
[26.1] Fix backtracking control logic for list parsers

See merge request eng/libadalang/langkit!1457
2025-10-23 12:25:09 +00:00
Pierre-Marie de Rodat
b8fef8d893 Fix backtracking control logic for list parsers
(cherry picked from commit b64fe233bd)
2025-10-23 12:24:51 +00:00
Pierre-Marie de Rodat
e123aec126 Merge two tests related to cut parsers
(cherry picked from commit c3a6bfc3a6)
2025-10-23 12:24:51 +00:00
Pierre-Marie de Rodat
b147c5a209 Parsers: extend traceability comments in generated code
For each parser, clearly track the related variables in generated code,
in an attempt to make generated code easier to work for debugging
purposes.

(cherry picked from commit 4534d64e58)
2025-10-23 12:24:51 +00:00
Pierre-Marie de Rodat
d3e1c4f9ea Parsers: remove redundant "no backtrack" variable assignments
This is just a code generation cleanup, no change of behavior intended.

(cherry picked from commit a0326d4a69)
2025-10-23 12:24:51 +00:00
Pierre-Marie de Rodat
4fe51ea99c Parsers: strip empty lines from generated code
Because of the way Mako templates are written, a lot of empty lines are
included in generated code, making it hard to inspect/debug Ada code for
parsers. Post-process generated code to avoid these empty lines.

(cherry picked from commit 3a28cebd61)
2025-10-23 12:24:51 +00:00
Pierre-Marie de Rodat
760e9b3605 Merge branch 'mr/pmderodat/26.1-967' into '26.1'
[26.1] Rewriting: add a debug helper for node rewriting handles

See merge request eng/libadalang/langkit!1456
2025-10-23 12:22:42 +00:00
Pierre-Marie de Rodat
1915ffd5da Rewriting: rewriting error on unexpected unparsed tree shape
When applying rewriting modifications, stop with an error when the tree
obtained by parsing the unparsed rewriting tree does not have the exact
same shape as the rewriting tree itself.

(cherry picked from commit be0ff804da)
2025-10-21 16:04:05 +02:00
Pierre-Marie de Rodat
f3030db4a2 Rewriting: add a debug helper for node rewriting handles
(cherry picked from commit 2d724fefce)
2025-10-21 16:04:05 +02:00
Hugo Guerrier
a628a75d0d Merge branch 'revert-19c87a0c' into 'master'
Revert "Merge branch 'topic/c_api/fix_c_arrays' into 'master'"

See merge request eng/libadalang/langkit!1441
v26.0.0
2025-09-19 07:31:11 +00:00
Hugo Guerrier
681b63b87a Revert "Merge branch 'topic/c_api/fix_c_arrays' into 'master'"
This reverts merge request !1417
2025-09-19 07:03:48 +00:00
Hugo Guerrier
19c87a0cdc Merge branch 'topic/c_api/fix_c_arrays' into 'master'
C API: Make array structs "items" a flexible array member

Closes #954

See merge request eng/libadalang/langkit!1417
2025-09-18 10:26:08 +00:00
Hugo Guerrier
0d1ee2f1c1 Make array struct 'items' a flexible array member 2025-09-18 08:46:34 +00:00
Rémi Segard
4fceac8695 Merge branch 'topic/lkt_type/fix_parenexp_infinite_recursion' into 'master'
Lkt: prevent ParenExpr infinite recursion when computing its context free expected type

Closes #968

See merge request eng/libadalang/langkit!1440
2025-09-17 15:27:30 +00:00
Remi Segard
bc18da5e7a Lkt: prevent ParenExpr infinite recursion when computing its context free expected type 2025-09-17 16:10:37 +02:00
Pierre-Marie de Rodat
a1071649c1 Merge branch 'mr/pmderodat/dont-skip' into 'master'
Fix code generation for node-returning dont_skip subparsers

Closes #965

See merge request eng/libadalang/langkit!1437
2025-09-12 09:56:25 +00:00
Pierre-Marie de Rodat
d6182c25a6 Fix code generation for node-returning dont_skip subparsers 2025-09-12 09:35:41 +00:00
Pierre-Marie de Rodat
74383d44fc grammar/cuts: extend to cover dont_skip parsers 2025-09-12 09:35:41 +00:00
Pierre-Marie de Rodat
920ba0ea50 grammar/cuts: remove unused source file 2025-09-12 09:35:41 +00:00
Pierre-Marie de Rodat
a3824b3fcc Merge branch 'mr/pmderodat/dont-skip-unparsers' into 'master'
Unparsers: accept Prediate/dont_skip in list parsers

See merge request eng/libadalang/langkit!1438
2025-09-12 09:20:35 +00:00
Pierre-Marie de Rodat
829bf7ba39 Unparsers: accept Prediate/dont_skip in list parsers
This fixes an the validation pass for unparsers: `Predicate` and
`dont_skip` parsers have no influence on unparsing themselves. Not
calling `unwrap` when validating list parsers (like we do when
validating other kinds of parsers) was just an oversight.
2025-09-12 08:59:08 +00:00