Repository navigation
fix(auto): don't treat strings as owned on Julia 1.12 - #80
MilesCranmerBot wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3a56b60add
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
Addressed in f012a71: the exemption is now |
cc7f50e to
10b178f
Compare
The String/SubString ownership exemption and both testsets are merged into MilesCranmer#88 (ported to the dissolved src/safe layout, green on 1.12 and 1.13-rc3).
10b178f to
fca6713
Compare
Summary
ismutabletype(String)istrueon Julia 1.12 (memory-based layout), so the owned-type tracker's generic mutable-type rule classified strings as owned. Semantically strings have value semantics with no user-facing in-place mutation API, and the package's own model treats immutable values as safe to pass around.This caused opaque/unresolved calls to spuriously report consuming string arguments (e.g. any
@safewrapper forwarding aStringthrough a package function whose summary cannot be resolved).AbstractStringis now classified as neither tracked nor owned.Test plan
Dictthen reused (both previously violated, now clean).BORROWCHECKER_ONLY_AUTO=1 julia --project=. -e 'using Pkg; Pkg.test()': green; the two remaining@test_brokencases are fixed by fix(auto): stop false-positive generators in effect summarization #79 and intentionally still marked broken here.