Open Issues Need Help
View All on GitHubAI Summary: Refactor the Perk compiler to separate the functionality of a dry run (checking for errors without code generation) from JSON output formatting. This involves creating distinct command-line flags, likely `--dry-run` and `--json`, to control these features independently. The current `--check` flag should be deprecated or repurposed.
AI Summary: Create at least five new Perk language test cases, focusing on edge cases or programs that currently don't work as expected. These tests should be added to the `./test/` directory, categorized into either `normalexec` (tests that should pass) or `failure` (tests that should fail). The tests are run using `make test`.
AI Summary: The task is to modify the `get_lib_path` function in `lib/typecheck.ml` of the Perk compiler. The current implementation hardcodes include paths for C libraries. The solution should dynamically determine include paths, potentially using `gcc -E -x c - -v` to find them, and allow manual specification of include paths, prioritizing manually specified paths over automatically discovered ones.
AI Summary: Implement an `is_integral` function in the Perk compiler's typechecker. This function should determine if a given type is an integral type (like `int32_t`, `uint8_t`, etc.). This function will then be used to improve the typechecking of array accesses, allowing indices of any integral type, not just `int`.
AI Summary: The task requires modifying the Perk compiler to remove banished models from the compiler's symbol table or environment. After a model is banished (presumably a form of deallocation or removal from scope), its identifier should no longer be accessible or resolvable within the program. This likely involves changes to the compiler's name resolution and symbol management phases.