Skip to content

Conversation

@lefticus
Copy link
Owner

No description provided.

lefticus and others added 30 commits April 13, 2025 06:11
* coverage reporting target also added
* this will never be supported
* gets us to 98.8% code coverage
* ' are translated into (quote ) blocks
* literals are quoted when desired
* add many more tests
* fix scoping of closures
* register name with closure
- Update fuzz_tester to actually test cons_expr parser and evaluator
- Add cons_expr target to fuzz_test CMakeLists.txt
- Fix braces issue in make_quote function to fix compiler warnings
- Update gitignore for Claude settings

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add --file option to cons_expr_cli to execute scripts from files
- Use filesystem library for file handling
- Add test_script.scm file for testing
- Add CLI tests for file input handling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Added check in process_string_escapes to detect and handle strings that
end with an unescaped backslash, properly returning an error instead of
silently creating a potentially invalid string.

Also added test cases for string escape sequences, conditions, error handling,
recursion with closures, and list construction, along with updated CMakeLists.txt
to include the new test files.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
lefticus and others added 9 commits May 21, 2025 19:50
Add comprehensive instructions for running branch coverage reports using
the pre-configured build-coverage directory and gcovr tool. Includes specific
commands, required flags, and notes about handling dependency errors.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add SmallVector overflow scenarios in constexpr_tests.cpp
- Add missing number parsing edge cases in parser_tests.cpp
- Add string escape error conditions in string_escape_tests.cpp
- Focus on untested branches without duplicating existing functionality
- Increase branch coverage from 36% to 35% (745/2095 branches)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…se tests

- Add 6 new test categories targeting uncovered branches in cons_expr library
- Cover Scratch class move semantics, closure self-reference, and list bounds checking
- Test complex parsing edge cases, malformed expressions, and function invocation errors
- Validate advanced error handling, nested error propagation, and type mismatches
- Increase total test count from 297 to 309 tests with all tests passing
- Improve validation of parser robustness, memory management, and type safety

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…o 36%

Added 6 new test cases with multiple sub-tests each targeting previously uncovered code paths:
- Number parsing edge cases and arithmetic operations
- Conditional expression and control flow coverage
- Template specialization and type handling coverage
- Advanced list operations and memory management
- Parser token handling and quote processing
- SmallVector overflow and mathematical operations

All 320 tests pass in both constexpr and runtime modes, ensuring correctness at compile-time and runtime.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…red branches

Added 4 comprehensive test cases with systematic targeting of specific uncovered code paths:
- Error path coverage targeting lines 263 (number parsing failures) and 860-868 (function invocation errors)
- Parser edge cases and malformed input coverage (unterminated strings, unmatched parentheses, comment handling)
- Type conversion and mathematical edge cases (type mismatch errors, floating point precision)
- Advanced control flow and scope edge cases (nested scopes, lambda parameter validation, complex cond expressions)

Increased branch coverage from 742 to 758 taken branches (+16 branches). All 329 tests pass in both constexpr and runtime modes.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Previously, car returned an error for empty lists while cdr returned
an empty list. This inconsistency has been fixed to follow Scheme
standards where both operations are errors on empty lists.

- Update cdr to return error "cdr: cannot take cdr of empty list"
- Add comprehensive tests for car/cdr error handling
- Update existing tests that expected the old cdr behavior
- Add documentation comments noting the error behavior

This is a breaking change for code that relied on (cdr '()) returning '().

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
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

Successfully merging this pull request may close these issues.

2 participants