mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-16 01:43:35 +00:00
Estimated hours taken: 30 Branches: main Add a post-processing pass directly after mode checking that tries to transform procedures to avoid intermediate partially instantiated data structures. The Erlang backend in particular cannot handle partially instantiated data structures. compiler/delay_partial_inst.m: New module. compiler/check_hlds.m: Import delay_partial_inst.m compiler/modes.m: Call the delay partial instantiations pass after mode checking succeeds if it is enabled. compiler/options.m: Add a new internal option `--delay-partial-instantiations', disabled by default. compiler/handle_options.m: Make Erlang target imply --delay-partial-instantiations. compiler/notes/compiler_design.html: Mention delay_partial_inst.m tests/hard_coded/Mercury.options: tests/hard_coded/Mmakefile: tests/hard_coded/delay_partial_test.exp: tests/hard_coded/delay_partial_test.m: tests/hard_coded/delay_partial_test2.exp: tests/hard_coded/delay_partial_test2.m: Add test cases for --delay-partial-instantiations. compiler/goal_util.m: Fix a comment.
4 lines
23 B
Plaintext
4 lines
23 B
Plaintext
t(2, 2)
|
|
t(3, 3)
|
|
qc(42)
|