🦋 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:07 reportable6 left 00:20 melezhik joined 00:27 melezhik left 01:07 reportable6 joined 01:58 _ed joined 02:11 _ed left 02:22 vrurg left, vrurg joined 02:25 vrurg_ joined 02:28 vrurg left 02:32 _ed joined 02:36 _ed left 02:44 vrurg joined, vrurg_ left 03:00 _ed joined 03:06 _ed left 03:10 elcaro_ joined 03:11 kjp_ joined, kjp left, elcaro left 03:31 _ed joined 03:39 _ed left 04:39 reportable6 left, statisfiable6 left, unicodable6 left, linkable6 left, bloatable6 left, evalable6 left, bisectable6 left, notable6 left, greppable6 left, coverable6 left, benchable6 left, quotable6 left, squashable6 left, nativecallable6 left, shareable6 left, sourceable6 left, releasable6 left, committable6 left, bloatable6 joined, sourceable6 joined 04:40 evalable6 joined, committable6 joined 04:41 unicodable6 joined, notable6 joined, benchable6 joined 04:42 bisectable6 joined 04:43 _ed joined 04:54 _ed left 05:14 _ed joined 05:20 _ed left 05:39 quotable6 joined, shareable6 joined 05:40 linkable6 joined, _ed joined 05:41 statisfiable6 joined, squashable6 joined, greppable6 joined 05:43 _ed left 05:52 ggoebel left 06:08 reportable6 joined 06:41 nativecallable6 joined, releasable6 joined 07:14 _ed joined 07:18 _ed left 07:20 sena_kun left 08:05 vrurg_ joined 08:07 vrurg left
MasterDuke oh, multiple people working on a branch, need to remember not to force push a lot of rebases 08:31
08:31 _ed joined 08:35 _ed left 08:39 coverable6 joined
MasterDuke anyone object to rebasing rakuast up to master? i.e., after 2022.03 08:41
nine MasterDuke: fine with me, but I guess it's up to jnthn. 08:42
lizmat Files=1351, Tests=117115, 297 wallclock secs (35.63 usr 10.08 sys + 4108.10 cusr 354.32 csys = 4508.13 CPU) 08:50
Geth rakudo: MasterDuke17++ created pull request #4825:
Add .rakumod files to compiler id
rakudo: 970f1828ca | (Elizabeth Mattijsen)++ | lib/CompUnit/Repository/Staging.rakumod
There's an IO::Path.copy, so use that

That should also take care of any attributes being copied as well. hythm++ for spotting
rakudo/rakuast: 30902c0d0f | (Daniel Green)++ | 2 files
Add .rakumod files to compiler id

This means a change to them will invalidate precomp files. This wasn't a problem before rakuast because rakudo/src/* didn't have any .rakumod files, but now it does.
rakudo/rakuast: b330e2a8f5 | MasterDuke17++ (committed using GitHub Web editor) | 2 files
Merge pull request #4825 from MasterDuke17/rakuast_add_rakumod_file_to_compiler_id
lizmat MasterDuke: is the removal of lib/.precomp also done for the rakuast branch ? 09:46
MasterDuke when? it happens during a `make realclean` 09:47
lizmat ah, ok... well there's news: on HEAD, lib/.precomp doesn't even get created anymore 09:58
hmmm... lemme double check that :-) 09:59
c081f32838a863cdb57a6c077c5c26cd6cde0893 took care of that :-) 10:00
10:00 evalable6 left, linkable6 left
Geth roast: 081d05b32c | (Elizabeth Mattijsen)++ | S32-list/are.t
Add tests for .are
10:03 linkable6 joined
nine lizmat: but it will still get created by make test 10:05
lizmat hmmm... it probably shouldn't ? 10:20
hmmm... I guess "make test" needs to be able to run without having run "make install" 10:29
meh 10:30
nine Yes, it is customary to run tests before installing 10:35
lizmat :-) 10:40
11:03 evalable6 joined 11:29 ggoebel joined 11:36 [Tux] left 11:42 _ed joined
Geth rakudo: ce0d8d6428 | (Elizabeth Mattijsen)++ | lib/CompUnit/Repository/Staging.rakumod
Add .self-destruct method to CUR::Staging

So that a CURS can clean up after itself after having deployed installed files.
11:47 _ed left
Geth rakudo: aa6b13cdd0 | (Elizabeth Mattijsen)++ | lib/CompUnit/Repository/Staging.rakumod
Add CUR::Staging.rempove-artefacts method

To hopefully make it easier to cleanup a CURS repo before packaging. Logic lifted from tools/install-dist.raku.
lizmat argh, .remove.artefacts of course :-(
MasterDuke hm, don't we usually use american english spellings? 11:56
lizmat I guess :-( didn't realize there as a US spelling for it 11:58
MasterDuke en.wikipedia.org/wiki/American_and...ifferences couple rows down in the table 12:00
12:07 reportable6 left
Geth rakudo: 6e81f3423c | (Elizabeth Mattijsen)++ | lib/CompUnit/Repository/Staging.rakumod
nqp: MasterDuke17++ created pull request #768:
Some potential MAST bytecode writing optimizations
12:22 discord-raku-bot left, discord-raku-bot joined
Geth rakudo: f196efd319 | (Elizabeth Mattijsen)++ | lib/CompUnit/Repository/Staging.rakumod
Gradually type CUR::Staging

And use self.foo instead of $.foo
12:52 ggoebel_ joined 12:56 ggoebel left 13:04 [Tux] joined 13:05 _ed joined
Geth rakudo: d369fd1e68 | (Elizabeth Mattijsen)++ | tools/install-dist.raku
Streamline install-dist to more modern Raku code

  - move pod to end
  - less copy-paste code, more subs
  - more internal documentation
  - consistent error handling
13:09 _ed left 13:28 _ed joined 13:33 _ed left
Geth rakudo/install-without-precompile: 1c059c2be6 | (Elizabeth Mattijsen)++ | 2 files
Add :precompile = True flag to CURI.install

The idea behind this is to allow modules to just be installed and have the runtime decide when it should (re-)precompile any compilation units that were not precompiled yet. This would e.g. allow the DateTime::TimeZone distribution to be installed within a second, rather than on 4+ minutes. And only precompile those timezones that are actually used at runtime.
Also add the --/precompile flag to install-dist.raku
rakudo: lizmat++ created pull request #4826:
Add :precompile = True flag to CURI.install
lizmat afk for a bit& 13:38
14:00 carlmasak joined 14:12 _ed joined
Rakudo v2022.03-15-gd369fd1e6 (v6.d) on MoarVM 2022.03-1-gefff4cd31
csv-ip5xs0.791 - 0.811
csv-ip5xs-204.943 - 5.147
csv-parser3.595 - 3.685
csv-test-xs-200.399 - 0.404
test6.509 - 6.541
test-t1.386 - 1.456
test-t --race0.829 - 0.838
test-t-2019.627 - 20.612
test-t-20 --race6.439 - 7.055
14:22 _ed left
MasterDuke nice 14:22
[Tux]: do you have test-t-20 graphed over similar timespans? 14:23
14:27 _ed joined
japhb wonders what sped things up that much 14:32
MasterDuke probably just a lucky hash randomization. even with MVM_SPESH_BLOCKING i've seen thing where the timing will be pretty consistent between most runs, but with noticeable outliers in either direction 14:35
japhb Wow, the drop in Q4 for test-t-20 is even more dramatic than for test-t 14:36
MasterDuke: interesting
Meanwhile sadly "test-t --race" still isn't back to where it was in Q4 *2018* 14:39
Makes me wonder why not
MasterDuke werem 14:41
14:41 _ed left
japhb ? 14:41
MasterDuke *weren't some massive stability problems with race/hyper fixed around then?
japhb Ah, interesting.
It looks like the "fixed" version of early 2019 forms a hard performance baseline -- some changes made "test-t --race" slower, but none slower. You could almost draw a horizontal line below the last 3 years. 14:44
*but none faster
14:48 carlmasak left 14:50 carlmasak joined 14:54 _ed joined
[Tux] I repeat that test-t --race is an interesting showcase, but *only* for valid CSV as in this test: the --race version will FAIL on any more complex CSV 14:54
MasterDuke: tux.nl/Talks/CSV6/speed.log - graph all you like 14:55
japhb I'm not sure what you mean by "valid" versus "complex" ... could you explain a bit more?
[Tux] embedded newlines will cause the race version to parse incomplete lines 14:56
japhb MasterDuke: if you have the Terminal::Quickcharts repo: `wget tux.nl/Talks/CSV6/speed-all.log; raku -I. examples/csv-timings "test-t --race"` 14:57
[Tux]: Huh. 14:58
15:00 vrurg_ is now known as vrurg 15:02 _ed left
dogbert11 has a vague memory seeing a valgrind error in one of the CSV tests relating to newlines 15:08
[Tux] japhb, IIRC Liz created the race version where each "line" in a file is passed to a parser instance. Multiple parsers then each finish their work, but this will fail on e.g. `1,2,"foo\nbar",3,4"`, as parser 1 gets `1,2,"foo\n` and parser 2 gets `bar",3,4` both being invalid CSV 15:19
japhb [Tux]: AH! That makes sense now
16:09 reportable6 joined 16:13 _ed joined 16:19 _ed left 16:23 carlmasak left
MasterDuke japhb: test-t-20 --race does show a drop at new-disp merge 16:26
japhb MasterDuke: Nod, but "test-t --race" does not. 16:28
MasterDuke right, it's currently dominated by startup (process + threads) time 16:29
japhb That's a lot of startup time ....
MasterDuke well, overhead in general is probably a better word 16:33
japhb Fair. 16:36
16:44 _ed joined 16:51 _ed left 17:00 _ed joined 17:04 _ed left 17:17 _ed joined
Geth rakudo/master: 16 commits pushed by (Elizabeth Mattijsen)++
review: github.com/rakudo/rakudo/compare/d...78be8937e8
lizmat splitting CompUnit/PrecompilationUnit.pm6 into 4 separate files while keeping git blame history 17:21
nine ^^
17:23 _ed left 17:29 _ed joined
Geth rakudo: 193cb539c3 | (Elizabeth Mattijsen)++ | src/core.c/CompUnit/PrecompilationId.pm6
Simplify CompUnit::PrecompilationId
17:55 _ed left
Geth rakudo: 7c1e80c6d7 | (Elizabeth Mattijsen)++ | src/core.c/Block.pm6
Remove unnnecessary copying from Block.add_phaser
18:09 reportable6 left 18:26 _ed joined 18:40 _ed left
Geth rakudo: 3187922bcb | (Elizabeth Mattijsen)++ | src/core.c/Block.pm6
Some more natification in Block
rakudo: 3e217a0d9a | (Elizabeth Mattijsen)++ | src/core.c/IO/Special.pm6
Streamline IO::Special a bit
nine Thanks for fixing the mistakes of my past :) 20:10
20:11 reportable6 joined
lizmat nine: you're welcome! 20:11
Geth rakudo: 1f34539969 | (Elizabeth Mattijsen)++ | src/core.c/Process.pm6
Remove current dir from any path if RAKUDO_MODULE_DEBUG
rakudo: 71edcf2872 | (Elizabeth Mattijsen)++ | src/core.c/CompUnit/PrecompilationRepository.pm6
Split CompUnit::PrecompilationRepository!load-file

Create separate methods so we don't need to check things all the time. And make the RAKUDO_MODULE_DEBUG output a bit less noisy.
lizmat and that concludes my hacking for today
20:53 [Coke] left 20:56 [Coke] joined 21:43 squashable6 left 21:44 squashable6 joined
Geth ¦ rakudo: lizmat self-assigned CompUnit::Repository::Staging: No such method 'need' for invocant of type 'Any' github.com/rakudo/rakudo/issues/4799 22:26
ugexe ci looks like the reproducible build test on windows is more flakey than normal as of today 22:43
what, if any, eqiv to .install(:force) should .deploy have? should .deploy be respecting the repo.lock? i wish i could have asked these questions in a pull request 23:55