viki FWIW, there's a probably "controvercial" PR on changing what sub MAIN Usage message looks like. If anyone wants to weigh in: github.com/rakudo/rakudo/pull/926 00:16
dalek kudo/nom: f544e4c | samcv++ | src/core/REPL.pm:
Fix add history for readline, since the method is called add-history, it's the function that's called add_history
00:38
kudo/nom: 717a84d | (Zoffix Znet)++ | src/core/REPL.pm:
Merge pull request #927 from samcv/nom

Fix add history for readline, since the method is called add-history,…
samcv viki, I don't see how that fixes the problem of making names 'readable' since it only changes the name of the variable 00:40
err. is there already a 'command'? 00:41
and it gets that instead of the full thing when you do $*PROG-NAME ?
ah. that's probably what it's doing then? if so then that's probably a good thing 00:42
tho $*PROG-NAME implies it's the program's name, not the command name?
or maybe making $*PROG-NAME say the name of the program THEY run and have another new variable for the name of where it's being run at 00:45
viki samcv: it changes the program name--the giant string with a sha hash in it (for some scripts)--to the *literal* word "command" 00:46
samcv or maybe make a $*CMD-NAME for the command, and $*PROG-NAME be the programs name
that is actually running at that point
viki With the idea being that since the user managed to get to the usage screen, they already know what program they're running
samcv ah. ok
viki m: say $*CMD-NAME 00:47
camelia rakudo-moar 689da7: OUTPUT«Dynamic variable $*CMD-NAME not found␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
samcv but this wouldn't change the $*PROG-NAME variable right?
only change the auto-help output?
viki right
samcv ok then ++
viki Just the output
samcv very good
japhb Yeah, ++ from me as well. 'command' is LTA, but the current state is just *awful*, so I'm in favor of doing the intermediate improvement now. 00:56
dalek kudo/nom: 1369de9 | (Bahtiar `kalkin-` Gadimov)++ | src/core/Main.pm:
Usage replace $*PROG-NAME with literal “command”
01:11
kudo/nom: 6ee524c | (Zoffix Znet)++ | src/core/Main.pm:
Merge pull request #926 from kalkin/nom

Usage replace $*PROG-NAME with literal “command”
samcv zef --at 06:03
Usage:
command [--force (False True)] fetch [<identities> ...] -- Download specific distributions
ah so it literally says 'command' now. not any other value
nine FWIW I'd have NACKed the PR as a much better solution would not have been all that difficult 06:11
[TuxCM] www.perlmonks.org/?node_id=1176379 needs an answer 06:42
samcv nine, NACK? 06:46
negative ACK? 06:47
nine samcv: I'd much rather have it display the original command's name instead of the confusing 'command'
samcv yeah.
nine samcv: oh, yes NOT ACK 06:48
samcv same
[TuxCM] This is Rakudo version 2016.11-37-g6ee524c built on MoarVM version 2016.11-8-gb582aeb 06:53
csv-ip5xs 3.278
test 13.706
test-t 6.500
csv-parser 14.111
samcv nine, ␕ there's a unicode symbol for that apparently 06:58
nine samcv: now would be a good time to have a better font for my terminal :) 07:00
samcv heh
what terminal do you use?
nine konsole
samcv well it's kinda small anywhere really. i mean can you see it? just small? 07:01
or not see it at all
nine Actually yes :) 07:02
s/a better font for my terminal/extremely high resolution display/ 07:03
samcv ah 07:04
dalek kudo/nom: b597b7c | niner++ | src/core/ (2 files):
Show original program name in MAIN_HELPER instead of 'command'

Installed scripts are stored as resources in a CompUnit::Repository::Installation and called via a wrapper script stored in path.
  $*PROGRAM-NAME contains the path to the resource while the user should
only have to deal with the wrapper script. So use an environment variable to override $*PROGRAM-NAME in that case and show the wrapper script's path in MAIN_HELPER error messages instead.
07:06
nine There, that wasn't so bad at all :)
samcv nine, hmm that didn't work for me 07:18
getting the full name of the file 07:19
unless i need to do a make clean or something
ugexe that fixes the sha1 name, but not the full path when shadowed (usually by rakudobrew/bin wrappers) 07:21
samcv doing `zef --what` i get 07:24
nine samcv: need to reinstall zef 07:30
to get the updated wrapper script
samcv ah ok :) 07:42
nine++ :) awesome 07:48
nine, curious, what was the reason that hashes were chosen instead of file names for perl 6 modules? 10:01
nine samcv: full story starting at page 20: niner.name/talks/A%20look%20behind%...rl%206.pdf 10:08
samcv: keywords: Unicode on file systems and versioning 10:09
samcv thanks 10:23
psch oh phooey. inheriting from (at least abstract) Java classes is another thing we probably want, isn't it... 10:29
that's gonna be fun
hmm, parts of that might fall out from 'does'-able java Interfaces... 10:33
although default and static methods in Interfaces since java 1.8 makes me think they kinda don't want anyone to use abstract classes anymore 10:34
...what a mess :S 10:35
i mean, as of java 1.8 the only difference between abstract classes and interfaces is that you extend exactly one abstract class and implement as many (non-conflicting) interfaces as you like... 10:38
viki [TuxCM]: answer that perlmonks isn't the right place to ask about Perl 6 and tell them to come to our IRC. 11:05
m: my @list = (1, 2|3, 4); say any(2,3) + 2 11:06
camelia rakudo-moar b597b7: OUTPUT«any(4, 5)␤»
viki m: my @list = (1, 2|3, 4); say sum @list 11:07
camelia rakudo-moar b597b7: OUTPUT«Type check failed in assignment to $sum; expected Numeric but got Junction (any(3, 4))␤ in block <unit> at <tmp> line 1␤␤»
viki m: my @list = (1, 2|3, 4); my $sum; $sum += $_ for @list; say $sum
camelia rakudo-moar b597b7: OUTPUT«any(7, 8)␤»
viki m: my @list = (1, 2|3, 4, 7|8); my $sum; $sum += $_ for @list; say $sum 11:08
camelia rakudo-moar b597b7: OUTPUT«any(any(14, 15), any(15, 16))␤»
viki m: my @list = (1, 2|3, 4, 100|200); my $sum; $sum += $_ for @list;
camelia ( no output )
viki m: my @list = (1, 2|3, 4, 100|200); my $sum; $sum += $_ for @list; say $sum
camelia rakudo-moar b597b7: OUTPUT«any(any(107, 207), any(108, 208))␤»
viki m: my @list = (1, 2|3, 4, 100|200); my $sum; $sum += $_ for @list; say $sum ~~ 108
camelia rakudo-moar b597b7: OUTPUT«True␤»
viki m: my @list = (1, 2|3, 4, 100|200); my $sum; $sum += $_ for @list; say $sum ~~ 207
camelia rakudo-moar b597b7: OUTPUT«True␤»
viki [TuxCM]: so basically one answer is to do the sum manually ^ but since that works.. I wonder if we could make .sum DWIM too 11:09
[TuxCM]: and while you at it, tell that 1nickt guy to go and fuck himself. 11:10
arnsholt psch: Speaking of Java interop, do you have any ideas on how it should handle Java's early-bound method lookups vs. Perl 6's late-bound lookups? 11:18
psch arnsholt: well, i think the way it's being handle for overloaded methods and constructors works okay-ish 11:19
arnsholt: that is, on a Perl 6-side mmd call we dispatch to an indy FALLBACK that sorts through the arguments and calls the right Java method
arnsholt: so, basically, we don't really have mmd on interop wrapper - we just have one method that does late-ish (that is, as late as a jvm with indy allows) bound dispatch on the Java methods 11:20
*on an interop wrapper 11:26
j: use java::lang::String:from<JavaRuntime>; say String.^methods.grep({.name ~~ /new/ && .name !~~ /constructor/}) # like this 11:28
camelia rakudo-jvm 76b061: OUTPUT«(callout java.lang.String method/mmd+new/([Ljava/lang/Object;)Ljava/lang/String;)␤»
psch j: use java::lang::String:from<JavaRuntime>; say +(String.^methods.grep({.name ~~ /constructor/})) #
camelia ( no output )
psch j: use java::lang::String:from<JavaRuntime>; say +(String.^methods.grep({.name ~~ /constructor/}))
camelia rakudo-jvm 76b061: OUTPUT«15␤»
psch the second is the number of constructors
and the invokedynamic FALLBACK in BootJavaInterop is called for the mmd+new method, which dispatches between those constructors 11:29
arnsholt: does that answer your question? :) 11:32
arnsholt psch: Mostly, I think =) 11:34
Hopefully it'll be a marginal issue in practice anyways
psch my advent post from 2014 goes into a bit more detail i think, though probably not on the technical side 11:35
i *think* the code in BootJavaInterop and RakudoJavaInterop is pretty clear, but then i've also spend a lot of time with it... :)
timotimo dogbert17, dogbert17_, could you get me a stack trace of where moarvm panics? you should be able to set a breakpoint in MVM_panic for that purpose 12:53
viki m: use Test; cmp-ok 2, '!==', 42 13:24
camelia rakudo-moar b597b7: OUTPUT«not ok 1 - ␤␤# Failed test at <tmp> line 1␤# Could not use '"!=="' as a comparator.␤»
viki kinda expected for !== to be auto-generated, since "!" is a metaop and all other metaops get autogenerated
dogbert17_ dogbert17 is currently hiding at $work which complicates things :( 13:35
dalek ast: 8c72fdd | (Zoffix Znet)++ | packages/Test/Util.pm:
Add is-deeply-junction to Test::Util

is-deeply-junction( Junction $got, Junction $expected, Str:D $desc)
Guts two junctions and uses C<is-deeply> test on those guts. Use to compare two Junctions for equivalence. I<Note:> this test is rather strict and will fail even if the two Junctions are functionally equivalent, for example 1|2 and 2|1 are considered to be different Junctions.
14:03
kudo/nom: 8d04bec | (Zoffix Znet)++ | src/core/List.pm:
Remove `Numeric` type restriction for .sum()

Numerics aren't the only types we can end up with: there are also Junctions
Spotted by m_turner++ on www.perlmonks.org/?node_id=1176379
14:10
ast: 8362015 | (Zoffix Znet)++ | S02-types/list.t:
Test Junctions work with .sum/[+]

Test for fix in commit:
  github.com/rakudo/rakudo/commit/8d...a34acc8def
viki .tell [TuxCM] bug fixed and I replied on PerlMongers letting that person know. RE: www.perlmonks.org/?node_id=1176379 14:14
yoleaux2 viki: I'll pass your message to [TuxCM].
dalek p: 70724a2 | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for new captureinnerlex op.
14:40
p: c62785f | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Map MoarVM captureinnerlex op.
dogbert17_ timotimo: can you try: ./perl6 -I lib t/spec/S04-declarations/constant.rakudo.moar this panics for me
jnthn m: use Test; my @last; sub foo($a) { for ^$a { LAST @last.push($a); foo($a - 1) } } foo(3); is @last, [1, 1, 2, 1, 1, 2, 1, 1, 2, 3] 14:47
camelia rakudo-moar 8d04be: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> a { LAST @last.push($a); foo($a - 1) } }⏏ foo(3); is @last, [1, 1, 2, 1, 1, 2, 1,␤ expecting any of:␤ infi…»
jnthn m: use Test; my @last; sub foo($a) { for ^$a { LAST @last.push($a); foo($a - 1) } }; foo(3); is @last, [1, 1, 2, 1, 1, 2, 1, 1, 2, 3]
camelia rakudo-moar 8d04be: OUTPUT«not ok 1 - ␤␤# Failed test at <tmp> line 1␤# expected: '1 1 2 1 1 2 1 1 2 3'␤# got: '1 1 1 1 1 1 1 1 1 1'␤»
timotimo dogbert17_: ok 70 - Operator multi defined on comet works using snowman 14:51
# FUDGED!
jnthn m: use Test; sub foo($a) { supply { whenever Supply.from-list() { LAST emit $a } } }; is await(foo(42)), 42; is await(foo(69)), 69 14:53
camelia rakudo-moar 8d04be: OUTPUT«Tried to get the result of a broken Promise␤ in block <unit> at <tmp> line 1␤␤Original exception:␤ Type check failed in binding to value; expected Any but got Mu (Mu)␤ in block <unit> at <tmp> line 1␤␤»
dogbert17_ timotimo: so it worked for you, sigh 14:55
timotimo yes, that's the problem 14:56
my spec tests are clean
jnthn m: use Test; sub foo($a) { supply { whenever Supply.from-list(gather { die }) { QUIT emit $a } } }; is await(foo(42)), 42; is await(foo(69)), 69
camelia rakudo-moar 8d04be: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> Supply.from-list(gather { die }) { QUIT⏏ emit $a } } }; is await(foo(42)), 42; i␤ expecting any of:␤ scoped block␤»
timotimo except, i don't think i have it compiled with --valgrind or with the FSA size debug
dogbert17_ then I'll try the breakpoint thingy when I get home, where should I put the breakpoint?
jnthn m: use Test; sub foo($a) { supply { whenever Supply.from-list(gather { die }) { QUIT { default { emit $a } } } } }; is await(foo(42)), 42; is await(foo(69)), 69
camelia rakudo-moar 8d04be: OUTPUT«Tried to get the result of a broken Promise␤ in block <unit> at <tmp> line 1␤␤Original exception:␤ Type check failed in binding to value; expected Any but got Mu (Mu)␤ in block at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
timotimo now i have FSA size debug turned on and it doesn't panic 14:57
dogbert17_ was it the flag I tested yesterday?
timotimo yes 14:58
dogbert17_ and you're on 64 bit I guess
timotimo yup
dogbert17_ grrr :)
so where is this panic routine where I should put a breakpoint then? 14:59
timotimo are you aware that gdb lets you just say "break MVM_panic"? 15:00
dogbert17_ no I wasn't. you learn something new every day :) 15:03
timotimo :)
there is an incredible amount of stuff to learn about gdb. also things are really hard to find because the set of commands has grown "biologically" and apparently never got reformed ever
arnsholt Kind of like git! =) 15:04
timotimo that's why you delete breakpoints with "delete". why not "delete breakpoint" or "breakpoint delete"? because at one point there was nothing else that you could delete except for breakpoints
IMO, it's many times worse than git 15:08
|Tux| This blogger wants perl6 - blog.builtinperl.com/post/7-feature...-in-perl-5 15:12
DrForr This blogger also sits a few desks away from me :) 15:14
And I mentioned on the FB posting that fact. We can't post comments to builtinperl.com because.. nobody is allowed to take time to fix the problem. 15:16
timotimo how is Moose not good enough ... 15:17
ugexe i like when people say 'not production ready' and then don't back up that statement, and if they did it would likely only be 'thats what i heard' 15:18
dalek kudo/nom: 4bec146 | jnthn++ | tools/build/NQP_REVISION:
Get NQP/MoarVM with captureinnerlex op.
15:19
kudo/nom: 6bb8823 | jnthn++ | src/Perl6/ (2 files):
Fix various scoping bugs with NEXT/LAST/QUIT.

These showed up under recursion and also in concurrent programs, and were the cause of many crashes involving supply/react blocks that used LAST and QUIT. Proc::Async in chars mode was vulnerable to this bug, for example.
ugexe in these cases its really 'developer not perl6 production ready'
viki pfft, I can back it up: it's not in my company's budget for the developer to wrestle with frequent bugs, which includes wondering if it's a bug, verifying on support channels that it is, and reporting it. 15:20
jnthn .tell tony-o Rakudo 6bb8823 nails, best I can tell, the odd crashes I've been seeing in things using Proc::Async in chars mode. 15:21
yoleaux2 jnthn: I'll pass your message to tony-o.
viki There were a couple (fixed now) where the result of the bug was a crash and there wasn't a simple workaround. That'd put the company's product at standstill
DrForr It's easy to dismiss the language out of hand because ... well, it's easy to say crap when you don't need to prove anything. 15:24
dogbert17_ timotimo: still there?
timotimo yup
dogbert17_ gist.github.com/dogbert17/6dbc29f5...a89d1166da
dalek ast: b7c19a8 | jnthn++ | S17-procasync/encoding.t:
Unfudge now-passing tests.
15:27
ast: 77be933 | jnthn++ | S04-phasers/in-loop.t:
Add test for phasers in loops + recursion.
ast: 8265429 | jnthn++ | S17-supply/syntax.t:
Test LAST in whenever that never iterates.
15:28
timotimo but i was hoping to get an error of the "wrong size used to free" variety 15:29
jnthn A break, then onto the next bug hunt... 15:30
timotimo a break, then a continue. but please not a last :) 15:32
dogbert17_ ah, the debugflag was zero again, lemme fix 15:34
timotimo: now I got it: gist.github.com/dogbert17/069f700e...8464330f35 15:38
timotimo ok, this is about the NFG trie, then
i haven't looked at this thing even once ;(
but i recognize the string it's trying to decode 15:39
it's our big list of "what character has what successor"
and it's part of what we decode on every startup
i recently made changes to MVM_cu_obtain_string; could you check out a moarvm before that, please?
oh, before you change out of this 15:40
could you print the correct and wrong sizes inside MVM_fixed_size_free_at_safepoint there?
dogbert17_ you mean in src/core/fixedsizealloc.c 15:41
timotimo yeah, stack frame #1 15:42
i.e. "frame 1" "print dbg->alloc_size" "print bytes"
except bytes is already in the function signature, so not really needing printing
dogbert17_ does MVM_panic take sprintf like format strings? 15:43
timotimo yes, it does
... i think?
yes, it does
but i was hoping you'd just do it in gdb so you don't have to recompile :) 15:44
dogbert17_ ah, you mean look at the vars with some inspect cmd? 15:46
timotimo with exactly the commands i wrote on irc :) 15:47
"frame 1" ought to put you into the stack frame that has the variables i'm interested in, then "print dbg->alloc_size" to get the size of the thing that got allocated 15:48
(vs "bytes" being the size it's trying to free)
dogbert17_ ok
(gdb) print dbg->alloc_size 15:49
$1 = 12
(gdb) print bytes 15:50
$2 = 8
timotimo i need to be AFK for a bit, but do we have a valgrind output that also shows where that mismatched thing was allocated?
dogbert17_ I'll try to get that 15:51
timotimo so ... what the hell is changing the num_entries between allocating and freeing? 15:53
japhb nine: Committing a partial fix for the USAGE problem convinced you to make a complete fix so ... WAI? ;-) 15:54
nine japhb: err.....got me there 15:59
viki m: ^3 .map: "subset Foo$_ where \$_ == $_".EVAL; 16:01
camelia rakudo-moar 6bb882: OUTPUT«===SORRY!===␤Cannot find method 'count' on object of type NQPMu␤»
viki m: ^3 .map: "" 16:02
camelia rakudo-moar 6bb882: OUTPUT«===SORRY!===␤Cannot find method 'count' on object of type NQPMu␤»
viki oh, nm, it's that optimizer bug. The error is fine with it fixed 16:06
rt.perl.org/Ticket/Display.html?id...et-history 16:07
dogbert17_ timotimo: gist.github.com/dogbert17/f92912dc...24e9944e56 16:08
psch j: ^3 .map: "subset Foo$_ where \$_ == $_".EVAL;
camelia rakudo-jvm 76b061: OUTPUT«===SORRY!===␤Method 'count' not found for invocant of class 'NQPMu'␤»
psch ah, right, optimizer bug :o
timotimo dogbert17_: is that without --valgrind in the Configure.pl step? 16:09
dogbert17_ hides 16:17
but yes, i didn't do that :( 16:18
what does the --valgrind option do?
I see no obvious difference in the output after having configured moar with --valgrind 16:22
AFK 16:26
timotimo sorry, i gave you a total misdirection 16:27
what --valgrind does is completely undone by the size debug thing 16:28
jnthn Hm, something funny going on with NFG tries? 16:38
timotimo seems like. maybe only on 32bit linux systems 16:40
psch thinks trie and try need differing plurals
timotimo agreed 16:41
jnthn We could trie to come up with one... :P 16:42
timotimo jnthn: the symptom is that somehow we're using a different size to alloc than to free a trie node ... but the size is calculated based on num_entries, and that shouldn't be able to change 16:45
so ... memory corruption?!
or maybe sizeof(NFGTrieEntry) changes during run-time :P 16:46
jnthn Odd indeed 16:49
dogbert17 I believe both RabidGravy and AlexDaniel have been suffering from MoarVM panics recently as well 16:59
timotimo yeah, they are doing multi-threaded stuff, i believe
dogbert17 so, did you want me to try an older version? 17:00
timotimo yes 17:01
dogbert17 which version
timotimo on moarvm you should see two merges i made recently
0132729 ought to be good
latest nqp and rakudo will prevent you from running Configure on account of a very recent version requirement bump
so make sure you're not doing "git pull" in nqp or rakudo in the mean time
dogbert17 so, is it enough to just checkout 0132729 then 17:04
viki Was there a way to disable JIT? I wanna see if the bug is caused by it
jnthn MVM_JIT_DISABLE=1 17:05
viki Thanks
viki dips toes into MoarVM code for the first time 17:11
brrr... the water is cold...
jnthn Well, much of it was implemented close to the baltic sea... :) 17:17
viki :)
jnthn Phew, think I've got a fix for the QUIT bug I found. 17:22
m: 'react { whenever Supply.from-list(gather { die }) { QUIT { default { say "handled" } } } } 17:24
camelia rakudo-moar 6bb882: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Unable to parse expression in single quotes; couldn't find final "'" ␤at <tmp>:1␤------> { QUIT { default { say "handled" } } } }⏏<EOL>␤ expecting any of:␤ single quotes␤ …»
jnthn m: react { whenever Supply.from-list(gather { die }) { QUIT { default { say "handled" } } } }
camelia rakudo-moar 6bb882: OUTPUT«handled␤Tried to get the result of a broken Promise␤ in block <unit> at <tmp> line 1␤␤Original exception:␤ Died␤ in block at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
dalek kudo/nom: c027e6a | jnthn++ | src/core/Supply.pm:
Cope with quit handlers running asynchronously.

We queue code up, therefore we can't rely on knowing the outcome of a QUIT block right away. Take follow-up actions at a time when we certainly have run the QUIT of a whenever.
17:27
ast: 2d7448c | jnthn++ | S17-supply/syntax.t:
Tests covering some QUIT phaser bugs.
kudo/nom: e4d78c6 | jnthn++ | src/core/Proc/Async.pm:
Use Supplier::Preserving in Proc::Async.

I recently got bitten by this, when writing code that obtained stdout and stderr, put them in an object, did .start on the process, and then returned the object. The calling code then tapped the two supplies. This resulted in occasional hangs, since sometimes the output was produced sooner than the object's user tapped. We could argue that you Just Shouldn't Do This, but it's likely plenty of people will fall into this trap over time, and it's just how most supplies work anyway (you don't lose incoming packets on a Socket by not tapping soon enough for example). So, whack a `::Preserving` on it.
18:06
jnthn heh, long commit message for a 10 char patch :P 18:08
timotimo :D 18:09
diakopter *whack*
jnthn I figure if I tripped over that, others will soon enough.
Hm, I should write a test for it too 18:10
arnsholt Indeed. For non-trivial thigs, short patches generally merit long commit messages
timotimo in general i'm worried that setting up pipelines of taps and such vs starting the thing that emits to those taps can in general be problematic 18:11
arnsholt (And everything merits a commit message. Something I wish my old boss would've understood)
timotimo "Fix things."
arnsholt Heck, that'd be better than no message at all =) 18:12
timotimo "-"
[Coke] git commit -m "update frob.c" frob.c 18:13
timotimo for when your SCM won't allow empty messages
jnthn My favorite was a guy who just put his name as the commit message. On all of this commits. :P 18:14
timotimo lovely
arnsholt GAH! Murderation!
timotimo you could make a different email address for each commit, and add the commit message to the "comment" section of your email address
dalek ast: 4ed92b5 | jnthn++ | S17-procasync/basic.t:
Cover data-loss fix to Proc::Async.
18:23
japhb
.oO( timotimo+fixed@ )
18:26
[TuxCM] viki, I saw. Thanks all ya folk for speedy action 18:27
yoleaux2 14:14Z <viki> [TuxCM]: bug fixed and I replied on PerlMongers letting that person know. RE: www.perlmonks.org/?node_id=1176379
[Coke] btw, perl6 seems to get many questions at stackoverflow, which I would recommend over perlmonks to people. 18:32
FROGGS o/ 18:33
dalek kudo/nom: f928a20 | jnthn++ | src/core/Supply.pm:
Never run operations after supply deactivation.

Once a supply/react block is done, quit, or closed, we should never emit any further messages (to meet the sane supply protocol). This could happen thanks to other code already being queued up to run. Now, always check we're still active before putting code into the queue or running code from the queue.
19:07
ast: 3836292 | jnthn++ | S17-supply/syntax.t:
Test to cover RT #128991.
19:08
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128991
jnthn Enough fixes for today :) 19:12
kalkin- hi 19:13
viki \o\
kalkin- :)
[Coke] jnthn++ 19:20
moritz is there an easy-ish way to inspect the topo-sorted candidates of a multi? 20:21
viki "topo-sorted"? 20:22
m: .say for &say.^cando(42) 20:23
camelia rakudo-moar f928a2: OUTPUT«No such method 'cando' for invocant of type 'Perl6::Metamodel::ClassHOW'␤ in block <unit> at <tmp> line 1␤␤»
viki m: .say for &say.cando(42)
camelia rakudo-moar f928a2: OUTPUT«Type check failed in binding to $c; expected Capture but got Int (42)␤ in block <unit> at <tmp> line 1␤␤»
viki m: .say for &say.cando(\(42))
camelia rakudo-moar f928a2: OUTPUT«sub say (\x) { #`(Sub|65266432) ... }␤sub say (**@args is raw) { #`(Sub|65266584) ... }␤»
moritz viki: that candidates are topolocially sorted at compile time
and I'd like to inspect the result of that sorting 20:24
(nothing super important) 20:25
viki m: .say for &say.'!sort_dispatchees_internal'()
camelia rakudo-moar f928a2: OUTPUT«Cannot find method 'WHICH': no method cache and no .^find_method␤ in block <unit> at <tmp> line 1␤␤»
viki m: use nqp; .<signature>.gist.say for &say.'!sort_dispatchees_internal'() 20:27
camelia rakudo-moar f928a2: OUTPUT«()␤(Str:D \x)␤Cannot resolve caller postcircumfix:<{ }>(Mu, "signature"); none of these signatures match:␤ (\SELF, \key)␤ (\SELF, \key, Mu \ASSIGN)␤ (\SELF, \key, Mu :$BIND! is raw)␤ (\SELF, \key, :$delete!, *%other)␤ (\SELF, \…»
viki ah, right, you need to skip the Mus
m: use nqp; .<signature>.gist.say for &say.'!sort_dispatchees_internal'().grep: *.defined 20:28
camelia rakudo-moar f928a2: OUTPUT«()␤(Str:D \x)␤(\x)␤(**@args is raw)␤»
viki m: .<signature>.gist.say for &push.'!sort_dispatchees_internal'().grep: *.defined
camelia rakudo-moar f928a2: OUTPUT«Cannot iterate object with P6opaque representation (Scalar)␤ in block <unit> at <tmp> line 1␤␤»
viki /o\
ah, I think it's 'cause it's not a multi 20:30
m: .<signature>.gist.say for [].^lookup('splice').'!sort_dispatchees_internal'().grep: *.defined 20:31
camelia rakudo-moar f928a2: OUTPUT«(Array:D \SELF: *%_)␤(Array:D $: Whatever, *%_)␤(Array:D $: Callable:D $offset, *%_)␤(Array:D $: Int:D $offset, *%_)␤(Array:D $: Whatever, Whatever, *%_)␤(Array:D $: Whatever, Int:D $size, *%_)␤(Array:D $: Whatever, Callable:D $size, *%_)␤(Ar…»
viki \o/
moritz: so prolly something like that.
If you close your eyes on words "internal" :D 20:32
s: &say, 'candidates', \()
SourceBaby viki, Sauce is at github.com/rakudo/rakudo/blob/f928...ine.pm#L25
viki Oh, there's actually a public-lier method for it: sort_dispatchees 20:36
moritz viki: thanks 20:46
dalek p: b9500f3 | usev6++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java:
Reset readBuffer after changing position in file

Makes fudged test in S32-io/open.t pass
20:56
p: f153d1f | usev6++ | src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java:
Avoid potential BufferUnderflowException

Some instructions later we call readBuffer.get(), so we make sure that there is something to get from readBuffer.
nqp: a2910fe | usev6++ | src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java:
nqp: Reset CharsetDecoder (might have been used before)
nqp:
ast: 1dce604 | usev6++ | S32-str/numeric.t:
Unfudge test for RT #128542 on JVM
21:21
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128542