fix: Improve interpreter eval mode operator support (320→341 tests)#218
Merged
Conversation
- Updated opcode generator to use bytecodeCompiler prefix - Added 18 miscellaneous operators as manual opcodes (241-258) - Created MiscOpcodeHandler for context-sensitive operators - Added handlers to BytecodeInterpreter - Generated scalar unary/binary handlers via generator tool Operators added: chmod, unlink, utime, rename, link, readlink, umask, getc, fileno, qx, system, caller, each, pack, vec, localtime, gmtime, crypt Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Convert operands to list context and wrap with SCALAR_TO_LIST to prevent ClassCastException errors in MiscOpcodeHandler. Progress: 323 → 339 tests passing (+16) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix chmod to return 0 instead of throwing on insufficient args - Fix crypt to pad 1-char salt with '.' for deterministic results - Improve EACH handler to accept container directly Progress: 339 → 341 tests passing (+2) Target: 346/353 (need +5 more) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Added report showing progress from 320 to 341 tests passing (+21 tests). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Improved interpreter eval mode from 320/353 to 341/353 passing tests (+21 tests, +6.6%)
Target was 346/353 (5 more tests needed)
Changes
1. Added Missing Operators (320 → 323, +3)
2. Fixed ClassCastException (323 → 339, +16)
3. Fixed Operator Validation (339 → 340, +1)
4. Fixed crypt Determinism (340 → 341, +1)
crypt $n, $nreturns same value each callInfrastructure Improvements
Testing
JPERL_EVAL_USE_INTERPRETER=1 perl dev/tools/perl_test_runner.pl perl5_t/t/op/lex_assign.t # Result: 341/353 passingRemaining Issues (12 tests)
Files Modified
Opcodes.java- Added opcodes 241-301BytecodeInterpreter.java- Added MiscOpcodeHandler dispatchCompileOperator.java- Added operator compilationMiscOpcodeHandler.java- New handler for misc operatorsScalarUnaryOpcodeHandler.java,ScalarBinaryOpcodeHandler.java- GeneratedOperator.java- Fixed chmod validationCrypt.java- Fixed salt paddinggenerate_opcode_handlers.pl- Updated for refactored code🤖 Generated with Claude Code