00:16 lichtkind left 00:27 MasterDuke left 01:02 vrurg_ joined 01:04 vrurg left 05:55 vrurg_ left, vrurg joined 06:40 JJMerelo joined 07:06 leont joined 07:10 leont left 07:13 JJMerelo left 07:34 leont joined 07:35 MasterDuke joined
Geth nqp-configure: sumanstats++ created pull request #22:
Perl6 to Raku
08:19
nine AlexDaniel: I'd prefer such long answers to be a private messages 08:21
AlexDaniel` but then others won't see it 08:22
[Tux] Rakudo version 2020.05.1-228-gf51fba287 - MoarVM version 2020.05-23-g46d2a1a9d
csv-ip5xs0.831 - 0.852
csv-ip5xs-208.018 - 8.576
csv-parser27.495 - 29.827
csv-test-xs-200.391 - 0.408
test7.470 - 7.780
test-t1.900 - 1.992
test-t --race0.867 - 0.986
test-t-2031.765 - 32.144
test-t-20 --race9.109 - 9.199
08:31
08:44 Altai-man_ joined 08:46 MasterDuke left
lizmat Files=1306, Tests=111376, 214 wallclock secs (28.74 usr 8.53 sys + 3003.28 cusr 281.64 csys = 3322.19 CPU) 08:53
09:15 MasterDuke joined
nine AlexDaniel: well, yes :) 09:18
Though I have to admit, that the output above is at least compact enough to skip it easily. More so than many lines of someone trying something on camelia and taking 10 iterations to get it right 09:19
AlexDaniel generally the answer in whateverable has always been “just gist it!” but this time I'm not sure because it gets back with useful info earlier
09:34 Prince213 joined, Prince213 left
Geth rakudo: c8570e87ee | (Elizabeth Mattijsen)++ | src/core.c/Any.pm6
Make dd handle named parameters by themselves

Nudged by Coke++. I had been living under the misapprehension that a `|c` in the signature would prevent nqp::p6argvmarray from working. It doesn't, so there is no reason to not catch the named parameters.
09:58
AlexDaniel anyway, jnthn++ is right that only the most recent change should be reported, and everything else can be gisted
lizmat [Coke] ^^
AlexDaniel I'll do it later, I guess, but the spammy version will be live first :) 09:59
10:06 squashable6 left 10:08 squashable6 joined 10:11 sena_kun joined 10:12 Altai-man_ left 10:48 lichtkind joined 10:52 MasterDuke left
tbrowder hi, folks, thoughts, please: what about adding a another rakudo option for debugging? 10:52
sena_kun tbrowder, can you elaborate? 10:55
tbrowder i would like to be able to run with and with and without $*debug turned while investigating corner cases in pod decl blocks without having to set and unset env vars
sena_kun tbrowder, how does it differ from envs if the difference is only in rakudo invocation? I mean, `DEBUG=1 raku foo.p6` or `raku --debug=1 foo.p6`? Or I did not understand what do you want, did I? 10:57
Also, we already have --debug-suspect and --debug-port in rakudo options. 10:58
Which work with different thing, though.
Geth rakudo/rakuast: 8bd0f31585 | (Jonathan Worthington)++ | 2 files
Add RakuAST compilation for flattening args
10:59
tbrowder is DEBUG already recognized in rakudo?
jnthn tbrowder: Not exactly that, but there are various environment variables for debugging already
RAKUDO_SCHEDULER_DEBUG, RAKUDO_MODULE_DEBUG, etc.
tbrowder yes but don't they result in lots of output? 11:00
jnthn Not by my standards, but then I'm used to dealing with spesh bugs where I might have hundreds of thousands of lines spesh log :) 11:01
Volume isn't a problem if it's searchable etc. 11:02
But if I understand, you want to turn it on/off during runtime?
I don't think there's anything for that yet.
tbrowder i use a lot of note statements that i would like to turn on and off easily and using env vars seems like too much work for one or two print statements
timotimo "debug-suspect", i kind of like it 11:03
tbrowder:if you use "note", it'll land in stderr, which you can "just" redirect
tbrowder yeah, for runtime, and i know how to add the option now
11:04 cognominal left 11:06 cognominal joined
tbrowder thats an idea for the redirect. still a bit of a pain but i'll try it 11:06
what does debug-suspect do? 11:07
timotimo it's a typo of debug-suspend 11:10
11:10 cognominal left
sena_kun Ugh, sorry for the confusion. :S 11:11
tbrowder here's my use case: trying to track down the exact handling of each line from WHY on decl blocks. add note statements for each decl line in Pod.pm6.
raku --doc --doc-format=preserve some-prog 11:12
rerun with notes on .... 11:13
rerun with notes off...
sena_kun This sounds very specific and developer-purpose to add a new option for all rakudo users. 11:14
tbrowder investigating diff between stdout and stderr...
keep it secret! 11:15
but good idea for using stderr. that should work for now, thnx 11:16
Geth rakudo: e9f803572d | (Elizabeth Mattijsen)++ | src/core.c/Backtrace.pm6
Give Backtrace candidates for HLL Exception

Preventing a .^name lookup for each backtrace creation from an Exception.
tbrowder timitimo: good idea, thnx 11:17
11:23 cognominal joined 11:43 MasterDuke joined
lizmat so, I'm looking at Exception and Failure, and realize both of them have an exception and a backtrace attribute 11:50
so why isn't Failure just a subclass of Exception ? 11:51
sena_kun lizmat, don't they serve different purposes/have different meaning? Not like I can explain it very nicely, but that's the impression I have. Other than that suddenly making Failure ~~ Exception true calls for fallout and different subtle issues. 11:55
lizmat sena_kun: that's a good point
although any tests on Failure would not be affected, and that would be most, if not all 11:56
sena_kun From what I saw, error handling is where people tend to create delicate code pieces with all the complexity some very specific error handling can demand. I also have not as much Raku experience as you, though. :) 11:57
Geth rakudo: a431968e6b | (Elizabeth Mattijsen)++ | src/core.c/Exception.pm6
Make some Exception internals more readable

  - also return Nil to indicate absence of a value
   pretty sure this code predated the concept of Nil
  - use ternary for better readability
11:58
12:10 Altai-man_ joined
Geth rakudo: 519a5726b5 | (Elizabeth Mattijsen)++ | src/core.c/Failure.pm6
Save 2 Scalar allocation for each Failure

By binding the attributes rather than assigning to them.
12:10
12:12 sena_kun left 12:15 cognominal left 12:16 cognominal joined
jnthn lizmat: it's Failure has-a exception, because there are hundreds of types of exception 12:23
12:23 cognominal left
jnthn e.g. they're often filled with a typed exception 12:23
tbrowder debug advice again please: what dyn var can i test to indicate when in or out of optimizer pass?
lizmat jnthn: ah, good point
jnthn Well, they always are, it's just that sometimes the type is X::AdHoc 12:24
12:24 cognominal joined
jnthn As I remember it, we've always promoted it beyond the string before it ends up in Failure 12:24
lizmat but why are there 2 backtrace attributes, one in Exception and on Failure ?
jnthn They map to the two locations that are reported
Where it was thrown, and where the failiure exploded
lizmat ah... ok 12:25
I think we could use some better attribute naming :-)
[Coke] m: dd :hi
camelia :hi
lizmat and method naming
e.g.: Exception.reset-backtrace resets its $!ex attribute :-) 12:26
brb&
[Coke] lizmat++
jnthn OK, an afternoon of RakuAST... :) 12:31
moritz \o/ 12:34
moritz spends an afternoon debugging instabilities in a distributed micoservice arch. No fun :/ 12:35
jnthn
.oO( Monoliths never felt so good! )
moritz it doesn't help that the whole world and their tooling has adopted http(s), and we're using rabbitmq (which by itself is pretty cool) 12:57
12:58 squashable6 left 13:01 squashable6 joined
[Coke] moritz++ # hard work 13:12
we are doing microservice stuff at $dayjob, and it can definitely add some complexity. 13:15
Geth nqp-configure: d634fb18a3 | sumanstats++ | 4 files
Perl6 to Raku

  + fix link of nqp in github
  + Perl means Perl 5, no ambiguity now, so change perl5 to perl only
13:21
nqp-configure: 277151c0df | (Vadim Belman)++ (committed using GitHub Web editor) | 4 files
Merge pull request #22 from sumanstats/master

Perl6 to Raku
rakudo/rakuast: 836e84d572 | (Jonathan Worthington)++ | 3 files
Add RakuAST::FatArrow for `foo => 'bar'`
13:23
rakudo/rakuast: 70728d719e | (Jonathan Worthington)++ | src/Perl6/ast/literals.rakumod
Toss QAST methods leftover from early experiments
rakudo/rakuast: 9a992a04ad | (Jonathan Worthington)++ | 3 files
RakuAST handling of named arguments
rakudo/rakuast: a0e51aca1c | (Jonathan Worthington)++ | src/Perl6/ast/signature.rakumod
Fix regressed parameter test

Was broken during changes to make declarations responsible for how their lookup code is generated.
13:30
lizmat sourceable6: 1/0 13:31
sourceable6 lizmat, No idea, boss. Can you give me a Code object?
lizmat sourceable6 infix:</>(1,0) 13:32
sourceable6: infix:</>(1,0)
sourceable6 lizmat, github.com/rakudo/rakudo/blob/519a...t.pm6#L228
lizmat sourceable6: infix:</>(1e0,0)
sourceable6 lizmat, github.com/rakudo/rakudo/blob/519a...l.pm6#L143
lizmat sourceable6: infix:<<>>>(1/0,10) 13:36
sourceable6 lizmat, No idea, boss. Can you give me a Code object? Output: 04===SORRY!04=== Error while compiling /tmp/0HTI2gLV3i␤Undeclared routine:␤ infix:<> used at line 1. Did you mean 'infix:<⊍>', 'infix:<⊎>', 'infix:<X>', 'infix:<≥>', 'infix:<+>'?␤␤
lizmat sourceable6: infix:<<≥>>(1/0,10) 13:37
sourceable6 lizmat, github.com/rakudo/rakudo/blob/519a...t.pm6#L465
Geth rakudo/rakuast: 9a168afa86 | (Jonathan Worthington)++ | 2 files
Lookup code-related meta-objects directly

We are already stubbing them in the bootstrap, which is where RakuAST lives too. So just refer to them directly, rather than making them go through the whole lookup process. (While in principle one could define an alternate setting that defines all of these differently, in reality the compiler couples very tightly to them at all levels, so there's no point accounting for an impractical possibility.)
14:03
rakudo/rakuast: 6c00ca9445 | (Jonathan Worthington)++ | 7 files
Make RakuAST::Type::Simple use RakuAST::Name

So it will be able to scale to multi-prat name lookups.
[Coke] You're a multi-prat. 14:05
(as a non British person, I hope that was merely silly and not rude)
lizmat sourceable6: infix:<==>(42,1/0) 14:08
sourceable6 lizmat, github.com/rakudo/rakudo/blob/519a...t.pm6#L292
jnthn oops :) 14:10
I didn't mean to describe the current UK government... :P
14:11 sena_kun joined
[Coke] :) 14:11
dogbert17 releasable: next
releasable6 dogbert17, Next release in ≈17 days and ≈4 hours. There are no known blockers. Changelog for this release was not started yet
dogbert17, Details: gist.github.com/ee828babd19665c486...97020c0426
dogbert17 contemplates upgrading libuv
MasterDuke didn't sena_kun do a Blin run recently? nothing new came out of it?
14:12 Altai-man_ left
sena_kun MasterDuke, I did, in fact twice, gist.github.com/Altai-man/d4f15b37...056fe03d94 14:12
Could not obtain blocking, exclusive lock: Failed to lock filehandle: 35 are very common for some reason, which makes me wonder what even can be wrong.
jnthn I've been thinking a bit about how to evolve grammar/actions to go along with producing RakuAST. I suspect I'm going to end up with a huge tangle of conditional code if I try and keep it as one file.
sena_kun I saw similar results with 24 threads and 8 threads. 14:13
jnthn My current idea is to grow them "from scratch" (of course liberally stealing stuff, as I am into the RakuAST nodes anyway) under src/Raku/
MasterDuke sena_kun: btw, have you done any dev on Blin? it would be nice if the hashes it mentions were links 14:15
sena_kun MasterDuke, not really. They would be links if posted in rakudo issue. But to do this one needs to investigate the locking issue, which I have no idea where to start and also a bit short on time. 14:16
MasterDuke i believe that message is coming from here github.com/rakudo/rakudo/blame/519...e.pm6#L656 but that code hasn't been touched in 3 years 14:22
jnthn Precomp uses file locking, so that may be a place to look
MasterDuke and the moarvm exception is thrown here github.com/MoarVM/MoarVM/blame/mas...ile.c#L320 but that also hasn't been touched in the same amount of time 14:24
ah. didn't nine have a recent change about file locking and precomp?
Geth rakudo/rakuast: 5965ac15e5 | (Jonathan Worthington)++ | 37 files
Move src/Perl6/ast -> src/Raku/ast
14:26
jnthn stares at all the macros in the build system with curious names 14:54
Is @bsm something naughty? :)
That said, it's sufficiently cargo-cultable that I think it's built what I wanted 14:57
MasterDuke is github.com/rakudo/rakudo/blob/mast...e.pm6#L176 safe? should it be an atomicint? 15:05
15:06 lucasb joined
vrurg jnthn: bsm stands for 'backend-suffixed macro' 15:06
jnthn: bpm – 'backend-prefixed macro' 15:07
jnthn aha :)
ShimmerFairy One easy, top-level split for the src/Perl6/ grammar & actions would be to split them up based on items in the language braid. e.g. src/Raku/MAIN/Grammar.nqp, src/Raku/Q/Actions.nqp, etc. 15:08
vrurg jnthn: bpv/bsv are for variables, i.e. for lhs in assignments. 15:09
jnthn ShimmerFairy: We could do that also, though Raku::Actions probably comes out a lot shorter than Perl6::Actions ('cus the AST it is constructing is higher level) 15:10
ShimmerFairy: And having them spread out over mutliple files is quite inconvenient (at least, for me) 15:11
ShimmerFairy yeah, I totally see Grammar being more of a possible tangle. 15:13
It's funny though, I happen to prefer many small files over big huge ones :P (I still kinda wish you could split a module over multiple files if you wanted to.) 15:16
MasterDuke nine: github.com/rakudo/rakudo/commit/ac...887f7496ed removes the protect in CompUnit::PrecompilationStore::File.lock. but should $!lock-count be an atomicint then? 15:18
jnthn I guess it comes down to...well, maybe personal preference, but maybe also what one's environment makes ergonomic
ShimmerFairy Of course. I use emacs (which makes looking at multiple files at once trivial), and also I do a fair bit of C++ where everything is (traditionally) across 2 files already. 15:20
timotimo i mean there shouldn't be a significant problem making a CompUnitRepo or whatever that reads multiple files into a single compilation unit 15:47
that'd be a pretty interesting thing to try 15:48
it'd probably have to be declared in the meta json file with all the files, and i guess the rest of tooling would get a little confused
AlexDaniel sourceable6: 1/0 ≥ 10 15:56
sourceable6 AlexDaniel, github.com/rakudo/rakudo/blob/519a...t.pm6#L465
AlexDaniel lizmat: ↑ this also works :)
sourceable6: 1/0 > 10
sourceable6 AlexDaniel, github.com/rakudo/rakudo/blob/519a...t.pm6#L421
AlexDaniel sourceable6: 1 / 0 15:57
sourceable6 AlexDaniel, github.com/rakudo/rakudo/blob/519a...t.pm6#L228
AlexDaniel it likes spaces around ops :)
sena_kun AlexDaniel, o/ In case you did not backlog, have you even seen "Failed to lock filehandle: 35" on Blin? 16:03
AlexDaniel sena_kun: sounds like a bug in rakudo
something is not closing files when it should
or… something else? 16:04
similar bug: github.com/rakudo/rakudo/issues/1373
sena_kun AlexDaniel, interesting... Any idea is that can be host rakudo which runs blin itself or some particular revision? Also, host rakudo is not blead, right?
AlexDaniel sena_kun: I don't know? Depends on the setup 16:05
sena_kun Indeed.
Will try to play with it some time, I guess, thanks for some insight.
AlexDaniel sena_kun: but it does use the latest version of zef, I think
so if zef introduces an issue then it can break blin itself 16:06
sena_kun Latest commit to zef was in April.
AlexDaniel sena_kun: well, something is definitely broken somewhere 16:07
sena_kun: oh, hey, can you upload the svg file with the dependency graph? 16:08
I'm wondering if these modules are in any way related 16:09
53 failed modules vs 1058 OK, the situation is actually not as bad
16:10 Altai-man_ joined
AlexDaniel Altai-man_: ↑ 16:10
Geth: ver github.com/rakudo/rakudo/commit/c6...24b7eaba1c
Geth AlexDaniel, version bump brought in these changes: github.com/perl6/nqp/compare/2020....0-g5d46adf
16:12 sena_kun left
Altai-man_ AlexDaniel, no svg, but modules are not related. 16:14
AlexDaniel a ok
Altai-man_ I'll try to reproduce it with lower number of modules and then bisect between different endpoints, I guess. 16:15
AlexDaniel Altai-man_: wait but, it all bisects to the same commit? 16:16
62adc88c69ab2532db11c573b3ccb0452811a14c
linkable6 (2020-05-31) github.com/rakudo/rakudo/commit/62adc88c69 Merge branch 'coke-master'
AlexDaniel ah.
Altai-man_ That's because it's endpoint.
AlexDaniel right, that was HEAD…
Altai-man_ And not all of them. 16:17
E.g. App::Football – Fail, Bisected: 1c94538e61ea59d64b9f4f269272a2ac1f6ebb9b
So :S
AlexDaniel buuut that means it was good on every other commit, right?
Altai-man_ Yeah.
AlexDaniel soooo that means it happens when too many modules are using the same rakudo version? 16:18
I mean, too many instances of the same rakudo binary running and trying to install modules
Altai-man_ Isn't it locked?
Or, ahem 16:19
AlexDaniel not for the endpoint!
otherwise we would have to use only one core
Altai-man_ I assume that only a single instance of rakudo (for a commit) can run a module a time.
AlexDaniel when bisecting, yes
Altai-man_: see this: github.com/Raku/Blin/blob/7d81839a...#L180-L182 16:20
it leaves both starting points unpacked so that it can use them concurrently without locking
this was my workaround for non-relocatable rakudo 16:21
so that we can saturate the CPU
Altai-man_: you can run blin with --nproc= something lower than the default
and it's possible that it will eliminate these results that you're seeing 16:22
Altai-man_ AlexDaniel, I did two runs, first with 24 and second with 8 nproc and still the same.
AlexDaniel but it still means that there's a bug in rakudo
oh.
I don't know how to debug this then :(
Altai-man_ Sorry, it was actually nproc 10 for the second time, but not really so.
AlexDaniel, no problem, I'll look at it later again. Thanks for your time spent on this. :) 16:23
AlexDaniel you're welcome!
Altai-man_ Just was wondering if it can be something which occurred before.
AlexDaniel Altai-man_: we used to have some issues with running out of filehandles, but this looks different 16:25
can we have a backtrace of that somehow? 16:26
timotimo: ?
timotimo mhh?
AlexDaniel timotimo: see gist.github.com/Altai-man/d4f15b37...056fe03d94 the error is Could not obtain blocking, exclusive lock: Failed to lock filehandle: 35
MasterDuke did you guys see my comments above? though maybe i'm barking up the wrong tree... 16:27
timotimo you need that to give a backtrace? 16:28
AlexDaniel that would help?
MasterDuke particularly the one addressed to nine
AlexDaniel MasterDuke: I'm very sorry, I did not backlog
MasterDuke colabti.org/irclogger/irclogger_lo...06-03#l240 16:29
AlexDaniel Feb 10, 2018 ? 16:30
Altai-man_ MasterDuke, this commit is from 2018.
MasterDuke yeah, but some other commit may have just triggered an underlying problem
or change in environment 16:31
but afk for a bit
timotimo sorry, dunno how this problem is occuring exactly
the machine my irc client runs on will be rebooting a few times today, so i won't be on irc too much 16:46
16:53 timotimo left
Geth rakudo/rakuast: 360db692e7 | (Jonathan Worthington)++ | 6 files
Start to stub in a RakuAST-based grammar/actions

These are enabled by an environment variable. Currently, doesn't do enough in order to actually compile/run anything, but stubs in various of the pieces needed.
17:21
nine MasterDuke: yes, looks like we want atomic decrement there 17:33
Geth rakudo: MasterDuke17++ created pull request #3741:
Fix possible race in multi-threaded precompilation
17:55
MasterDuke Altai-man_: can you test Blin with ^^^? 17:56
Altai-man_ MasterDuke, sure, will start a run a bit later tonight. This server also hosts RakuDist, so don't want to press it too much. 17:57
18:10 sena_kun joined 18:12 Altai-man_ left 18:33 mst joined
sena_kun MasterDuke, around? 18:40
.tell MasterDuke sorry to mislead earlier, have not checked the PR carefully enough. AFAIK, Blin can work only with rakudo branches, so a fork won't do. Can you re-submit it as a rakudo branch? 18:42
tellable6 sena_kun, I'll pass your message to MasterDuke
sena_kun PR itself is not mandatory, just a branch will do to see if the issue with locks becomes better or not.
[Coke] the only issue with that is you need a CLA to make a rakudo branch; do we want to support Blin testing on non-core committer code? 18:47
Geth rakudo/fix_possible_race_in_multi_threaded_precompilation: ed3be77af6 | (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.
[Coke] (Just asking in general, I realize there'd likely need to be code changes to support)
AlexDaniel [Coke]: you need to ask it explicitly to use that branch, so that's ok
for blin that is
MasterDuke sena_kun: done, pushed to rakudo/fix_possible_race_in_multi_threaded_precompilation 18:48
AlexDaniel it will need a few minutes to produce a build :) 18:49
although yeah, whateverable will happily run any code you push to a branch in order to build rakudo, so that's potentially scary :) 18:51
.oO( my server, my lack of rules! )
c: fix_possible_race_in_multi_threaded_precompilation say 42 18:54
committable6 AlexDaniel, ¦fix_possible_race_in_multi_threaded_precompilation: «42␤»
AlexDaniel sena_kun: ↑ it should work
sena_kun already ran it
aaand it works
AlexDaniel c: rakuast say 42
committable6 AlexDaniel, ¦rakuast: «Cannot test this commit (Commit exists, but an executable could not be built for it)»
sena_kun ===> Updated cpan mirror: raw.githubusercontent.com/ugexe/Pe...cpan1.json takes some really long time for some reason, which is good for race things like this one, but hmm. 18:55
anyway, blin is preparing, now dinner. o7
19:37 timo joined 19:38 timo is now known as Guest50966 19:39 Guest50966 is now known as timotimo 19:51 squashable6 left 19:53 squashable6 joined 20:10 Altai-man_ joined 20:12 sena_kun left 20:27 lichtkind left 20:32 MasterDuke left 20:57 Kaiepi left 21:00 Kaiepi joined 21:19 MasterDuke joined
Geth ¦ rakudo: lizmat self-assigned New IO::Handle auto-closing logic is broken github.com/rakudo/rakudo/issues/3742 21:51
lizmat bisectable6: my $c; for 1..2000 { my $p = "/tmp/foo.txt{$c++}".IO.open(:w); $p.lock; $p.unlock; $p.close; }; say "DONE" 22:10
bisectable6 lizmat, Bisecting by exit code (old=2015.12 new=519a572). Old exit code: 1
22:11 sena_kun joined
bisectable6 lizmat, bisect log: gist.github.com/650fec73057f4f0e6e...6bc99f91bd 22:11
lizmat, (2017-04-16) github.com/rakudo/rakudo/commit/21...6b963da79d
22:12 Altai-man_ left
Geth problem-solving: 7fbe6dcb1f | (Patrick Böker)++ | solutions/language/Windows-process-argument-quoting.md
Solution for #20: Windows process argument quoting
23:07
problem-solving: cc185d8187 | (Patrick Böker)++ | solutions/language/Windows-process-argument-quoting.md
Correct a typo
problem-solving: dd5529c625 | (Jonathan Worthington)++ (committed using GitHub Web editor) | solutions/language/Windows-process-argument-quoting.md
Merge pull request #178 from patrickbkr/problem-solving20

Solution for #20: Windows process argument quoting
23:42 sena_kun left 23:58 leont left