[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 |