00:08 sena_kun left 02:03 Voldenet left 02:09 Voldenet joined, Voldenet left, Voldenet joined 04:47 leont joined
MasterDuke does the JS backend support atomicint, et al.? we have cases of both `#if moar` and `#if !jvm` around atomic ops 08:28
nine There's not much threading in JS in the first place, so I'd be surprised 08:35
MasterDuke yeah, i assume they should all be `if? moar` 08:37
nine lizmat: I wonder if the nqp::stat in slurp-bin is doing more good than harm. Yes, this way we don't need a loop, but OTOH it's one more syscall. And if the file is on an NFS share that round trip can be quite expensive 08:38
MasterDuke nine: btw, re ugexe's comment on github.com/rakudo/rakudo/pull/3741, do you have a suggestion for a non-moar solution?
i'm about to put some pre-processor directives to make it moar-only 08:39
nine What's the solution in those other cases where we do have a #?jvm?
At some point someone will just have to implement support for atomic ints on JVM. Shouldn't be that hard? docs.oracle.com/javase/7/docs/api/...teger.html 08:40
MasterDuke heh, well looks like there usually isn't one
oh nice. andreoss recently did some jvm work, maybe that'd be something they could pick up 08:43
lizmat Files=1306, Tests=111378, 213 wallclock secs (29.01 usr 8.21 sys + 2998.16 cusr 265.38 csys = 3300.76 CPU) 08:47
Geth_ rakudo/fix_possible_race_in_multi_threaded_precompilation: c9f220eb84 | (Daniel Green)++ | src/core.c/CompUnit/PrecompilationStore/File.pm6
Fix possible race in multi-threaded precompilation

by changing $!lock-count to an atomicint and using atomic operations to interact with it. This code used to be inside a `.protect` call (and so didn't need to be atomic), but that was removed in ac87ea2ac84883bf701808485ac2da887f7496ed for other reasons.
MasterDuke oh, forgot i'd created a branch in the main repo for this 08:48
08:53 sena_kun joined 09:12 patrickb joined 09:22 patrickb left 09:35 Altai-man_ joined
Geth_ rakudo: 36d89cf60a | (Elizabeth Mattijsen)++ | src/core.c/IO/Path.pm6
Rework IO::Path.slurp a bit

After nine++'s comment about finding out the size of a file. It will now read 1M bytes first, and then loop if that worked. And
  *not* check the size of the file at all anymore.
Also reworked internals a bit to get a more modular approach.
09:38 sena_kun left
Geth_ nqp: 3d7a986046 | (Stefan Seifert)++ | docs/ops.markdown
Document freshcoderef, markcodestatic, scsetcode and forceouterctx
[Tux] Rakudo version 2020.05.1-253-g36d89cf60 - MoarVM version 2020.05-46-g1d902a15c
csv-ip5xs0.799 - 0.804
csv-ip5xs-207.757 - 7.942
csv-parser25.385 - 26.183
csv-test-xs-200.385 - 0.390
test7.448 - 7.749
test-t1.883 - 1.887
test-t --race0.885 - 0.969
test-t-2031.160 - 31.277
test-t-20 --race8.762 - 9.132
nine Seems like we got "Unhandled exception: Missing or wrong version of dependency 'gen/moar/stage2/NQPHLL.nqp' (from 'gen/moar/Pod.nqp')" back when just running make test without install after a change to NQP :/ 11:32
vrurg: Seems like we got "Unhandled exception: Missing or wrong version of dependency 'gen/moar/stage2/NQPHLL.nqp' (from 'gen/moar/Pod.nqp')" back when just running make test without install after a change to NQP :/
lizmat last time vrurg fixed that was by making sure the changed NQP file was a dependency (when it wasn't before) 11:35
11:36 sena_kun joined 11:38 Altai-man_ left
nine Oh, there's still the "Semicolon form of 'perl5class' without 'unit' is illegal." (when the statement is of course `unit perl5class GLOBAL::RakuBlock;` which goes away when I turn off hash order randomization. 11:48
To find that I've already audited all of MoarVM, NQP and rakudo to find places where we do something in hash order and changed all of them, but that didn't actually help. 11:49
Geth_ roast: ac0ee75bf3 | (Elizabeth Mattijsen)++ | S32-str/split-simple.t
Make .split(/foo/,NaN) test less specific

The important thing is that it dies.
tbrowder hi 11:57
tellable6 2020-06-06T00:03:19Z #raku <melezhik> tbrowder probably it'd not be a big effort to extend RakuDist API to accept arbitrary tarballed distributions and run tests for it
tbrowder i'm having trouble with some pod tests on my next pr. i'm getting a stray newline in output and after much debugging i see evidence of it coming from routine is_run in Test::Util. I would try to fix the test but (1) it's a very busy module with complicated (to me) signatures, multis, and supporting subs and (2) i'm afraid of cascading test failures as a result. if i were to attempt to fix the is _run my first thought 12:07
is to throw in a new named param to control the newline behavior. advice, please.
melezhik: good idea for your "spare" time but such testing is not a high need for me. 12:11
tellable6 tbrowder, I'll pass your message to melezhik
nine It's odd that Compiler can do all sorts of things - but not compile 12:18
tbrowder: why does is_run add that newline in the first place? 12:32
tbrowder i see diag for one adding a newline. i haven't tracked down a lot of output but on my test i'm seeing a extra newline on "got". 12:35
MasterDuke nine: would sticking an MVM_dump_backtrace in HASH_ITER(_FAST) show you where it's being called from that maybe you've missed? 12:36
tbrowder i can't find it so far anywhere in nqp or pm6 code and i spent a lot of time with note statements looking for it. 12:37
12:37 lichtkind joined
nine MasterDuke: yeah, will have to do that 12:39
MasterDuke fwiw, i found that manually pulling out the bit that just prints the first line of the backtrace was much much faster than doing the whole MVM_dump_backtrace 12:41
timotimo it could not perhaps be due to stdout and stderr getting out of sync? 12:47
nine Huh.....now I actually can't reproduce the issue anymore 12:49
tbrowder nine: i looked more closely at is_run and i do NOT at the moment see the problem there. but real fun sigs to ponder! 12:53
Geth_ rakudo: 6f459456b2 | (Elizabeth Mattijsen)++ | src/core.c/Rakudo/Iterator.pm6
Add R:It.MatchSplit iterator

This one takes care of split on regex with an optional limit.
rakudo: 9c74d9836f | (Elizabeth Mattijsen)++ | src/core.c/Str.pm6
Make Str.split(Regex) up to 2x faster

  - using the new R:It.MatchSplit iterator
  - now *truly* lazy, so in some application potentially faster still. e.g. first
  - for now, without :k, :kv, :v or :p specification
  - also removed some helper private methods that are no longer needed
13:20 ShimmerFairy left
timotimo "up to"; is that only when doing nothing? :D 13:26
13:35 Altai-man_ joined 13:38 sena_kun left 13:39 [TuxCM] joined, [Tux] left 13:43 [Tux] joined
lizmat timotimo: actually for the strings I tried, it was between 1.8x and 2x as fast 15:01
but a large part depends on the complexity of finding a match in the string
this was for a 2 char fixed string match 15:02
can't get much simpler than that, hence the upto 2x
timotimo that still sounds very good 15:29
vrurg nine: could you tell me what file did you change that resulted in the error? Hopefully, I'll have time later today to look into it. 15:33
nine vrurg: pretty sure it was src/HLL/Compiler.nqp 15:36
15:36 sena_kun joined
nine Got the failure in t/04-nativecall/19-function-pointers.t 15:36
vrurg nine: will try to reproduce. Most likely it's a dep missing, as lizmat noted. 15:37
nine But why would it need a make install then?
15:38 Altai-man_ left
vrurg dunno, will have to see what's going on. 15:38
Geth_ rakudo: lizmat self-assigned difference of behavior for List.head and Supply.head github.com/rakudo/rakudo/issues/3746
92d018367e | (Elizabeth Mattijsen)++ | src/core.c/Rakudo/Iterator.pm6

This one takes care of split on regex with a limit, a mapper and whether empty strings should be skipped.
rakudo: a9796fe5a4 | (Elizabeth Mattijsen)++ | src/core.c/Str.pm6
Make Str.split(Regex, *%_) up to 2x faster

  - using the new R:It.MatchSplitMap iterator
  - now *truly* lazy, so in some application potentially faster still. e.g. first
  - specifically added :k, :kv, :v, :p support
  - also removed some helper private methods that are no longer needed
16:17 JJMerelo joined
lizmat afk for the rest of the day& 16:17
JJMerelo lizmat see you 16:31
[Coke] nine++ #npm opcode documentation 16:56
... etc.
tbrowder: try running it and doing >stdout 2>stderr and seeing if the invidual streams look ok? 16:58
17:35 Altai-man_ joined 17:38 sena_kun left 18:15 lucasb joined
JJMerelo releasable6 status 18:19
Altai-man_ releasable6, status 18:28
releasable6 Altai-man_, Next release in ≈14 days and ≈0 hours. There are no known blockers. Changelog for this release was not started yet
Altai-man_, Details: gist.github.com/bf69c2117464ab1bbd...3214270c45
JJMerelo It only listens to you, Altai-man_ The one and only 18:29
Altai-man_ Hehe. Need to start changelog, hmm, why not today.
JJMerelo Altai-man_++ 18:30
Geth_ rakudo: softmoth++ created pull request #3747:
nativecall: Allow Callable arg to return List or IO::Path
tbrowder [Coke]: will do, good idea 18:39
nada, all to stdout. going to study Pod::To::Text a while... 18:44
18:52 JJMerelo left 19:36 sena_kun joined 19:38 Altai-man_ left
sena_kun .oO ( so we call it GDO now, niiiice ) 19:57
releasable6, status 20:24
releasable6 sena_kun, Next release in ≈13 days and ≈22 hours. There are no known blockers. 143 out of 257 commits logged (⚠ 4 warnings)
sena_kun, Details: gist.github.com/20a04661380a55686a...12446d6fbe
21:35 Altai-man_ joined 21:38 sena_kun left
Geth_ rakudo/rakuast: b941ea3492 | (Jonathan Worthington)++ | src/Raku/Grammar.nqp
Add stdstopper to RakuAST-based grammar
rakudo/rakuast: f21a031353 | (Jonathan Worthington)++ | 3 files
RakuAST compilation of list-assoc infix operators
rakudo/rakuast: 5e813acdcc | (Jonathan Worthington)++ | 2 files
Compile calls with multiple args correctly
23:14 lichtkind left 23:17 leont left
Geth_ rakudo/rakuast: 04bc9a8833 | (Jonathan Worthington)++ | 3 files
Compile fatarrow term to RakuAST::FatArrow
23:36 sena_kun joined 23:38 Altai-man_ left 23:42 sena_kun left