5 Open Issues Need Help Last updated: Jul 13, 2025

Open Issues Need Help

View All on GitHub
Unknown Unknown

AI 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.

Complexity: 4/5
enhancement good first issue
Unknown Unknown
Add more tests about 2 months ago

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`.

Complexity: 3/5
help wanted good first issue
Unknown Unknown

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.

Complexity: 4/5
good first issue
Unknown Unknown

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`.

Complexity: 3/5
good first issue
Unknown Unknown
Unbind banished models about 2 months ago

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.

Complexity: 4/5
good first issue