lizmat notable6: weekly 12:29
notable6 lizmat, 5 notes: gist.github.com/32e02500a372f22949...fa301204f2
lizmat notable6: weekly reset 12:30
notable6 lizmat, Moved existing notes to “weekly_2025-02-03T12:30:05Z”
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2025/02/03/2025-...ie-awaits/ 12:31
Geth rakudo/main: e6f0771a3c | (Elizabeth Mattijsen)++ | src/core.c/Map.rakumod
Simplify Hash/Map.new

The nqp::create(Hash/Map) automagically creates the $!storage hash attribute nowadays
15:25
rakudo/main: ddf0734344 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/Map.rakumod
Make Map|Hash.new( a => 42, b => 666) more DWIM

Inspired by github.com/rakudo/rakudo/issues/3211 and the fact that I've run into this several times myself, and have had to explain why that didn't work.
I think it's fine to make an exception for Map.new / Hash.new and all of its subclasses
15:26
roast: c2608389f8 | (Elizabeth Mattijsen)++ | 2 files
Add tests for #3211
15:46
rakudo/main: 9ece34b2b4 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/Hash/Object.rakumod
Throw coercion failures on object hashes

If an object hash is defined with a coercion type (e.g. Int(Str)) the Failure of the coercion would be stored as the key. Only to thrown whenever that key would be accessed in the hash, e.g. with
  .keys.
... (7 more lines)
15:52
[Coke] Should that go a step further and not create a failure that can be stored but instead throw there? 16:00
lizmat possibly, but that gets into signature binding area... and that's something I'm still working up the courage to (re)-visit 16:01
[Coke] or, different question: do we have guidance on core items where failures are OK vs. exceptions? (and then cases like this where failures should immediately explode?)
lizmat I don't think we have an official "guidance" on that
[Coke] heh. looking at github.com/rakudo/rakudo/issues/3211 trying to figure out why there's a smiley face on the ticket (figured it out. :) 16:02
OK - Figured this was a topic that we might have started out
er, as consistent, but is very easy to have situations where we throw vs. fail that might eventually want a review. 16:03
Maybe a topic for 6.f
6.Fail 1
lizmat hehe 16:05
sure :-)
Geth roast: cabd39fd8f | (Elizabeth Mattijsen)++ | S09-hashes/objecthash.t
Add test for #4301
16:09
Geth rakudo/main: e4157a41d8 | (Elizabeth Mattijsen)++ | 2 files
Make Instant.DateTime timezone aware in 6.e

By making it properly revision gated, ab5tract++
17:51
rakudo/main: 80c21053f6 | (Elizabeth Mattijsen)++ | 2 files
Properly revision gate Date.DateTime

The proto must have the trait applied as well
18:16
rakudo/main: 3b8e50942a | (Elizabeth Mattijsen)++ | src/core.e/Fixups.rakumod
Make Int.uniname return Failure on unassigned in 6.e

This effectively implements PR 5658, but for 6.e only. Sadly it turned out to be impossible to use true revision gating, as the almost all dispatch then turned in to ambiguous dispatches. So just implement a 6.e candidate, and make that the default.
18:55
timo random idea dump: if we have a "scan" in a regex followed by an NFA invocation, could we reasonably run the NFA in scanning mode? instead of running the NFA over and over again after advancing one step each time for example? 19:02
jdv i feel like i've asked this before but is there info somewhere about @larrys ideas in optimizing the regex engine? 19:04
timo not sure 19:11
i'm also feeling like from something like \d\d '-' \d\d '-' \d\d\d\d we could totally build a thing that can immediately go into the needle string search algorithm we are already using, just with a different generation for the lookup table 19:12
also maybe someone wants to highlight to these users that \d covers more than just 0..9, but also stuff in the higher unicode spheres 19:19
lizmat m: dd 42.can("gist") 22:29
camelia (proto method gist (Mu $:: |) {*}, proto method gist (Mu $:: |) {*})
lizmat why two ?
m: dd 42.can("gist").map({.file ~ ": " ~ .line})
camelia ("SETTING::src/core.c/Mu.rakumod: 913", "SETTING::src/core.c/Mu.rakumod: 913").Seq
lizmat they go back to the same?
m: dd 42.can("gist")>>.WHERE 22:30
camelia (2426165487480, 2426165275064)
lizmat but they are different?
bisectable6: old=2024.01 dd 42.can("gist")
bisectable6 lizmat, Bisecting by output (old=2024.01 new=3b8e509) because on both starting points the exit code is 0
lizmat, bisect log: gist.github.com/d3e6d958a5baac0a14...b7278b817a 22:31
lizmat, (2024-05-26) github.com/rakudo/rakudo/commit/f1...f24e30b94a
lizmat that's... unexpected
ok, change in .raku output 22:34
bisectable6: old=2022.01 dd 42.can("gist").elems 22:35
bisectable6 lizmat, Cannot find revision “2022.01” (did you mean “2025.01”?)
lizmat bisectable6: old=2022.02 dd 42.can("gist").elems
bisectable6 lizmat, On both starting points (old=2022.02 new=3b8e509) the exit code is 0 and the output is identical as well
lizmat, Output on both points: «2␤»
lizmat bisectable6: old=2020.01 dd 42.can("gist").elems
bisectable6 lizmat, On both starting points (old=2020.01 new=3b8e509) the exit code is 0 and the output is identical as well
lizmat, Output on both points: «2␤»
lizmat weird