Conversation
b5cf87b to
46f16bd
Compare
…BLE hooks, interpreter context, ternary-as-lvalue Changes since squash-merge to master: - Fix B::CV->STASH->NAME and GV->NAME introspection (uses Sub::Util::subname) - Preserve @inc entry relativity in require/use filenames - Fix Long.MIN_VALUE overflow in initializeWithLong - Add STORABLE_freeze/thaw hook support for DBIx::Class serialization - Fix interpreter context propagation for subroutine bodies (wantarray) - Fix ternary-as-lvalue with LIST assignment branches (Class::Accessor::Grouped) - Confirm File::stat VerifyError is resolved - Fix DBI retry logic for stale PreparedStatements after ROLLBACK - Update DBIx::Class design doc through step 5.34 Generated with [Devin](https://cli.devin.ai/docs) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- B.pm: detect stash deletion/clearing/undef to mark CVs as anonymous (fixes op/stash.t and uni/stash.t -6 regressions, net +2 improvement) - ModuleOperators.java: strip trailing slash from @inc dirs to avoid double slashes in require filenames (fixes op/caller.t -1 regression) - NumericPackHandler.java: resolve numeric overload once for blessed objects before handleInfinity check (fixes op/pack.t -1 regression) Generated with [Devin](https://cli.devin.ai/docs) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
The ee (double eval) check used modifierStr.contains("ee") which
required the two 'e' flags to be adjacent. In Perl 5, flags like
"excess" (e,x,c,e,s,s) are valid and treated as ee. Fix by counting
'e' occurrences instead.
This fixes japh/abigail.t timeout (0/0 -> 76/130) since the "Funky
loop" tests use s///excess which relies on double eval to progressively
consume the string. Without ee, the replacement wasn't eval'd a second
time, causing infinite substitution loops.
Generated with [Devin](https://cli.devin.ai/docs)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
The StringParser ESCAPE state was removing backslashes before delimiter characters for all string types, but this is only correct for regex patterns (m//, qr//, s///). For double-quoted strings, the backslash before a delimiter is both a delimiter escape AND a content escape that the downstream parser needs to see. Add isRegex parameter to parseRawStringWithDelimiter and parseRawStrings, set true only for m/qr/s operators. Fixes CI failure in unit/string_interpolation.t. Generated with [Devin](https://cli.devin.ai/docs) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
e68b51c to
a22e12c
Compare
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
Continues DBIx::Class runtime fixes on the
feature/dbi-column-info-autocommitbranch. This PR includes 11 commits fixing various runtime issues, with the overall goal of improving DBIx::Class test compatibility.Key fixes in this PR
bind_param()no longer callsstmt.setObject()immediately (which fails on reused/non-executing PreparedStatements). Instead, params are stored and applied duringexecute(). UsesRuntimeScalarType.isReference()instead of exact type check.normalizeErrorMessage()to extract native error messages from JDBC-wrapped strings (e.g.,[SQLITE_MISMATCH] Data type mismatch (datatype mismatch)→datatype mismatch).\Qdelimiter escaping: Fixedqr/\Qfoo\/bar/producing(?^:foo\\\/bar)instead of correct(?^:foo\/bar). Delimiter escaping now resolved before\Qprocessing inStringParser.java.MODIFY_CODE_ATTRIBUTEScall for subroutine attributes (sub foo : Attr { }).ROLLBACK TO SAVEPOINTbeing intercepted as fullROLLBACK.@INChook returns a line-reader CODE ref.-wflag vsno warnings 'redefine': Fixed-wflag incorrectly overriding lexicalno warningspragma.Test results
makeunit tests pass.Test plan
makepasses all unit tests\Qdelimiter escaping verifiedGenerated with Devin