Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to build langkit with Python 3.12 and GNAT 14 #660

Closed
andrewathalye opened this issue Jan 16, 2025 · 8 comments
Closed

Unable to build langkit with Python 3.12 and GNAT 14 #660

andrewathalye opened this issue Jan 16, 2025 · 8 comments

Comments

@andrewathalye
Copy link

Any idea what could cause this? I’m not able to build it at all because it doesn’t generate the adasat ads / adb files

Running phase: unpackPhase
@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking source archive /nix/store/j5mijjycagn48nn08rs1qvv2269ynvi7-source
source root is source
Running phase: patchPhase
@nix { "action": "setPhase", "phase": "patchPhase" }
Running phase: updateAutotoolsGnuConfigScriptsPhase
@nix { "action": "setPhase", "phase": "updateAutotoolsGnuConfigScriptsPhase" }
Running phase: buildPhase
@nix { "action": "setPhase", "phase": "buildPhase" }
Setup
[mkdir] object directory for project Langkit_Support
[mkdir] library directory for project Langkit_Support
Compile
[Ada] langkit_support.ads
[Ada] langkit_support-vectors.adb
[Ada] langkit_support-types.ads
[Ada] langkit_support-tree_traversal_iterator.adb
[Ada] langkit_support-token_data_handlers.adb
[Ada] langkit_support-text.adb
[Ada] langkit_support-symbols.adb
[Ada] langkit_support-symbols-precomputed.adb
[Ada] langkit_support-slocs.adb
[Ada] langkit_support-relative_get.adb
[Ada] langkit_support-packrat.adb
[Ada] langkit_support-names.adb
[Ada] langkit_support-names-maps.adb
[Ada] langkit_support-lexical_envs_impl.adb
[Ada] langkit_support-lexical_envs.ads
[Ada] langkit_support-iterators.adb
[Ada] langkit_support-internal.ads
[Ada] langkit_support-internal-unparsing.ads
[Ada] langkit_support-internal-introspection.adb
[Ada] langkit_support-internal-descriptor.ads
[Ada] langkit_support-internal-conversions.ads
[Ada] langkit_support-internal-analysis.adb
[Ada] langkit_support-images.adb
[Ada] langkit_support-hashes.adb
[Ada] langkit_support-generic_bump_ptr.adb
[Ada] langkit_support-generic_api.adb
[Ada] langkit_support-generic_api-unparsing.adb
[Ada] langkit_support-generic_api-introspection.adb
[Ada] langkit_support-generic_api-analysis.adb
[Ada] langkit_support-file_readers.adb
[Ada] langkit_support-errors.ads
[Ada] langkit_support-diagnostics.adb
[Ada] langkit_support-diagnostics-output.adb
[Ada] langkit_support-cheap_sets.adb
[Ada] langkit_support-bump_ptr_vectors.adb
[Ada] langkit_support-bump_ptr.ads
[Ada] langkit_support-boxes.adb
[Ada] langkit_support-array_utils.adb
[Ada] langkit_support-adalog.ads
[Ada] langkit_support-adalog-solver_interface.adb
[Ada] langkit_support-adalog-solver.adb
[Ada] langkit_support-adalog-solver-diagnostics.adb
[Ada] langkit_support-adalog-main_support.ads
[Ada] langkit_support-adalog-logic_var.adb
[Ada] langkit_support-adalog-generic_main_support.adb
[Ada] langkit_support-adalog-debug.adb
[Ada] langkit_support-prettier_utils.adb
Build Libraries
[gprlib] langkit_support.lexch
[bind SAL] langkit_support
[Ada] b__langkit_support.adb
[link library] liblangkit_support.so
Setup
[mkdir] object directory for project Langkit_SIGSEGV_Handler
[mkdir] library directory for project Langkit_SIGSEGV_Handler
Compile
[Ada] langkit_sigsegv_handler.ads
Build Libraries
[gprlib] langkit_sigsegv_handler.lexch
[bind SAL] langkit_sigsegv_handler
[Ada] b__langkit_sigsegv_handler.adb
[link library] liblangkit_sigsegv_handler.so
Setup
[mkdir] object directory for project Langkit_Support
[mkdir] library directory for project Langkit_Support
Compile
[Ada] langkit_support.ads
[Ada] langkit_support-vectors.adb
[Ada] langkit_support-types.ads
[Ada] langkit_support-tree_traversal_iterator.adb
[Ada] langkit_support-token_data_handlers.adb
[Ada] langkit_support-text.adb
[Ada] langkit_support-symbols.adb
[Ada] langkit_support-symbols-precomputed.adb
[Ada] langkit_support-slocs.adb
[Ada] langkit_support-relative_get.adb
[Ada] langkit_support-packrat.adb
[Ada] langkit_support-names.adb
[Ada] langkit_support-names-maps.adb
[Ada] langkit_support-lexical_envs_impl.adb
[Ada] langkit_support-lexical_envs.ads
[Ada] langkit_support-iterators.adb
[Ada] langkit_support-internal.ads
[Ada] langkit_support-internal-unparsing.ads
[Ada] langkit_support-internal-introspection.adb
[Ada] langkit_support-internal-descriptor.ads
[Ada] langkit_support-internal-conversions.ads
[Ada] langkit_support-internal-analysis.adb
[Ada] langkit_support-images.adb
[Ada] langkit_support-hashes.adb
[Ada] langkit_support-generic_bump_ptr.adb
[Ada] langkit_support-generic_api.adb
[Ada] langkit_support-generic_api-unparsing.adb
[Ada] langkit_support-generic_api-introspection.adb
[Ada] langkit_support-generic_api-analysis.adb
[Ada] langkit_support-file_readers.adb
[Ada] langkit_support-errors.ads
[Ada] langkit_support-diagnostics.adb
[Ada] langkit_support-diagnostics-output.adb
[Ada] langkit_support-cheap_sets.adb
[Ada] langkit_support-bump_ptr_vectors.adb
[Ada] langkit_support-bump_ptr.ads
[Ada] langkit_support-boxes.adb
[Ada] langkit_support-array_utils.adb
[Ada] langkit_support-adalog.ads
[Ada] langkit_support-adalog-solver_interface.adb
[Ada] langkit_support-adalog-solver.adb
[Ada] langkit_support-adalog-solver-diagnostics.adb
[Ada] langkit_support-adalog-main_support.ads
[Ada] langkit_support-adalog-logic_var.adb
[Ada] langkit_support-adalog-generic_main_support.adb
[Ada] langkit_support-adalog-debug.adb
[Ada] langkit_support-prettier_utils.adb
Build Libraries
[gprlib] langkit_support.lexch
[bind SAL] langkit_support
[Ada] b__langkit_support.adb
[link library] liblangkit_support.so
�[35mGenerating source for libpythonlang...�[0m
�[34mLkt processing...�[0m
�[34mCompiling the lexer...�[0m
�[34mCompiling the grammar...�[0m
�[34mCompiling properties...�[0m
�[34mComputing precise types...�[0m
�[35mGenerating source for liblktlang...�[0m
�[34mLkt processing...�[0m
�[34mCompiling the lexer...�[0m
�[34mCompiling the grammar...�[0m
�[34mCompiling properties...�[0m
�[34mPrepare code emission...�[0m
�[34mGenerate library sources...�[0m
�[34mComputing precise types...�[0m
�[34mPrepare code emission...�[0m
�[34mGenerate library sources...�[0m
�[32mGeneration complete!�[0m
�[35mBuilding the generated source code�[0m
�[35mBuilding for config (BuildMode.prod, LibraryType.relocatable)�[0m
Setup
[mkdir] object directory for project Libpythonlang
[mkdir] library directory for project Libpythonlang
Compile
[C] libpythonlang-gdb.c
[Ada] libpythonlang-implementation-c.adb
[Ada] libpythonlang-generic_api-introspection.ads
[Ada] libpythonlang-generic_api.adb
[Ada] libpythonlang-debug.adb
[Ada] libpythonlang-lexer_state_machine.adb
[Ada] libpythonlang-lexer_implementation.adb
[Ada] libpythonlang-lexer.adb
[Ada] libpythonlang-parsers.adb
[Ada] libpythonlang-private_converters.adb
[Ada] libpythonlang-public_converters.adb
[Ada] libpythonlang-iterators.adb
[Ada] libpythonlang-implementation.adb
[Ada] libpythonlang-c.adb
[Ada] libpythonlang-analysis.adb
[Ada] libpythonlang-common.adb
[Ada] libpythonlang_support-vectors.adb
[Ada] libpythonlang_support-tree_traversal_iterator.adb
[Ada] libpythonlang_support-token_data_handlers.adb
[Ada] libpythonlang_support-text.adb
[Ada] libpythonlang_support-symbols.adb
[Ada] libpythonlang_support-symbols-precomputed.adb
[Ada] libpythonlang_support-slocs.adb
[Ada] libpythonlang_support-relative_get.adb
[Ada] libpythonlang_support-prettier_utils.adb
/build/source/contrib/python/build/src/libpythonlang-implementation.adb:53:27: error: file "libpythonlang_adasat.ads" not found
/build/source/contrib/python/build/src/libpythonlang-implementation.adb:53:27: error: "Libpythonlang.Implementation (body)" depends on "Libpythonlang_Support.Adalog.Solver (body)"
/build/source/contrib/python/build/src/libpythonlang-implementation.adb:53:27: error: "Libpythonlang_Support.Adalog.Solver (body)" depends on "Libpythonlang_Adasat (spec)"
/build/source/contrib/python/build/src/libpythonlang-implementation.ads:1765:04: error: instantiation error at libpythonlang_support-adalog-solver.adb:246
/build/source/contrib/python/build/src/libpythonlang-implementation.ads:1765:04: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang-implementation.ads:1765:04: error: instantiation error at libpythonlang_support-adalog-solver.adb:603
/build/source/contrib/python/build/src/libpythonlang-implementation.ads:1765:04: error: is not the name of a generic package
/build/source/contrib/python/build/src/libpythonlang-implementation.ads:1765:04: error: instantiation error at libpythonlang_support-adalog-solver.adb:2114
/build/source/contrib/python/build/src/libpythonlang-implementation.ads:1765:04: error: constraint not allowed here
/build/source/contrib/python/build/src/libpythonlang-implementation.ads:1765:04: error: instantiation error at libpythonlang_support-adalog-solver.adb:2154
/build/source/contrib/python/build/src/libpythonlang-implementation.ads:1765:04: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:246:09: error: "Libpythonlang_AdaSAT" is undefined (more references follow)
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:466:58: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:476:58: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:487:86: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:569:42: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:570:58: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:577:44: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:578:60: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:589:48: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:590:43: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:602:53: error: is not the name of a generic package
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:603:58: error: "Adalog_Theory" is undefined
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:603:58: error: instantiation abandoned
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:1133:86: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:1137:47: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:1141:30: error: "Variable" is undefined (more references follow)
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:1489:58: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:1570:58: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:1577:42: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:1675:42: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:1676:58: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:1920:48: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:1952:44: error: ambiguous operands for membership
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:1952:44: error: use -gnatf switch for details
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2078:44: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2079:60: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2082:31: error: "Libpythonlang_AdaSAT.Formulas" is not a package
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2113:32: error: "Clause" is undefined
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2114:17: error: "Literal_Array" is undefined
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2120:16: error: left hand side of assignment must be a variable
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2120:48: error: ambiguous operands for membership
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2120:48: error: use -gnatf switch for details
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2120:69: error: type of "else" incompatible with that of "then" expression
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2134:41: error: ambiguous operands for membership
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2134:41: error: use -gnatf switch for details
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2154:26: error: "Builders" is undefined
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2229:48: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2230:43: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2237:47: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2326:50: error: subtype mark required in this context
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2396:25: error: "Variable_Or_Null" is undefined (more references follow)
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2414:31: error: "Libpythonlang_AdaSAT.Formulas" is not a package
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2417:28: error: "Formula" is undefined
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2418:19: error: "Model" is undefined
/build/source/contrib/python/build/src/libpythonlang_support-adalog-solver.adb:2434:14: error: "DPLL_Adalog" is undefined
�[32mGeneration complete!�[0m
�[35mBuilding the generated source code�[0m
�[35mBuilding for config (BuildMode.prod, LibraryType.relocatable)�[0m
Setup
[mkdir] object directory for project Liblktlang
[mkdir] library directory for project Liblktlang
Compile
[C] liblktlang-gdb.c
[Ada] liblktlang-implementation-extensions.adb
[Ada] liblktlang-implementation-c-extensions.adb
[Ada] liblktlang-default_provider.adb
[Ada] liblktlang-implementation-c.adb
[Ada] liblktlang-generic_api-introspection.ads
[Ada] liblktlang-generic_api.adb
[Ada] liblktlang-debug.adb
[Ada] liblktlang-lexer_state_machine.adb
[Ada] liblktlang-lexer_implementation.adb
[Ada] liblktlang-lexer.adb
[Ada] liblktlang-parsers.adb
[Ada] liblktlang-unparsing.adb
[Ada] liblktlang-rewriting_implementation.adb
[Ada] liblktlang-rewriting.adb
[Ada] liblktlang-private_converters.adb
[Ada] liblktlang-public_converters.adb
[Ada] liblktlang-iterators.adb
[Ada] liblktlang-implementation.adb
[Ada] liblktlang-c.adb
/build/source/contrib/lkt/build/src/liblktlang-implementation.adb:56:24: error: file "liblktlang_adasat.ads" not found
/build/source/contrib/lkt/build/src/liblktlang-implementation.adb:56:24: error: "Liblktlang.Implementation (body)" depends on "Liblktlang_Support.Adalog.Solver (body)"
/build/source/contrib/lkt/build/src/liblktlang-implementation.adb:56:24: error: "Liblktlang_Support.Adalog.Solver (body)" depends on "Liblktlang_Adasat (spec)"
/build/source/contrib/lkt/build/src/liblktlang-implementation.ads:2436:04: error: instantiation error at liblktlang_support-adalog-solver.adb:246
/build/source/contrib/lkt/build/src/liblktlang-implementation.ads:2436:04: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang-implementation.ads:2436:04: error: instantiation error at liblktlang_support-adalog-solver.adb:603
/build/source/contrib/lkt/build/src/liblktlang-implementation.ads:2436:04: error: is not the name of a generic package
/build/source/contrib/lkt/build/src/liblktlang-implementation.ads:2436:04: error: instantiation error at liblktlang_support-adalog-solver.adb:2114
/build/source/contrib/lkt/build/src/liblktlang-implementation.ads:2436:04: error: constraint not allowed here
/build/source/contrib/lkt/build/src/liblktlang-implementation.ads:2436:04: error: instantiation error at liblktlang_support-adalog-solver.adb:2154
/build/source/contrib/lkt/build/src/liblktlang-implementation.ads:2436:04: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:246:09: error: "Liblktlang_AdaSAT" is undefined (more references follow)
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:466:55: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:476:55: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:487:83: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:569:39: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:570:55: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:577:41: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:578:57: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:589:45: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:590:40: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:602:50: error: is not the name of a generic package
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:603:55: error: "Adalog_Theory" is undefined
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:603:55: error: instantiation abandoned
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:1133:83: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:1137:44: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:1141:30: error: "Variable" is undefined (more references follow)
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:1489:55: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:1570:55: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:1577:39: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:1675:39: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:1676:55: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:1920:45: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:1952:44: error: ambiguous operands for membership
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:1952:44: error: use -gnatf switch for details
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2078:41: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2079:57: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2082:28: error: "Liblktlang_AdaSAT.Formulas" is not a package
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2113:32: error: "Clause" is undefined
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2114:17: error: "Literal_Array" is undefined
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2120:16: error: left hand side of assignment must be a variable
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2120:48: error: ambiguous operands for membership
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2120:48: error: use -gnatf switch for details
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2120:69: error: type of "else" incompatible with that of "then" expression
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2134:41: error: ambiguous operands for membership
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2134:41: error: use -gnatf switch for details
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2154:26: error: "Builders" is undefined
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2229:45: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2230:40: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2237:44: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2326:47: error: subtype mark required in this context
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2396:25: error: "Variable_Or_Null" is undefined (more references follow)
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2414:28: error: "Liblktlang_AdaSAT.Formulas" is not a package
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2417:28: error: "Formula" is undefined
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2418:19: error: "Model" is undefined
/build/source/contrib/lkt/build/src/liblktlang_support-adalog-solver.adb:2434:14: error: "DPLL_Adalog" is undefined

compilation of liblktlang-implementation.adb failed

gprbuild: *** compilation phase failed
�[31mBuild failed:�[0m error while running gprbuild -p -j16 -P/build/source/contrib/lkt/./build/liblktlang.gpr -XBUILD_MODE=prod -XLIBRARY_TYPE=relocatable -XGPR_BUILD=relocatable -XXMLADA_BUILD=relocatable -XLIBLKTLANG_WARNINGS=true -gnatef:
Command '['gprbuild', '-p', '-j16', '-P/build/source/contrib/lkt/./build/liblktlang.gpr', '-XBUILD_MODE=prod', '-XLIBRARY_TYPE=relocatable', '-XGPR_BUILD=relocatable', '-XXMLADA_BUILD=relocatable', '-XLIBLKTLANG_WARNINGS=true', '-gnatef']' returned non-zero exit status 4.

compilation of libpythonlang-implementation.adb failed

gprbuild: *** compilation phase failed
�[31mBuild failed:�[0m error while running gprbuild -p -j16 -P/build/source/contrib/python/./build/libpythonlang.gpr -XBUILD_MODE=prod -XLIBRARY_TYPE=relocatable -XGPR_BUILD=relocatable -XXMLADA_BUILD=relocatable -XLIBPYTHONLANG_WARNINGS=true -gnatef:
Command '['gprbuild', '-p', '-j16', '-P/build/source/contrib/python/./build/libpythonlang.gpr', '-XBUILD_MODE=prod', '-XLIBRARY_TYPE=relocatable', '-XGPR_BUILD=relocatable', '-XXMLADA_BUILD=relocatable', '-XLIBPYTHONLANG_WARNINGS=true', '-gnatef']' returned non-zero exit status 4.
Traceback (most recent call last):
File "/build/source/manage.py", line 443, in
args.func(args, unknown_args)
File "/build/source/manage.py", line 135, in wrapper
fn(args)
File "/build/source/manage.py", line 345, in make
assert m1.returncode == 0
^^^^^^^^^^^^^^^^^^
AssertionError

@andrewathalye
Copy link
Author

Partial resolution: if you put adasat/adasat.gpr and adasat/src inside langkit/support then it seems to build fine, it looks like the build script was trying to copy adasat sources and not finding them, even though they are available (in <ADASAT_PREFIX>/include).

@pmderodat
Copy link
Member

I suspect that you are getting this error because of a missing setup step (https://github.com/AdaCore/langkit/?tab=readme-ov-file#install):

First, clone the adasat repository in the langkit subdirectory of the langkit repository:

$ (cd langkit; git clone https://github.com/AdaCore/adasat)

It is surprising that you are not getting the dedicated error for this kind of situation, though: https://github.com/AdaCore/langkit/blob/master/langkit/emitter.py#L362

@andrewathalye
Copy link
Author

Indeed, I’m not sure why that error isn’t turning up. It seems like most of the adasat support sources for lktlang just don’t get generated if it can’t find adasat.

Here’s the working nix file if interested:

{ lib
, buildPythonPackage
, fetchgit
, gnat
, gprbuild
, gnatcoll-core
, gnatcoll-iconv
, gnatcoll-gmp

, langkit
, langkit-support
, adasat
}:

buildPythonPackage rec {
  pname = "langkit-lktlang";
  version = langkit.version;
  
  src = langkit.src;

  nativeBuildInputs = [
    gnat
    gprbuild
  ];

  buildInputs = [
    adasat
    gnatcoll-core
    gnatcoll-iconv
    gnatcoll-gmp
    langkit-support
  ];

  propagatedBuildInputs = [
    langkit
  ];

  configurePhase = ''
    runHook preConfigure

    # Copy AdaSAT sources
    ln -s ${adasat.src}/adasat.gpr langkit/support/adasat.gpr
    ln -s ${adasat.src}/src langkit/support/src

    python3 manage.py make --no-mypy
    cd contrib/lkt
    python3 manage.py install $out

    cd build/python

    runHook postConfigure
  '';
  doCheck = false;
}

despite having adasat with source files in GPR_PROJECT_PATH, it doesn’t build properly without the symlink

@pmderodat
Copy link
Member

I think I undertand: the GPR_PROJECT_PATH is supposed to point at the directory that contains adasat.gpr (i.e. ${adasat.src} IIUC), not the directory that contains the Ada source code (${adasat.src}/src).

I would suggest to remove the two ln -s commands from your script (they are not needed if you have chosen to go the GPR_PROJECT_PATH way) and adjust GPR_PROJECT_PATH to point to the root of the adasat repository checkout.

@andrewathalye
Copy link
Author

@pmderodat ahh yes I think you’ve found the issue

On NixOS Ada packages are installed to /nix/store/<> with subdirectories bin/, lib/, include/, and share/gpr

the GPR_PROJECT_PATH points to share/gpr which contains adasat.gpr, but there is no src/ subdirectory in that folder. I’m guessing that no error is being raised because adasat.gpr is found, but since the source code is in include/ rather than share/gpr/src the actual code can’t be generated.

Would it be possible to parse the gpr file just enough to get the Source_Files attribute? If not I’ll probably have to modify the adasat build to link src in share/gpr or use the current workaround

@pmderodat
Copy link
Member

I see, so from the point of view of the Nix file for Langkit, the AdaSAT that’s made available in the environment is an installation tree (result of gprinstall) rather than a source tree (result of a git checkout or source release unpacking)`.

I would be uneasy having Python code in Langkit that analyzes GPR code: there is no Python-available parser for GPR files, and even if there was, robustly interpretating them would require a full interpreter: anything else feels brittle (like using regexps to evaluate C++ code).

Isn’t it possible in this Nix file to get the sources for the AdaSAT project and put them in the right place instead? We do control the source layout of this repository, whereas we don’t control the layout of the installation tree from GPRinstall, so the former looks more robust.

@andrewathalye
Copy link
Author

Yes exactly, adasat here refers to the installed tree, which contains source but isn’t the same as the checkout.

I agree about the GPR parsing, I think the best course of action here will be to copy the src/ directory from the adasat repo into the same directory as adasat.gpr from the nix package so that langkit can find it.

@pmderodat
Copy link
Member

That would work, but would make your script fragile to (admittedly unlikely at this stage) synchronized changes in the adasat repository layout and corresponding handling code in Langkit. At this point I don’t understand why that would be preferable to just deploying a mere adasat clone at the right place in the langkit source tree. But up to you!

It seems that either way, a solution has been found for the original problem, so I’ll close this issue. Thank you for porting Langkit to Nix!

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

No branches or pull requests

2 participants