🦋 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.
leont ugexe: If you're happy I'm merging and releasing it 00:30
ugexe it works for me, but did you notice the CI failures? 00:35
Coercion IO(Str) is insufficiently type-like to qualify a variable
at /test/lib/TAP.pm (TAP):814
i hadnt test the latest commit 00:40
leont I need to build a new CI setup, this travis based one uses a two years old raku 00:53
ugexe ah. its tests pass locally for me 00:55
Geth tap-harness6: fb2bf01788 | (Leon Timmermans)++ | 2 files
Make t/source-file.t cwd-independent
01:07
tap-harness6: c1c3c40155 | (Leon Timmermans)++ | lib/TAP.pm
Add cwd attribute to TAP::Harness

This will run the tests in the right working directory without affecting the main program's working directory.
Geth ¦ tap-harness6: Leont self-assigned Need to update README.md github.com/Raku/tap-harness6/issues/50 02:58
releasable6 Next release in ≈6 days and ≈15 hours. 1 blocker. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 03:00
lizmat Files=1351, Tests=117094, 325 wallclock secs (35.37 usr 9.29 sys + 4484.41 cusr 358.54 csys = 4887.61 CPU) 10:06
Geth rakudo: 11c8f82a04 | (Elizabeth Mattijsen)++ | src/core.c/Capture.pm6
Make Capture[n] (and thus $0, $1, ...) about 5x as fast

By making the AT-POS candidates better inlineable by moving the Failure creating code to a separate subroutine, thus allowing the hotpath to be inlined.
11:35
MasterDuke lizmat: have you noticed any difference in timings now that mimalloc is the default? 12:12
lizmat eh... that didn't make it to rakudo master yet, did it ?
maybe I should do a bump ? 12:13
MasterDuke +1 from me 12:17
lizmat ok, will dop
*do
MasterDuke: building NQP fails for me: 12:21
In file included from src/vm/moar/runner/main.c:5:
#include <mimalloc.h>
nine Did you run Configure.pl again? 12:22
lizmat MasterDuke: full gist 12:23
gist.github.com/lizmat/68d545bdaf7...3110324010
nine ^^ yes
nine I don't see output by NQP's Configure.pl. But that may be hidden by the build process 12:24
Geth nqp/fix_unsigned_for_merge: d5e0639f97 | (Stefan Seifert)++ | 12 files
Add atpos_u and bindpos_u ops on JVM
12:27
nqp/fix_unsigned_for_merge: 42adc9185c | (Stefan Seifert)++ | 5 files
assign_u, atposref_u, captureposarg_u and iscont_u on JVM
nine If only the JVM backend was a little faster. The code is so nice to work with 12:31
MasterDuke ah, you beat me to it (i thought about implementing those *_u ops for the jvm but obviously didn't get around to it) 12:32
have you experimented with the truffle branch at all? compilation isn't any faster, but some long running code can beat moarvm even now 12:33
nine Well I do want to get on with the unsigned fixes so I can do something else at some point. As JVM kinda blocked that, it was kinda natural to take a look at it
No, I haven't
lizmat so no bump I guess, right ? 12:34
MasterDuke i'm not sure why it didn't find the .h. maybe a `make clean` first? 12:36
lizmat tries with a fresh clone 12:37
a fresh clone works 12:41
argh
lizmat tries with the actual bump 12:42
MasterDuke CI was fine, so probably was some stale config 12:43
lizmat ok, after building with a fresh clone, and *then* a change in MOAR_REVISION, it fails again 12:44
trying with a fresh clone *and* a MOAR_REVISION change before building 12:45
nine lizmat: is that still with--gen-moar? 12:46
lizmat yes 12:48
ok, good news: with a fresh checkout, bump applied without building before, it builds and tests ok 12:49
Geth nqp: 5e5502ecb1 | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION
Bump MoarVM to get the latest goodies

  - mimallic support: MasterDuke++
  - various other tweaks and fixes by nine++ and nwc10++
12:50
nine Would probably work as well the other way round if you manually ran NQP's Configure.pl (most conveniently via config.status0
s/config.status0/config.status)/
lizmat my primary interest is: does it work after a fresh checkout with the bump applied 12:51
because that's what people generally do (unless they're a core dev) 12:52
Rakudo builds ok, now spectesting 12:54
Geth rakudo: fb909efcee | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION
Bump NQP to get the latest MoarVM fixes

And also some prep work in NQP by nine++
13:03
lizmat nine++ MasterDuke++ ^^ 13:04
Geth nqp/master: 8 commits pushed by (Stefan Seifert)++, niner++ 13:07
lizmat nine: I assume you will be taking care of bumping that, right ? 13:09
nine yes 13:10
lizmat focuses on other stuff then
cognominal > 0+0i == 0 14:00
True
> 0+0i eq 0
False
>
Why > I would expect == things to be coerced into eq things
lizmat perhaps an oversight :-) 14:01
cognominal I wanted to brag about imaginary support in raku and I am told that its support is imaginary. 14:02
Lizmat, should I file a bug ? 14:03
lizmat hehe.. we try very hard to be non-imaginary :0) 14:04
so yes please
nine m: say 0i 14:07
camelia 0+0i
nine m: say 0i.^name
camelia Complex
nine I don't see why this should be string equal to the Int 0? 14:08
cognominal Not the same type indeed
thx
I have no excuse. This is covered by the doc. docs.raku.org/routine/===,%20infix%20%E2%A9%B6 14:13
bartolin nine++ for providing the *_u ops for the JVM backend, too 15:55
nine *sigh* as I feared, there are now merge conflicts in src/core.c/native_array.pm6 16:40
gfldex I build from HEAD and the profiler shows really odd stuff. 16:54
MasterDuke gfldex: huh, haven't noticed anything myself, but haven't taken a profile in a couple days. what are you seeing? 16:57
Geth nqp/fix_unsigned: 8cb72029f9 | (Stefan Seifert)++ | 2 files
Use uint64 registers for unsigned arguments in dispatch
17:06
nqp/fix_unsigned: 6f8488372c | (Stefan Seifert)++ | 11 files
Rebootstrap
nqp/fix_unsigned: 7ef612304e | (Stefan Seifert)++ | 2 files
is pure trait for methods
gfldex es 17:11
In total, NaN call frames were entered and exited by the profiled code. Inlining eliminated the need to create
844784952697000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000282706100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 call frames (that's NaN%). Call Frames
In total, NaN call frames were entered and exited by the profiled code. Inlining eliminated the need to create
844784952697000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 17:12
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000282706100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 call frames (that's NaN%).
nine Inlining seems to be really effective in this case
MasterDuke inline all the atoms in the universe!
nine far, far more 17:13
gfldex Exclusive Time 17:14
MasterDuke gfldex: is profiling your code that uses `start`?
gfldex 0%
0% (6.287731412877151e+169ms)
That was taken with the .hyper removed.
nine There are only about 100000000000000000000000000000000000000000000000000000000000000000000000000000000 atoms in the observable universe
MasterDuke then we'll inline the subatomic particles too, everybody's welcome 17:15
gfldex That's no problem nine. Running the program takes longer then the universe will exist anyways.
MasterDuke nine: btw, in case you missed it, i commented on github.com/Raku/nqp/commit/8cb72029f9 17:17
gfldex I the profiler tested before a monthly release is made? 17:19
nine doesn't think so
There are a few tests but I think they are rather basic 17:20
MasterDuke it's tested that it runs and creates a file and that's about it
Geth nqp: 4aaf06e204 | (Stéphane Payrard)++ | docs/ops.markdown
sethllconfig doc
18:12
cognominal GitHub.dev is cool. I hope I did not mess things up 18:13
Geth nqp: aeaab3153c | (Stéphane Payrard)++ | docs/ops.markdown
fix up link for hll MoarVM testfile
18:25
cognominal That sounds interesting. I suppose that would have avoided my misstep. I don't know anything about GitHub actions though 18:49
github.com/marketplace/actions/my-...nk-checker
releasable6 Next release in ≈5 days and ≈19 hours. 1 blocker. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 23:00