🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | log inspection situation still under development | For MoarVM see #moarvm
Set by lizmat on 22 May 2021.
00:03 discord-raku-bot left, discord-raku-bot joined 00:07 reportable6 left
Geth roast: 774722cfe8 | (Elizabeth Mattijsen)++ | 2 files
UnTODO now passing tests, nine++ for uint work!
lizmat and with that. /me calls it a night
00:15 Geth left 00:16 Geth joined 01:09 reportable6 joined 01:59 linkable6 joined 03:37 linkable6 left, evalable6 left 03:39 linkable6 joined 03:40 evalable6 joined 04:30 frost joined 05:09 Altai-man joined 05:11 sena_kun left 05:49 frost left 06:07 reportable6 left 07:07 linkable6 left, evalable6 left 07:08 reportable6 joined 07:10 linkable6 joined 08:08 evalable6 joined
Geth rakudo: a64c2f55f9 | (Stefan Seifert)++ | src/core.c/Buf.pm6
Fix "This container does not reference a native integer" in Blob/Buf

When initializing a Buf or Blob from a non-iterable holding uints, we errored as STORE pushes into the Buf/Blob and there's no push_u yet.
rakudo: fee9e822e5 | (Stefan Seifert)++ | lib/NativeCall/Types.rakumod
Fix CArray treating all native integers as signed
nine I've tried to implement push_u instead of the workaround in github.com/rakudo/rakudo/commit/a64c2f55f9 but to utilize it I'd have to push Buf's and Blob's STORE candidates into the Signed/Unsigned roles and that causes ambiguous dispatch. 09:22
I guess that'll remain something for after my vacation 09:23
bartolin_ r: use nqp; my $seen := nqp::hash; say nqp::existskey($seen,(my int $key = 0))
camelia 0
Can't open perl script "/home/camelia/rakudo-j-inst/bin/eval-client.pl": No such file or directory
bartolin_ hmm, rakudo-j complains about "This container does not reference a native string"
m: use nqp; my $seen := nqp::hash; say nqp::existskey($seen,(my $key = 0)) 09:24
camelia This type cannot unbox to a native string: P6opaque, Int
in block <unit> at <tmp> line 1
bartolin_ ^^ similar to that error
nine The error looks correct to me? 09:25
bartolin_ this causes some spectest failures for .repeated on native int arrays. The error seems reasonable to me since nqp::existskey wants a str as its second argument
right -- but the code from github.com/rakudo/rakudo/commit/36...007e32a943 uses this construct 09:26
^^ lizmat
nine Oh, that's new code then
bartolin_ (e.g. 'multi method repeated')
yes 09:27
the usage of nqp::bindkey in 'multi method repeated(intarray:D:)' also looks a bit strange, since it wants a str as its second argument, too. But that one seems to work somehow. 09:30
m: use nqp; my $seen := nqp::hash; nqp::bindkey($seen,(my int $key = 42),1) ## this version blows up on the jvm backend, too 09:31
camelia ( no output )
bartolin_ m: use nqp; my $seen := nqp::hash; nqp::bindkey($seen,(my Int $key = 42),1)
camelia This type cannot unbox to a native string: P6opaque, Int
in block <unit> at <tmp> line 1
bartolin_ nine: btw, the only uint related error I saw was in rakudo's t/04-nativecall/15-rw-args.t (Native call expected argument that references a native integer, but got org.raku.nqp.sixmodel.reprs.NativeRefInstanceIntLex@5155dc15) 09:36
do you perhaps remember if you saw that one, too?
not important, I'm just curious 09:37
nine No, I didn't. For me NativeCall tests were passing at the time I pushed the JVM fixes. Is that a regression since then?
bartolin_ I think so, yes (I didn't see that one last week).
MasterDuke i just saw: t/04-nativecall/05-arrays.t  TODO passed:   39 09:38
bartolin_ but again, it's nothing that should worry you too much -- esp. not if you are going to vacation ...
maybe I have a chance to look at it. but good to know that you didn't see it. (Could even be related to me running on FreeBSD.) 09:39
nine MasterDuke: yes, that's a nice side effect of commit fee9e822e513a914ef1a8204e9926ea8aff8efa3 09:40
MasterDuke cool beans
09:40 linkable6 left
bartolin_ and again thanks for porting the uint stuff to the jvm backend. I don't think I would have been able to do that. 09:41
nine Thing is, the Java code is actually nicer to work with than C. I just wish it were a little faster to compile and that I'd have the same level of tooling as for C. jdb is....rather basic 09:42
But at least on the 5950X, stage parse is down to ~70s, which makes it somewhat bearable :) 09:43
I don't even want to know how long it compiles on my 6 years old laptop :D 09:44
bartolin_ 70s -- wow 09:45
on the VM I run my stuff it's usually more around 200s :/ 09:46
nine That's horrible
I wonder how fast it is on the M1 Mac. I'd guess its memory bandwith could be quite helpful 09:47
moon-child but, no jit 09:49
nine Not even the JVM? 09:50
moon-child oh, right. Got my wires crossed 09:52
MasterDuke i once tried to profile the jvm build, but i've never actually profiled anything java before (and am pretty out of date with my java dev tools experience) and didn't quite succeed 09:53
but maybe there's some low-hanging fruit for someone to pick up 09:54
nine Tools make a lot of difference 09:58
10:41 linkable6 joined
lizmat bartolin_: on MoarVM you can transparently use natives as keys in nqp::hashes 10:44
apparently, you cannot on JVM
bartolin_: there are other places in the core that use this afaik, these native functions are *not* the only place I think 10:47
bartolin_: I guess I could put in a "nqp::coerce_is" for the int -> str case 10:48
but apparently "nqp::coerce_ns" does not exists on the JVM backend?
nine Could be that the QAST compiler does this automatically on MoarVM
lizmat bartolin_: just let me know how you want me to proceed on this 10:49
nine Oh, coercion from uint to str is NYI on JVM. Missed that 10:50
lizmat nine: you mean there is a coerce_uis on MoarVM ?
or coerce_us ?
nine there is 10:51
lizmat then ops_markdown needs updating :-)
*ops.markdown 10:52
anything else there that needs updating?
nine since June 2018
lizmat I assume moar only 10:53
Geth nqp: 42712dd8a2 | (Elizabeth Mattijsen)++ | docs/ops.markdown
Add docs for coerce_iu, coerce_us, coerce_ui
bartolin_ lizmat: I have to think about this a bit. I'd say it's not a critical problem for now. If native numbers are coerced to strings automatically on MoarVM, then may it's possible to do that on the JVM as well. 11:03
lizmat ok, I'll await your guidance on that subject then
11:26 nine left 11:27 nine joined 12:08 reportable6 left
Geth roast: usev6++ created pull request #786:
Tweak some uint tests
lizmat bartolin_: is a fundge a sort of non fungible fudge ? :-) 12:09
bartolin_ I ... did some stupid typo again? 12:14
ah, now I see it. ;) will fix and force push 12:15
done. (And it was not an original typo this time, but a copied one.) 12:20
lizmat aah? ok... I thought in this days of NFTs I thought it was a nice typo :-) 12:22
bartolin_ but you're right -- it was my own invention after all :) 12:26
12:41 frost joined 13:10 frost left 13:11 reportable6 joined 13:28 frost joined 13:48 discord-raku-bot left 13:51 discord-raku-bot joined 14:29 frost left
dogbert11 m: my $l = "start = 94 ; end = 96 ; sum = 55"; if (my ($s, $e, $sum) = $l ~~ m:P5/^start = (\d+) ; end = (\d+) ; sum = (-?\d+)$/.list) {say $sum} 14:41
camelia (Any)
dogbert11 this seems broken
should return 55 14:42
14:45 frost joined
dogbert11 bisect: my $l = "start = 94 ; end = 96 ; sum = 55"; if (my ($s, $e, $sum) = $l ~~ m:P5/^start = (\d+) ; end = (\d+) ; sum = (-?\d+)$/.list) {say $sum} 14:45
bisectable6 dogbert11, Will bisect the whole range automagically because no endpoints were provided, hang tight
dogbert11, Output on all releases: gist.github.com/d38d571e88275f8251...724f62f48d 14:46
dogbert11, Bisecting by output (old=2021.12 new=fee9e82) because on both starting points the exit code is 0
dogbert11, bisect log: gist.github.com/e93219e0cb5018520b...e9f95ec859
dogbert11, (2021-12-27) github.com/rakudo/rakudo/commit/6b...697a9f72da
dogbert11, Output on all releases and bisected commits: gist.github.com/9e357ed38aed5dc5d1...c2216f728a
dogbert11 looks like something for vrurg
15:25 frost left 16:25 evalable6 left, linkable6 left, linkable6 joined 17:26 evalable6 joined 18:08 reportable6 left 18:33 dogbert11 left 18:34 dogbert11 joined
bartolin_ lizmat: I created an issue for the problem with nqp::existskey we discussed earlier today: github.com/rakudo/rakudo/issues/4732. I didn't find time to look why this happens. Maybe it makes sense to add a special case for the JVM backend to the 'repeated' methods -- at least for now. 19:05
Geth ¦ rakudo: lizmat self-assigned [JVM] Error when trying to assign to variable typed as native int and use the result of the expression directly as key for nqp::hash github.com/rakudo/rakudo/issues/4732 19:06
bartolin_ but maybe someone else has a better idea ...
19:11 reportable6 joined
Geth roast: b28a53b19e | (Christian Bartolomäus)++ | S11-compunit/compunit-dependencyspecification.t
[JVM] Unfudge now-passing test

It started to pass around 2022-01-08, but I don't know what change made it pass.
19:12 timo joined
Geth rakudo: nwc10++ created pull request #4733:
Remove dead code from MoarVM and JVM extops
bartolin_ nine: btw, the error I see with 'make test' on the JVM backend (happening in github.com/rakudo/rakudo/blob/fee9...rgs.t#L58) seems to trigger this code: github.com/Raku/nqp/blob/42712dd8a...L569-L571. That looks plausible to me, because only iscont_i is checked there. So NativeCallOps probably needs
some more adjustment.
oops, that is exactly the same error that Nicholas++ mentioned in his PR a few seconds ago!? 19:39
MasterDuke i think we need moarvm+nqp bumps 19:56
Geth nqp: cf5b93884c | (Daniel Green)++ | tools/templates/MOAR_REVISION
Bump MoarVM for CArray fix
rakudo: acc093c18b | (Daniel Green)++ | tools/templates/NQP_REVISION
Bump NQP for CArray fix
20:31 nebuchadnezzar left, nebuchadnezzar joined
vrurg dogbert11: have you opened an issue on that? 20:41
lizmat Files=1351, Tests=117094, 289 wallclock secs (34.64 usr 9.39 sys + 4013.11 cusr 322.42 csys = 4379.56 CPU) 20:45
(forgot to post that this morning) 20:46
20:53 discord-raku-bot left 20:54 discord-raku-bot joined
Geth rakudo: ac009507a2 | (Elizabeth Mattijsen)++ | t/04-nativecall/05-arrays.t
UnTODO a now passing test
21:54 evalable6 left, linkable6 left 21:56 linkable6 joined
dogbert11 vrurg: no, but I can fix that 22:01
vrurg dogbert11: No, it's not a bug. 22:02
Remember that method call has tighter precedence. 22:03
So, you got not a regex smartmatch but a list smartmatch. m: produces a list of Match objects too. But smartmatch knows it is a regex case and doesn't mangle with it. When you add a method call over m: you get a list match which has different semantics. 22:04
japhb Welp, the build failures are slowly moving later in my big module list. Current failure on Rakudo HEAD is for the Digest module: gist.github.com/japhb/68dded3c8576...fee0c2ff79 22:27
nine: ^^
MasterDuke i was happy not to have a QAST::WVal as my first child, but maybe that's just me... 22:43
22:48 sena_kun joined 22:49 Altai-man left