MasterDuke hm. trying to pull an nqp::index out in front of grammar parsing might be quite difficult. doing it in the QAST::Block of a regex didn't really help because of the overhead of the parse() and ACCEPTS(), but maybe it would help for grammars? 09:30
MasterDuke heh. i got it working with a simple grammar. but...it slows it down by a little 10:10
MasterDuke when a grammar is parsing some text, is any particular token applied against the entire thing? or some substring of the text? i.e., `self.target` in the QAST::Block of a token seems to be the entire text, but i'd rather work against something smaller 10:27
oh, i guess i can use `.(from|to|pos)()` 10:29
moritz token TOP applies to the whole file 10:30
lizmat Files=1337, Tests=114215, 224 wallclock secs (29.23 usr 8.61 sys + 3097.67 cusr 288.87 csys = 3424.38 CPU) 11:02
Geth_ rakudo/expose-objecthash-role: 56113de2c1 | (Elizabeth Mattijsen)++ | 4 files
Move Typed/ObjectHash files to new location

No source changes yet
11:10
rakudo/expose-objecthash-role: fce3f7764e | (Elizabeth Mattijsen)++ | 19 files
Track Typed/ObjectHash -> Hash::Typed/Object changes
nwc10 m: my int $a = 1; my int $b = 1; $a does role { method Str() { "foo" } }; $b.Str.say 12:45
camelia foo
nwc10 m: my $a = 1; my $b = 1; $a does role { method Str() { "foo" } }; $b.Str.say
camelia foo
nwc10 j: my int $a = 1; my int $b = 1; $a does role { method Str() { "foo" } }; $b.Str.say
camelia 1
nwc10 j: my $a = 1; my $b = 1; $a does role { method Str() { "foo" } }; $b.Str.say
camelia foo
nwc10 github.com/MoarVM/MoarVM/pull/1379 fixes the first for `m` 12:46
clearly the second is in NQP or Rakudo
that's not something I can easily find
lizmat nwc10: could you make a Rakudo issue for that? so it doesn't fall through the cracks ? 13:27
nwc10 OK
I was going to say: you mean the second one that isn't just MoarVM? But I guess the first one also needs "tests needed" 13:28
lizmat notable6: weekly 13:35
notable6 lizmat, No notes for “weekly”
nwc10 github.com/rakudo/rakudo/issues/4015 13:40
sena_kun bisectable6, my $a = 1; my $b = 1; $a does role { method Str() { "foo" } }; $b.Str.say 13:43
bisectable6 sena_kun, Will bisect the whole range automagically because no endpoints were provided, hang tight
sena_kun, ¦6c (48 commits): «foo␤»
sena_kun, Nothing to bisect!
ugexe m: my $a = "1".Int; my $b = "1".Int; $a does role { method Str() { "foo" } }; $b.Str.say 14:03
camelia foo
ugexe that says 1 on my system... 14:04
This is Rakudo version 2020.01 built on MoarVM version 2020.01.1
bisectable6, my $a = "1".Int; my $b = "1".Int; $a does role { method Str() { "foo" } }; $b.Str.say 14:05
bisectable6 ugexe, Will bisect the whole range automagically because no endpoints were provided, hang tight
nwc10 somewhere (this channel) I think, someone noted that the exact syntax used to define the variables causes different code paths to be taken
bisectable6 ugexe, Output on all releases: gist.github.com/b81ae42c0a6a50e656...582bb2a97d
ugexe, Bisecting by output (old=2020.05.1 new=2020.06) because on both starting points the exit code is 0
nwc10 it's way beyond me.
(my head is too full of other things, which I do understand better) 14:06
bisectable6 ugexe, bisect log: gist.github.com/57f81bbf8162f5633e...7243301dbc
ugexe, Output on all releases and bisected commits: gist.github.com/f3abfc8538a0730e60...41766c572b
MasterDuke 3ee1777a6b78f30cb6997701a667c0a6de04269f 14:07
linkable6 (2020-05-13) github.com/rakudo/rakudo/commit/3ee1777a6b Make "42".Int about 4.3x faster
MasterDuke m: my $a = "1".Int; my $b = Int.new("1".Int); $a does role { method Str() { "foo" } }; $b.Str.say 14:08
camelia 1
Geth_ nqp: 6859824bba | (Daniel Green)++ | src/HLL/Grammar.nqp
Add missing closing '"' to error message
14:09
AlexDaniel` hm, bisectable printed garbage in that last message 14:53
weird
lizmat and another Rakudo Weekly News hits the Net: rakudoweekly.blog/2020/11/09/2020-...-serviced/ 14:59
MasterDuke lizmat: the link to the new cro points to commaide.com/download 15:01
lizmat argh.... wordpress hits again :-(
MasterDuke oh, that also looks like a new release 15:02
lizmat yeah, but that was last week :-) 15:03
Anyways, fixed now, MasterDuke++
MasterDuke lizmat++ 15:07
jjatria jmerelo: Belated thanks for the Gitlab invite! 15:15
tellable6 jjatria, I'll pass your message to jmerelo
MasterDuke lizmat: btw, if you want another place to check, lwn.net also sometimes has raku-related comments. i know i've seen several by nine++ 15:17
lizmat ah, good point
MasterDuke e.g., lwn.net/Articles/835004/ 15:18
lizmat yeah, it's just that LWN (like the mailing list) has such a rotten UI
anyways, thanks for the nudge 15:19
afk for a bit&
[Tux] Rakudo v2020.10-59-g1321a8533 (v6.d) on MoarVM 2020.10-31-gb13f6a24c
csv-ip5xs0.867 - 0.882
csv-ip5xs-208.053 - 8.476
csv-parser27.320 - 28.084
csv-test-xs-200.382 - 0.385
test7.770 - 8.463
test-t1.810 - 1.916
test-t --race0.829 - 0.850
test-t-2030.681 - 32.166
test-t-20 --race8.698 - 9.477
15:23
MasterDuke timotimo: i almost have pulling a literal out into an nqp::index working for grammars (works in some toy examples, but the nqp build dies with it turned on). but i'm doing it in the QAST::Block because otherwise i run into the WVal problem referring back to the grammar 15:35
but it appears to do a lot of extra work, i'm not sure why, backtracking maybe? 15:37
think there's a better way to do it this way? or do i need to figure out the WVal problem?
ugexe fwiw as of a few weeks ago e.g. `"depends" : [ { "any": ["Lib::Curl","Lib::Wget"] } ]` is available in the latest version of zef (nine++) 16:51
===> Dependencies: any(Lib::Curl, Lib::Wget), Test
===> Searching for missing dependencies: any(Lib::Curl,Lib::Wget)
===> Failed to find dependencies: any(Lib::Curl,Lib::Wget)
Failed to resolve some missing dependencies
or for a success 16:56
===> Dependencies: any(Lib::Curl, Net::HTTP), Test
===> Searching for missing dependencies: any(Lib::Curl,Net::HTTP)
===> Found dependencies: Net::HTTP:ver<0.0.9>:auth<github:ugexe> [via Zef::Repository::LocalCache]
MasterDuke cool 17:03
nine Time to dust off my patches for OpenSSL (which depends on {"any": [{"name":"ssl", "from": "native", "ver": "1.1"}, {"name":"ssl", "from": "native", "ver": "1.0"}]}) 17:16
With these patches it will no longer need a -devel or -dev package of OpenSSL installed 17:17
ugexe It'll need something for windows though, no? OpenSSL packages its own ssleay32.dll and libeay32.dll 17:21
i guess just return an empty dependency set on windows 17:23
nine I just trimmed that away for IRC 17:46
ugexe yeah i figured, but i had forgot an empty dependency set was ok. i was initially thinking 'but we dont have a way to declare a dependency such as foo.dll that the package itself will provide if its missing" 17:47
Geth_ rakudo/reorganize-array-shaping: e8cab59995 | (Elizabeth Mattijsen)++ | 11 files
Start making Array roles exposed properly as well

Move source files to their new location: no changes to code just yet
19:23
rakudo/reorganize-array-shaping: 46786b5e46 | (Elizabeth Mattijsen)++ | 8 files
Expose shaped/typed array roles

This doesn't change any functionality, it just makes the code better maintainable and changes some names:
   TypedArray -> Array::Typed
   ShapedArray -> Array::Shaped
... (15 more lines)
rakudo: lizmat++ created pull request #4016:
Reorganize array shaping
19:24
gfldex m: my @a; @a[0] = (1,2).Slip; .say for @a; 20:20
camelia (1 2)
gfldex Should that slip?
lizmat m: my @a; @a[0] = (1,2).Slip; dd @a 20:23
camelia Array @a = [slip(1, 2),]
lizmat well, you stored the slip at @a[0[, and the moment you access it, it gets slipped 20:24
m: my @a; @a[0] = (1,2).Slip; dd @a[0[
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in subscript; couldn't find final ']' (corresponding starter was at line 1)
at <tmp>:1
------> 3my @a; @a[0] = (1,2).Slip; dd @a[0[7⏏5<EOL>
expecting any of:…
lizmat m: my @a; @a[0] = (1,2).Slip; dd @a[0]
camelia Slip @a = $(slip(1, 2))
lizmat hmmm...
m: my @a; @a[0] = (1,2).Slip; say @a[0]
camelia (1 2)
lizmat the "say" is actually applying the single argument rule, I guess 20:25
m: my @a; @a[0] = (1,2).Slip; say @a[0], "foo"
camelia (1 2)foo
lizmat hmmm
gfldex This is either a rakudobug or an ENODOC.
lizmat well, a Slip is just a List with benefits
timotimo badum tss 20:26
lizmat :-)
gfldex m: my @a; @a[0] = (1,2).Slip; @a.iterator.pull-one.say; 20:28
camelia (1 2)
Geth_ rakudo/reorganize-array-shaping: 86f17387c9 | (Elizabeth Mattijsen)++ | 2 files
Make sure exception is stubbed at the right time
lizmat m: my @a; @a[0] = (1,2).Slip; dd @a.iterator.pull-one # say is hiding information 20:29
camelia Slip @a = $(slip(1, 2))
gfldex I did expect the iterator to decent into the Slip.
lizmat why ? 20:30
it is itemized, so it shouldn't anyway
but even then
gfldex because the docs say: A Slip is a List that automatically flattens into an outer List (or other list-like container or iterable).
lizmat m: my @a; @a[0] := (1,2).Slip; dd @a.iterator.pull-one
camelia slip(1, 2)
lizmat m: my @a; @a[0] := (1,2).Slip; dd $_ for @a.iterator.pull-one 20:31
camelia 1
2
lizmat m: my @a; @a[0] = (1,2).Slip; dd $_ for @a.iterator.pull-one
camelia 1
2
lizmat when you use an iterator, you're really on your own 20:32
gfldex m: my @a; @a[0] = (1,2).Slip; dd $_ for @a;
camelia Slip @a = $(slip(1, 2))
lizmat it's the handling of whatever an iterator produces, is where the flattening happenbs
gfldex I don't want to use the iterator at all.
lizmat m: my @a; @a[0] := (1,2).Slip; dd $_ for @a;
camelia slip(1, 2) 20:33
lizmat m: my @a; @a[0] := (1,2).Slip; dd $_ for @a.flat;
camelia slip(1, 2)
lizmat hmmm
m: my @a; @a[0] := (1,2); dd $_ for @a.flat; 20:34
camelia (1, 2)
lizmat m: my @a; @a[0] := (1,2); dd @a.flat; 20:35
camelia ((1, 2),).Seq
gfldex All cases without a Slip are correct. But they behave the same then with a Slip. So why have the Slip? 20:36
Is there any use case where one would want to maintain the Slip?
lizmat m: my @a; @a[0] = (1,2).Slip; dd @a.map({$_})
camelia (1, 2).Seq
gfldex At the other hand, if Slip works on array container assignment/binding one does not need splice anymore. 20:37
m: my @a = [ (1,2), (3,4), (5,6) ]; @a[1] = (<a b>, <c d>).Slip; .say for @a; 20:38
camelia (1 2)
((a b) (c d))
(5 6)
lizmat m: my %h; %h<a> = (1,2,3).Slip; dd $_ for %h<a> 20:39
camelia 1
2
3
lizmat m: my @a; @a[0] = (1,2,3).Slip; dd $_ for @a[0]
camelia 1
2
3
lizmat handy uses of Slip inside a Hash or an Array
It feels like we could use more documentation, so perhaps make a doc issues ? 20:40
*issue
gfldex I'm not conviced this is an ENODOC. Because I could not explain why it works for Hash-elements and List but not for Array. 20:42
lizmat gfldex: so what is the difference in behaviour between List and Array ? 20:45
afk for at least a few hours& 20:50