»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
00:00 ChanServ sets mode: +v camelia
tony-o m: my class H { has Int $.y = 5; method succ { H.new(y => $.y+1); method pred { H.new(y => $.y -1); }; method gist { $.y; }; }; say H.new ... *.y > 10; 00:04
camelia rakudo-moar 322d01: OUTPUT«5===SORRY!5=== Error while compiling /tmp/mZzLgtNLCA␤Missing block␤at /tmp/mZzLgtNLCA:1␤------> 3ist { $.y; }; }; say H.new ... *.y > 10;7⏏5<EOL>␤»
tony-o m: my class H { has Int $.y = 5; method succ { H.new(y => $.y+1); }; method pred { H.new(y => $.y -1); }; method gist { $.y; }; }; say H.new ... *.y > 10;
camelia rakudo-moar 322d01: OUTPUT«Code object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/fX6DhFYPZq:1␤␤5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -…»
00:13 telex left, mephinet left, erdic left 00:14 telex joined 00:15 erdic joined 00:16 mephinet joined 00:22 aborazmeh joined, aborazmeh left, aborazmeh joined 00:24 eli-se left 00:26 vendethiel joined
TimToady m: my class H { has $.y = 5; method succ { H.new(y => $.y + 1) }; method pred { H.new(y => $.y - 1) }; method gist { " $.y " } }; .say for H.new ... *.y > 10; 00:27
camelia rakudo-moar e81f47: OUTPUT« 5 ␤ 6 ␤ 7 ␤ 8 ␤ 9 ␤ 10 ␤ 11 ␤»
00:32 Sqirrel left 00:35 yogan left 00:38 espadrine left, yogan joined 00:44 Sqirrel joined 00:47 vendethiel left 00:48 laouji joined 01:00 noganex left 01:02 muraiki joined, aborazmeh left
awwaiid .elems, really? not .length, .size, .count, .len, .howmanydamnit? 01:02
01:04 vendethiel joined
muraiki :n 01:07
awwaiid what's that? 01:18
dalek kudo-star-daily: c6f2937 | coke++ | log/ (2 files):
today (automated commit)
01:21
01:21 jack_rabbit joined, jack_rabbit is now known as Guest56551 01:25 vendethiel left 01:28 Zoffix joined 01:30 vendethiel joined
tony-o m: my class H { has Int $.y = 5; method succ { H.new(y => $.y+1); }; method pred { H.new(y => $.y -1); }; method gist { "$.y"; }; }; say H.new ... *.y > 10; 01:32
camelia rakudo-moar e81f47: OUTPUT«5 6 7 8 9 10 11␤»
tony-o m: my class H { has Int $.y = 5; method succ { H.new(y => $.y+1); }; method pred { H.new(y => $.y -1); }; method gist { "$.y"; }; }; say (H.new ... *.y > 10):n;
camelia rakudo-moar e81f47: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dvHOoQAqdK␤You can't adverb that␤at /tmp/dvHOoQAqdK:1␤------> 3 "$.y"; }; }; say (H.new ... *.y > 10):n7⏏5;␤ expecting any of:␤ pair value␤»
tony-o m: my class H { has Int $.y = 5; method succ { H.new(y => $.y+1); }; method pred { H.new(y => $.y -1); }; method gist { "$.y"; }; }; say (H.new ... *.y > 10).elems;
camelia rakudo-moar e81f47: OUTPUT«7␤»
01:32 aborazmeh joined, aborazmeh left, aborazmeh joined
tony-o shouldn't that just go on forever? 01:33
01:38 Sqirrel left
TimToady no, it's an inequality 01:44
01:45 ilbot3 left 01:47 ilbot3 joined
TimToady for intuited sequences with an endpoint of the same type, we can rewrite the end matcher to avoid all these accidental infinite sequences, I think 01:48
01:50 Sqirrel joined
rjbs is now officially soliciting questions with which to ambush $Larry at YAPC. Nobody tell him, okay? -- github.com/rjbs/QA-LarryWall/ 01:50
TimToady: and that goes double for you
Zoffix :) 01:52
01:53 vendethiel left
awwaiid signal(Signal::SIGINT).tap: {...} # this is handled async somehow? (using moarvm) . I'm porting my command line music player. I want it so that one ^C goes to the next song, and a double-^C exits. 01:57
[Coke] ... but after a small delay it resets? 01:58
01:59 yeahnoob joined
awwaiid gist.github.com/awwaiid/fc6e88ff1ecd846bc438 01:59
I'm trying to force it to work the way I want with a global var -- but like the sleep itself doesn't seem to happen (the next song immediately starts playing)
01:59 aborazmeh left
awwaiid I can provide the whole script if you like 02:00
rjbs i/win 33
awwaiid gist.github.com/awwaiid/c56db01c9deb24d1a8ed # whole polly6 script 02:02
perl6 is a difficult language, in that it is almost, but not quite, entirely unlike all the others in subtle and profound ways 02:04
@songs .= pick(*) if $shuffle; # I find this amusing for example 02:07
oh well, I'm off for the night. Happy holidays (I say, since Christmas clearly approaches) 02:10
02:11 uvb joined
timotimo I couldn't fall asleep, so I hacked up a litle present for y'all 02:21
nqp-m -e 'say(nqp::querycodeinfo(&say)<filename>); say(nqp::querycodeinfo(&say)<line_number>)'
gen/moar/stage2/NQPCORE.setting
687
what do the people think?
this is something i've been desiring for at least a year 02:22
now i just don't know exactly how to get at the MVMCode underneath a Routine etc 02:24
timo@schmetterling ~/p/rakudo (nom) [1]> perl6 -e 'say nqp::querycodeinfo(nqp::getattr(&say, Code, \'$!do\'))' 02:25
filename => src/gen/m-CORE.setting, line_number => 18802
i'd like to also find the very last line number, too. and the code needs to be refactored a bit more, too 02:28
now ... how do we find line numbers corresponding to a whole class definition body ... 02:29
02:31 muraiki left 02:32 noganex joined 02:40 Guest56551 left, Guest56551 joined 02:43 Guest56551 left 02:45 Guest73598 joined 02:46 Guest73598 left, jack_rabbit_ joined, jack_rabbit_ left 02:47 ASQRD left, jack_rabbit_ joined
TimToady timotimo++ 02:47
02:49 jack_rabbit_ left
adu timotimo++ 03:00
timotimo: is that like C's __FILE__ and __LINE__? 03:01
you'd have to get the parent stack frame, how would that work cross-vm? 03:02
03:04 colomon left 03:06 colomon joined
adu I'm starting to think that knowing C and assembly might actually be a disadvantage in solving this 03:06
03:19 BenGoldberg joined, dj_goku left 03:42 Sqirrel left 03:44 Sqirrel joined 03:45 laouji left
labster ls 03:46
oh, not a terminal :o) 03:47
TimToady well, not at a shell prompt, anyway...
03:48 petercommand left, petercommand joined
labster Oddly I actually am doing Perl 6 right now. I was just curious how much would break if I compiled rakudo when "0".Bool ~~ False 03:49
adu lol 03:50
TimToady guesses, not much 03:51
labster I mean "0".Bool ~~ True
TimToady still guesses not much :)
03:51 davido_ left
TimToady a spec test, we would hope :) 03:51
labster One would hope.
Probably not. There's the specs issue open about making "0" truthy, which I have mixed feelings about. 03:52
I've hit the issue on both sides, though I suspect it will always be a tricky issue. And I've had someone ask for a new behavior for it at a YAPC. 03:54
03:54 davido_ joined
labster of course, if moar isn't going to build... 04:01
04:01 laouji joined
BenGoldberg m: say so 0 04:04
camelia rakudo-moar e81f47: OUTPUT«False␤»
BenGoldberg m: say so "0"
camelia rakudo-moar e81f47: OUTPUT«False␤»
BenGoldberg m: say so "0 but true"
camelia rakudo-moar e81f47: OUTPUT«True␤»
BenGoldberg m: say so "0e0"
camelia rakudo-moar e81f47: OUTPUT«True␤»
BenGoldberg m: say so 0e0
camelia rakudo-moar e81f47: OUTPUT«False␤»
labster m: say so "0.0" 04:05
camelia rakudo-moar e81f47: OUTPUT«True␤»
labster m: say so 0.0
camelia rakudo-moar e81f47: OUTPUT«False␤»
BenGoldberg Personally, when I want a truthy value which is numeric zero, I'll use the string "0e0"
(It works in perl5, too)
04:06 Sqirrel left
BenGoldberg The string "0.0" also is truthy in perl5, though it did not previously occur to me to use it. 04:07
labster multi method Bool(Str:D:) { nqp::p6bool(nqp::chars($!value) && nqp::isne_s($!value,"0")); } # the results here weren't too surprising.
04:09 ab5tract left 04:16 ab5tract joined 04:18 BenGoldberg left 04:22 spider-mario left 04:25 spider-mario joined, zacts left 04:54 kaare_ joined 05:00 raiph left 05:09 skids left
dalek ecs: e0d1718 | TimToady++ | S03-operators.pod:
deduced iterators can be smarter about endpoints
05:36
kudo/nom: f8a9af6 | TimToady++ | src/core/operators.pm:
make deduced iterators smart re crossing endpoint
05:37
05:37 adu left
dalek ast: e0041dd | TimToady++ | / (4 files):
revised tests for new sequence iterators
05:38
05:44 adu joined
bartolin good moring, #perl6 05:45
05:45 rindolf joined, Patterner joined
bartolin m: sub f (Int $n) { $n > 3 ?? "liftoff!" !! $n + 1 }; say 1, &f ... * 05:45
camelia rakudo-moar e81f47: OUTPUT«===SORRY!===␤Type check failed in binding $n; expected 'Int' but got 'Str'␤»
bartolin TimToady: while you are at it: do I understand S03 correctly, that this sequence should terminate and not throw? 05:47
TimToady looks like an error to me 05:49
05:49 Psyche^ left
bartolin
.oO( from me or from rakudo? )
05:49
TimToady I would expect the binding to fail just as it did 05:50
bartolin ahh :-)
TimToady m: sub f (Int $n) { $n > 3 ?? "liftoff!" !! $n + 1 }; say 1, &f ... Str 05:51
camelia rakudo-moar f8a9af: OUTPUT«1 2 3 4 liftoff!␤»
bartolin I read design.perl6.org/S03.html#line_1932 otherwise
TimToady well, it *does* terminate :) 05:52
bartolin oh, that sort of termination ...
TimToady m: say 1,2,4 ... 100 05:54
camelia rakudo-moar f8a9af: OUTPUT«1 2 4 8 16 32 64␤»
bartolin there is a (skipped) test for the above in S03-sequence/misc.t. I'm going to change it to throws_like or something. 05:55
TimToady m: say 8,-4,2 ... 0.1 05:56
camelia rakudo-moar f8a9af: OUTPUT«8 -4 2 -1 0.5 -0.25 0.125␤»
06:12 diana_olhovik_ joined
dalek ast: 4e72128 | usev6++ | S03-sequence/misc.t:
Fix test for termination of sequence by signature mismatch of generator function
06:22
06:58 spider-mario left
jnthn morning o/ 07:02
yoleaux 8 Apr 2015 21:46Z <FROGGS> jnthn: why dont we use assign_X at all? this makes RT124083 pass and I wonder why we just do not use assign_X... gist.github.com/FROGGS/c98f455874e50d39ff75
moritz \o
07:02 zakharyas joined 07:03 _mg_ joined
jnthn FROGGS[mobile]: add_assign_op *does* have a code path where it emits assign_X. But you shouldn't just got emitting it whenever; it forces a taking of a native ref - that is, an allocation - where none is needed. 07:04
07:04 Ven joined
jnthn *go 07:04
Anyway, it's the wrong fix. 07:05
07:06 RabidGravy joined 07:10 FROGGS joined 07:11 darutoko joined 07:14 brrt joined 07:17 ribasushi left
Timbus m: say so "00" 07:18
camelia rakudo-moar f8a9af: OUTPUT«True␤»
07:18 ribasushi joined
moritz m: say so "OO" 07:19
camelia rakudo-moar f8a9af: OUTPUT«True␤»
Timbus :0 07:20
FROGGS I think is is just weird that "0" is false...
Timbus same
FROGGS I mean, now we have working coercers one can do: MAIN(Int() $bar)... because I want to think that Perl6 should be explicit about these things and not wishy-washy 07:21
jnthn: yes, I expected so... thing is, the assign_n path is not taken for the examples I tried 07:22
07:22 FROGGS[mobile] left 07:34 adu left, pdcawley joined
timotimo o/ 07:37
i'm on the pro "make '0' True" side
07:41 mr-foobar left
timotimo also, no clue how to build nqp::querycodeinfo on JVM :\ 07:42
07:42 aborazmeh joined, aborazmeh left, aborazmeh joined
jnthn timotimo: Reflection API maybe hsa something 07:43
timotimo .tell adu __FILE__ and __LINE__ don't quite compare to querycodeinfo, because we already have $?FILE and $?LINE, and also it doesn't go via the stack at all, so you don't need a stack frame and you don't need to invoke the thing you want info about 07:45
yoleaux timotimo: I'll pass your message to adu.
07:46 FROGGS left
jnthn querycodeinfo may be better as getcodelocation 07:46
To fit better with the existing op set. 07:47
07:47 abraxxa joined
jnthn Also please check what nqp::backtrace calls things; I think it's line there, not line_number; either way, consistency would be good. 07:47
Provided we get those tweaks and it can be made to work on JVM, I think I'm good with it going in. 07:48
abraxxa good morning!
timotimo no problem; but i also want to add some more info in there 07:49
07:50 cschwenz joined
jnthn timotimo: Such as? 07:51
timotimo obviously, having a Buf of the bytecode itself will be a massive help for ... er ...
:P
07:51 bjz joined
timotimo i've been thinking a lot about how to get a sensible "last line of the function" value from the annotations in the bytecode ... instead of sleeping 07:52
i was worried that inlining will give line number annotations all over the map, so i can't just take the lowest and highest line number i find
07:52 anaeem1_ joined
brrt timotimo: you're going to write the JIT in p6? :-P 07:53
that could be totally feasible if you wished it though
timotimo but now i remember there's also annotations for "start inline" and "end of inline"
it would be interesting for experimentation purposes to be able to have some kind of API - perhaps only meant to be visible via gdb - that'd let you drop in assembly made by gcc for example 07:54
or even hand-tuned assembly
to get a good estimation of how performance would be if the jit was better in some way
jnthn timotimo: But you can never reach inlined things from the outside of the VM 07:55
And here you're querying code objects
Which are...just there. 07:56
timotimo i think i've miscommunicated
how would you go about making querycodeinfo (or getcodelocation) return not only the first source line of a function, but also the last?
to get a reasonably good estimation of the beginning and end of a function in the source code 07:57
i'm expecting the line number annotations in the bytecode aren't perfectly linear
jnthn In Moar? 07:58
07:58 koo5 left
jnthn The MVMStaticFrame points to the start of the annotations for the code and the number of them 07:59
So just go through them
Looking for a maximum.
08:00 bjz left
timotimo that was my first thought; my worry is that the QAST may have contained an inlined small sub 08:00
jnthn ah, true 08:01
Those ain't annotated. 08:02
timotimo not as inlines anyway
but they do have line numbers :)
jnthn At all by the time we hit the VM
Right, they have that
timotimo if they have a different filename, that's no problem
otherwise ... yeah
tadzik good morning #perl6!
jnthn What do you want it for, ooc?
timotimo &say.sourcecode.say for example 08:03
it's not an absolute must 08:06
it'd probably be fine to just have "nqp::getcodelocation" and only return filename + line number
jnthn Yeah, I was thinking it was more going to be used for error reporting 08:08
timotimo nah, i think our stack traces are already good enough for that
jnthn I wasn't thinking of that so much as multi-dispatch failures 08:09
Or explaining where a failing subset type constraint was
timotimo oh
that'd also be interesting
dalek ast: 422f77b | lizmat++ | S32-str/ (2 files):
Add basic starts/ends-with tests
jnthn When you're not actually in the code that you want to point at
timotimo right
i can see how that'd be useful 08:10
i'll clean up the code and push it, but it might be in ~three hours at the earliest, depending on if i can make it work in the next 10 minutes :)
brrt hmmm interesting thought timotimo 08:12
is MVMCode a REPR?
timotimo yes
brrt: i already have the code working, btw
just need to make it prettier
MVMROOT can do multiple to-root things, right? 08:13
brrt otherwise i could see how you could use atkey / bindkey or something like that to ... drop in new jit code as you go along
although.... that has highly tricky properties
brrt is not terribly sure about that 08:14
i have seen nested MVMROOT's
jnthn You can nest them, but each one roots one thing. 08:15
dalek kudo/nom: 4cdcaf2 | lizmat++ | t/spectest.data:
Add basic starts/ends-with tests
timotimo OK 08:16
jnthn I normally put a sequence of them at the same indentation level to avoid le clutter
nwc10 I have seen a HP-UX compiler get upset about the textual size that one or two of the MVMROOTs expand to
however, there's other stuff that currently gets in the way of us building on HP-UX
itz apple's new clang seems a lot faster on interp.c
RabidGravy yeah to be fair HP-UX compilers seem to get upset if you look at them funny 08:17
nwc10 but, given that I have found a better way to deliver freshly baked patches to @jnthn (although mostly it seems to be $jnthn)
maybe I should locate various things
lizmat itz: is that 10.10.3 ?
itz yes some 2G update last night
08:18 yvan1 left
lizmat aha! seems I will need to update soonish (like right after the NLPW) 08:18
timotimo gist.github.com/timo/c4f0a662957771347a31 brrt, jnthn, does the rooting look correct?
RabidGravy while we're talking compiler is anyone actively building on FreeBSD? I had problems last time I tried but might go back to it later today 08:19
timotimo in this context i may even want to have the blocks be bigger
itz we are flying out to AMS this evening!
timotimo actually
itz RabidGravy: I've had no probs with FreeBSD 10.1/clang or gcc (from pkg)
lizmat itz: looking forward to seeing you in Utrecht!
itz yay
brrt timotimo: what is the e on line 7
timotimo gist updated, brrt, jnthn
lizmat so I implemented substr-eq-at, used it in the core setting 08:20
timotimo brrt: i don't see an e on line 7 ...
lizmat and found myself having switched the parameters around
brrt it is not REPR(code)->name
*now
lizmat so I wonder what that means: maybe the "at" should be removed from the name, or the position should be the first parameter ?
timotimo oh, hah 08:21
hard line breaks in the terminal
copy-pasted out of less
brrt bad timo :-)
timotimo why i didn't copy it out of vim, i have no idea
RabidGravy I'm getting "probing whether your compiler thinks that it is gcc clang: not found
Can't compile simple gcc probe, so something is badly wrong at build/probe.pm line 93."
timotimo updated again 08:22
RabidGravy which is weird
itz which version of FreeBSD?
RabidGravy 8.4-RELEASE-p4
jnthn lizmat: Hm, I thought we were going with substr-eq all along... :)
lizmat well, yeah, maybe that would be best :-)
brrt ok, i don't get why the result hash is allocated at line 9, then the strings are allocated someway down, and the filename_key is allocated before the result 08:23
eh *rooted*
itz hmm guess that's gcc than .. maybe force cc=gcc to MoarVM
jnthn timotimo: no, it's rong
08:23 diana_olhovik_ left
jnthn MVMObject * result = REPR(BOOTHash)->allocate(tc, STABLE(BOOTHash)); 08:23
That can be GC'd by 08:24
brrt i'd think you'd want to move the allocation someway down, then root the result, then allocate the strings and rooted
jnthn MVM_string_ascii_decode_nt(tc, tc->instance->VMString, "file");
Which allocates
brrt jnthn - idea for a non-allocating mvmstring decode?
jnthn uh?
brrt or maybe a mvmstring-constant-making thingy
timotimo ah, of course 08:25
jnthn That makes no sense, the thing that's allocated *is* the MVMString *
Unless you're asking for a constant/intern pool
brrt right.... but... what you could do (IF AND ONLY IF IT WOULD BE SAFE) is MVMString lineStr, MVMString keyStr; MVMString_decode_const_to(tc, &keyStr, "line");
or something like that 08:26
that would probably be a pretty lousy idea now that i say it
timotimo gist updated yet again
JimmyZ timotimo: s/MVMCode_query_information/MVM_Code_query_information/? 08:27
timotimo fwiw, i've wished for a "preprocessor" like thing already that'd create a constant expression that properly describes the whole MVMString at compile-time and only has to put in the right Collectable information
JimmyZ: can do
JimmyZ or MVM_MVMCode_query_information ? :P
jnthn JimmyZ: Welll, the REPR name *is MVMCode.
08:27 Sqirrel joined
brrt can we set collectables as noncollectable 08:28
JimmyZ anyway, needs prefix MVM_ :)
jnthn But yeah, the convention is MVM_code_* really
and just call it MVM_code_location 08:29
To match the op being getcodelocation
08:29 diana_olhovik_ joined
timotimo OK 08:30
dalek kudo/nom: 1a09d24 | lizmat++ | src/core/ (3 files):
substr-eq-at -> substr-eq
ast: 78780ee | usev6++ | S05-substitution/subst.t:
Add tests for RT #114388
08:31
timotimo OK, i think i'm about ready to push 08:32
also, i'm going to be way late
TTYL
(damn, again)
08:34 dakkar joined
timotimo damn you, clock 08:39
RabidGravy itz++ # yep that worked (after I figured out the appropriate incantation to get that flag to the moar configure) 08:41
jnthn itz, RabidGravy: moar configure patches welcome, if either of you have time :) 08:42
08:42 FROGGS joined 08:43 cschwenz left
[ptc] I know it's possible to extract the pod from a source code file, however is it possible to extract non-pod text from a source code file? 08:43
itz RSN :) 08:44
08:45 Rounin joined
[ptc] I guess the question is a dumb one (and maybe it's still too early in the morning), however I couldn't work it out... 08:45
RabidGravy jnthn, maybe, my problem (in the first instance) was getting rakudobrew to pass the option on to the right thing 08:46
also I may look at:
> say $*KERNEL;
uname: illegal option -- K
usage: uname [-aimnprsv]
freebsd ()
I suspected that may happen when I looked at the Kernel.pm yesterday 08:47
itz I suspect the root cause is that the configure doesn't tell gcc from clang properly 08:49
dalek ast: 3c982d5 | usev6++ | S32-exceptions/misc.t:
Add test for RT #115276
itz I guess clang lies about being gcc :) 08:50
RabidGravy yeah "rakudobrew build moar --configure-opts='--moar-option='--cc=gcc''" is a bout of a mouthful
bit, bit of a mouthful 08:51
08:54 pecastro joined
FROGGS m: sub MAIN ($, \foo) { } # is that already ticketed? 08:57
camelia rakudo-moar 1a09d2: OUTPUT«Usage:␤ /tmp/_heQGgNUFE <Any> <oo> ␤»
jnthn oo-ps... 08:58
FROGGS originally I searched for something funny when the first char is chopped off... but did not find anything :o( 08:59
09:00 telex left
dalek ast: 14608e6 | TimToady++ | S03-sequence/basic.t:
new sequence rules should apply to left values too
09:01
09:02 telex joined, rurban_ joined
dalek kudo/nom: 3c94e32 | TimToady++ | src/core/operators.pm:
apply endtest skipping intuition to left args too
09:03
jnthn
.oO( Timsomnia )
TimToady been sleeping too much 'cuz I'm sick :) 09:04
jnthn Aww
Hope the plague leaves you soon.
TimToady so I'm kinda on hawaiian time
m: say 1,2,3 ... 1.5 09:05
camelia rakudo-moar 1a09d2: OUTPUT«1 2 3␤»
TimToady that's what I'm fixing here
will now just return 1
FROGGS jnthn: so, "my num32 $a; say ++$a" does assign_n, while "my num32 $a = 42e0; say $a" does not 09:09
jnthn: can you push me in the right direction?
09:10 yvan1 joined
jnthn FROGGS: Well, first of all I think we're code-generating things wrongly and the VM bytecode validator isn't puking when it sees us store a full-width num64 local into a num32 lexical, and vice versa. 09:10
FROGGS: I was going to tweak that first. 09:11
FROGGS: Then we need to make the small-width registers work, implement the extend/truncate ops already in oplist, and teach the QAST -> MAST compiler to track this stuff and emit them as needed.
FROGGS ahh, I see 09:12
jnthn FROGGS: It's a non-small amount of work, which is why I've sorta punted it. Also 'cus it touches many of the same places we need to touch to unscrew unsigned. 09:13
FROGGS aye
jnthn So I'm thinking we may want to tackle them together.
No reason it has to be me who does it all, of course.
FROGGS yeah
RabidGravy itz, you still here?
jnthn Just that it's not a trivial fix somewhere, but rather we need to sort our story out on a few things better.
FROGGS I think I try to get my hands dirty to understand the problem/fix better 09:14
jnthn *nod*
09:14 espadrine joined
jnthn I'd probably start out by fixing the MoarVM code validator in a branch. 09:14
It'll reject stuff that we sorta-get-away-wiht today. 09:15
Unfortunately, we get away with a lot of the int cases because LE.
09:15 tinyblak left
FROGGS exactly 09:15
jnthn So while it's bust in some way, it's only num32 that really shows us up.
FROGGS yeah, that's what I realized yesterday 09:16
jnthn (The answer to "why is it bust" is really "I put off doing this stuff")
(Because it wasn't blocking anything)
But now natives are getting more usable generally, with us having native arrays coming together, it's probably about time. :)
itz RabidGravy: yes I'm schiving off work :) 09:17
RabidGravy yay!
are you logged in to a FreeBSD 10.* machine? 09:18
itz I can be easily
RabidGravy if so what is the difference between uname -r and uname -K ?
-K appeared in 10.0 but is used in Kernel.pm
so no worky on <10.0 09:19
09:20 eli-se joined
masak good antenoon, #perl6 09:24
Ven \o, masak
jnthn o/ masak 09:26
09:28 SHODAN left
dalek ast: 48f616e | TimToady++ | S03-sequence/nonnumeric.t:
slight preference to include endpoint in direction

  (when there are arbitrary strings on the left and a matching endpoint type)
09:28
kudo/nom: 790d0ba | TimToady++ | src/core/operators.pm:
arbitrary strings on left of seq are arbitrary

So don't retest them, or prefer their ordering to endpoint's.
09:29
09:30 SHODAN joined
dalek kudo/nom: cfb8972 | TimToady++ | src/core/operators.pm:
typo in last patch
09:39
09:40 aborazmeh left 09:41 aborazmeh joined, aborazmeh left, aborazmeh joined
nwc10 does NQP's testing support TODO tests? 09:43
RabidGravy just PR'd fix for Kernel.pm on FreeBSD < 10.0
FROGGS nwc10: no :o( 09:44
RabidGravy: and -r is identical to -K? 09:45
09:46 tinyblak joined
RabidGravy no, -K is always numeric -r is a "string" but that is the same as what other platforms get for version 09:46
FROGGS so -K would just give 10.0 where -r gives 10.0-RELEASE? 09:47
jnthn nqp: todo()
09:47 camelia left
jnthn uh... 09:47
FROGGS :S
jnthn: you killed camelia!
jnthn questions parentage 09:48
09:48 camelia joined
RabidGravy FROGGS, yeah 09:48
jnthn Anyway, there is a todo sub in NQP
FROGGS $ nqp-m -e 'todo("what", 1); ok(2 == 2, "foo")'
ok 1 - foo# TODO what
09:49 yeahnoob left
FROGGS ahh, I just grepped wrongish 09:49
nwc10: ^^
camelia nqp-jvm: OUTPUT«(signal ABRT)*** Error in `java': double free or corruption (!prev): 0x00007ff8c401a8c0 ***␤» 09:50
..nqp-moarvm: OUTPUT«Too few positionals passed; expected 2 arguments but got 0␤ at gen/moar/stage2/NQPCORE.setting:798 (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPCORE.setting.moarvm:todo:0)␤ from /tmp/tmpfile:1 (<ephemeral file>:<mainline>:23)␤ from gen/moar/stage2/NQPHL…»
..nqp-parrot: OUTPUT«Can't exec "./rakudo-inst/bin/nqp-p": No such file or directory at lib/EvalbotExecuter.pm line 188.␤exec (./rakudo-inst/bin/nqp-p /tmp/tmpfile) failed: No such file or directory␤Server error occurred! Closing Link: static.231.60.47.78.clients.your-server.de (Q…»
09:50 ChanServ sets mode: +v camelia
FROGGS uff 09:50
dalek kudo/nom: e295748 | (Jonathan Stowe)++ | src/core/Kernel.pm:
The -K flag to uname wasn't introduced until FreeBSD 10.0
09:51
kudo/nom: c0278ac | FROGGS++ | src/core/Kernel.pm:
Merge pull request #404 from jonathanstowe/nom

The -K flag to uname wasn't introduced until FreeBSD 10.0
FROGGS RabidGravy++
brrt with regards to the small-width-regs some time back 09:52
that requires JIT work too
simpler work than all the rest, but still 09:53
09:55 Ven left 10:04 pdcawley left, laouji left
lizmat m: say nqp::eqat("foo","foo",-42) # jnthn, is this correct nqp::eqat behaviour, or should we attempt to catch negative indexes at the P6 level? 10:10
camelia rakudo-moar 790d0b: OUTPUT«1␤»
nwc10 FROGGS: thanks
lizmat afk again
nwc10 next "Stupid" question. I can do this: 10:19
$ ./nqp-p -V | grep parrot::intvalsize
parrot::intvalsize=4
does anyone happen to know how to do that in NQP code - ie get that size value
(which will be 4 or 8)
moritz nwc10: maybe nqp::nativecallsizeof(int)? 10:20
nqp-m: say nqp::nativecallsizeof(int)
camelia nqp-moarvm: OUTPUT«Confused at line 2, near "say nqp::n"␤ at gen/moar/stage2/NQPHLL.nqp:493 (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQP.nqp:921 (/home/camelia/rakudo-inst-1/share/nqp/lib/nqp.moarvm:comp_unit:872)␤ from gen/…»
nwc10 no, not that 10:21
moritz nqp-m: say(nqp::nativecallsizeof(int))
camelia nqp-moarvm: OUTPUT«8␤»
moritz not that?
nwc10 no, the parrot config value
I know that sizeof(int) is 4 on both 32 and 64 bit systems (for all that we support)
moritz oh
RabidGravy FROGGS cheers buddy
nwc10 and, in theory it's possible to configure parrot to use long long for its intval
it looks to be nqp::backendconfig() 10:22
dalek c: 561d1c6 | paultcochrane++ | lib/Type/Str.pod:
Add docs for subst-mutate
nwc10 now I just have to work out which key...
10:22 camelia left
psch eh 10:22
10:22 cschwenz joined
nwc10 aha 10:22
./nqp-p -e 'say(nqp::backendconfig(){"intvalsize"})'
psch nqp-p doesnt work on camelia :/ 10:23
nwc10: right, backendconfig. i tried here with vmconfig
psch did remeber it was {$something}config...
10:23 camelia joined 10:25 ChanServ sets mode: +v camelia, grondilu joined 10:26 brrt left 10:27 aborazmeh left 10:28 aborazmeh joined, aborazmeh left, aborazmeh joined
RabidGravy I suspect Kernel would best be done using the OS native uname rather than repeatedly shelling out to the uname command, but I guess that is better done elsewhere 10:33
10:37 bjz joined 10:39 Ven joined 10:40 diana_olhovik_ left
arnsholt Wow. I think this is the first time in my life I've actually needed octal numbers in my code 10:41
moritz arnsholt: never wrote a 'chmod 0755 $file' ? 10:44
Ven has only ever done "chmod()" in php code, which accepts 777 and such 10:45
itz ignored PBP telling him not to use 0755 10:46
10:47 bjz left
eli-se A guy I once had the misfortune of working with didn't understand file permissions. He was unable to write to a file, so instead he read it into memory, deleted it and then created a new file with the same contents. 10:47
10:48 aborazmeh left
nwc10 that's silly. obviously you copy the contents to a new name, then delete the old file, then rename it :-) 10:48
Juerd eli-se: In many cases that might even be a good thing, if you delete by moving a newly created file over it.
moritz well, we have folks in the ops teams that think the solution to hanging processes is to write a cron job that kills processes (without investigating the cause of the hang at all) 10:49
eli-se No, just get the permissions right in the first place.
Don't create non-writable files.
nwc10 no, everyone should just log in as root
moritz: but hopefully not *all* the folks in the ops team are like that?
Juerd rename is atomic, so it helps avoid file corruption to create a new temporary file and then rename it.
eli-se: No, removing write permission can be seen as documentation that an atomic write through rename is preferred. 10:50
eli-se Juerd: which is what every API that opens a file, writes a buffer to it and closes it (i.e. the opposite of slurp) should default to. 10:51
10:51 aborazmeh joined, aborazmeh left, aborazmeh joined
Juerd eli-se: I disagree that APIs should take care of this by default because it's very inefficient for large files. 10:51
eli-se I disagree. 10:52
10:52 larion joined, RabidGravy left
moritz nwc10: most are not, thankfully 10:53
10:54 bjz joined 10:56 pdcawley joined 10:59 bjz left, _mg_ left
arnsholt moritz: Not until today =) 10:59
And it was checking the permissions on a file, rather than chmod, but y'know. Same-same 11:00
dalek p: b5a947f | timotimo++ | / (2 files):
bump Moar andthen map the "getcodelocation" op from MoarVM
11:02
timotimo i expect somebody will take this and run with it :) 11:03
moritz but where? 11:04
11:08 YUAAA5WE joined, rurban_ left
cschwenz what changed in camelia between yesterday and today? 11:13
Wednesday, 8 April 2015
========================================
cschwenz 13:46
p6: say (2..10,<J Q K A> X~ <♡ ♢ ♣ ♠>).pick(5)
camelia 13:46
rakudo-moar b05c2c: OUTPUT«K♢ A♡ J♡ J♢ 9♣␤»
camelia rakudo-moar c0278a: OUTPUT«3♡ ♢ ♣ ♠ 10♡ ♢ ♣ ♠ 5♡ ♢ ♣ ♠ 8♡ ♢ ♣ ♠ 6♡ ♢ ♣ ♠␤»
cschwenz Thursday, 9 April 2015
========================================
cschwenz 12:09
p6: say (2..10,<J Q K A> X~ <♡ ♢ ♣ ♠>).pick(5)
camelia rakudo-moar c0278a: OUTPUT«2♡ ♢ ♣ ♠ J♡ ♢ ♣ ♠ K♡ ♢ ♣ ♠ A♡ ♢ ♣ ♠ 7♡ ♢ ♣ ♠␤»
cschwenz camelia 12:09
rakudo-moar c0278a: OUTPUT«Q♡ ♢ ♣ ♠ 4♡ ♢ ♣ ♠ 3♡ ♢ ♣ ♠ K♡ ♢ ♣ ♠ 7♡ ♢ ♣ ♠␤»
11:14 tinyblak left
FROGGS range endpoints are treated differently now 11:15
psch start points too
although neither makes sense to give the new output, in my understanding 11:16
11:16 rindolf left
cschwenz for what it's worth a new build (today) via rakudobrew gives the same result as camelia did on 8-April 11:16
moritz didn't the precedence of X~ change to that of ~ ? 11:17
Ven moritz: think so
moritz m: say ((2..10,<J Q K A>) X~ <♡ ♢ ♣ ♠>).pick(5)
camelia rakudo-moar c0278a: OUTPUT«Q♡ ♢ ♣ ♠ 5♡ ♢ ♣ ♠ K♡ ♢ ♣ ♠ 10♡ ♢ ♣ ♠ 4♡ ♢ ♣ ♠␤»
moritz m: say ((2..10,<J Q K A>) X~ <♡ ♢ ♣ ♠>)
camelia rakudo-moar c0278a: OUTPUT«2♡ ♢ ♣ ♠ 3♡ ♢ ♣ ♠ 4♡ ♢ ♣ ♠ 5♡ ♢ ♣ ♠ 6♡ ♢ ♣ ♠ 7♡ ♢ ♣ ♠ 8♡ ♢ ♣ ♠ 9♡ ♢ ♣ ♠ 10♡ ♢ ♣ ♠ J♡ ♢ ♣ ♠ Q♡ ♢ ♣ ♠ K♡ ♢ ♣ ♠ A♡ ♢ ♣…»
moritz uhm
psch m: say ^3 X~ 'a'..'d' 11:18
camelia rakudo-moar c0278a: OUTPUT«0a 0b 0c 0d 1a 1b 1c 1d 2a 2b 2c 2d␤»
psch m: say ^3 X~ <a b c d>
camelia rakudo-moar c0278a: OUTPUT«0a 0b 0c 0d 1a 1b 1c 1d 2a 2b 2c 2d␤»
masak X~ changed precedence to ~ ?
moritz it looks like X~ doesn't descend into the RHS here?
FROGGS seems so
psch m: say ^3 X~ <♡ ♢ ♣ ♠>
11:18 tinyblak joined
camelia rakudo-moar c0278a: OUTPUT«0♡ ♢ ♣ ♠ 1♡ ♢ ♣ ♠ 2♡ ♢ ♣ ♠␤» 11:18
moritz m: say <♡ ♢ ♣ ♠>.elems
camelia rakudo-moar c0278a: OUTPUT«1␤»
moritz oh
psch well that's kinda magic
moritz m: say <♡ ♢ ♣ ♠>.elems
camelia rakudo-moar c0278a: OUTPUT«4␤»
masak I'd expect X~ to have the precedence of X, not ~
moritz weird whitespace
psch funky spaces?
masak aha
FROGGS ?
moritz m: say ((2..10,<J Q K A>) X~ <♡ ♢ ♣ ♠>) 11:19
camelia rakudo-moar c0278a: OUTPUT«2♡ 2♢ 2♣ 2♠ 3♡ 3♢ 3♣ 3♠ 4♡ 4♢ 4♣ 4♠ 5♡ 5♢ 5♣ 5♠ 6♡ 6♢ 6♣ 6♠ 7♡ 7♢ 7♣ 7♠ 8♡ 8♢ 8♣ 8♠ 9♡ 9♢ 9♣ 9♠ 10♡ 10♢ 10♣ 10♠ J♡ J♢ J♣ J♠ Q♡ Q♢ Q♣ Q♠ K♡ K♢ K♣ K♠ A♡ A♢ A…»
moritz m: say ((2..10,<J Q K A>) X~ <♡ ♢ ♣ ♠>).pick(5)
camelia rakudo-moar c0278a: OUTPUT«4♠ K♢ 5♢ 5♠ Q♢␤»
masak \o/
all is well
psch m: say " ".ord
11:19 muraiki joined
camelia rakudo-moar c0278a: OUTPUT«160␤» 11:19
masak it was just funky spaces
FROGGS ahh
masak nbsp, right?
cschwenz ah, thanks. :-)
masak cschwenz: good one ;)
psch m: say uniname " "
camelia rakudo-moar c0278a: OUTPUT«NO-BREAK SPACE␤»
masak cschwenz: almost had us there :P
psch j: say uniname " "
camelia rakudo-jvm c0278a: OUTPUT«cannot connect to eval server: Connection refused␤»
psch aw
grondilu talking about X, in S03 it is written about it that when the RHS is infinite, only the first element of the LHS will be seen. Couldn't we change that? 11:20
cschwenz sorry, next time i'll be more careful when i paste whitespace. :-(
masak .oO( "I know! Let's invent several code points that look not just exactly the same, but all *blank*, but with different behaviors!" )
cschwenz: no worries -- it was interesting
ENOHUGME
masak hugs cschwenz for this vital lesson in whitespace handling
cschwenz :-) 11:21
11:22 rurban_ joined
grondilu would like to write something like for ^Inf X ^Inf -> $a, $b {...} and have $a and $b cover all the space. 11:23
psch "all the space"? 11:24
grondilu all possible couples ($a, $b)
psch oh, in contrast to "only the first quadrant"?
masak grondilu: a custom `diag-for(^Inf, ^Inf, -> $a, $b { ... });` gets you quite close 11:25
grondilu: barring that, have to wait for Real Macros.
grondilu maybe but eventually I would need to write ^Inf X ^Inf X ^Inf and so on
not to mention using it as a metoperator (eg X~) 11:26
so what I would like is a special semantics when the RHS is infinite.
11:26 bjz joined
grondilu the current one is quite useless anyway. 11:27
masak I guess you could define your own multi sub infix:<X> variant with an adverb...
that almost feels like the cleanest solution
psch :alternate ? 11:28
psch isn't quite sure he's following
masak :diag
psch oh
from diagonal
not diagnostic
masak :diagonally, then :)
grondilu writing a metaoperator seems hard, but I can try.
I don't think I'd need an adverb though. Can't I just override the default candidate? 11:29
I mean create a multi 'where @LHS.elems == Inf' or something.
*@RHS
masak oh right, it's a metaop
I'm not sure we've ever talked properly about user-defining those 11:30
should be totally possible, of course
nwc10 should I expect t/spec/S03-sequence/nonnumeric.rakudo.moar to take forever?
masak even with the optional/default operator like X has
timotimo nqp-m: say(nqp::getcodelocation(&say)<line>); say(nqp::getcodelocation(&say)<file>); 11:31
camelia nqp-moarvm: OUTPUT«No registered operation handler for 'getcodelocation'␤ at gen/moar/stage2/QAST.nqp:1406 (/home/camelia/rakudo-inst-2/share/nqp/lib/QAST.moarvm:compile_op:64)␤ from gen/moar/stage2/QAST.nqp:5208 (/home/camelia/rakudo-inst-2/share/nqp/lib/QAST.moarvm:compile…»
timotimo i should stub that op for JVM so that we don't have to #?if, right? 11:33
FROGGS timotimo: for the uni ops we #if'd them... makes it more clear that it is NYI 11:35
(to me, anyway) 11:36
but... if the stubbed op throws a NYI message would be the same
it would*
timotimo hm 11:37
i was about to implement it as desugaring to nqp::hash("file", "unknown", "line", "unknown")
or perhaps give -1 11:39
dalek p: 1bb9a04 | timotimo++ | src/vm/jvm/QAST/Compiler.nqp:
stub getcodelocation on jvm, giving unknown data for now
11:40
kudo/nom: 68c0009 | timotimo++ | tools/build/NQP_REVISION:
bump NQP for getcodelocation ops on Moar and stubbed on JVM
kudo/nom: b6bc4ec | lizmat++ | src/core/Cool.pm:
Handle negative index values (return False always)
11:43
11:43 xinming_ left
dalek ast: f0e49aa | lizmat++ | S32-str/substr-eq.t:
Add basic Cool.substr-eq tests
11:45
grondilu used the REPL and was a bit confused by the '*' showing up when not ending a line with ';'. Supposes he'll get used to it. 11:50
psch grondilu: hitting enter twice should work too, instead of ending on ; 11:51
grondilu: but it's admittedly a bit unintuitive as-is, TimToady++ had a few ideas how to make it more obvious, but i'm first trying to get the parsing actually-right 11:52
timotimo python's ">>>" and "..." are a bit more obvious, but that may just be "being used to it" 11:53
psch timotimo: i like having ";?" as continuation prompt, and replacing the whole line on enter-on-empty-line
timotimo ;?, interesting 11:54
i don't know what that smiley represents :P
but perl6 is already full of smileys, so it fits :D
osfameron quirky smile with adorable dimple
dalek kudo/nom: 49ba4bf | lizmat++ | t/spectest.data:
Add basic Cool.substr-eq tests
psch replacing with the output that is 11:55
lizmat onwards to Utrecht for NLPW preparations&
psch and maybe with some other continuation prompt on enter-after-not-empty-line
11:55 lizmat left 12:00 tinyblak left 12:06 lolisa joined
nwc10 now has 3 patches for NQP at gitlab.com/nwc10/nqp.git 12:07
(All to do with tests)
(including getting 1 test working again on 32 bit parrot)
itz is that the hipster or stallman github? :) 12:08
masak I think one should get a continuation prompt only if the parser is in term position. both ';' and Enter-twice seem to be hoops the user has to jump through rather than the REPL.
nwc10 itz: it's Dutch. It bought gitorious 12:10
Actually, I think that it's Dutch
it's somewhere in the EU
psch masak: in terms of Perl6/Grammar.nqp that means only calling moreinput in EXPR? 12:11
12:11 _mg_ joined 12:18 egrep joined 12:21 aborazmeh left 12:22 aborazmeh joined, aborazmeh left, aborazmeh joined
nwc10 itz: it's written in Ruby not Guile, so presumably that makes it more hipster than Stallman 12:26
masak psch: I'm not sure, I don't have a good grasp of those bits of the parser. 12:28
psch: but it's mean that `2 + 2` is a finished statement whereas `2 + 2 *` isn't.
12:28 risou is now known as risou_awy
masak psch: basically "can I insert EOF here and it's still a valid program?" 12:29
12:29 risou_awy is now known as risou
psch masak: that'd mean «if 0 { 0 }\nelse { 1 }» doesn't work 12:29
12:29 raiph joined
psch masak: some for «say 1\nif True» 12:29
masak I see what you're saying. but that's not a concern to me. 12:30
or rather, it's a much much smaller concern than not breaking the intuitive behavior of the Enter key
if someone wants to continue on the next line, they can Shift+Enter or something
that's the way the Chrome Dev Console does it. 12:31
psch i hadn't thought of that approach at all
but it sounds noticably easier
masak glad I could contribute something to the discussion ;)
psch i'm wondering if "paste stuff into the REPL" is a useful use-case
masak also secondary to just typing an expression and hitting Enter 12:32
timotimo fwiw, in many terminals you can ask the terminal emulator to signal copy-pasting to you
by bracketing pasted text in two escape sequences
psch actually, i think having a smart and a dumb REPL might be even more sensible 12:34
the first is what we had before my moreinput changes
the latter is with tab completion and moreinput 12:35
err
the other way around :)
eh, no
that'd maybe be in a module then
this stuff is hard :P
timotimo for a smart repl, i can't stop recommending finally making a IPython backend for perl6 :P 12:40
12:40 lolisa left
timotimo but it's kind of something that people might expect me to finally finish working on that 12:40
12:41 lolisa joined 12:42 koo5 joined
psch timotimo: i can shift my efforts towards that, if it helps 12:44
timotimo: i'd pull the moreinput stuff again, though, because the current state isn't really that useful
and eventually stuff it in a module instead
and impose "you have to end single statements with a ; if you don't want the continuation prompt" :P 12:45
Ulti +1 for IPython but more specifically Jupyter integration
timotimo what would help me the most would be hints for how the actual code should be structured to make the whole thing work
that includes things like making sure stdout/stderr get passed via the zmq socket
Ulti: that's exactly what i mean with "ipython backend" 12:46
Ulti timotimo there is a perl 5 implementation somewhere but I think it's a bit out of date
I tried looking at the Julia implementation but it does a lot more than the most basic integration
timotimo aye
12:46 xinming joined
timotimo github.com/timo/iperl6kernel/blob/...wrapper.py - here's a python implementation of a part of the protocol 12:47
eli-se I wish I were a python. 12:48
Ulti timotimo Perl 6 has everything we need to do it without any Python though right? 12:49
eli-se I'd have a worriless life.
Ulti eli-se until you try to swallow a hippo
eli-se Or a camel. :3
12:50 aborazmeh left
PerlJam psch: What about making the repl a little smarter about statements ending in } too ? 12:52
12:53 RabidGravy joined
psch PerlJam: it's hard to distinguish cases. a <blockoid> doesn't know if it's from statement_control:sym<if> or routine_def 12:54
if it is from statement_control:sym<if> we might want an else on the next line, if it's not we don't 12:55
(except i do it with masak++'s approach, which i'm not really sure i like)
even though i understand it's probably for the better for a stock REPL
PerlJam I guess an extra ; isn't so bad then :) 12:56
12:57 slavik left
jnthn .tell lizmat well, nqp::eqat is inconsistent with substr, it seems... Probably VM-level ops shouldn't be doing negatives magic with string offsets... 13:01
yoleaux jnthn: I'll pass your message to lizmat.
jnthn .tell lizmat otoh, we often like to throw typed exceptions for these things which probably means doing the check in Perl 6 code anyway.
yoleaux jnthn: I'll pass your message to lizmat.
FROGGS m: if 1 { } else
camelia rakudo-moar 49ba4b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4F65Bkq2rX␤Missing block␤at /tmp/4F65Bkq2rX:1␤------> 3if 1 { } else7⏏5<EOL>␤ expecting any of:␤ parameterized block␤»
FROGGS psch: can't we use the "expecting any of:" for judging? 13:02
like, if we don't expect anything or just expect statement end, then we run the code
13:03 eli-se left, rararara joined 13:04 _mg_ left, slavik joined, _mg_ joined 13:08 virtualsue joined
psch FROGGS: i'm not sure. i think that'd mean checking $/.'!highexpect' for elems > 1 && [0] != "statement end"? 13:08
FROGGS: i don't know if highexpect is available in place where we wouldn't throw normally though 13:09
FROGGS I'm not sure either 13:10
13:11 diana_olhovik joined 13:12 anaeem1_ left, dj_goku joined
timotimo if you "just try to run the code and see if it explodes", you'll run into trouble with BEGIN time things 13:14
cschwenz is there an equivalent to Time::HiRes::time() in perl6? or, from a slightly higher level, how do you time how long a section of code takes to run in perl6?
jnthn If it's not a hugeamount of code 13:15
perl6-m --profile foo.p6
PerlJam cschwenz: you can use the profiler or Benchmark.pm 13:16
cschwenz awesome, thanks jnthn and PerlJam :-)
13:17 fhelmberger joined
PerlJam cschwenz: why are you interested in timing your code? 13:17
cschwenz i ran into a perl6 snippet which runs fine when perl6 is compiled with moar but takes crazy large amounts of time when perl6 is compiled with parrot. 13:18
and i want to find out why 13:19
tadzik hah, well...
your answer is in your question
moar is crazy fast compared to parrot
timotimo that's very true, and kinda sad
cschwenz in that case, who has control of the homebrew "brew install rakudo-star"? because it compiles a perl6 with parrot and that is the *first* thing a newbie to the language will likely try as it is listed as the first way to get Perl6 on rakudo.org/how-to-get-rakudo/ 13:21
PerlJam cschwenz: Are you insterested in working on Parrot such that Rakudo can target it again? Or you were just curious? (btw, you do realize that rakudo-on-parrot has been suspended?)
timotimo [Coke] (iirc) is working on getting rakudo-on-moarvm into homebrew
jnthn Hm, brew is the OSX thingy?
timotimo yes, it is
PerlJam ah
jnthn Ah, then I think [Coke]++
timotimo moarvm itself is already in homebrew, if i understand it correctly 13:22
cschwenz it it, however "brew install rakudo-star" installs a parrot perl6 *not* a moarVM perl6 13:23
timotimo yes 13:24
as i said, [Coke]++ is working on getting the pieces in
cschwenz ah
timotimo next up is nqp, then comes rakudo and finally rakudo star
i'm sure there's more than enough little tweaks necessary to make nqp and rakudo feel welcome and at home in brew's infrastructure
leedo timotimo: i seem to remember it was macports that [Coke] was working on, could be wrong though 13:26
timotimo oh!
damn, i think you're right
leedo homebrew is a bit more popular these days
PerlJam who did the extant rakudo homebrew?
timotimo trac.macports.org/browser/trunk/dp...M/Portfile
awwaiid in addition to iPython (er... jupiter or whatever), nrepl would be a good idea 13:27
and YES, copy-paste into the REPL is a HUGE use-case
timotimo github.com/Homebrew/homebrew/blob/...do-star.rb - doesn't say :\
13:28 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk
awwaiid but a smart-repl can likely detect a paste (based on an event or timing) and slurp it all in as one command if needed 13:28
timotimo it seems like github user "squeeks" initially built the rakudo star homebrew recipe
13:34 ilogger2 joined, ChanServ sets mode: +v ilogger2 13:47 skids joined 13:54 aborazmeh joined, aborazmeh left, aborazmeh joined 13:55 anaeem1 joined 14:00 anaeem1 left 14:04 tinyblak joined 14:05 risou is now known as risou_awy, risou_awy is now known as risou 14:10 Sqirrel joined 14:17 aborazmeh left 14:19 anaeem1 joined
n0vacane Good afternoon gentle perl monks 14:19
moritz hi n0vacane. This is not perlmonks :-) 14:22
14:22 anaeem1 left, anaeem1 joined
Ven .u ℍ 14:23
yoleaux U+210D DOUBLE-STRUCK CAPITAL H [Lu] (ℍ)
n0vacane Sure it may not be perlmonks.org, and I guess the definition 'monk' does not really fit you guys. 14:25
moritz I do have an account on perlmonks 14:26
but it feels a bit different than in here :-)
14:27 anaeem1 left
n0vacane maybe cenobite is a more fitting noun 14:27
moritz www.perlmonks.org/?node=Saints+in+our+book seems I'm no. 8 by XP in there
n0vacane Cardinal, huh. 14:28
nine .tell lizmat just to let you know: I currently have a real world use case where I need the same module (Crypt::RSA) in two different versions by two different authors in the same process. Too bad, that it's Perl 5 code :)
yoleaux nine: I'll pass your message to lizmat.
n0vacane and it only took eight years!
moritz that's, like, a quarter of my life :-) 14:29
n0vacane moritz, there are some guys that have only be mere priests for 15 years 14:30
PerlJam that's me. (sorta)
14:30 tinyblak left
n0vacane be=been 14:30
PerlJam I'be been on perlmonks since March of 2000 ... and I'm # 258 on that list
moritz n0vacane: well, XP is mostly a sum over activity, not about total time since joining 14:31
PerlJam Clearly I don't have enough free time on my hands :)
moritz well, these days I don't either
n0vacane :) well i guess you need to go on more crusades and missionary work 14:32
14:32 Perl6_newbee joined
PerlJam aside from today, I was apparently on 4 weeks ago (I don't remember it though) 14:33
14:33 eli-se joined
n0vacane So, that site is like stackoverflow for perl 14:34
eli-se omg Stack Overflow
PerlJam n0vacane: but about a decade earlier
moritz the big difference is that that perlmonks encourages discussions, whereas stackoverflow encourages The One True Answer
(and the second big difference is that SO loads much faster) 14:35
n0vacane :) i like this place
PerlJam perlmonks also still uses technology from about a decade before SO ;) 14:36
n0vacane also, it probably only needs a 64mb vps, whereas SO probably needs 64gb of ram to run the site
moritz not quite 14:37
n0vacane if i wanted to take up the cause of perl and become a perlmonk, do i have to become celibate?
moritz, yeah that was probably a stretch 14:38
PerlJam n0vacane: no, but you must celebrate
n0vacane ok :) 14:39
well, have a good afternoon gentle(wo)men !! 14:40
grondilu
.oO( "gentlehuman" would probably do as a gender-neutral word for that)
14:42
jdv79 [Coke]: are you commuting to the nyc thing on 5/2?
14:44 tinyblak joined
flussence last time I heard about SO's servers (I think it *was* almost a decade ago, jeez) it was already needing at least a dozen gigabytes of RAM to handle load... 14:44
PerlJam grondilu: are we all human? ;) 14:45
jdv79 huh. i first logged into PM 2001-7 and last 2009-7. i think that's when irc took over for me. 14:48
14:52 molaf__ joined
muraiki SO actually has a pretty interesting architecture: highscalability.com/blog/2014/7/21/...and-i.html 14:59
apparently they could run on only 5 servers 15:00
15:01 oetiker left
moritz which is rather impressive, given their number of requests 15:01
(whereas iirc perlmonks runs on two web servers and one DB server, serving only a tiny fraction of the requests that SO does)
jdv79 560M/month seems a bit low, no? i think across all the hearst magazine sites (20 or so) we had 30M/day...maybe. my memory isn't great.
mst although perlmonks uses the everything engine which is meta-dynamic to the power N
jdv79 and that all ran on one cluster of super lame mod_perl/mason/HT boxes 15:02
muraiki jdv79: it does seem low, but it someone from SO clarified in a comment: "Page views only account for a fraction of our load. We serve many AJAX/JSON routes and API requests which total over 130 million requests on any given weekday. For example yesterday we handled 150,091,472 requests which is about 1730 RPS on average." 15:06
"At peak we're usually seeing 2600-3000 RPS at about 15% load on each of the 9 primary web servers. For reference: we handled 3,710,241,322 (3.7 billion) requests in the last 30 days."
jdv79 ah 15:08
15:09 rindolf joined 15:14 Perl6_newbee left
dalek href="https://perl6.org:">perl6.org: af7c131 | (Zoffix Znet)++ | source/ (594 files):
Make it more obvious we're reading an archive

Closes #11
15:19
15:21 ZoffixWork joined
timotimo now i'd love to see some examples where we're still lacking line numbers and filenames in error messages where they would be helpful 15:21
so that i can find places to put my nqp::getcodelocation
ZoffixWork Hey all. I need help. I made a boo-boo in the above commit. What's a safe way to fix it (or undo it and commit a new one)? I know there's git rebase -i HEAD~2; git push --force; but AFAIK it isn't safe to do because others have access to the repo or something. 15:22
btyler just write a new commit. you can't rebase a public repo (without making others angry :)
flussence do a revert commit, then a new fixed one
btyler roll on forwards
ZoffixWork btyler, OK, that sounds like a plan. 15:23
timotimo you can "git revert" and it'll make the anticommit of the latest commit
and put it "on top"
if you haven't pushed it yet, you can "git commit --amend" other changes into that revert commit
dalek p: c4044af | timotimo++ | tools/build/MOAR_REVISION:
bump for MoarVM's fixed nqp::getcodelocation
15:24
jdv79 timotimo: how are errors missing location info? isn't that always around and captured already?
timotimo sometimes it may not be 15:25
like when we hit a where block in a signature, does it give the right location then?
we could also offer line numbers for the candidate list of multiple dispatch errors
jdv79 i can see that last one but seems weird there would be multiple ways to get it in the standard exception cases but ok. 15:27
dalek kudo/nom: 5b70da4 | timotimo++ | tools/build/NQP_REVISION:
bump NQP for fixed nqp::getcodelocation
timotimo in regular exceptions it already works fine 15:28
m: say nqp::getcodelocation(nqp::getattr(&[<], Code, '$!do')) 15:31
camelia rakudo-moar 49ba4b: OUTPUT«file => src/gen/m-CORE.setting, line => 5400␤»
timotimo i think this is pretty cool.
dalek href="https://perl6.org:">perl6.org: d4479f9 | (Zoffix Znet)++ | source/archive/ (17 files):
Fixes duplicate wrappers on archive notices

Bad Zoffix! No cookie! (Zoffix Znet)--
masak m: say "a", "c" ... "i" 15:32
camelia rakudo-moar 49ba4b: OUTPUT«a c d e f g h i␤»
timotimo :o
that's terrible
masak I'm of two minds about it. 15:33
15:33 eli-se left
ZoffixWork I love it 15:33
PerlJam interesting
jdv79 what 2 minds?
ZoffixWork m: say "a", "c" ... "i", "k" ... "n", 1 ... 4
camelia rakudo-moar 49ba4b: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏n' (indicated by ⏏)␤ in method Numeric at src/gen/m-CORE.setting:15981␤ in sub infix:<==> at src/gen/m-CORE.setting:5394␤ in sub infix:<==> at src/gen/m-C…»
ZoffixWork :( 15:34
PerlJam ZoffixWork: precedence
ZoffixWork Ah
Ven masak: seems to also make no sense to me
masak jdv79: (a) it's consistent, although not in the way I expected (b) it's not an arithmetic sequence for chars, like 1, 3 ... 9
timotimo oh, is it just precedence?
ZoffixWork m: say "a", "c" ... "i", "k" ... "n", (1 ... 4) 15:35
camelia rakudo-moar 49ba4b: OUTPUT«a c d e f g h i k l m n 1 2 3 4␤»
masak timotimo: no.
ZoffixWork That's weird.
RabidGravy woah, speaking of PerlMonks (from an hour ago) apparently I have the 124th highest XP and I haven't logged in for six years :-\
masak timotimo: `...` is very loose
looser than comma
timotimo right
what's a good name for an accessor on Code (and Block and Routine and stuff) that'd give file name and line number information? 15:37
masak timotimo: .location ?
RabidGravy just what I was going to say
timotimo good
RabidGravy which can also be conveniently abbreviated to loc (which people will take as line of code) 15:38
PerlJam RabidGravy++ 15:39
masak I think loc is a bit short
PerlJam Are you worried about improper huffmanization?
masak yes.
PerlJam Or just that you think it should stand out more?
masak I agree that 'loc' is cute, but I'm not sure it deserves to be that short 15:40
'location' is longer, but a lot clearer
RabidGravy also "save the short ones for the most used ones" :)
btyler or even 'source-location', since .location and .WHERE are a bit ambiguous
masak 'line-and-file' would also work, I guess, but the dashes are unfortunate
PerlJam I like .loc, but I don't like it enough to argue about it :)
FROGGS .oO( line'n'file ) 15:41
timotimo m: say nqp::getcodelocation(nqp::getattr(&[<], Code, '$!do')).WHAT
camelia rakudo-moar 49ba4b: OUTPUT«␤»
timotimo ENOWHAT
m: say (nqp::hllize(nqp::getcodelocation(nqp::getattr(&[<], Code, '$!do'))).WHAT
camelia rakudo-moar 49ba4b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kScrjTWVaw␤Unable to parse expression in parenthesized expression; couldn't find final ')' ␤at /tmp/kScrjTWVaw:1␤------> 3(nqp::getattr(&[<], Code, '$!do'))).WHAT7⏏5<EOL>␤ expecting any of:␤ …»
timotimo m: say (nqp::hllize(nqp::getcodelocation(nqp::getattr(&[<], Code, '$!do')))).WHAT
camelia rakudo-moar 49ba4b: OUTPUT«(Hash)␤»
timotimo that's probably what i have to do
dalek href="https://perl6.org:">perl6.org: 701bcc2 | (Zoffix Znet)++ | source/compilers/index.html:
Add Zavolaj to Compilers->Supplementals section

Closes #6
15:44
timotimo hmm, i probably also have to hllize the contents of the hash? 15:45
m: say nqp::hllize(nqp::getcodelocation(nqp::getattr(&[<], Code, '$!do'))).<file>.WHAT
camelia rakudo-moar 49ba4b: OUTPUT«(Str)␤»
timotimo m: say nqp::hllize(nqp::getcodelocation(nqp::getattr(&[<], Code, '$!do'))).<line>.WHAT
camelia rakudo-moar 49ba4b: OUTPUT«(Int)␤»
timotimo apparently not needed, cool.
FROGGS timotimo: it might work out on moar better then on jvm 15:50
timotimo gist.github.com/timo/2d01cb18abba25e44462 - if you ask me, this is pretty cool. 15:51
15:51 tinyblak left 15:53 ZoffixWork left, eli-se joined 15:58 telex joined
flussence oh wow, that is nice. 16:01
"only perl can parse Perl" stops being a problem when the language has awesome introspection stuff like that 16:05
16:07 mr-foobar joined
timotimo still a problem, as you have to execute code and you may have untrusted code you want to inspect 16:08
like when you fire up your IDE to analyze your way through a foreign code base
the least thing you would like to see is some malicious BEGIN block not properly being ... blocked
and rm -rf ing your home directory ...
16:09 pullphinger joined 16:10 PZt joined 16:19 koo5 joined
psch timotimo: it occurs to me that we still need moreinput for jupyter, don't we? 16:25
timotimo maybe, maybe not 16:26
depends, really; the console/interpreter parts would like moreinput 16:27
normally, you input multiple lines in a row in the notebook (which is the far more interesting piece of technology they have IMO) and execute it en block 16:29
16:31 mr-fooba_ joined, mr-foobar left
dalek kudo/nom: 20e95b6 | peschwa++ | .gitignore:
Ignore fudged Rakudo test files and the new debug runners.
16:41
psch timotimo: i'll admit i don't quite understand what the notebook does
timotimo: it looks like a browser based editor to me that can build websites?
although that's probably not the cool bit, the export-to-html 16:42
timotimo it's an executable document format, so to say 16:44
16:52 tinyblak joined 16:57 mohij joined 17:02 yvan1 joined
RabidGravy there that's better: 17:03
timotimo m: my Str $foo = "hi"; $foo = Nil; say $foo.perl;
camelia rakudo-moar 5b70da: OUTPUT«Str␤»
RabidGravy [jns@jail0133 ~/.rakudobrew]$ perl6
> say $*KERNEL;
freebsd (8.4.RELEASE.p.4)
dalek ecs: f752ddb | TimToady++ | S03-operators.pod:
some clarifications on sequence semantics
17:09
17:16 lucasb joined
timotimo While looking for '/home/timo/perl6/install/share/perl6/site//home/timo/perl6/moarvm/../install/share/perl6/site/2': no such file or directory 17:17
well, that's helpful!
... not
use of uninitialized value %!metainfo of type Any in string context in method bundle at lib/Panda/Bundler.pm:120 17:23
what exactly did i wrongs? :(
dalek ecs: befb20c | TimToady++ | S02-bits.pod:
"0" is true

Why do people keep thinking I'm not in favor of this change? Oh, because I never specced it, duh.
17:26
timotimo hehehe
17:35 andreoss joined 17:38 caymanboy joined 17:39 beastd joined 17:40 gfldex joined 17:43 Sqirrel left
lucasb I was trying some examples about subscript adverbs: 17:43
m: my @a; say so @a[666] :exists :!p 17:44
camelia rakudo-moar 20e95b: OUTPUT«True␤»
lucasb I just thought it was a little funny exists with other adverbs be true 17:47
I mean, I associate "exists" with boolean, and while most objects are true, there is a limited number of objects that are false. 17:48
timotimo is whipping his json parser into shape so that it can read the MANIFEST for speed comparison purposes 17:51
17:52 FROGGS joined, Sqirrel joined
timotimo we fail pretty hard at non-existing files: perl6 -e 'say "WHATISTHIS".IO.slurp.perl' 17:54
Malformed UTF-8 at line 1 col 21
andreoss how can i embed something in <> backets in order to make a Rat? 17:55
m: my $l = 1; say (<1/$l>).WHAT
camelia rakudo-moar 20e95b: OUTPUT«(Str)␤»
ugexe i was getting that error yesterday myself for something i was working on
timotimo < > doesn't interpolate, andreoss 17:56
you can just use / to make a Rat, too
andreoss m: my $l = 1; say (1/3).WHAT
camelia rakudo-moar 20e95b: OUTPUT«(Rat)␤»
timotimo JSON::Fast is only 7 times slower than JSON::Tiny! 17:57
hooray!
andreoss <> force Rat or what? 1/2*1/3 is not the same as <1/2> * <1/3> in the repl
ugexe would a json parser by any other name parse as fast?
TimToady m: say <1i>.WHAT 17:58
camelia rakudo-moar 20e95b: OUTPUT«(Str)␤»
TimToady that's supposed to be Complex
timotimo m: say 1/2*1/3
camelia rakudo-moar 20e95b: OUTPUT«0.166667␤»
timotimo m: say (1/2)*(1/3)
camelia rakudo-moar 20e95b: OUTPUT«0.166667␤»
timotimo m: say <1/2>*<1/3>
camelia rakudo-moar 20e95b: OUTPUT«0.166667␤»
TimToady rakudo is cheating
it's relying on Str.Numeric to fix it 17:59
or maybe it's just Complex it's still cheating on
m: say <1/3>.WHAT
camelia rakudo-moar 20e95b: OUTPUT«(Rat)␤»
TimToady yeah, Rat got fixed, but Complex didn't yet
timotimo it sort of seems like our junction unfolding optimization is gone :( 18:01
hooray! 18:02
JSON::Fast is *actually* faster than JSON::Tiny now
TimToady I take it you were using junctions...
timotimo yeah 18:03
JSON::Tiny: 1.05user 0.02system 0:01.07elapsed 100%CPU (0avgtext+0avgdata 102260maxresident)k
JSON::Fast: 0.73user 0.02system 0:00.75elapsed 99%CPU (0avgtext+0avgdata 94860maxresident)k 18:04
PerlJam timotimo: what's that parsing? 18:06
timotimo my MANIFEST
FROGGS will work now on getting rid of json parsing/generating for CUR::Installation 18:08
timotimo damn
just as i was building a fast json parser for this task
FROGGS timotimo: the JSON blob was always meant as a temporary thing
timotimo: and we discussed here often that I'd do that 18:09
timotimo right
FROGGS well, "often"
timotimo well, we can use a faster json parser anyway
FROGGS very very true
PerlJam indeed
FROGGS for panda for example
timotimo wow 18:10
5th on my list in the profiler is &return
18:15 cschwenz_ joined
cschwenz_ greetings! 18:15
FROGGS hi cschwenz 18:16
cschwenz_ as promised, i've re-run "brew install rakudo-star"
PerlJam cschwenz_: did it work?
timotimo ah, good
cschwenz_ and, well, see for yourself...
MacBook-Pro:~ cschwenz$ brew info rakudo-star rakudo-star: stable 2014.04 rakudo.org/ Conflicts with: parrot Not installed From: github.com/Homebrew/homebrew/blob/...do-star.rb ==> Dependencies Required: libffi ✔ Optional: gmp ✔, icu4c ✔, pcre ✘ ==> Options --with-gmp Build with gmp support --with-icu4c Build with icu4c support --with-jvm Build also for jvm as an alternate backend. -
argh 18:17
flussence meant to paste a pastebin link? :)
cschwenz_ the tl;dr is brew info is showing "From: github.com/Homebrew/homebrew/blob/...o-star.rb"
one sec, paste bin coming up 18:18
FROGGS 2014.04? 18:19
cschwenz_ pastebin.com/XPEXi23e
so it is pointing at the correct .rb file (and that file shows it should be using moarVM) but when it comes time to install, it uses parrot 18:20
timotimo got down to about 0.71 elapsed
flussence stale local cache?
timotimo huh. 18:21
cschwenz_ flussence: do you happen to know where homebrew keeps its cache? 18:22
flussence not a clue, I'm using gentoo :)
FROGGS I'd try: brew help 18:24
PerlJam cschwenz_: does "brew update
" do anything?
cschwenz_ one sec, checking... also found brew --cache tells you where the cache is
18:25 Rounin joined
cschwenz_ its not a stale cache as i cleared that and it is still using parrot 18:26
PerlJam cschwenz_: maybe try "brew upgrade rakudo-star" ?
caveat lector, I'm just grasping at straws from ubuntu-land :)
cschwenz_ :-)
doing brew upgrade now
18:27 oetiker joined
cschwenz_ the brew upgrade said it added/updated a whole slew of formulas and deleted a few others 18:27
\o/ the brew upgrade was the trick 18:28
==> Downloading rakudo.org/downloads/star/rakudo-st....03.tar.gz 18:29
==> perl Configure.pl --prefix=/usr/local/Cellar/rakudo-star/2015.03 --backends=moar --gen-moar
FROGGS yay!
cschwenz_ it's now off building perl6 with moarVM
FROGGS that does not take that long :o)
cschwenz_ thanks PerlJam!
PerlJam cschwenz_: you're welcome 18:30
timotimo 0.66user 0.01system 0:00.67elapsed 100%CPU (0avgtext+0avgdata 94948maxresident)k
i want your json documents, but they must not contain numbers with exponential notation, negative numbers or decimal points :P
PerlJam now we can start answering your Perl 6 programming questions whenever you have some :-)
timotimo: can't you write a program to generate json docs? :)
timotimo that'd be too easy 18:31
cschwenz_ heh, yeah :-)
timotimo JSON::Tiny: 1.05user 0.02system 0:01.08elapsed 99%CPU (0avgtext+0avgdata 102252maxresident)k
i think that's a neat win. not 10x as i would have hoped, though
PerlJam JSON::Fast uses C or something else?
timotimo hm, actually
0.55user 0.02system 0:00.57elapsed 99%CPU (0avgtext+0avgdata 91960maxresident)k
this is what only slurping the data takes
no, it's pure perl6 with nqp ops
PerlJam ah 18:32
18:33 vendethiel joined
flussence timotimo: here's a script that downloads 150KB of json input, is that big enough? ;) github.com/flussence/HTML5-Entitie...ty-data.p6 18:33
(JSON::Tiny::from-json is 80% of the runtime there) 18:35
timotimo okay, i have a bigger file now 18:36
12.73user 0.05system 0:12.79elapsed 99%CPU (0avgtext+0avgdata 226960maxresident)k 18:37
1.59user 0.02system 0:01.62elapsed 99%CPU (0avgtext+0avgdata 102064maxresident)k
guess which is which
18:37 larion joined
timotimo is slightly pleased 18:38
flussence whoa
(and it's easy to get a ginormous json file - just run --profile and snip it out of the html :) 18:39
FROGGS timotimo: did you check the result?
timotimo FROGGS: why would i? :P
FROGGS :P
dalek ast: 5a9c4e2 | usev6++ | S24-testing/3-output.t:
Add test for RT #115024
18:40
timotimo that could only show i'm doing things wrong
18:41 cschwenz_ left
timotimo damn, things are wrong here :( 18:41
ah, yeah 18:42
when i removed return statements, all my strings turned into "1" :)
18:42 zakharyas joined
FROGGS ohh, so you parse JSON *and* do compression :o) 18:43
18:43 andreoss left
timotimo hahaha 18:44
dalek ast: f513cec | usev6++ | S24-testing/ (3 files):
Rewrite test for output of passer
18:46
timotimo how do i properly diff two files that consist of a single hugely long line
18:46 andreoss joined
flussence find a reasonable delimiter you can s:g/$foo/\n/ on :) 18:47
18:49 Sqirrel left
timotimo right, "," 18:49
oh 18:52
no difference between the two files
FROGGS Probable version skew in pre-compiled 'EVAL_0' (cause: no object at index 26)
:o(
timotimo :o
18:53 Sqirrel joined
timotimo here's another comparison 18:55
61.02user 0.22system 1:01.28elapsed 99%CPU (0avgtext+0avgdata 748364maxresident)k
FROGGS timotimo: that's impressing: gist.github.com/timo/2d01cb18abba25e44462
timotimo 5.86user 0.05system 0:05.92elapsed 99%CPU (0avgtext+0avgdata 171204maxresident)k
FROGGS impressive*
timotimo thank you :)
m: say 748364 / 171204 18:56
camelia rakudo-moar 20e95b: OUTPUT«4.371183␤»
timotimo takes only a 4th of the ram
FROGGS timotimo: I would not mind if you'd replace the json parser in rakudo...
timotimo well, first i'll have to also handle backslash sequences and numbers other than positive integers :P 18:57
FROGGS changing the MANIFEST to perl does not seem to be that easy
18:58 andreoss left 19:01 rindolf left 19:04 baest joined 19:13 _mg_ joined
timotimo and true and false and nan and both inf and... not sure what else 19:19
I will use the test suite of json::tiny for it, too 19:20
19:25 baest left
tony-o timotimo: should i open an rt for the io::socket gist? 19:28
19:38 yvan1 left 19:40 tinyblak left, yvan1 joined
dalek kudo/nom: 0b7c5ba | TimToady++ | src/core/operators.pm:
implement '000'...'077' and such correctly
19:41
ast: 8be2a7a | TimToady++ | S03-sequence/nonnumeric.t:
test '000'...'077' and friends
19:42
19:46 Sqirrel left 19:47 Sqirrel joined 19:57 diana_olhovik joined 20:00 _mg_ left, _mg_ joined 20:02 larion left, larion joined
bartolin timotimo: I didn't follow closely what you implemented wrt line numbers. but maybe RT #120443 can benefit from your work? 20:03
timotimo synopsebot ... ;( 20:05
20:05 _mg_ left
timotimo hm, oof 20:05
dunno
bartolin ah, yes, he's missing. rt.perl.org/Ticket/Display.html?id=120443 20:06
timotimo i don't think we can do much better there with what i made
bartolin :-( 20:07
timotimo what i made gives you the ability to go from any Code object to the line and filename where its implementation begins 20:08
bartolin aha. I'll (try to) keep that in mind 20:09
timotimo++
timotimo thanks :) 20:11
RabidGravy for reference how much memory does that use compared to e.g sub foo {}; I tend to write code with hundreds of small methods rather than fewer long ones 20:14
20:21 larion left
TimToady m: say '000'...'077' 20:22
camelia rakudo-moar 0b7c5b: OUTPUT«000 001 002 003 004 005 006 007 010 011 012 013 014 015 016 017 020 021 022 023 024 025 026 027 030 031 032 033 034 035 036 037 040 041 042 043 044 045 046 047 050 051 052 053 054 055 056 057 060 061 062 063 064 065 066 067 070 071 072 073 074 075 076 077␤»
TimToady m: say '$a'...'&c'
camelia rakudo-moar 0b7c5b: OUTPUT«$a $b $c %a %b %c &a &b &c␤»
eli-se m: say '007' .. 'bond'
camelia rakudo-moar 0b7c5b: OUTPUT«"007".."bond"␤»
eli-se :O
20:23 larion joined
TimToady the strings have to be equal length to get those semantics 20:23
eli-se m: say '007' ... 'bond'
camelia rakudo-moar 0b7c5b: OUTPUT«007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 …»
TimToady m: say 'a0' ... 'f9' 20:24
camelia rakudo-moar 0b7c5b: OUTPUT«a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9␤»
TimToady m: say '❶❶' ... '➓➓'
camelia rakudo-moar 0b7c5b: OUTPUT«❶❶ ❶❷ ❶❸ ❶❹ ❶❺ ❶❻ ❶❼ ❶❽ ❶❾ ❶❿ ❶➀ ❶➁ ❶➂ ❶➃ ❶➄ ❶➅ ❶➆ ❶➇ ❶➈ ❶➉ ❶➊ ❶➋ ❶➌ ❶➍ ❶➎ ❶➏ ❶➐ ❶➑ ❶➒ ❶➓ ❷❶ ❷❷ ❷❸ ❷❹ ❷❺ ❷❻ ❷…»
eli-se nice 20:25
TimToady hmm, something not right there
eli-se m: L: for 1..2 { }; next L 20:26
camelia ( no output )
RabidGravy are they actual little numbered balls or is xchat messing around?
eli-se m: sub f { L: for 1..2 { }; L }; next f
camelia ( no output )
TimToady m: say '❶' ... '➓'
camelia rakudo-moar 0b7c5b: OUTPUT«❶ ❷ ❸ ❹ ❺ ❻ ❼ ❽ ❾ ❿ ➀ ➁ ➂ ➃ ➄ ➅ ➆ ➇ ➈ ➉ ➊ ➋ ➌ ➍ ➎ ➏ ➐ ➑ ➒ ➓␤»
TimToady ah, I see what I did 20:27
eli-se m: sub f(&g) { L: for 1..2 { &g(L); .say } }; f({ next $^a })
camelia ( no output )
eli-se lol
crazy control flow
nwc10 RabidGravy: they are little numbered balls. My terminal is squidging them rather badly. It's easier to see on the web log: irclog.perlgeek.de/perl6/2015-04-09#i_10418138
TimToady m: say '➊ ➊ ' ... '➓➓'
camelia rakudo-moar 0b7c5b: OUTPUT«➊ ➊ ␤»
skids m: say '₂₂'...'₄₀'
camelia rakudo-moar 0b7c5b: OUTPUT«₂₂ ₂₁ ₂₀ ₃₂ ₃₁ ₃₀ ₄₂ ₄₁ ₄₀␤» 20:28
RabidGravy yeah the black ones with white numbers I can't read at all
TimToady m: say '❶❶' ... '❿❿' 20:29
camelia rakudo-moar 0b7c5b: OUTPUT«❶❶ ❶❷ ❶❸ ❶❹ ❶❺ ❶❻ ❶❼ ❶❽ ❶❾ ❶❿ ❷❶ ❷❷ ❷❸ ❷❹ ❷❺ ❷❻ ❷❼ ❷❽ ❷❾ ❷❿ ❸❶ ❸❷ ❸❸ ❸❹ ❸❺ ❸❻ ❸❼ ❸❽ ❸❾ ❸❿ ❹❶ ❹❷ ❹❸ ❹❹ ❹❺ ❹❻ ❹…»
eli-se m: say '❶' * 2
camelia rakudo-moar 0b7c5b: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏❶' (indicated by ⏏)␤ in method Numeric at src/gen/m-CORE.setting:15981␤ in sub infix:<*> at src/gen/m-CORE.setting:5352␤ in sub infix:<*> at src/gen/m-C…»
TimToady you need unival for that
eli-se m: say '⏏' * 2
camelia rakudo-moar 0b7c5b: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏⏏' (indicated by ⏏)␤ in method Numeric at src/gen/m-CORE.setting:15981␤ in sub infix:<*> at src/gen/m-CORE.setting:5352␤ in sub infix:<*> at src/gen/m-C…»
eli-se Now I'm confused by the error message! Help!
TimToady that's not a dig 20:30
*digit
it's just a unicode with a numeric value
m: say unival('❿')
camelia rakudo-moar 0b7c5b: OUTPUT«10␤»
eli-se nice
TimToady m: say unival('⅔') 20:31
camelia rakudo-moar 0b7c5b: OUTPUT«0.666667␤»
skids m: say 'ⅤⅤ'...'ⅧⅧ'
camelia rakudo-moar 0b7c5b: OUTPUT«ⅤⅤ ⅤⅥ ⅤⅦ ⅤⅧ ⅥⅤ ⅥⅥ ⅥⅦ ⅥⅧ ⅦⅤ ⅦⅥ ⅦⅦ ⅦⅧ ⅧⅤ ⅧⅥ ⅧⅦ ⅧⅧ␤»
RabidGravy whoah
TimToady m: say uniprop('⅔','denominator')
camelia rakudo-moar 0b7c5b: OUTPUT«0␤»
TimToady hmm
RabidGravy I foresee some crack parties
so those things would match \d ? 20:34
TimToady no
\d only matches digits, not numbers
RabidGravy ah okay,
but, er, <:Nd> or something 20:35
TimToady m: say "𝟠" ~~ /\d/
camelia rakudo-moar 0b7c5b: OUTPUT«「𝟠」␤»
TimToady .u 𝟠
yoleaux U+1D7E0 MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT [Nd] (𝟠)
TimToady m: say "Ⅷ" ~~ /\d/
camelia rakudo-moar 0b7c5b: OUTPUT«Nil␤»
RabidGravy but 20:36
m: say "Ⅷ" ~~ /<:Nd>/
camelia rakudo-moar 0b7c5b: OUTPUT«Nil␤»
TimToady m: say uniprop "Ⅷ"
camelia rakudo-moar 0b7c5b: OUTPUT«Nl␤»
20:37 diana_olhovik left
RabidGravy so 20:37
TimToady m: say "Ⅷ" ~~ /<:N>/ 20:38
camelia rakudo-moar 0b7c5b: OUTPUT«「Ⅷ」␤»
20:38 diana_olhovik_ joined
timotimo yo moritz 20:39
RabidGravy nothing to fear when attempting to match digits then :)
skids
.oO(Is "Nil" a legal uniprop code? Could be confusing.)
timotimo in JSON::Tiny there's a BEGIN { @*INC.push('lib') } 20:40
20:41 larion left
RabidGravy skids Nl rather than Nil I think 20:41
20:42 larion joined
skids No I'm saying if "Nil" is a valid unicode propset, and someone prints perl6 Nil as a failure as above, they may think it meant unicode "Nil" 20:43
But I guess that's what they get for improper error handling :-)
TimToady but it doesn't print the property there, it prints the match 20:44
people don't confuse oil with øl, or at least we hope they don't 20:45
skids Oh, I misread the backlog.
TimToady I'll leave it up to the Dutch whether nil should be confused with nl
RabidGravy they can argue among themselves about that :) 20:47
TimToady I'd rather earn my first mil than my first ml
20:48 espadrine joined
tony-o nice 20:50
timotimo i cannot find any indication in the json standard or website that a json document must be, at the outermost level, a list or an object 20:54
RabidGravy I think it falls among "truisms" most parsers seem to handle atoms at the top level but suggest this is not compliant with the stanard :) 20:56
TimToady m: say unival("⅞").perl 20:58
camelia rakudo-moar 0b7c5b: OUTPUT«0.875␤»
TimToady m: say unival("⅔").perl
camelia rakudo-moar 0b7c5b: OUTPUT«<2/3>␤»
TimToady cool, already figures out if it's a rational 20:59
m: say unival("𐅷").perl 21:01
camelia rakudo-moar 0b7c5b: OUTPUT«<2/3>␤»
RabidGravy I'll cry if you implement ⅞ + 0.5 to work
TimToady m: say (unival('⅐') * 0.5).base-repeating 21:02
camelia rakudo-moar 0b7c5b: OUTPUT«0.0 714285␤»
RabidGravy cheater 21:03
TimToady well, modules will happen
use vulgar; :)
RabidGravy I fucking do already matey ;-)
TimToady now the tricky ones would be things like 33⅓ 21:06
21:07 zakharyas left
TimToady m: sub postfix:<⅓>($n) { $n + 1/3 }; say 33⅓ 21:08
camelia rakudo-moar 0b7c5b: OUTPUT«33.333333␤»
TimToady I guess it's not that hard
RabidGravy bad larry, BAD BAD!
TimToady m: sub prefix:<⅓>($n) { 1/3 * $n }; say ⅓33
camelia rakudo-moar 0b7c5b: OUTPUT«11␤»
dalek pan style="color: #395be5">perl6-examples: 177116f | paultcochrane++ | categories/99-problems/P01-scottp.pl:
Remove superfluous newlines
perl6-examples: e3cf9a2 | paultcochrane++ | lib/Pod/ (2 files):
perl6-examples: Append source code text (without pod) to example page
TimToady m: sub prefix:<⅓>($n) { 1/3 * $n }; say ⅓pi 21:09
camelia rakudo-moar 0b7c5b: OUTPUT«1.0471975511966␤»
21:09 dalek joined, ChanServ sets mode: +v dalek
TimToady m: sub prefix:<⅓>($n) { 1/3 * $n }; say ⅓π 21:09
camelia rakudo-moar 0b7c5b: OUTPUT«1.0471975511966␤»
timotimo i expect the more exact i make my parser the slower it'll end up being ... 21:12
RabidGravy you know that thing we don't like about people saying perl is a write only language :)
TimToady m: sub prefix:<½>($n) { 1/2 * $n }; sub postfix:<²>($n) { $n * $n }; say { ½π * $^r² }(10) 21:13
camelia rakudo-moar 0b7c5b: OUTPUT«157.07963267949␤»
TimToady m: sub prefix:<½>($n) { 1/2 * $n }; sub postfix:<²>($n) { $n * $n }; say -> \r { ½π * r² }(10) 21:14
camelia rakudo-moar 0b7c5b: OUTPUT«157.07963267949␤»
TimToady closer
ugexe MIME::Base64 failing on jvm sometime in the last couple weeks :( 21:15
21:15 colomon joined
RabidGravy but e.g yeah I was goin in with 21:19
m: sub prefix:<√>($n) { $n**0.5 } ; say √2;
camelia rakudo-moar 0b7c5b: OUTPUT«1.4142135623731␤»
RabidGravy which is nice
TimToady well, we're all irrational here... 21:20
21:20 eli-se left
timotimo gist.github.com/timo/ef1fa0ecf43f8ec0e3c8 21:22
making progress :)
21:25 xdg joined 21:26 skids left
RabidGravy is there any other language that lets you define completely arbitrary operator like this? 21:27
timotimo Haskell
RabidGravy ah
geekosaur haskell is not entirely arbitrary; it limits the operator character set to the Unicode "symbol" category (ies?) 21:28
timotimo m: 187456 / 800276
camelia ( no output )
timotimo m: say 187456 / 800276
camelia rakudo-moar 0b7c5b: OUTPUT«0.2342392␤»
geekosaur so you can't e.g. use a Greek letter as an operator, because it's a Unicode letter category
timotimo m: say 187456 R/ 800276
camelia rakudo-moar 0b7c5b: OUTPUT«4.269140␤»
masak RabidGravy: Fortress also lets you define Unicode operators 21:29
lucasb m: say (1,2,3).map: { $_.WHAT } 21:31
camelia rakudo-moar 0b7c5b: OUTPUT«(Int) (Int) (Int)␤»
lucasb m: say (1,2,3).map: *.WHAT
camelia rakudo-moar 0b7c5b: OUTPUT«1 2 3␤»
lucasb m: (1,2,3).map: *.WHAT.say
camelia rakudo-moar 0b7c5b: OUTPUT«(Whatever)␤Unhandled exception: Method 'count' not found for invocant of class 'Bool'␤ at <unknown>:1 (/home/camelia/rakudo-inst-2/share/nqp/lib/Perl6/BOOTSTRAP.moarvm::4294967295)␤ from src/gen/m-CORE.setting:9634 (/home/camelia/rakudo-inst-2/sh…»
lucasb ^^ I keep finding this bug :)
TimToady WHAT is not really a method 21:32
lucasb Oh
21:32 pullphinger left
RabidGravy y'see I have a fear that in ten years, I'm beginning to get $a  $b in some code and not have aclue what is going on 21:34
TimToady well, then you'll contribute to the social feedback loop by shooting someone 21:35
geekosaur would second that, given experience with <+> in xmonad (and defined in a different way in some other libraries, and when people look for those they find xmnonad's)
RabidGravy TimToady++ # true
masak RabidGravy: operators are just subroutines with special parsing rules. I don't see a similar widespread fear about proliferating subroutines. :) 21:36
geekosaur eyes typos, sigh
you would if they were all limited to 1-3 characters
which is about the limit you tend to see for operators
and it's hard to make such self-descriptive
TimToady that's what the mouseover is for 21:37
masak FROGGS: I can't seem to be able to reply on RT right now. but re rt.perl.org/Public/Bug/Display.html?id=78200
RabidGravy masak, you may have a different sort of brain than mine, but I'd kill someone who call a sub  as well
TimToady obviously it's a mutator of some sort, since it replaces the object 21:38
masak RabidGravy: I don't mind custom operators as long as they're elegant and motivated.
FROGGS: (a) that's not how "instantiated" is spelled
TimToady fully expects that Sturgeon's Law will continue to hold true.
ugexe my @encoding-chars = 'A'..'Z','a'..'z','0'..'9','+','/'; <-- exception on jvm... reason for MIME::Base64 failing on jvm 21:39
masak FROGGS: (b) I want to detract my code example, which does not highlight the OP's complaint (that the variable holding the type object is important yet does not figure in the error message)
retract*
TimToady: custom operators are fine, as long as they are the remaining 10% :)
'night, #perl6 21:41
TimToady o/
TimToady --> ꆆ
21:42 diana_olhovik_ left
dalek kudo-star-daily: 8ec165d | coke++ | log/ (2 files):
today (automated commit)
21:45
rl6-roast-data: 578f6b4 | coke++ | / (9 files):
today (automated commit)
rl6-roast-data: bfcb510 | coke++ | / (4 files):
today (automated commit)
rl6-roast-data: eff8d72 | coke++ | / (2 files):
today (automated commit)
21:47 bjz joined
RabidGravy nighty night 21:51
21:53 eli-se joined 21:54 beastd left 21:55 vendethiel left 21:58 Sqirrel left 21:59 colomon left 22:00 lizmat joined
[Coke] I am belatedly on the side that "0" should be true. if you want ?+"0", instead of ?"0", that's a simple thing. 22:01
22:01 larion left 22:03 Sqirrel joined, larion joined
eli-se I think pack should default to middle endian. 22:05
To be a reasonable compromise between big and little endian.
timotimo # Looks like you failed 2 tests of 90
jercos unspec endianness could be an error as far as I'm concerned :| 22:06
If someone *wants* native-endian, they can specify that :p
22:06 lucasb left
lizmat .botsnack 22:10
yoleaux :D
13:01Z <jnthn> lizmat: well, nqp::eqat is inconsistent with substr, it seems... Probably VM-level ops shouldn't be doing negatives magic with string offsets...
13:01Z <jnthn> lizmat: otoh, we often like to throw typed exceptions for these things which probably means doing the check in Perl 6 code anyway.
14:28Z <nine> lizmat: just to let you know: I currently have a real world use case where I need the same module (Crypt::RSA) in two different versions by two different authors in the same process. Too bad, that it's Perl 5 code :)
lizmat .tell nine the solution is simple: Inline::Perl6 -> Inline::Perl5 -> other version :-) 22:11
yoleaux lizmat: I'll pass your message to nine.
lizmat .tell jnthn that's what b6bc4ecd08b4792d73ab0ee9da01edac60a909c0 did (well, checking, not throwing, not sure what would be best in this case) 22:12
yoleaux lizmat: I'll pass your message to jnthn.
22:13 bjz left, gfldex left
lizmat .tell jnthn perhaps an X::OutOfRange exception would be best, to stay in line with .substr 22:13
yoleaux lizmat: I'll pass your message to jnthn.
timotimo hell yeah! 22:16
the only test i'm not passing any more is "error out if numbers start with a 0"
[Coke] jdv79: yes, I'm taking the train down on the 2nd. 22:17
22:18 espadrine left 22:19 telex left 22:20 telex joined 22:21 vendethiel joined
timotimo 9.80user 0.05system 0:09.86elapsed 99%CPU (0avgtext+0avgdata 195788maxresident)k 22:23
67.11user 0.23system 1:07.39elapsed 99%CPU (0avgtext+0avgdata 800028maxresident)k
example_data.json ← 5.3M
lizmat m: "foobar".substr-eq("bar",*-3) # it appears .substr-eq needs a little work still 22:31
camelia rakudo-moar 0b7c5b: OUTPUT«Cannot call substr-eq(Str: Str, WhateverCode); none of these signatures match:␤ (Str:D: Cool $needle, Cool $pos, *%_)␤ (Cool:D: Cool $needle, Cool $pos, *%_)␤ in block <unit> at /tmp/P3zhJdsZsf:1␤␤»
lizmat is going to sleep on that
timotimo good night, lizmat! 22:33
did you see i made a fast json parser?
22:33 [particle] joined
Zoffix \o/ 22:44
22:45 nbdsp joined
nbdsp Greetings! Could someone advise please is there a way to get the textual name of a function within that function? 22:47
22:48 sorear joined
timotimo m: sub foobar { say $?ROUTINE.name }; foobar() 22:48
camelia rakudo-moar 0b7c5b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uOjc5l4oi7␤Variable '$?ROUTINE' is not declared␤at /tmp/uOjc5l4oi7:1␤------> 3sub foobar { say $?ROUTINE.name7⏏5 }; foobar()␤ expecting any of:␤ method arguments␤ postfix␤»
timotimo m: sub foobar { say $?BLOCK.name }; foobar()
camelia rakudo-moar 0b7c5b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/W6_HqMRZDc␤Variable '$?BLOCK' is not declared␤at /tmp/W6_HqMRZDc:1␤------> 3sub foobar { say $?BLOCK.name7⏏5 }; foobar()␤ expecting any of:␤ method arguments␤ postfix␤»
timotimo hmm
m: sub foobar { say callframe(0) }; foobar() 22:49
camelia rakudo-moar 0b7c5b: OUTPUT«CallFrame.new(level => 2, annotations => {:file("/tmp/QUv00qVBdM"), :line("1")}<>, my => EnumMap.new("\&?ROUTINE" => Mu, :RETURN(Mu), "\$!" => Mu, "\$/" => Mu, "\$_" => Mu, "\$*DISPATCHER" => Mu))␤»
timotimo :\
geekosaur m: sub foobar { say &?ROUTINE.name }; foobar(); 22:53
camelia rakudo-moar 0b7c5b: OUTPUT«foobar␤»
timotimo ooooh 22:54
d'oh :)
thank you
nbdsp geekosaur: thanks!
geekosaur might be nice if there were sigil typo checks,...
("did you mean &?ROUTINE?")
timotimo yeah 22:56
well, $? variables are "special"
22:57 nbdsp left 22:58 Rounin left 23:04 BenGoldberg joined 23:05 eli-se left 23:09 xdg left, vendethiel left 23:12 virtualsue joined 23:15 mohij left
ugexe sent a PR for MIME::Base64 to work on jvm again and rip out the parrot stuff. if someone could ok it thatd be great github.com/perl6/Perl6-MIME-Base64/pull/4 I dont want to just merge it in because .new($backend) won't work anymore (its not needed, as moar and jvm can use the same backend) so someone else should probably give their opinion on that 23:16
s/merge it in/merge it in myself/
dalek osystem: 10bc913 | timotimo++ | META.list:
add JSON::Fast, drop-in replacement for JSON::Tiny
23:20
23:27 virtualsue left
dalek kudo/nom: 5a3f388 | Coke++ | t/spectest.data:
add passing test file
23:28
[Coke] ... why is that an upper case coke? 23:37
Zoffix ... why is that not 'Will Coleda'? 23:38
It uses my full name on mines...
[Coke] there's a mapping somewhere.
but the last commit in this channel from me was coke, not Coke 23:39
Zoffix weird
Maybe the mapping is repo-dependant? 23:40