Created
May 13, 2026 10:16
-
-
Save Whateverable/b7896f6e4b002a2da9ed6d681afa521b to your computer and use it in GitHub Desktop.
bisectable6
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
| old=2026.03 class A { has Str $.foo = "bar"; method a() { $.foo = "foo" } }; A.new.a |
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
| Bisecting: 76 revisions left to test after this (roughly 6 steps) | |
| [dabe0f4d5ab317aa2f674fc559838d900d829b76] Merge pull request #6125 from ugexe/ugexe/rakuast-speedup-add-phasers-handling | |
| »»»»» Testing dabe0f4d5ab317aa2f674fc559838d900d829b76 | |
| »»»»» Script output: | |
| Cannot modify an immutable Str (bar) | |
| in method a at /tmp/rBark5idaU line 1 | |
| in block <unit> at /tmp/rBark5idaU line 1 | |
| »»»»» Script exit code: 1 | |
| »»»»» Bisecting by exit code | |
| »»»»» Current exit code is 1, exit code on “old” revision is 0 | |
| »»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
| »»»»» Therefore, marking this revision as “new” | |
| »»»»» ------------------------------------------------------------------------- | |
| »»»»» Testing 2d92f016fe80d6bb21fe5ddc41ed02b2415e11ba | |
| »»»»» Script output: | |
| Cannot modify an immutable Str (bar) | |
| in method a at /tmp/rBark5idaU line 1 | |
| in block <unit> at /tmp/rBark5idaU line 1 | |
| »»»»» Script exit code: 1 | |
| »»»»» Bisecting by exit code | |
| »»»»» Current exit code is 1, exit code on “old” revision is 0 | |
| »»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
| »»»»» Therefore, marking this revision as “new” | |
| »»»»» ------------------------------------------------------------------------- | |
| »»»»» Testing 3b8b6d61d416eb1ea7f2207ad423a15959b28a9f | |
| »»»»» Script output: | |
| »»»»» Script exit code: 0 | |
| »»»»» Bisecting by exit code | |
| »»»»» Current exit code is 0, exit code on “old” revision is 0 | |
| »»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
| »»»»» Therefore, marking this revision as “old” | |
| »»»»» ------------------------------------------------------------------------- | |
| »»»»» Testing 9a8b94dfebe4df1277d4b8db196f0081edf813ed | |
| »»»»» Script output: | |
| »»»»» Script exit code: 0 | |
| »»»»» Bisecting by exit code | |
| »»»»» Current exit code is 0, exit code on “old” revision is 0 | |
| »»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
| »»»»» Therefore, marking this revision as “old” | |
| »»»»» ------------------------------------------------------------------------- | |
| »»»»» Testing 4ee541b5c23da638d0002af1918902174e0d9750 | |
| »»»»» Script output: | |
| Cannot modify an immutable Str (bar) | |
| in method a at /tmp/rBark5idaU line 1 | |
| in block <unit> at /tmp/rBark5idaU line 1 | |
| »»»»» Script exit code: 1 | |
| »»»»» Bisecting by exit code | |
| »»»»» Current exit code is 1, exit code on “old” revision is 0 | |
| »»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
| »»»»» Therefore, marking this revision as “new” | |
| »»»»» ------------------------------------------------------------------------- | |
| »»»»» Testing a21eeb1ba562aac1471c9caa4676995cf01da3d1 | |
| »»»»» Script output: | |
| »»»»» Script exit code: 0 | |
| »»»»» Bisecting by exit code | |
| »»»»» Current exit code is 0, exit code on “old” revision is 0 | |
| »»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
| »»»»» Therefore, marking this revision as “old” | |
| »»»»» ------------------------------------------------------------------------- | |
| »»»»» Testing dc5e9452e0ea40ccc7636ab74bbe3dfa1cba4108 | |
| »»»»» Script output: | |
| »»»»» Script exit code: 0 | |
| »»»»» Bisecting by exit code | |
| »»»»» Current exit code is 0, exit code on “old” revision is 0 | |
| »»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
| »»»»» Therefore, marking this revision as “old” | |
| »»»»» ------------------------------------------------------------------------- | |
| »»»»» Testing 00a4188114fabfac3fcd02d9b4a106fc97f303de | |
| »»»»» Script output: | |
| Cannot modify an immutable Str (bar) | |
| in method a at /tmp/rBark5idaU line 1 | |
| in block <unit> at /tmp/rBark5idaU line 1 | |
| »»»»» Script exit code: 1 | |
| »»»»» Bisecting by exit code | |
| »»»»» Current exit code is 1, exit code on “old” revision is 0 | |
| »»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
| »»»»» Therefore, marking this revision as “new” | |
| 00a4188114fabfac3fcd02d9b4a106fc97f303de is the first new commit | |
| commit 00a4188114fabfac3fcd02d9b4a106fc97f303de | |
| Author: Nick Logan <[email protected]> | |
| Date: Sun Apr 19 15:43:30 2026 -0700 | |
| Fix silent no-op for `$.foo = ...` on non-rw attributes (#6118) | |
| `$.foo` compiles to `self.foo.item` (and `@.foo`/`%.foo` use | |
| `.list`/`.hash`). For non-rw accessors, the accessor returns a bare | |
| value, and `Mu.item` wraps it in a fresh mutable Scalar via | |
| `(my $ = item)`. Assigning to `$.foo` then silently stores into that | |
| throwaway container with no effect on the attribute, instead of | |
| throwing `X::Assignment::RO` the way `$obj.foo = ...` does. | |
| This regressed in a6608c212 (2025-02), which switched `Mu.item` from | |
| `p6bindattrinvres(create(Scalar), ...)` (no rw descriptor, so STORE | |
| threw) to `(my $ = item)` (rw descriptor, so STORE silently succeeds) | |
| to unbreak a PDF distribution test. A later attempt to make `.item` | |
| return a read-only container (f95f85ac3) was reverted in e0d0d960c | |
| because it re-broke the same PDF path. | |
| Fix it at the call site instead of in `Mu.item`: strip the | |
| sigil contextualizer (`.item`/`.list`/`.hash`) when the `$.foo` / | |
| `@.foo` / `%.foo` term is used as an lvalue, so the assignment lands | |
| on the bare `self.foo` method call. Non-rw scalar accessors then | |
| error via p6store as expected; `@.foo = 1,2,3` still works through | |
| `Array.STORE`; `is rw` accessors are unaffected; and explicit | |
| `self.foo.item = 5` written by the user is left alone because only | |
| the compiler-inserted wrap is stripped. | |
| Fixes #6113. Also fixes #5908 (same root cause), for which | |
| t/spec/S12-methods/accessors.t already has a `#?rakudo todo` test; | |
| that test now passes but throws `X::Assignment::RO` (matching | |
| external `$obj.a = 5`) rather than the `X::AdHoc` the todo assumed, | |
| so the roast expectation needs a follow-up update. | |
| src/Perl6/Actions.nqp | 16 +++++++++++++++- | |
| src/Raku/ast/variable-access.rakumod | 10 ++++++++++ | |
| 2 files changed, 25 insertions(+), 1 deletion(-) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment