[Coke] 45% 01:26
jdv: github.com/coke/raku-cal/tags has a signed tag. 02:01
releasable6 Next release in ≈6 days and ≈15 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 03:00
jdv neato 03:55
05:57 kjp left 05:58 kjp joined 05:59 kjp left, kjp joined 09:40 sena_kun joined
ab5tract m: my $uno = <a b c>.SetHash; my $dos = $uno; $dos<a>:delete; dd $uno, $dos 11:41
camelia $uno = SetHash.new("c","b")
$dos = SetHash.new("c","b")
ab5tract Apparently I still don’t know all there is to know about references, assignment, and binding in Raku :(
m: my $uno = <a b c>.SetHash; my $dos = $uno.SetHash; $dos<a>:delete; dd $uno, $dos 11:42
camelia $uno = SetHash.new("b","c")
$dos = SetHash.new("b","c")
12:17 sena_kun left
lizmat m: my $a = [1,2,3]; my $b = $a; say $b.pop; dd $a 12:42
camelia 3
$a = $[1, 2]
lizmat it's the same thing, ab5tract
in $b = $a, you're just putting the same Array object in another container 12:43
m: my @a = 1,2,3; my @b = @a; say @b.pop; dd @a
camelia 3
[1, 2, 3]
lizmat with @b = @a, you're creating a new Array with the elements of @a 12:44
ab5tract So binding is more or less a no-op on scalar containers? 12:45
lizmat binding throws away the container 12:46
my $a
creates a lexical entry '$a' with a container bound to it
$a = 42
will bind the value 42 to the $!value attribute of the container 12:47
$a := 42
will bind 42 to the lexpad entry
ab5tract ok, got it
I'm a bit surprised that there isn't a huffmanized operator for "no I actually want a this container to contain its very own contents" 12:50
But then again, I haven't really hit any issues with this personally, at least in whatever $time-span it would have/has taken for me to forget about it 12:51
I expect this was probably combed over pretty thorougly already, so maybe some kind of copy-on-modify mechanism was already proposed and thrown away... 12:53
lizmat no I actually want a this container to contain its very own contents
you mean decontainerize?
m: my $a = (1,2,3); .say for $a; .say for $a<> 12:54
camelia (1 2 3)
1
2
3
ab5tract I mean "I am using this version of the assignment operator to create a new variable based on and old variable but not literally referencing and affecting the state of the old variable"
lizmat remember, everything is an object 12:55
so, an "old" variable is a container object bound to a lexpad, with a value bound to its $!value attribute 12:56
a new variable is a container object bound to a lexpad, that binds the value of the $!value attribute of the old variable's container object, to the $!value attribute of the new container object 12:57
that's what assignment is, basically
m: dd "foobar".trans( a => "x") 12:58
camelia "foobar"
lizmat so why isn't that "foobxr" ?
because a => "x" is a named argument that gets silently eaten :-( 12:59
m: dd "foobar".trans( "a" => "x")
camelia "foobxr"
lizmat "a" => "x" is a positional Pair argument 13:00
ab5tract Curious you mention that, because I've been wondering you one can distinguish between the two 13:04
m: my $a = "a" => 1; $a ~~ Pair ==> say(); dd sadface => ($a, $a) ~~ :(Pair $, Pair $)
camelia True
Bool::False
ab5tract lol 13:05
the sadface disappears too
m: my $a = "a" => 1; $a ~~ Pair ==> say(); dd :sadface(($a, $a) ~~ :(Pair $, Pair $))
camelia True
Bool::False
ab5tract m: my $a = "a" => 1; $a ~~ Pair ==> say(); dd :sadface(($a, $a) ~~ :(Pair $, Pair $, *%_)) 13:06
camelia True
Bool::False
ab5tract I haven't looked yet but I guess trans is using a slurpy *@ to catch the pairs 13:08
*(R#5718)
linkable6 R#5718 [open]: github.com/rakudo/rakudo/issues/5718 [LTA] LTA: for <a b c>.pairs.combinations(2) -> ($a,$b) doesn't work
lizmat well, actually it isn't anymore by default 13:10
it prefers a single Positional now first, before falling back to the slurpy 13:11
didn't fi 5718 though 13:12
*fix
ab5tract is that a change that was made to signature, etc or was that trans specific? 13:35
lizmat .trans specific 13:42
ab5tract Sometimes I wonder what would actually break if we started to only accept named arguments defined in signatures 13:48
Outside of code that is already a no-op because it is passing unused named arguments, I mean 13:49
lizmat I once worked on a trait for that 13:50
"endpoint" methods should be able to easily say: hey, I'm an endpoint, don't accept any unknown unnamed args 13:51
ab5tract I take it that things got complicated :) 13:52
lizmat I didn't know of the internals then 13:54
in RakuAST it should be pretty simple: remove the slurpy *%_ from the signature 13:55
if the trait is set 13:56
method foo() is endpoint { }
m: my method foo() { }; dd &foo.signature 13:57
camelia :(Mu $:: *%_)
lizmat with the "is endpoint" trait it should say :(Mu $::) 13:58
there's probably some dispatch fallout as the assumption that %_ is always there, may be ingrained in some places 13:59
ab5tract I'm trying a brutalist stab at setting `SIG_ELEM_ALL_NAMES_OK` to never be true :)
lizmat that will break a *lot* 14:00
I fear :-)
ab5tract I'm morbidly curious :)
Geth rakudo/main: 42675f13b6 | (Elizabeth Mattijsen)++ | src/core.c/Str.rakumod
.trans(Pair:D) in which key / value not defined, is a noop

So shortcut that as early as possible
14:06
rakudo/main: 03e2ee745c | (Elizabeth Mattijsen)++ | src/core.c/Str.rakumod
Issue a warning for .trans(abc => ...)

As that is an unexpected named argument, it will be ignored. And since there are no other transformation specifications, it would silently become a noop.
Since the op probably meant .trans("abc" => ...) (aka, transforming ... (13 more lines)
ab5tract yeah, it doesn't compile :) 14:07
that said, I can't seem to find anywhere that this flag is actually toggled 14:08
lizmat probably because that also affected subs / blocks with a slurpy has in the signature
ab5tract I'm trying to recall whether I've ever seen the passing of *%_ contents from one method to another 14:11
lizmat I frequently have a frontend doing a *%_ and then passing a possibly modified %_ on so it wouldn't have to unpack / pack the hash again 14:12
ab5tract Hm 14:22
m: dd Q|-> ($x,$y) { }|.AST.DEPARSE 14:23
camelia "-> \{ }\n"
ab5tract m: dd q|-> ($x,$y) { }|.AST.DEPARSE
camelia "-> \{ }\n"
Geth rakudo/main: 8365a5deb4 | (Elizabeth Mattijsen)++ | src/core.c/Str.rakumod
Make .trans(Regex => Str) about 3 as fast

As that case can be simplified to .split(Regex).join(Str)
Part of #5488
14:35
ab5tract nice one :) 14:36
Geth rakudo/main: 4082d2c707 | (Elizabeth Mattijsen)++ | src/core.c/Str.rakumod
Fix issue introduced with 8365a5deb4

Only .trans(Regex => Str) without named arguments can fast path.
Rearrange various tests so that case is also covered.
Part of #5488
15:11
[Coke] ugh. Failed to write 2797071 bytes to filehandle: No space left on device 15:19
Geth App-MoarVM-Debug/main: dce0af95d6 | (Elizabeth Mattijsen)++ | 2 files
0.2
15:36
[Coke] c: 8365a5deb say 3 16:00
committable6 [Coke], ¦8365a5d: «Cannot find this revision (did you mean “6bd955e”?)»
lizmat m: dd "foobar".trans(("a" => "x", "x" => "A")) # feels to me that should say "foobAr" ? 16:15
camelia "foobxr"
lizmat or is that a case of DIHWIDT ? 16:16
moritz would know
ab5tract I feel like that's a bit of DIHWIDT 16:20
or maybe a situation where a Failure or worry are warranted
ugexe i would have expected foobxr, but i can also see why other might expect foobAr 16:46
lizmat m: dd "foobar".trans("acb" => "xy") # repeats the smaller "to" string 17:00
camelia "fooxxr"
lizmat m: dd "foobar".trans(("acb" => "xy",)) # pads the "to" string with the last char 17:01
camelia "fooyxr"
lizmat meh
18:38 sena_kun joined 19:03 gfldex left
[Coke] 🥞🥞🥞 Bisecting PBKDF2 on the current run - but the bisect kicked off by blin seems to have failed. 22:23
(in case someone wants to dig in)
where can we monitor mothership progres?
releasable6 Next release in ≈5 days and ≈19 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 23:00
Geth rakudo: patrickbkr++ created pull request #5725:
New script wrappers
23:02
[Coke] bookeeping note: shouldn't the *.bak skip be in your own git config, not the project? 23:04
otherwise: nifty! 23:05
23:17 sena_kun left
[Coke] ... "bookkeeping", as my kid just pointed out. :) 23:42