ShimmerFairy Here's a neat trick I discovered: when writing a grammar C<rule> (or other sigspace'd regex), use :!s:s to turn off sigspace until the next construct that usually generates sigspace :) 04:28
(useful if you need/want to make whitespace insignificant after particular constructs)
DrForr curls into a ball at the mention of whitespace in grammars. 07:49
(having spent 2 weeks on-and-off trying to figure out a consistent strategy and giving up. 07:59
nine is sad to hear that 08:07
DrForr Well, I can handle it in my own stuff, but I'm referring to the inconsistencies in the official P6 grammar, and it's made worse because it's not actually at the Perl 6 level. 08:09
ShimmerFairy DrForr: are you talking about 'rule' stuff, or regex formatting? 08:14
DrForr NQP, so I'm actually going the lower-level NQPMatch object, not any Perl 6 objects. 08:15
arnsholt What kind of inconsistencies? 08:44
DrForr Sigh. package_declarator has whitespace between deflongname and package_def, routine_declarator has the whitespace at the beginning of routine_def, method_declarator has whitespace at the end of the term. 08:47
I understand enough of the engine to know why that is, but it's still annoying.
Zoffix Hm. Getting "MoarVM op 'decoderconfigure' is unknown as a core or extension op" when trying to build nqp
Oh wait... it's a fallout from my messing up the MoarVM tag in my build. Nevermind :} 08:50
jnthn heh :)
Was gonna say, need moar updates :)
masak there's a fallout from the messing up of the tag? interesting... :/ 09:44
Zoffix Yes! YES! It's aaaaliiiiivveee... My robot just successfully made an NQP release (in a fork) entirely on its own. 09:45
Which means all the hurdles in making it release rakudo got resolved as well :D
masak, I had my robot change the MoarVM tag to simulate the release, but it was using 2016.08, which didn't have the latest goods. 09:46
jnthn Zoffix++ 09:48
nine Zoffix: epic victory :) 09:50
stmuk hacks up some curli code which will make nine's eyes bleed :> 11:55
MasterDuke i've been looking at RT #118223 12:08
synopsebot6 Link:
MasterDuke m: my %l = foo => 1, bar => 2; my %r = bar => 3, baz => 4; say %l >>+<< %r
camelia rakudo-moar d2b115: OUTPUT«Use of uninitialized value of type Any in numeric context␤ in block <unit> at <tmp> line 1␤Use of uninitialized value of type Any in numeric context␤ in block <unit> at <tmp> line 1␤{bar => 5, baz => 4, foo => 1}␤»
MasterDuke m: my %l = foo => 1, bar => 2; my %r = bar => 3, baz => 4; quietly say %l >>+<< %r
camelia rakudo-moar d2b115: OUTPUT«{bar => 5, baz => 4, foo => 1}␤»
MasterDuke so there is a built in way to surpress those warnings 12:09
is this a bug? 12:10
jnthn m: my %l = foo => 1, bar => 2; my %r = bar => 3, baz => 4; say %l <<+>> %r 12:11
camelia rakudo-moar d2b115: OUTPUT«{bar => 5}␤»
MasterDuke it looks like quietly was implemented two years after the RT
jnthn ah :)
lizmat waves from the APW looking at 5 people trying to make a Perl 6 module :-) 12:26
jnthn The same one, or different ones? :D 12:28
masak .oO( you can't step into the same module twice )
DrForr But what if you cross the bitstreams? 12:30
MasterDuke masak: ^^^ from 20 min ago and i just commented on your RT #118223
synopsebot6 Link:
masak MasterDuke: yes, still a bug. 12:32
MasterDuke: "you can turn off the warnings" is at most a fine workaround.
but the spec is clear that there shouldn't be any warnings in the first place.
quoting myself from that ticket: ">>+<< takes the union of the keys; <<+>> takes the intersection. I *know* some keys/values are missing. that's why I did >>+<<" (union) 12:34
warnings should give new information, not bug me about things I knew when I wrote the code.
masak adds this to the ticket
MasterDuke cool, i'll keep playing around with it 12:35
masak this is the "DANGER DANGER WILL ROBINSON" of warnings ;) 12:36
TheLemonMan ehh, I'm trying to printf-debug some code in Actions.nqp and am greeted with 'Cannot find method 'Str' on object of type Mu' ... but Mu does have a Str method! 12:52
masak probably a foreign object of some sort 12:56
jnthn Are you greeted with it when compiling CORE.setting? :) 12:59
[Coke] .messages 13:04
yoleaux2 1 Sep 2016 22:18Z <Zoffix> [Coke]: would it be possible to give TheLemonMan RT access so they could modify status of tickets they reviewed?
[Coke] yup, still waiting on an account/email 13:05
TheLemonMan jnthn, yep, am I missing something ? :D 13:56
[Coke], do you just need my mail ? 13:57
jnthn TheLemonMan: Well, it could be that you try it before Mu.Str has been defined 13:58
(It's defined inside of CORE.setting)
[Coke] or your RT id. 13:59
(at the top, where it says, "Logged in as <...>") 14:00
TheLemonMan jnthn, ahh, so it's a chicken and egg problem, I hope there's something at the nqp level I can do to print out those objects 14:01
[Coke], don't have a RT account yet (is that the same as a Bitcard one ?) 14:02
[Coke] No, they're not the same, but you can use one to login to the other 14:07
dalek kudo/nom: 5bef4e4 | LemonBoy++ | src/core/
Minor changes to 'assuming'.

  * Include the definedness checks.
  * Include the return type.
  * Don't emit anonymous raw parameters as '\'.
kudo/nom: 6dab6b8 | lizmat++ | src/core/
Merge pull request #857 from LemonBoy/workzeug

Minor changes to 'assuming'.
TheLemonMan skids, mind giving ^ a look ? :) 14:26
skids in a bit. busy.
TheLemonMan yeah, take your time
MetaZoffix Great error I got: "===SORRY!=== Must specify a Promise or Channel to await on (got a Promise)" :) 14:40
Not only that, but there's no file or line number, so I don't even know what that's about 14:41
TheLemonMan compile time error, --ll-exception should guide you to the source
jnthn Well, if you've got an over-shared variable, then it could not contain a Promise, then have one assigned to it before the error can be displayed :) 14:42
MetaZoffix Nope, nothing extra with --ll-exception
timotimo will the CTW point out oversharing in general? like this case?
MetaZoffix Ah, ok, figured it out 14:43
m: my Promise $foo; await $foo
camelia rakudo-moar 6dab6b: OUTPUT«Must specify a Promise or Channel to await on (got a Promise)␤ in block <unit> at <tmp> line 1␤␤»
timotimo oooooh
that can do it
MetaZoffix m: my Promise $foo; END { await $foo } 14:44
camelia rakudo-moar 6dab6b: OUTPUT«===SORRY!===␤Must specify a Promise or Channel to await on (got a Promise)␤»
MetaZoffix and that's how the line number dissapears
timotimo i can fix the first issue 14:45
MetaZoffix OK :) Then I won't bother. 14:46
timotimo the second one ... not so sure
.oO(empty Promises)
timotimo oh, segfault
MetaZoffix skids++
nine Do we have a high resolution rakudo logo somewhere? Or at least a higher resolution than on 14:48
timotimo (segfault was likely due to a not-fixed compiled moar) 14:49
~/p/rakudo ❯❯❯ perl6 -e 'my Promise $foo; await $foo'
Must specify a defined Promise or Channel to await on (got an undefined Promise)
~/p/rakudo ❯❯❯ perl6 -e 'my IntStr $foo = <1342>; await $foo' 14:50
Must specify a Promise or Channel to await on (got a IntStr)
MetaZoffix m: my Channel $foo; await $foo
camelia rakudo-moar 6dab6b: OUTPUT«Must specify a Promise or Channel to await on (got a Channel)␤ in block <unit> at <tmp> line 1␤␤»
dalek kudo/nom: b48c62f | timotimo++ | src/core/
prevent misleading "must specify Promise, got Promise"

by adding defined/undefined when the thing passed is a type object.
timotimo this actually wants to become a typed exception, too
but getting the wording better is already a good step
timotimo AFK
MetaZoffix m: my Channel $foo; my Promise $bar; await $foo, $bar 14:53
camelia rakudo-moar 6dab6b: OUTPUT«Must specify a Promise or Channel to await on (got a Channel)␤ in block <unit> at <tmp> line 1␤␤»
MetaZoffix Seems Supply can also be awaited on 14:54
timotimo i think supply gets .Promise'd when await is called on it?
MetaZoffix m: sayt await(supply { emit 1; emit 2; sleep 2; emit 3; done }); say now - INIT now;
camelia rakudo-moar 6dab6b: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Undeclared routine:␤ sayt used at line 1. Did you mean 'say'?␤␤»
MetaZoffix m: say await(supply { emit 1; emit 2; sleep 2; emit 3; done }); say now - INIT now; 14:55
camelia rakudo-moar 6dab6b: OUTPUT«3␤2.0097457␤»
timotimo ah, it actually has a case for that
MetaZoffix multi sub await(Supply:D $s) { $s.wait }
timotimo i'll put it into the message as well
MetaZoffix Yeah
dalek kudo/nom: e8d0d04 | timotimo++ | src/core/
Zoffix++ for spotting Supply wants in on the message, too.
TimToady is there a magical incantation to get a backtrace on a signal? using signal() processes the signal on the wrong thread, from a backtrace point of view... 15:00
jnthn What would the right thread be?
TimToady the currently infilooping one... 15:01
jnthn hehe :P
I guess what we'd really like is a way to dump the backtrace of all running threads
You can in a pinch do it by attaching gdb to the process
And running MVM_dump_backtrace(tc); 15:02
TimToady so...obvious... :)
lizmat - die "Must specify a Promise or Channel to await on (got a $x.^name())";
+ die "Must specify a Promise or Channel to await on (got a $x.^name(){' type-object' unless $x.defined})";
timotimo: ^^ proposed change to await(Any) 15:03
jnthn It took me rather long to realize that :P
TimToady maybe we should dedicate one of the common signals like SIGABRT to doing that automagically 15:04
TheLemonMan is still stuck trying to print out those damn objects
there's SIGUSR{1,2} you could abuse for that
TimToady would rather leave those, for, er, users 15:05
MetaZoffix lizmat: +1 It would maintain consistency with our other messages that call them type objects instead of undefined
m: sub (Int:D $x) {}(Int)
camelia rakudo-moar 6dab6b: OUTPUT«Parameter '$x' requires an instance of type Int, but a type object was passed. Did you forget a .new?␤ in sub at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
jnthn TheLemonMan: Do you actually need to dump them out while compiing CORE.setting? 15:06
Or just in some simpler test program?
TheLemonMan jnthn, the latter
jnthn TheLemonMan: Then there's a dynvar that tells you if you're in the core setting, so don't dump then :)
unless $*COMPILING_CORE_SETTING { ...dump... } 15:07
Shoulda thought to mention that earlier, but a mix of tired and distracted with $otherjob :)
TheLemonMan jnthn++ that's a lifesaver! 15:08
skids TheLemonMan: my only concerns would be 1) I'm a bit fuzzy on why I felt it was important to do so much wrangling around the \ pseudo-sigil and 2) any strange "Any/Mu" etc. issues that might be lurking around to crop up when --> is added where it wasn't before. 15:17
TimToady but the gdb approach doesn't work unless I recompile with debugging, grr 15:18
skids TheLemonMan: tests for 2) would probably be sufficient precautions. I assume for 1) we have a better idea that an anon "is raw" and "$ is raw" are equivalent these days?
TimToady contemplates shaving a sigabrt yak
TheLemonMan skids, a bare \ is interpreted as an unescape sequence, PR#798 shows this behaviour 15:19
skids Right, I understand that's a problem. 15:20
TheLemonMan skids, I followed as closely as possible what's done by the Parameter's gist method
[Coke] has an archive directory. should we do the same for nqp/rakudo ?
TheLemonMan so that an anonymous capture is transformed as '$ is raw' to make the parser happy
skids OK, maybe I was keying off old behavior. 15:21
TheLemonMan we still don't do a 1:1 transcription of the slurpy behaviour though :\
timotimo lizmat: that's a good change, too 15:22
damn it! i was just thinking (in the shower) about giving moar a "diagnosis" function that you can call from code or by sending a specific unix signal
and you were also discussing it on channel at the same time >:( 15:23
so much for my revolutionary idea
tailgate How does one uninstall panda modules? I don't see a verb in the manual
timotimo that's right. panda doesn't have an uninstall functionality 15:24
zef does, as far as i remember
tailgate hmm. Is there a way then to tell what file use is looking up when I "use lib::foo;"? 15:25
timotimo there's RAKUDO_MODULE_DEBUG, an env var you can set 15:26
tailgate oh, oops, this is the dev channel. Thanks
TimToady jnthn: is there any convenient way of finding the currently executing tc from within signal_cb? 15:27
timotimo are you sure you can get at that at all? 15:28
we don't have any globals whatsoever
jnthn TimToady: Signals are alwasy received/processed on the event loop thread
TimToady: So the tc on that thread would be that of the event loop thread rather than any of the "normal" threads
timotimo oh, signal_cb isn't the low-level thing that immediately fires when the signal arrives 15:29
jnthn TimToady: If you're in gdb, though, you can "thread 1" or so
To jump to the thread of interest
Then where
TimToady wants a way to trigger a backtrace without gdb...
jnthn Oh...
TimToady more specifically, without having to recompile the whole thing with debugging 15:30
jnthn Thing is, in general there can be many executing threads
You can get hold of the tcs of all running threads
lizmat isn't this related to being able to cause an Exception in a thread from another thread ? 15:31
timotimo i think this is going to need a way to cause all threads to wait, but not necessarily do a full GC run
jnthn If it's the main thread that's available off tc->instance->main_thred
skids TheLemonMan: Yeah I don't know how far meta-building of signatures is over the horizon, so I'm not sure how deep in the weeds to get with that current code. 15:32
jnthn So you could in theory MVM_dump_backtrace(tc) *that*, with the icky caveat that the thread is running and its callstack therefore potentially changing underneath your dumping.
TimToady that might be better than a kick in the head, till we can backtrace all threds
jnthn lizmat: Yes, though "throw an exception" is even worse than "get a backtrace" :) 15:33
But yeah, what timotimo said is also true, you'd need to cause a safe point
To do this sfely
TheLemonMan skids, hmm, signature meta-building ? 15:34
timotimo a bug randomly came back to my head where we were running around in a loop allocating things (frames?) in the FSA and that code never reached a safe point 15:35
so we ended up eating infinitely much memory without doing much 15:36
did we ever figure that out?
i don't remember where it was. moarvm issue tracker? RT?
TimToady jnthn: I'm aborting the program, who cares about "safely"? 15:37
skids TheLemonMan: signatures are some dark VM-tied magic so dynamically constructing them rather than using EVAL is ...well last time I looked pretty intractable. 15:40
...because you have to establish call sites and such. 15:41
lizmat afk&
timotimo TimToady: would prefer a feature that doesn't rely on the user's intentions to kill the program with a fire 15:42
except maybe if we put in a full exit directly after outputting what the state was
TheLemonMan skids, oh, I see... I wonder if we could at least reduce the code-duplication by re-using the Parameter perl method 15:43
[Coke] jnthn: any major async/conc. stuff since 2016.08.1 ? 15:50
timotimo was the recent stability improvements already in 08.1? 15:51
TheLemonMan RT#114672 can be closed as [TESTNEEDED] since timotimo++ already commited a fix to moarvm 16:00
synopsebot6 Link:
[Coke] TheLemonMan: don't close testneeded tests - they stay open until the test is there. 16:06
it's already marked testneeded.
TheLemonMan duh, I missed that 16:07
[Coke] so if I create a supply with a 5 second interal, put a react/whenever on it, I can see it going off every X seconds. However, if I try to use this with Bailador, it then never goes into the baile() loop. 16:36
ah. I can start {} the react. whee. 16:38
timotimo of course 16:51
TimToady okay, this is bizarre: if I make 'unit' reuse its UNIT lexical scope, .precompile loops when trying to read lines back from the subprocess, on the line: my @result = $proc.out.lines.unique; 16:58
timotimo so the subprocess spits infinitely much data out? 17:01
TimToady doesn't seem to grow the memory enough for that 17:06
timotimo can you attach strace to it and see what comes out?
TimToady trying individual .get calls first 17:09
timotimo right
stmuk nine: is $curli.uninstall($dist) intended to delete precomp files as well or is that a further clean up step? 17:12
TimToady huh, first .get never returns, brk keeps getting bumped up till (I presume) GC is invoked, at which point there's a bunch of interrogations of /proc/self/stat, then it just brks some more 17:16
but no I/O
timotimo so it's just a really, really, really, really long line? 17:18
isn't it supposed to be binary that it returns anyway? the precomp, i mean?
TimToady actually, looks like the /proc/self/stat is from libuv
but surely it wouldn't buffer that large of a buffer that it couldn't chew through in a few seconds 17:19
but the only system calls are brk and whatever libuv is doing with /proc/sys/stat (just open, read, close every time) 17:21
I wonder if something's screwed up in the decoder for stdout, but why would an outer 'unit' trigger than (or my fix to it)? 17:23
timotimo perhaps there's a loop in the datastructure that we're trying to serialize? 17:26
TimToady waitasec, looks like maybe there's a an extra (NativeCall::Compiler::MSVC) tacked onto source name, or maybe path 17:30
yeah, something tells me --source-name should not be: perl#sources/2ACCA56EF5582D3ED623105F00BD76D7449263F7 (NativeCall::Compiler::MSVC) 17:31
or does --source-name strip that? 17:32
checking without my unit patch to see if that changes it 17:33
no, that form is perfectly normal 17:35
so back to maybe a decoder issue
jnthn [Coke]: Sorry, was, since then I've mostly worked on string decoding fixes towards async sockets, but that work's still in a branch. 17:37
TestNinja buggable: tags testneeded 18:16
buggable TestNinja, There are 40 tickets tagged with TESTNEEDED; See for details
TimToady timotimo: another data point, if I use, it never returns the 1st byte 18:21
dalek ast: 3fc7019 | (Zoffix Znet)++ | S04-statements/while.t:
while (0){} error message is useful

synopsebot6 Link:
TimToady in fact, it never successfully launches the child beyond S state with 0 runtime 18:43
dalek ast: 35fac4d | (Zoffix Znet)++ | integration/error-reporting.t:
runtime time errors do not contain ==SORRY==

RT #128803
synopsebot6 Link:
[Coke] note; the spec should probably not care so much about if an error is compile time or not. 18:51
rakudo has ratcheted the bar pretty high on "compile time if possible", but I think it's still "if possible" 18:52
dalek ast: 991398b | (Zoffix Znet)++ | S32-array/splice.t:
splice can extend an array

synopsebot6 Link:
TestNinja [Coke]: where should such tests go? 18:56
[Coke] TestNinja: don't have a good answer for you 18:57
just keep doing what you're doing for now.
it'll be more of a concern when we have something that isn't rakudo using roast again.
TestNinja nods
dalek ast: 15eced7 | (Zoffix Znet)++ | S32-list/classify.t:
classify works with Junctions

RT #127803
synopsebot6 Link:
dalek kudo/nom: 685cc5a | (Zoffix Znet)++ |
Explicitly exclude 5.10.0 from build deps

5.10.0 doesn't work anyway [^1] and seems to be a broken release [^2]
ast: 1fbede8 | (Zoffix Znet)++ | S09-multidim/decl.t:
shaped array declaration without numbers does not infini-loop

synopsebot6 Link:
TestNinja swish... swash... ninja-ed!
TheLemonMan Zoffix++ is roasting like a pro
dalek ast: 26def41 | (Zoffix Znet)++ | S32-list/roll.t:
roll on Range uses .succ

Part of RT#126664
synopsebot6 Link:
[Coke] aso, I am finding async + bailador very confusing. bailador post handler with a start block in it. looks like the start block will occasionally just hang until the next http request comes in (at which point I get a bunch of debug output from the last one). Can't get a backtrace of a broken promise (just the exception message). 19:52
dalek ast: 6cf1522 | (Zoffix Znet)++ | S32-list/roll.t:
.rand on Ranges is implemented

Part of RT#126664
synopsebot6 Link:
TestNinja Boom. Ninjaed 19:53
TestNinja & beer
[Coke] additionally, I have a 5 second supply that I'm using to peek in on the status of all the promises I've generated; it also just hangs until the next http request comes in.
TheLemonMan hmm, why are the compile-time exceptions trace-less ? 19:56
s/compile-time/==SORRY==/ 19:58
geekosaur what would they trace? 20:00
--ll-exception might get you something, but it'll all be compiler internals
TheLemonMan sometimes the trace goes down to the user input (this is related to RT#128461) 20:01
synopsebot6 Link:
geekosaur oh, not backtrace, line number reporting 20:04
different things (and different code paths involved) 20:05
timotimo TheLemonMan: i think that happens when we don't pass a $/ or CURSOR when we throw an exception? :\ 20:14
[Coke] (backtrace of broken promise)... because .Str and .gist are different. oi. 20:16
Zoffix m: my @res = rand x 10; say @res.Set.elems 21:17
camelia rakudo-moar 685cc5: OUTPUT«1␤»
Zoffix m: my @res = rand x 10; say @res.Set.keys.elems
camelia rakudo-moar 685cc5: OUTPUT«1␤»
Zoffix :/ 21:18
jnthn Did you mean xx
Zoffix Oh
m: my @res = rand xx 10; say @res.Set.keys.elems
camelia rakudo-moar 685cc5: OUTPUT«10␤»
jnthn Yes, you di. :)
Zoffix m: my @res = rand xx 10; say @res.Set.elems
camelia rakudo-moar 685cc5: OUTPUT«10␤»
jnthn *did
Zoffix jnthn++ thanks
dalek ast: d15c274 | (Zoffix Znet)++ | S32-list/roll.t:
Remove trailing whitespace
ast: b4d502a | (Zoffix Znet)++ | S32-list/roll.t:
Improve rand on Ranges test

  * Generate more elements
  * Test the elements vary
Zoffix buggable, tag testneeded
buggable Zoffix, There are 34 tickets tagged with TESTNEEDED; See for details
dalek ast: 3104462 | (Zoffix Znet)++ | S09-typed-arrays/arrays.t:
Remove trailing whitespace
ast: 87895fa | (Zoffix Znet)++ | S09-typed-arrays/arrays.t:
@a of Foo accepted by sub (Foo @a)

synopsebot6 Link:
dalek ast: 9fd0733 | (Zoffix Znet)++ | S04-exception-handlers/catch.t:
Remove trailing whitespace
ast: d5eda0d | (Zoffix Znet)++ | S04-statements/when.t:
`when` in a loop lives

Part of RT#120498
synopsebot6 Link:
dalek ast: 4ad2072 | (Zoffix Znet)++ | S04-exception-handlers/catch.t:
CATCH in a loop lives

Part of RT#120498
synopsebot6 Link:
dalek ast: efacaa5 | (Zoffix Znet)++ | S04-statements/when.t:
Add `# vim: ft=perl6` line like in other files
kudo/nom: 417d97d | LemonBoy++ | src/Perl6/Pod.nqp:
Don't coerce all the values to Str in Pod::Config.

Fixes RT#127085.
kudo/nom: fbeadbf | jnthn++ | src/Perl6/Pod.nqp:
Merge pull request #858 from LemonBoy/pod-coercion

Don't coerce all the values to Str in Pod::Config.
synopsebot6 Link:
ast: 6f059e8 | LemonBoy++ | S26-documentation/09-configuration.t:
Tests for RT#127085. (#150)

  `the pod parser returns "0" on negated config options`
synopsebot6 Link:
Zoffix S16-filehandles/dir.t (not currently used) seems to think Perl 6 would have had had a use FindBin 22:12
dalek ast: 1c1d01e | (Zoffix Znet)++ | S32-io/dir.t:
`dir | say` has useful error message

synopsebot6 Link:
jnthn Zoffix: Yeah, occasionally I run into such bitrotten tests too :) 22:14
Updated one a month or two back that had some interesting ideas :)
Zoffix buggable, tags testneeded 22:26
buggable Zoffix, There are 30 tickets tagged with TESTNEEDED; See for details
Zoffix 10 tickets closed. Good nuf
jnthn Zoffix++ \o/ 22:27
TimToady I actually got a probabalistic failure on bag.t, test 117 22:29
the one that reads: ok @a.grep(* eq 'a') + 2 < @a.grep(* eq 'b'), '.roll(100) (2)'; 22:30
jnthn What's the chance of that... :)
TimToady not sure, but the +2 helps 22:31
but I think you only have to flip about 15 of them to b that you'd think should be a 22:32
m: say .33 ** 15
camelia rakudo-moar fbeadb: OUTPUT«5.99389454988654e-08␤»
jnthn Go buy a lottery ticket? :) 22:33
TimToady was in europe at the time :(
jnthn I suspect we have them too
TimToady except I probably used up all my luck on that
jnthn Though I take zero interest in 'em, so I've no clue really :)
TimToady it's possible there's some other systematic failure in there that reduces the odds 22:34
jnthn Guess we could do a bunch of runs to see how often it fails
TimToady we should really do these things multiple times and see if they're converging
jnthn has spent a bunch of his Perl 6 time in the last weeks on things that fail 1 time in many... 22:35
TimToady and if so, whether they're converging on the right value
jnthn (Though mine are due to occasional races, not probabalistic tests. :))
TimToady well, we know those are supposed to converge on 0 :P
jnthn If only knowing what to fix were so easy :P 22:36
Trouble is that the more I fix, the harder it is to reproduce the next thing to fix...
TimToady well, that's a good sort of problem, I suppose... 22:37
jnthn Sort of.
TimToady did you see my wacko bughunting earlier?
if I make 'unit' reuse its current lexpad, run() goes bonkers and doesn't successfully start the subprocess completely 22:38
jnthn Sort of...was having one of my exhausted moments back then so kinda glazed over...
Did you push the commit somewhere?
TimToady not yet
I could put it into a branch
jnthn run in general, or when doing precomp?
TimToady inside precomp 22:39
doesn't seem to matter whether the thing being run is a 'unit' or not, just the outer unit containing a 'use'
the subproc gets to S state and 0 runtime
so .out never has anything to return, and hangs 22:40
jnthn o.O
TimToady if I comment out :err, nothing prints from the subproc either
it's krazy
jnthn Really... 22:41
If you don't figure it, push it to a branch and poke me about it until I investigate. )
I can't think of anything obvious it could be.
dalek kudo/unifyunit: 076702c | TimToady++ | src/Perl6/Grammar.nqp:
make 'unit' reuse same UNIT lexpad
rakudo/unifyunit: 5bef4e4 | LemonBoy++ | src/core/ 22:44
rakudo/unifyunit: Minor changes to 'assuming'.
rakudo/unifyunit: * Include the definedness checks.
rakudo/unifyunit: * Include the return type.
TimToady there's the branch 22:45
jnthn Doubt it'll be the problem, but that <.finishpad> probably wants to be conditional too 22:46
TimToady could be
jnthn Also, occurs to me now that roles might be problematic doing this 22:47
Since they need to take parameters
(Even non-parametric roles take $?CLASS as a parameter) 22:48
TimToady hesitates to suggest that we look ahead at the start for a 'unit' declaration...
since that would be a very big violation of one-pass
jnthn yeah, that feels very ugly
TimToady another idea, fake up current lexpad as a fake SETTING, then make the inside UNIT somehow 22:49
jnthn Hmm
TimToady that feels a lot cleaner, somehow 22:50