»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by moritz on 3 May 2013.
jnthn r: say 13 % -4 00:06
camelia rakudo 51d024: OUTPUT«-3␤»
jnthn JVM says "wtf is a negative modulus" :P
timotimo hehe.
masak a negative modulus has two major interpretations. 00:07
depending on what invariant you want to preserve.
diakopter r: say 13 % i
camelia rakudo 51d024: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤ in method Real at src/gen/CORE.setting:869␤ in sub infix:<%> at src/gen/CORE.setting:3193␤ in sub infix:<%> at src/gen/CORE.setting:3190␤ in sub infix:<%> at src/gen/CORE.setting:3193␤ in …
00:07 colomon left
timotimo indeed. annoys the hell out of me :( 00:07
masak see table at en.wikipedia.org/wiki/Modulo_opera..._operation 00:08
timotimo oh, i think i know what the stray infix:<,> is for 00:11
... nope :/
sorear jnthn: if I move to add module-like features that require Java code to support (like Java interop and/or a threading API), should the support code go in nqp or rakudo, or perhaps should I try to add a pir::loadlib-like functionality so such things can be done entirely outside? 00:20
that was a bad question
diakopter also, scary :D 00:21
sorear actually I think I can write out-of-core code which uses map_classlib_hll_op and QAST to bootstrap its own code 00:28
but it'll be crazy and it'll probably play really badly with serialization
actually, that makes me wonder...
if I'm understanding the design correctly, Perl6/Ops.nqp, when compiled, creates a repossession for the QAST opcodes hash 00:29
is it possible to load two HLLs in the same NQP GlobalContext?
without a repossession conflict?
jnthn sorear: Hm, that's probably an issue 00:31
sorear: Suspect the support coe for Java interop maybe belongs in NQP
raiph iirc some perl person promulgated a principle that you be accepting of dodgy/mean input (what folk say) but precise/nice in your output (what you say). anyone know what i'm talking about? 00:34
timotimo that's just basic IEEE principles 00:35
en.wikipedia.org/wiki/Robustness_Principle 00:36
sorear en.wikipedia.org/wiki/Jon_Postel#Postel.27s_Law
timotimo same link
dalek p: 231d1f2 | jonathan++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Try getting bigint negative modulo working.
timotimo well, okay, one hop.
masak you should be more conservative in emitting links! :P
jnthn We've now gone from crashing on test 3 of arith.t to failing just 5 of the 143 tests in there :) 00:37
timotimo \o/
this is so awesome news
sorear \o/
ssutch nice
raiph timotimo: thanks. that's the underlying principle. (i thought some perl person applied postel's law to human communication) 00:38
sorear jnthn: java interop in nqp, not as a perl6module?
00:38 btyler joined
timotimo :) 00:38
jnthn sorear: I think the lower level supporting stuff belongs in the nqp repo. Rakudo could do with some sugar layer for it too.
raiph jnthn++ sorear++ #perl6++ # hard to express how great it feels to see this 00:39
sorear but I haven't even done anything! :D 00:40
perigrin sorear++ # not getting in the way! 00:41
00:47 tomyan left
timotimo make returns from the routine, right? 00:47
jnthn no 00:49
timotimo good to know
Error while compiling op eqaddr: No registered operation handler for 'eqaddr' 00:53
can no longer compile on parrot 00:54
needs an #if jvm?
00:54 xilo_ joined
jnthn huh... 00:54
timotimo oh
may need newer nqp?
jnthn Bit surprised that nqp::op ain't mapped on Parrot
00:54 tgt left
jnthn that or an entry in Operations.nqp 00:54
00:55 xilo_ left, xilo_ joined
timotimo seems that helped 00:57
timotimo makes a jakudo spectest just for funsies 00:58
interested in the results?
perigrin is it interesting?
sorear uh 00:59
what's =:= mapped to?
jnthn sorear: after building lateest Rakudo and NQP, I'm getting: 01:00
java.nio.file.NoSuchFileException: CORE.setting.jar
oh, maybe I should re-Configure?
sorear yeah 01:01
reconfigure both
jnthn ah, yeah
Did NQP, forgot Rakudo
huh...apparently forgot NQP too
Unknown compilation target 'jar'
sorear rakudo uses =:= and eqaddr heavily inside
jnthn oh, forgot prefix... 01:02
sorear maybe install didn't work?
aha
jnthn tries agian
though will have to head for the train soonish I guess
oh no, another 15-20 mins before that
timotimo oh? t/spec/S04-statements/loop.t ................................. 1/15 Error in socket connection:org.perl6.nqp.runtime.UnwindException
t/spec/S05-metachars/newline.rakudo.jvm ...................... Failed 2/15 subtests (2 TODO tests unexpectedly succeeded) 01:03
sorear the error is a ittle misleading there 01:04
nqp catches almost all exceptions and funnels them into the p6exception mechanism
timotimo mhm
sorear but sometimes it fails and then the harness sees the uncaught exception and blames it on a socket
timotimo good point 01:05
the IO tests don't work because of the eval servers 01:07
?
01:07 tgt joined
jnthn sorear: Nope, still gives me the same thing... :( 01:08
wait, what... 01:09
01:09 ugexe left, ugexe joined
jnthn oh no, it's copying to the right place 01:09
01:10 FROGGS left
jnthn hmm 01:11
sorear: Turns out that if you have .class files leftover in the install directory then they take precedence 01:12
sorear: deleted those and now it seems happier 01:13
timotimo jnthn: gist.github.com/timo/8a50eb8a3360e.../revisions
01:15 Chillance left
timotimo good work, jnthn++ and sorear++ 01:16
masak 'night, #perl6 01:17
sorear beautiful 01:18
timotimo masak: 'night
sorear night masak
timotimo (you may also appreciate the last link i posted before bed)
dalek kudo/nom: 30c82c7 | jonathan++ | src/core/Num.pm:
Fix Num.new
01:19
jnthn timotimo++ # thanks! 01:20
home, sleep &
timotimo home, sleep home. 01:21
01:23 FROGGS joined
timotimo FROGGS: gist.github.com/timo/8a50eb8a3360e.../revisions - lookie lookie what sorear and jnthn did today :) 01:24
diakopter whoa 01:33
01:33 colomon joined
sorear colomon: gist.github.com/timo/8a50eb8a3360e.../revisions 01:35
colomon sorear: what's the scope of those changes? is that just today? 01:36
timotimo colomon: yes, the previous revision was 1 day ago
colomon \o/
-Files=713, Tests=14954, 712 wallclock secs ( 3.30 usr 0.67 sys + 14.60 cusr 2.79 csys = 21.36 CPU) 01:38
+Files=713, Tests=17904, 680 wallclock secs ( 3.32 usr 0.73 sys + 14.46 cusr 3.38 csys = 21.89 CPU)
is that the passed test?
*tests
timotimo i don't think anybody knows, i don't
colomon I mean, we have 3000 additional passing tests, and it ran faster, if anything?
sorear colomon: jnthn++ has been busy today. 01:39
colomon or just 3000 more tests run.
that's just insane, either way.
timotimo :D
sorear we currently have failures in 270 files. 01:40
timotimo out of how many? 01:41
sorear 713
r: say 270 / 713
camelia rakudo 51d024: OUTPUT«0.378682␤»
sorear r: say 1 - 270 / 713
camelia rakudo 51d024: OUTPUT«0.621318␤»
sorear 62% of the files in spectest.data pass completely
timotimo OH YEAH
colomon is really struggling not to make rash statements about how fast this is going 01:42
timotimo S curve, don't forget
i was just trying to run a few of my rosettacode examples. one fails 1. because MAIN doesn't work yet (CodeRef NYI in JVM) and then 2. because "method encoding not found" in slurp 01:43
sorear r: say 1 - 339 / 713
camelia rakudo 51d024: OUTPUT«0.524544␤»
sorear previous run in timo's repository was 52% passing 01:44
colomon: "at this rate, we'll be passing 400% of roast by august"
colomon timotimo: I have about as much experience as anyone getting p6 implementations to pass spectests. And in my experience, getting 16,000 tests working this fast is *really* impressive.
timotimo another one has a Null Pointer Exception in some thingie 01:45
colomon and mind you, you say S curve, but if anything, it generally gets easier to get tests passing as you go, right until you get down to the last few tough ones. 01:46
timotimo right 01:47
still S formed :)
somewhat
but yeah, i'm pretty amazed, too 01:48
colomon also, at least in previous attempts, the further you go, the more accessible the failures become. Like the earliest ones took jnthn or pmichaud or sorear to fix, but later on it's stuff that the rest of us can tackle pretty easily.
timotimo except all the things i've been using are still among those 40 odd percent ;)
colomon timotimo: that's always the way it goes, until you start fixing the things yourself. ;) 01:50
timotimo that's way over my head 01:51
dalek ecza: 6672fa2 | (Solomon Foster)++ | lib/CORE.setting:
Rewrite infix:<⊍> and infix:<⊎> to take parcels.
01:59
02:04 SamuraiJack joined
timotimo fails to parse something with grammars on jvm 02:07
oh, something entirely different was the matter! 02:08
02:08 benabik left
timotimo er, it should have said "CallFrame NYI on JVM" above. 02:09
02:10 benabik joined
timotimo yeah, my grammar doesn't parse the text. sad :( 02:10
yeah, i use a lot of features from the S05 where things fail 02:13
i stumbled upon those, too, interestingly: t/spec/S06-multi/positional-vs-named.rakudo.jvm .............. Failed 21/27 subtests 02:15
02:22 xilo_ left 02:26 xilo joined, xilo_ joined 02:28 xilo left, xilo joined, xilo left 02:29 xilo joined 03:04 FOAD joined
raiph Divided we fall www.reddit.com/r/perl/comments/1gu4...d_we_fall/ 03:20
03:22 jaldhar joined 03:32 JimmyZ joined 03:34 tgt left 03:35 preflex left, preflex_ joined, ChanServ sets mode: +v preflex_, preflex_ is now known as preflex 03:48 dwimwit left 04:04 BenGoldberg left 04:06 SamuraiJack left
labster raiph++ is doing the job that I should be doing. 04:08
benabik upboats for raiph 04:12
raiph++, even 04:14
JimmyZ raiph hoelzro: i know of a uber hacker who will work on moarvm but not jvm or parrot. 04:15
JimmyZ wonders whom
04:27 Psyche^ joined 04:30 Patterner left, Psyche^ is now known as Patterner 04:41 fgomez joined 04:47 JimmyZ left, btyler left
ssutch raiph ++ 04:48
04:49 woosley1 joined
raiph heh. so i post about division. 5 votes up. 5 down. :) 04:51
(i think it's just u guys being friendly vs others thinking it's too weird/long/complex) 04:52
(but still amuses me)
ssutch brb dinner
also reddit games it, every upvote gets ~.5 downvotes
ok dinner for realz
04:52 btyler joined 04:54 JimmyZ joined 04:57 btyler left 05:16 kaare_ joined 05:20 Rotwang joined 05:30 tomyan joined 05:35 SamuraiJack joined, SamuraiJack left 05:41 SamuraiJack joined 05:44 SamuraiJack_ joined 05:46 SamuraiJack left 05:48 SamuraiJack_ left 05:49 SamuraiJack_ joined
moritz \o 05:49
05:49 cooper left 05:50 SamuraiJack__ joined 05:51 SamuraiJack_ left 05:55 SamuraiJack joined, SamuraiJack__ left 05:56 cooper joined 05:59 popl joined, popl left 06:00 popl joined 06:01 popl left 06:05 popl joined
popl sorry for the joining/rejoining; seems my tmux has an issue with UTF-8. 06:06
benabik O.o
popl benabik: I know! 06:07
benabik tmux is usually so good
diakopter »ö
ö«
ö
popl I'm just in rxvt-unicode now.
diakopter: thanks for trying to mess with me. :P 06:08
diakopter »«
benabik >.<
JimmyZ chatzilla always kills my firefox with black screen :(
popl I stopped using Chatzilla soon after it came out in like 2000 or something. 06:09
diakopter: seriously though, I'm not serious. :) 06:10
I'd like to troubleshoot the issue but it's not the forum to do so.
There are significantly less people in here than in #perl. do the Perl6 people hang out on MagNET? 06:11
*do more of the
ssutch seems like a lot are here 06:12
[of the population]
popl ssutch: So the community is small?
diakopter popl: _all_ the p6 community is here
popl Well "small" is relative, sure. But I hope you understand my meaning.
ssutch im new, but doesn't seem to be gigantic
diakopter 0.001% of the p5 community is on irc
popl I have been on the IRC bits for years now and I am afraid to delve into the mailing lists. :) 06:13
06:14 cooper left
popl diakopter: Is that a hard statistic? 06:14
diakopter of course not.. not more than a couple degrees of freedom or decimal orders of magnitude off 06:15
popl I suppose it's impossible to say.
06:19 tomyan left
diakopter .ask lizmat no more irc? 06:19
yoleaux diakopter: I'll pass your message to lizmat.
popl Thanksf or the dialogue. 06:20
ssutch the commits to rakudo are impressive and encouraging
diakopter ssutch: one of these days it'll be on MoarVM too..
06:20 cooper joined
ssutch very cool, hopefully i can contribute 06:21
diakopter ssutch: you can now :P
popl MoarVM is an interesting name.
ssutch diakopter: doing what i can, still learning the ropes (there are a lot of ropes)
benabik We didn't have enough VMs, so we made one moar.
diakopter ssutch: you're way past me on those dimensions
(not saying much tho) 06:22
06:22 SamuraiJack_ joined
benabik didn't know anybody had implemented ropes yet. ;-) 06:22
diakopter gar
ssutch pffah
06:22 SamuraiJack left
benabik should probably not be talking in public at this hour. 06:22
diakopter my strands are better tho, afaict
should probably document them or something 06:23
ssutch i got up to get a beer, forgot, and came back to my computer 06:24
diakopter I should do that 06:25
popl forget to get a beer?
ssutch might as well write another test case then get a beer
diakopter I need the exercise
ssutch: srsly tho, you write C?
wait, I know this
ssutch yeah
diakopter ssutch: we're in #moarvm :D 06:26
(writing a new Perl VM) 06:27
(slowly the past few weeks)
(well, slowly the past 5 months for me)
ssutch im aware of the vm, but not aware of the irc channel ;)
diakopter hm.
I probably should at least clone the MoarVM repo for the first time. 06:28
.. that would probably require learning some git.
06:28 SamuraiJack_ left
diakopter I'm so backwards. 06:28
sorear is C really that hard?
benabik diakopter: How have you been working on it without a clone?
diakopter sorear: hard? 06:29
benabik: well there was a private repo
that I'm still using, stupidly
sorear and where did github.com/diakopter/sprixel come from if you can't git? o_O
diakopter :)
ssutch svn-git 06:30
benabik diakopter: You can add the remote without cloning anew. (Or you can just clone if you need a new copy anyway.)
diakopter Git Extensions is my fav
sorear diakopter: dunno, people often act like "oh, this is much easier to hack because it's not in C"
diakopter C is a billion times easier than Perl
popl I concur. It's OWTDI instead of TIMTOWTDI. 06:31
I have more fun writing Perl though.
06:32 cooper left
popl sorear: C is intimidating. 06:35
06:37 konundra left, potatogim joined
popl C is an archaic beast from a different time. 06:38
06:39 potatogim left
diakopter sorear: looking at that particular sprixel repo makes me ... giggle... among other things 06:39
06:39 potatogim joined
ssutch C is like socks. Everyone needs socks. Except for hippies who only wear sandals, or those toe shoe things. But even hippies need socks sometimes, even if they wear them in sandals. 06:39
06:40 potatogim left, Rotwang left, potatogim joined
sorear is not particularly hippieish in general but wears sandals whenever possible 06:41
JimmyZ I see moar in sprixel repo commit msg :D
sorear heya JimmyZ
ssutch sandals are comfy :)
diakopter JimmyZ: wait what?
popl I have weak ankles and therefore wear boots. 06:42
JimmyZ diakopter: github.com/diakopter/sprixel/commi...1ca7de43f1
diakopter heh.
JimmyZ sorear: good afternoon or evening
sorear good * 06:47
diakopter lue: your nick is an acronym? 06:48
ssutch lol, i really wish this showed me *where* ===SORRY!=== Could not find symbol '&ExtensionField' 07:04
sorear ssutch: pass --ll-exception to the compiler to get a usable backtrace 07:08
ssutch sorear: neato, thanks
sorear and that particular error message is probably secondary to trying to throw something
jvm?
07:09 konundra joined
ssutch sorear: nah, parrot 07:09
07:09 raiph left
ssutch r: class Omg::Nowai { our constant $MAX of Int = 536_870_911; }; say Omg::Nowai::MAX; 07:15
camelia rakudo 51d024: OUTPUT«===SORRY!===␤too many named arguments: 1 passed, 0 used␤at /tmp/oW17qrO13E:1␤------> ␤»
ssutch r: class Omg::Nowai { our Int constant MAX = 536_870_911; }; say Omg::Nowai::MAX; 07:16
camelia rakudo 51d024: OUTPUT«536870911␤»
07:19 cosimo joined 07:23 JimmyZ left 07:26 SamuraiJack joined 07:43 JimmyZ joined
ssutch r: sub F(:$start) { say $start; }; say F(|{'start'=>1}); 07:43
camelia rakudo 51d024: OUTPUT«1␤True␤»
07:44 grondilu joined
ssutch r: sub F(:$start, :$end) { say $start, end; }; say F(|{'start'=>1}); 07:44
camelia rakudo 51d024: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'end' will never work with no arguments (lines 1, 1)␤ Expected any of:␤ :($a)␤»
ssutch r: sub F(:$start, :$end) { say $start, $end; }; say F(|{'start'=>1});
camelia rakudo 51d024: OUTPUT«1(Any)␤True␤»
ssutch sweet 07:47
timotimo ohai people 08:04
sorear hi timotimo
timotimo lue: thank you for the semilist mention patch
there's a commit in the specs repo with an id starting with "70bad1" 08:05
labster I blogged lol: blog.brentlaabs.com/2013/06/camelia...ebuts.html 08:24
sorear labster: By the rate things are progressing, and I'm sure it's already at a higher percent by now. # this sentence appears to contain zero or more grammatical errors 08:27
timotimo there were no commits (that i have seen) between you posting that and my update of the spectest run gist :( 08:30
labster I'm sure it's higher on jnthn or sorear's local copy then ^_^ 08:33
timotimo :)
i posted it directly before jnthn went to bed, though :|
hm, so, eqaddr still doesn't seem to exist 08:34
labster sleep-coding? ...
sorear labster: I haven't actually been fixing any bugs super-recently
I've been optimizing, and prototyping a java library interop system 08:35
labster you two are ruining a young man's dreams.
timotimo dir is NYI on JVM backend <- does this seem like a good candidate to start working on? 08:36
oh hey, there *were* changes in rakudo after i made the spectest! 08:37
d058373..30c82c7 - these, to be exact
should i run another spectest?
i think i shall :)
labster if you want. my statement is still correct expressing the rate of progress we've had lately. 08:38
timotimo yeah
it'll make me feel good i hope :P
labster dir()/IO::Path.contents has problems. 08:39
sorear timotimo: that's funny, my local {nqp,rakudo}-jvm has a perfectly good nqp::eqaddr
labster there's no readdir op in parrot yet.
timotimo so what, i can just add an #if jvm block for the time being 08:40
labster sounds cool to me, then. try to make it a lazy list. 08:41
sorear r: say nqp::eqaddr(&say,&say)
camelia rakudo 51d024: OUTPUT«===SORRY!===␤Error while compiling block (source text: "say nqp::eqaddr(&say,&say)"): Error while compiling op call: Error while compiling block : Error while compiling op call (source text: "say nqp::eqaddr(&say,&say)"): Error while compiling op eqaddr: No regist…
sorear nqp: say(nqp::eqaddr(&say,&say))
camelia nqp: OUTPUT«1␤»
timotimo ...huh? 08:42
weird!
sorear r: say(&say =:= &say)
camelia rakudo 51d024: OUTPUT«True␤»
timotimo indeed!
the hell?
sorear timotimo: the =:= op compiles to an eqaddr. I have no idea how one works but not the other.
08:45 popl left
timotimo er, now i compiled it successfully ?!? 08:46
oh, i replaced the =:= op with the old verison 08:48
i think properer semilist support comes before dir support. 08:50
i think create-jvm-runner is wrong; it looks for eval-client.pl in the wrong directory: is nqp/install, should be: nqp/tools/jvm/ 08:53
and it seems like the makefile doesn't create a core setting jar, just a core setting class :( 08:54
08:54 jlaire left 08:58 jlaire joined 08:59 grondilu left
ssutch do you folks sleep? 09:03
<jeez>
is there any way to make rakudo puke w/ a traceback when it encounters something like this: use of uninitialized value of type Any in string context in sub proclaim at lib/Test.pm:255 09:04
sorear ssutch: No 09:10
(That was a reply to your first question)
ssutch sorear: i don't think i've ever been on IRC when you aren't 09:11
#perl6 anyway
sorear that's because I have run my irc client 24/7 with occasional interruptions for several years 09:12
09:12 tgt joined
ssutch but, i mean, active 09:12
labster 6PM-midnight PDT is the slow time for #perl6
sorear what timezone are you ssutch? 09:13
ssutch GMT-7
sorear ssutch: that explains it, that's my timezone 09:14
timotimo "give my timezone back!" 09:15
sorear labster's too.
where are you latitudinally? 09:16
LA?
timotimo guesses running a new ConfigureJVM seems like a good idea
ssutch sorear: SF
labster yeah, I have a tendency to stay up to hack o'clock.
timotimo ah, cool, with my semilist changes i only fail the few clone spectests that i assume ssutch put in place 09:17
sorear ssutch: where in SF? are you near japhb and/or TimToady and/or diakopter?
sorear is down in SD, so far in any event
ssutch sorear: perhaps, i am in the sunset district, though've lived everywhere in SF 09:18
shachaf sorear: I hear SF is the place to be! You should come visit.
ssutch yeah, but "dat SD weather" :)
labster i liked your recent blog entry 09:20
diakopter ssutch: I'm in San Mateo; TimToady/quietfanatic are in Mountain View; japhb is moving near there soon
labster is in Ventura
thanks ssutch 09:21
ssutch neato, yeah, city proper for me (job and whatnot)
diakopter finds you on linkedin
labster our weather has been surprisingly June Gloom free. I apparently escaped most of the low clouds at YAPCNA. 09:22
sorear diakopter: anyone else in SF in #perl6 that you can think of?
labster: we've had it down here and it has been wonderful <3 09:23
diakopter agentzh lives there; he's moved on to nginx fame
sorear as obsessed as shachaf is with getting me there, I suspect he's somewhere around
09:25 ldthien0 joined, rhr joined
timotimo i need a highlighting plugin that will mark very red any = that should be a := 09:27
sorear nqp? 09:28
FROGGS timotimo: the current spectest state is pretty awesome, yes :o) 09:29
hi @all, btw
timotimo yes, nqp :)
sorear o/ FROGGS 09:34
ssutch
.oO(excited for (s)printf hackathonlet with masak tomorrow)
09:35
.oO(well, today, i suppose)
timotimo how do i transfer all child nodes from one QAST node to another? apparently i cannot +$<semilist>.ast
maybe i need a @ in front?
sorear you shouldn't be doing that at all? 09:36
can't you just do $qast.op('a different op') and leave the children put? 09:37
timotimo i wasn't able to make the op 'stmts' work, so i'm back to a Stmts op
09:38 atroxaper joined 09:42 spider-mario joined
timotimo it seems i made it work, though 09:44
great, i can now accept a LoL in postcircumfix:<[ ]>
hm, i have to accept it as LoL $foo and then it's in item context. oh well. 09:47
09:49 spider-mario_ joined 09:50 spider-mario left
FROGGS ssutch: implementing (s)sprintf more? or is it about usage? 09:55
09:55 spider-mario_ left
ssutch FROGGS: (s)printf for nqp, from what i understand 09:56
FROGGS that is nice
sorear seems array classes in the JVM are rather boring
FROGGS if it will be perl 5 compatible I have a bunch of tests
sorear no fields, methods, or constructors 09:57
ssutch sorear: built in ones?
sorear I mean like [I
ssutch FROGGS, good to know, thanks
i see 09:58
FROGGS sorear: about my huge filesize issue: it looks like the resulting filesize is like number of mixins * 1MB 10:01
sorear FROGGS: I think I forgot to mention that the cause of your issue is clear now 10:02
FROGGS sorear: and it looks like the mixin itself is to blame; it is not that several (old) incarnations of Perl6::Grammars stick around
ohh
sorear: since when?
sorear FROGGS: since you mentioned %?LANG
%?LANG creates a dependency edge from the sub to the mixin
which forces the entire mixin to be serialized 10:03
which includes a freshly generated set of LTM automata
FROGGS right
is there a patch in nqp or rakudo? I'm eager to see it
sorear it's not a bug, it's more ... design flaw
FROGGS yeah, I imagined something like that 10:04
sorear it'll have to be repaired by a redesign
FROGGS hmmm, so by "clear" you dont mean "fixed"... :o)
sorear nope :)
10:04 chayin_ left
FROGGS okay, works for me 10:04
timotimo Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' - i don't get it. i just make'd that exact file?! 10:05
sorear timotimo: do you have any loose .class files lying around?
jnthn++ mentioned last night that those can confuse things
I'm thinking (prejudicially since this is what I did for niecza) that it might be a good idea to throw away the automata at serialization time, since they can be reconstructed when needed from other data which is saved 10:06
sorear briefly entertains thoughts of "use Java" based on v5.pm, javax.tools.JavaCompiler, and nqp-level interop 10:07
FROGGS sorear: that would be pretty useful I guess 10:09
that is like Inline::Java but in cool
sorear it might be saner to have a syntactic construct that just gives you a compilation unit 10:12
rather than trying to mix at the statement level 10:13
FROGGS true 10:14
the statement level only works well if you do everything on your own 10:15
10:20 daniel-s__ joined 10:23 daniel-s_ left
FROGGS uhh: Error while compiling op eqaddr: No registered operation handler for 'eqaddr' 10:27
10:28 chayin joined
FROGGS current rakudo@parrot HEAD using nqp HEAD using parrot 5.5 10:28
bbl &
10:32 chayin left 10:35 FROGGS left 10:36 chayin joined 10:37 chayin left 10:38 potatogim_ joined 10:45 chayin joined 10:50 domidumont joined, FROGGS[mobile] joined 10:51 potatogim_ left
hoelzro raiph++ # reddit post 10:52
10:52 ldthien0 left 11:08 Chillance joined 11:11 domidumont left, domidumont joined 11:17 woosley1 left, FROGGS[mobile] left 11:18 FROGGS[mobile] joined
jnthn o/ 11:25
11:28 JimmyZ left
nwc10 \o 11:29
hoelzro o/ 11:32
sorear o/ 11:34
jnthn: Do you think it's sane to to have hll-neutral JVM wrapper objects that inspect CALLER::hllConfig when deciding how to behave? 11:36
11:37 ldthien0 joined, JimmyZ joined 11:40 kaare_ left 11:41 kaare_ joined
jnthn sorear: I worry that sounds a bit like an N-N integration. I'd been thinking more that if Rakudo gets back an object that is not within the Perl 6 type system, it keeps it in a wrapper and has a meta-object that makes it look like it's at least as narrow as Any, etc. I felt the pain there when doing Grammar::Generative and referring to QAST nodes... 11:41
...otoh, I didn't have any coffee yet today. 11:42
11:43 dmol left 11:44 rindolf joined
sorear so you're seeing two levels of wrapping? one wrapper puts a java.lang.Object into 6model, then another to put an arbitrary 6model object into Any (presumably in hllize)? 11:44
it sounds like the outer wrapper might tend to hide subtype relationships 11:46
11:46 kaare_ left
sorear I want to allow for exposing java classes as p6 types :) 11:46
11:46 kaare_ joined
jnthn sorear: Yeah, I'm proposing a 2-level thing there, though NQP doesn't tend to care about forcing things into its own world view so far... 11:48
sorear I suppose there's a question to ask about whether java objects are 6model objects or natives like int, num, str 11:49
I understand there is some fudgy stuff already for java.math.BigInteger 11:50
jnthn We'd certainly need to hold them at a level of indirection. BigInteger allows that the Java object reference can live directly inside a P6opaque though, avoiding a level of indirection. 11:52
sorear isn't sure what to think about the bigint boxing code 11:56
do you see us having a single STable, WHAT, and HOW for all java objects, or one per Class? 11:59
I was originally thinking the latter, but what you're describing seems to pull us towards the former
jnthn sorear: Having a singleton HOW doesn't imply having just one STable/WHAT 12:01
sorear: I think we need different stable/WHAT for Java types, otherwise you can't so easily talk about the types. 12:04
sorear: But unless we actually have per-type meta-object level data, there's not a need to create a disinct HOW instance for each type. Could be more prototype-ish 12:05
sorear forgot two STables could sanely share a HOW 12:07
sorear was also imagining a STable builder in java 12:09
12:09 kaare_ left
sorear r: my class Foo is repr<Bar> { } 12:11
camelia rakudo 51d024: ( no output )
jnthn STables are very low level. The only way one comes into existence (beyond the bootstrap) is nqp::newtype(...)
r: my class Foo is repr<Bar> { }; say Foo.REPR
camelia rakudo 51d024: OUTPUT«KnowHOWREPR␤»
jnthn Semi-predicate FAIL
12:11 kaare_ joined
jnthn Pretty sure rakudo JVM lacks that issue 12:12
sorear oops 12:13
jnthn yeah, "No REPR Bar"
sorear jnthn: I was imagining Java code that does the equivalent of nqp::newtype and sets up a method cache 12:14
jnthn sorear: ah, I see
sorear: That's probably reasonable.
sorear I suppose this part doesn't need to be wicked fast since 1. most programs won't be manipulating millions of types 2. dynamically constructing the adapter compunit is going to be a bit expensive itself 12:15
12:17 ssutch left
sorear What happens when a wrapped JVM object crosses a HLL boundary? 12:17
jnthn I guess we want it to be stripped of any existing HLL wrapper and wrapped for the target if needed. That's probably easiest conveyed by giving it an extra HLL role. 12:20
s/giving it/adding/
dalek p: d05299e | jnthn++ | .gitignore:
Add .jar to .gitignore.
12:21
p: ec11079 | jnthn++ | src/vm/parrot/ (2 files):
nqp::eqaddr should be core, not NQP only.
kudo/nom: 1ab4203 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for nqp::eqaddr fix.
12:22
sorear jnthn: that means we need a foreignTransformJava key in hllConfig, and maybe declare that any object with a hllRole of java needs to support unbox_native to native_j? 12:23
*waves hands* 12:24
12:25 Rotwang joined
jnthn sorear: Hm. I'd been thinking "wrap some object from some other language" could be a fairly generic thing. 12:25
sorear: I mean, it's mostly interested in making a foreign thing feel Perl 6-y enough to be convenient.
sorear jnthn: so we're back to having 6model objects for jvm objects -but- those objects make no effort to be caller-hll-sensitive because we expect they will be wrapped by a generic ForeignObjectHOW thingus? 12:27
jnthn sorear: Yes, and NQP probably doesn't even wrap them at all. 12:28
That's how I'd expected it to do it, at least.
If you can see a looming problem with that approach, I'm happy to consider soemthing else. 12:29
sorear jnthn: sounds like making types work with ForeignHOW will be an "interesting" exercise in moppery. i'll let you do that. 12:30
jnthn sorear: OK :)
sorear actually I guess we have three parallel type hierarchies 12:31
12:31 ztt_ joined
sorear the actual Class type hierarchy, the lazily constructed hierarchy of jvm-wrapper type objects, and the lazily constructed hierarchy of ForeignHOW 12:32
12:42 ldthien0 left
[Coke] jnthn: ugh. my laptop went to sleep last night, stopping the test run on S14. 12:46
moritz wonders how much '"interesting" moppery' refers to the meta object protcol, and how much to the cleaning device :-)
12:48 potatogim_ joined 12:51 xilo left
jnthn [Coke]: aww 12:54
[Coke] jnthn: up to S32-num/is-prime.t ... 13:00
this is just to test the more automated run, anyway - real run will be done once the normal run picks a version of a spec test suite to run, about 3 hours out.
colomon wonders if is-prime will work better in Rakudo JVM than it did in Rakudo Parrot....
dalek kudo/nom: 614d9e0 | jnthn++ | src/core/Bool.pm:
Fix null exception in infix:<?^>.

The Parrot version of nqp::xor returns a Parrot Undef, which we really don't have a sane equivalent of on JVM so it gives a null. This handles it appropriately, fixing at least one test file.
13:01
jnthn > say (1..100).grep(*.is-prime) 13:02
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Seems to work ;)
[Coke] S32-str/capitalize.rakudo.jvm......................===SORRY!=== 13:03
java.lang.StringIndexOutOfBoundsException: String index out of range: 2
timotimo i'll run a new spectest now
[Coke] there's something for ya. :P
colomon jnthn: I don't know if anyone else remembers it, or it got fixed. It was something like Rakudo's is-prime forgot what was prime after a while and just returned whatever. 13:05
13:05 spider-mario joined
timotimo how should i implement postcircumfix:<[ ]>(LoL $foo) for Any? should it make [5;5] behave just like [5][5]? 13:05
dalek p: 2d93042 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
nqp::bitor_s and nqp::bitxor_s shouldn't truncate.

Fixes some failing bitwise operator tets for Rakudo JVM.
13:07
jnthn timotimo: I think that's the basic idea
timotimo i'll try to implement that then 13:09
will [1..5;1..5] result in a 2-d array then?
13:10 kaare_ left 13:11 kaare_ joined
moritz yes 13:12
timotimo cool. okay.
geekosaur -barely- suppresses email response "I wasn't aware that Parrot *had* a future - or, for that matter, a present - separate from Rakudo"
timotimo i think it's time for a few more spectests.
i didn't spot it in the specs yet; that you get multidimensional arrays from slices 13:13
although it of course seems sensible
[Coke] geekosaur: yes, please surpress that. I think we can take the high road here. 13:14
*supress
*supress ! (argh!)
*suppress ! (argh!)
*whew.
timotimo surprese! typos :)
something went wrong in my spectest :| 13:16
[Coke] jnthn: passing tests went from 16596 to ... 16273 ... 13:22
jnthn [Coke]: Hmmm.
[Coke] kicks off another run, since so much changed since that one started.
jnthn [Coke]: Up to date NQP too?
masak good afternoon, #perl6 13:25
[Coke] each run does a fresh checkout of rakudo & nqp.
but that one started yesterday evening, so is already missing a ton of changes.
timotimo if i have my @part := @arr[4..6;4..6] will i address the resulting elements as @part[0;0]? will that give me @arr[4;4]?
if i have [4, 6;4, 6], will i get holes at @part[1;1]? 13:26
[Coke] I can post the results of it if you like
masak geekosaur: +1 about high road. Parrot is not in need of additional pummeling.
timotimo beautiful plumage, donnit? 13:27
dalek kudo/nom: 03e005c | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/ (2 files):
Check rw-ness on Scalar assignment.

Fixes the one failure left in S03-operators/increment.t, and probably more.
masak how to immunize yourself from "is dead" jokes: name your project "Parrot".
timotimo :) 13:28
13:29 birdwindupbird joined
dalek p: 73cea21 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Make lcm_I semantics match exceptations.

Fixes remaining failure in lcm.t.
13:31
timotimo I CANT SPECTEST LIKE THIS
masak timotimo: dude are you complaining that people are fixing things faster than you can spectest? 13:32
timotimo :D
this is crazy
jnthn [Coke]: I think I can understand the backslip. We probably passed various things bogusly before due to junctions not being detected due to missing type checking. 13:33
[Coke]: I put in the type checking but not the re-dispatch to the auto-threader yet.
[Coke]: So some test files that survived somehow now explode.
Hm, I keep running into tests that need that fixing. Guess I should do it nextish. 13:34
13:36 ztt_ left
timotimo i need some serious metaop magic help now; i have 15:31 < jnthn> Hm, I keep running into tests that need that fixing. Guess I should do it nextish. 13:37
nope, that's not what i have.
for ([X] @$coords).tree { ... } is what i have
moritz does anybody know whether Hotspot or Zero work better with openjdk for nqp/rakudo?
timotimo and i need to get a list of re-mapped "indices" kind of 13:38
13:39 berekuk joined
timotimo gist.github.com/anonymous/d71b7db6988e477eb0a8 - does this seem attainable with just metaops? 13:40
i fear i'll have to reinvent X :(
unless i can go from ((1, 2, 3), (4, 6), (8, 9, 9)) to zip a 0..* range into each sublist
that kind of seems doable 13:41
r: my LoL $coords = LoL.new((1, 2, 3), (4, 6), (8, 9, 9)); say (@$coords >>Z>> 0...*).perl
camelia rakudo 614d9e: OUTPUT«===SORRY!===␤Missing << or >>␤at /tmp/qhk52VFjMC:1␤------> , (4, 6), (8, 9, 9)); say (@$coords >>Z>⏏> 0...*).perl␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤»
timotimo r: my LoL $coords = LoL.new((1, 2, 3), (4, 6), (8, 9, 9)); say (@$coords >>Z,>> 0...*).perl 13:42
camelia rakudo 614d9e: OUTPUT«((1, 0), (4, 1), (8, 2)).list␤»
timotimo r: my LoL $coords = LoL.new((1, 2, 3), (4, 6), (8, 9, 9)); say (@$coords.tree >>Z,>> 0...*).perl
camelia rakudo 614d9e: OUTPUT«([1, 0, 2, 0, 3, 0], [4, 1, 6, 1], [8, 2, 9, 2, 9, 2]).list␤»
timotimo close ... but no cigar
r: my LoL $coords = LoL.new((1, 2, 3), (4, 6), (8, 9, 9)); say (@$coords.tree.map: { $_ Z 0...* }).perl 13:43
camelia rakudo 614d9e: OUTPUT«((1, 0), (2, 1), (3, 2), (4, 0), (6, 1), (8, 0), (9, 1), (9, 2)).list␤»
timotimo oh, that's close!
r: my LoL $coords = LoL.new((1, 2, 3), (4, 6), (8, 9, 9)); say (@$coords.tree.map: { $_ Z 0...* }).tree.perl 13:44
camelia rakudo 614d9e: OUTPUT«([1, 0], [2, 1], [3, 2], [4, 0], [6, 1], [8, 0], [9, 1], [9, 2]).list␤»
timotimo r: my LoL $coords = LoL.new((1, 2, 3), (4, 6), (8, 9, 9)); say (@$coords.tree.map: { ($_ Z 0...*).item }).tree.perl
camelia rakudo 614d9e: OUTPUT«([1, 0, 2, 1, 3, 2], [4, 0, 6, 1], [8, 0, 9, 1, 9, 2]).list␤»
timotimo r: my LoL $coords = LoL.new((1, 2, 3), (4, 6), (8, 9, 9)); say (@$coords.tree.map: { ($_ Z 0...*).tree }).tree.perl
camelia rakudo 614d9e: OUTPUT«([1, 0], [2, 1], [3, 2], [4, 0], [6, 1], [8, 0], [9, 1], [9, 2]).list␤»
timotimo resorts to throwing in contextualisers and such in random spots hoping to draw a winning ticket >_>
pmichaud keep in mind that there's a lot of fixing that needs to be done with lists, LoLs, Z, and the like in Rakudo. 13:45
and .tree
timotimo that's true :(
i hadn't even thought of that 13:46
when will you come around to that, pm? ;)
get around to it*
pmichaud timotimo: sadly, I don't know. My hours aren't my own these days.
timotimo i understand :( 13:47
colomon pmichaud++
timotimo oh, when i'm in Any.pm, do I have to be careful about what i have available and what i don't have available? 13:49
colomon hmmm, smoke test didn't run last night. look like the rakudo build failed. :( 13:51
13:51 panchiniak_ joined
masak timotimo: basically, you always do (have to be careful about what you have available and what you don't have available) in the setting. 13:51
timotimo hm, and postcircumfix has to be a method on the object i'm trying to augment, right? 13:52
jnthn colomon: yeah, my fault...fixed already
colomon jnthn++
dalek p: f1e62c5 | jnthn++ | src/QRegex/P (2 files):
Use portable nqp::flip(...), not .reverse().
13:54 woosley1 joined
pmichaud well, postcircumfixes are eventually to be subs, not methods. 13:55
13:56 crab2313 joined
dalek kudo/nom: 7d6a3e8 | jnthn++ | src/Perl6/World.nqp:
Assorted unbusting.

Gets S05-grammar/protoregex.t passing in full, and probably others.
13:57
masak pmichaud: what was the primary reason for that shift? I'm not opposing it, just curious what lesson was learned to make sub seem better than method.
timotimo you can define them later on :P 13:58
nwc10 is rakudo-jvm good enough to run the ilbot yet? 13:59
jnthn No tockets
s
14:00 FROGGS joined
FROGGS jnthn++ # commit "nqp::eqaddr should be core, not NQP only." 14:02
masak timotimo: well, my guess would be "you can optimize subs statically better than you can methods". 14:05
jnthn masak: Inlinability
masak: Otherwise we'll always struggle to get indexing into compact arrays down to something really efficient.
dalek kudo/nom: 2aa4972 | jnthn++ | src/core/IO.pm:
Unbust a little IO.

Enough so slurp at least works now.
14:07
timotimo yay for slurp!
jnthn: does dir() seem like an LHF to you? if so, i'd like to try to implement it later 14:08
masak jnthn: oh, right.
timotimo i made spectests from like two commits ago; interested to see them? 14:09
jnthn timotimo: Potentially is, yes
timotimo: Shoudln't be too hard
timotimo cool :)
FROGGS shock, for a moment I thought stage parse got slower by 20% 14:10
but my pc is making a backup right now....
timotimo gist.github.com/timo/8a50eb8a3360e.../revisions - a pretty diff for you, jnthn :) 14:11
i believe it did the line wrapping because i >'d it into a file :(
Tests=17904 -> Tests=17642 that must be the junction thing you mentioned 14:12
my head asplode from slicing and stuff >_< 14:14
moritz while compiling the setting I get: Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' in (src/gen/main.nqp) 14:15
dalek kudo/nom: 7f05613 | jnthn++ | src/core/Cursor.pm:
Fix !INTERPOLATE; fully pass litvar.t.
jnthn moritz: rm *.class
moritz jnthn: thanks
colomon has started a module smoke test 14:17
moritz whoa wat, java takes 3GB virtual mem to compile the setting? 14:21
(and it's not through yet)
or does it just use up half the system memory, whatever it is? :-) 14:22
JimmyZ only has 2GB memory
timotimo it does like its virtual memory
[Coke] you can tell your java to use less memory. 14:23
colomon install-jvm/nqp --target=jar --output=blib/Perl6/ModuleLoader.jar --encoding=utf8 \
src/gen/ModuleLoader.nqp
Unknown compilation target 'jar'
:(
[Coke] colomon: you need a new nqp.
(pretty much every time)
colomon [Coke]: I just built one
[Coke] sure you installed it?
moritz Stage parse : 138,581 14:24
colomon [Coke]: gist.github.com/colomon/5841060 # my history
moritz that's not bad on this slow machine
14:25 moritz left 14:27 woosley1 left
dalek kudo/nom: d02067f | jnthn++ | src/core/Hash.pm:
Fix typed hash iteration.
14:30
colomon jnthn: btw, zavolaj is failing one test on my smoking machine, and that in turn is breaking a bunch of modules 14:32
[Coke] colomon: I'd do a make clean in rakudo 14:33
mebbe.
don't see anything obvious though. :( 14:34
timotimo my n-dimensional slicing is such a horrible piece of code :|
colomon [Coke]: no joy
timotimo oh wow, i actually made working code 14:36
so ... i have a $foo that is bound to a cell in an array; how do i change the binding in that cell? :| 14:37
14:37 sciurius left 14:38 _ilbot joined, _ilbot left
timotimo r: my @a = [1, 2, 3]; my @r; my $p := @a[1]; my $rp := @r[1]; $rp := $p; $rp = "hi"; say @a; # i hope this makes some sort of sense 14:38
camelia rakudo 2aa497: OUTPUT«1 2 3 hi␤»
timotimo ... er wha?
that's how i do it?
colomon [Coke]: just blew away the repo and started from scratch 14:39
timotimo alas, no joy
14:40 berekuk left
timotimo yeah, and why would it even work? that makes no sense 14:40
colomon timotimo: did you mean @a = 1, 2, 3? 14:41
or was that supposed to be an array in an array?
timotimo perhaps i did.
yeah, that was probably wrong.
r: my @a = [1, 2, 3]; my @r; my $p := @a[1]; my $rp := @r[1]; $rp := $p; @r[1] = "hi"; say @a; # this is more like what i'm actually trying to do 14:42
camelia rakudo 2aa497: OUTPUT«1 2 3␤»
timotimo r: my @a = 1, 2, 3; my @r; my $p := @a[1]; my $rp := @r[1]; $rp := $p; @r[1] = "hi"; say @a; # this is more like what i'm actually trying to do
camelia rakudo 2aa497: OUTPUT«1 2 3␤»
timotimo clarification: i'm writing the postcircumfix:<[ ]> and i'm constructing a new n-dimensional array that is supposed to bind to the original, so that i can make it is rw properly 14:43
i walk the source array and the target array like my $ptr := SELF; $ptr := $ptr[$_] for @coords;
pmichaud my $rp := @r[1]; $rp := $p; 14:44
timotimo and i have a $target-pointer that gets created kind of like this; at the end i want the cell bound with the $target-pointer to be bound to the cell that is bound to the $ptr
pmichaud the first statement doesn't really do anything.
timotimo er, huh? 14:45
pmichaud it binds $rp to @r[1], then it re-binds $rp to $p 14:46
so the first binding doesn't really do anything.
timotimo r: gist.github.com/timo/5841141
camelia rakudo 2aa497: OUTPUT«Cannot call 'magic'; none of these signatures match:␤:(\SELF: LoL $coords, Mu *%_)␤ in method magic at src/gen/CORE.setting:446␤ in block at /tmp/uLmH6TVAPj:37␤␤»
timotimo yes, indeed. that's my problem :)
r: gist.github.com/timo/5841141 14:47
camelia rakudo 2aa497: OUTPUT«00 01 02 03 04 05 10 11 12 13 14 15 20 21 22 23 24 25 30 31 32 33 34 35 40 41 42 43 44 45 50 51 52 53 54 55␤»
timotimo the offending line is $ptr = $sptr;, which used to be $ptr := $sptr, which doesn't make sense as you pointed out
maybe i can do something like $ptr[$last-coord] := $sptr? 14:48
pmichaud I don't know if we have array binding working yet. 14:49
er, array element binding
colomon pmichaud: it kind of looked like we did, back a few tests of his ago...
timotimo ah, that doesn't work if it's not vivified yet
pmichaud what's the ultimate goal of all of this, ooc? 14:50
timotimo i'm trying to make things like @array[1,2;5,6] = [[99, 99], [11, 11]] work
@array[1,2;5,6].perl.say already works 14:51
(with my semilist-LoL fix that i have locally)
colomon [Coke]: rebuilding my rakudo-jvm completely from scratch worked
pmichaud looking
what type of object gets returned by @array[1,2;5,6], according to spec?
timotimo i didn't find a mention of this in the spec :( 14:52
i only found one-dimensional slicing
pmichaud S09 seems to say it returns a list of Parcels 14:53
that makes sense to me
timotimo or a list of lists of parcels?
pmichaud it seems to me that @array[1,2;5,6] = [[99, 99], [11,11]] doesn't have enough values on the RHS 14:54
(there being only one)
timotimo oh, it should have one less [ ]? 14:56
pmichaud what does @array[1,2;5,6] produce?
timotimo Array.new(["15", "16"], ["25", "26"]) 14:57
pmichaud I'm guessing it's ((@array[1][5], @array[1][6]), (@array[2][5], @array[2][6]))
I guarantee it shouldn't create a new Array.
array subscripting returns parcels.
timotimo it's supposed to return what you are guessing, but i'm not sure if i succeeded
14:57 moritz joined, moritz left
pmichaud for example, @x[4,2,7] returns (@x[4], @x[2], @x[7]) 14:58
timotimo how do i programmatically produce such a thing properly?
r: my Parcel $p; my @x = 1, 2, 3, 4; $p.push(@x[1]); $p.push(@x[2]); $p = "foo", "bar"; say @x; 14:59
camelia rakudo 2aa497: OUTPUT«WARNINGS:␤Useless use of "," in expression "= \"foo\", \"bar\"" in sink context (line 1)␤Type check failed in assignment to '$p'; expected 'Parcel' but got 'Array'␤ in sub infix:<=> at src/gen/CORE.setting:13843␤ in method push at src/gen/CORE.setting:1447␤ in m…
timotimo r: my Parcel $p .= new; my @x = 1, 2, 3, 4; $p.push(@x[1]); $p.push(@x[2]); $p = "foo", "bar"; say @x;
camelia rakudo 2aa497: OUTPUT«WARNINGS:␤Useless use of "," in expression "= \"foo\", \"bar\"" in sink context (line 1)␤Cannot call 'push'; none of these signatures match:␤:(Any:U \SELF: *@values, Mu *%_)␤ in method push at src/gen/CORE.setting:1445␤ in block at /tmp/stKM4ccu8Z:1␤␤»…
pmichaud Parcels are immutable.
you can't push / pop them. 15:00
timotimo that makes it kind of hard for me :|
i could write a string and eval that :P
pmichaud well, the existing postcircumfixes create Parcels
r: my @r; say @r[4,6,2].WHAT; # checking
camelia rakudo 2aa497: OUTPUT«(Parcel)␤»
timotimo there seems to be something called .bind_pos and some kind of argument Mu :$BIND! 15:01
pmichaud you can create a Parcel from a list with $list.Parcel
timotimo ah, that's good 15:02
how do i properly put references to the original list into the list before i .Parcel it?
pmichaud oh, you can push and pop Lists
and .map returns a List
15:05 FROGGS[mobile] left
timotimo i think i know what i can do 15:06
pmichaud given that @x[2,3] returns (@x[2], @x[3])
15:06 berekuk joined
timotimo but implementing it will have to wait a bit 15:06
15:06 FROGGS left
pmichaud I'm curious as to what @x[4;2,3] would return. 15:06
15:06 FROGGS joined
timotimo for the last dimension i should really hand over to the existing postcircumfix:<[ ]> 15:06
it should return (@x[4][2], @x[4][3]) in my opinion 15:07
masak +1
pmichaud then what about @x[1,4;2,3] ?
masak four values in a square.
FROGGS I'd image you loop over the expressions separated by ';', call postcircumfix:<[ ]> for these, and put the results in a parcel 15:08
masak really, most things that come back probably come back as hyper-matrices.
N-dimensional rectangular "blocks".
pmichaud masak: so, ((@x[1][2], @x[1][3]), (@x[4][2], @x[4][3])) ? 15:09
15:11 sciurius joined
masak just so. 15:11
15:11 _ilbot joined
pmichaud r: my $a; my $b; my $c; my $d; (($a, $b), ($c, $d)) = 1..4; say ($a, $b, $c, $d); # just curious 15:12
camelia rakudo 2aa497: OUTPUT«1 2 3 4␤»
pmichaud oh, cool.
masak \o/
pmichaud r: my $a; my $b; my $c; my $d; (($a, $b), ($c, $d)) = 1..4; say ($d); # just curious
camelia rakudo 2aa497: OUTPUT«4␤»
15:13 moritz joined
masak r: my ($a, $b, $c, $d) = 1..4; (($a, $b), ($c, $d)) = (($a, $c), ($b, $d)); say ($a, $b, $c, $d) 15:13
camelia rakudo d02067: OUTPUT«1 3 2 4␤»
masak \o/
pmichaud so, in general, given $lol, the postcircumfix should apply $lol[1..*] to each element of the slice SELF[@($lol[0])] 15:15
masak that's even spec.
something like "modulo access snafus, .[1;2;3] means .[1][2][3]" 15:16
pmichaud well, that says what to produce, but not how.
masak troo
15:17 berekuk left, moritz left, _ilbot left
pmichaud @x[1,4;2,3] first does @x[1,4] to obtain the Parcel (@x[1], @x[4]), then applies .[2,3] to each element of that parcel to produce ((@x[1][2], @x[1][3]), (@x[4][2], @x[4][3])) 15:17
looks hyper-ish. 15:18
I wonder if it needs/expects the nested Parcels.
djanatyn compiles the latest rakudo 15:20
15:20 berekuk joined
Ulti tries to get try.rakudo.org to run locally 15:21
pmichaud it's probably worth not nesting the parcels as a first step. 15:22
15:22 berekuk left
pmichaud well... it might work out naturally 15:22
Ulti which bot can I use to leave a message for moritz? 15:23
FROGGS .tell ulti yoleaux does that 15:24
yoleaux FROGGS: I'll pass your message to ulti.
Ulti heh thanks 15:26
yoleaux 15:24Z <FROGGS> Ulti: yoleaux does that
pmichaud I have to depart again.. bbiaw 15:27
djanatyn hmm, I'm trying to do the equivalent of perl -ne with my fresh rakudo install 15:29
15:29 panchiniak_ left
djanatyn ls -l | ./perl6 -ne 'say;' 15:29
but it says "Option 'e' in grouped options '-pe' needs a value, but does not have one" 15:30
also, what are the best perl6 mailing lists to subscribe to if you were interested in helping out?
15:31 berekuk joined
masak djanatyn: p6c, p6l, p6u. 15:31
p6c has RT ticket reports, and (very occasional) implementation discussion. 15:32
p6l has spec updates, and (nowadays very occasional) language design discussion.
p6u has occasional questions/discussions from Perl 6 users.
15:32 berekuk left
djanatyn thank you, masak :) 15:33
I was here a long time ago as a pretty lazy high school student. I think I did google summer of code perl6 stuff
masak djanatyn: yes, I remember your nick :)
djanatyn in the time between then and now, I got a job doing system administration stuff at the pittsburgh supercomputing center, and I used perl5 at my work every day
Ulti :) 15:34
djanatyn I usually just used perl5 or ocassionally ruby for quick scripts, and wrote bigger stuff in common lisp or clojure
I love the fact that clojure runs on the JVM, and when timotimo told me than there was work to get perl6 running on the JVM, I was so happy
dalek ast: 995c98c | masak++ | S02-literals/hex_chars.t:
[S02-literals/hex_chars.t] impose some order

No need to store the pairs in an unordered hash, muddling the relationship between the test data and the test output. Storing things in a straight-up array instead.
15:35
masak djanatyn: there's awesome, ongoing work to get Rakudo running on the JVM.
djanatyn: in fact, the pace of that work is nothing short of astounding.
nwc10 when is the sprintf sprint? 15:36
15:36 berekuk joined
dalek ast: a958b32 | masak++ | .gitignore:
[.gitignore] *.rakudo.jvm
15:36
masak nwc10: in 2h24m, but I thought I'd get a bit of a head start. 15:37
nwc10 ah OK. I guess that's a bit too close to blog an announcement
and no idea if that would help anyway
blogging a success for the 0th sprint might be more interesting
15:37 berekuk left
nwc10 with some idea of when and what the 1st is 15:37
masak I don't really need more than two collaborators, anyway :)
all I wanted was some company while hacking :) 15:38
nwc10 ah OK. I'll be quiet and try to think of new puns
15:38 moritz joined, ztt_ joined 15:43 _ilbot joined
masak .oO( punt on it like a punishing pundit so you can punctually puncture us with the punchiest puns... punk ) 15:44
ztt_ rakudo: say * for 1..3 15:49
camelia rakudo d02067: OUTPUT«*␤*␤*␤»
djanatyn okay, I compiled a new rakudo, subscribed to the mailing lists, downloaded panda and ran the bootstrapping stuff, and I see a bunch of warnings about how IO.Handle.copy is deprecated
I'm in a boring python lecture so I'm going to check that out
ztt_ why *? 15:50
nwc10 are they teaching Python 2 or Python 3? Does your print need () ?
ztt_ should be an error
djanatyn they're teaching python 2
nwc10 curious.
ztt_ warnning an error
djanatyn these poor kids 15:51
they're using python 2.6.5 without readline support
nwc10 Gosh
ztt_ sorry for say *
djanatyn and almost all of them have nano open in one window and the python interpreter on the other
nwc10 that goes out of support this October: www.python.org/download/releases/2.6.8/ 15:52
djanatyn when they want to update they type "execfile('filename.py')"
ztt_ * is magic
nwc10 why 2.6? Why not 2.7? And no mention of Python 3? 15:53
masak ztt_: hello, that's not how * is used.
djanatyn while they've been doing the lectures I compiled python 2.7.5 and python 3.3.2
masak rakudo: .say for 1..3
camelia rakudo d02067: OUTPUT«1␤2␤3␤»
masak rakudo: say $_ for 1..3 15:54
camelia rakudo d02067: OUTPUT«1␤2␤3␤»
djanatyn this is a bioinformatics workshop; they have python 2.6 installed because it works with BioPython and they don't want to break it
nwc10 ah OK.
colomon djanatyn: the deprecation warnings are because the code needs to be changed, but we don't want to break code by changing it before the next Rakudo Star release. 15:55
15:56 potatogim_ left
ztt_ masak: thx! * is magic 15:56
15:56 kaare__ joined
masak ztt_: a bit, yes. the short explanation is that * == $_ + {} 15:57
ztt_: here, let me show you.
ztt_ masak: l'm listening 15:58
masak r: say (1..30).grep: { $_ % 10 == 2 }
camelia rakudo d02067: OUTPUT«2 12 22␤»
masak r: say (1..30).grep: * % 10 == 2
camelia rakudo d02067: OUTPUT«2 12 22␤»
[Coke] jnthn: back up (and over) to 16649 passing.
masak see? * == $_ + {}
huf what's the mumble in this explanation? 15:59
dalek ast: ef1b165 | (Solomon Foster)++ | S03-operators/bag.t:
Make sure bag add and bag multiply work in reduce.
masak huf: it's not the whole story, because it's more like the first * is like $^a, the second * is like $^b, etc.
ztt_ masak: got it, thx master
masak kowtows
huf masak: oh, i was expecting more surprises.
masak Perl 6: surprisingly few surprises :) 16:00
16:00 kaare_ left
jnthn [Coke]: Is that a new high? 16:00
[Coke] r: say 16649 / 25979 # jvm/parrot 16:01
camelia rakudo d02067: OUTPUT«0.640864␤»
huf i guess i'm used to perl5 only being explainable by a successive list of progressively lesser lies :)
[Coke] jnthn: yes. regained the losses and then some.
and I already saw multiple commits since I started this run.
16:03 ajr joined
diakopter .seen TimToady 16:03
yoleaux I saw TimToady 21 Jun 2013 22:02Z in #perl6: * TimToady has to get up again in 5ish hours to catch a plane, so --> bed &
16:03 ajr is now known as Guest23301 16:04 ugexe left 16:05 ugexe joined
colomon rn: say 241025348275725.3352.Rat.norm.nude 16:06
camelia rakudo d02067, niecza v24-81-g6672fa2: OUTPUT«301281685344656669 1250␤»
colomon is a little worried that rakudo jvm doesn't get the right answer for that. :\
Ulti sorear: installing IO::Pty::HalfDuplex tests never come back and with a forced install of try.rakudo.org the REPL always times out, I'm on OSX is this a problem? 16:07
jnthn colomon: It...doesn't?
> 241025348275725.3352.Rat.norm.nude 16:08
301281685344656669 1250
16:08 tomyan joined
masak huf: what's really refreshing is to go back and read the RFC that proposed behavior like * and $^a. and to see how the solution Perl 6 arrived at is orders of magniuted better. 16:09
16:09 Guest23301 is now known as ajr_
masak huf: I wrote a post about it long ago: strangelyconsistent.org/blog/speaki...-in-perl-6 16:10
16:15 konundra left
colomon not ok 823 - Rat.Rat yields correct Rat 16:18
# got: '301281685344656669 1250'
# expected: '301281685344656640 1250'
nwc10 is that at the limit of the floating point mantissa? 16:19
colomon nwc10: it's not a floating point, it's a rat
nwc10 but how is it implemented?
colomon jnthn: wait, wtf? 16:20
oh! 16:21
rn: say (301281685344656669, 1250)
camelia rakudo d02067, niecza v24-81-g6672fa2: OUTPUT«301281685344656669 1250␤»
16:21 SamuraiJack left
colomon rakudo-jvm$ ./perl6 16:22
> (301281685344656669, 1250)
301281685344656640 1250
it's not Rat, it's Int that is the problem!
nwc10 awesome :-)
colomon > 301281685344656669
301281685344656640
rn: say 301281685344656669
camelia rakudo d02067, niecza v24-81-g6672fa2: OUTPUT«301281685344656669␤»
colomon well, that's special
nwc10 is that a spectest yet? :-)
jnthn wtf... 16:23
Ulti good old out by 29 bug 16:24
nwc10 r: say sprintf "%x %x", 301281685344656640, 301281685344656669"
camelia rakudo d02067: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/lJk9gDiccn:1␤------> , 301281685344656640, 301281685344656669⏏"␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement end␤ statem…
nwc10 OK, that didn't work.
What did I mean?
p5: printf "%x %x\n", 301281685344656640, 301281685344656669"
jnthn missing quote
or unexpected quote at end
Right where the yellow blob is :) 16:25
masak blob? it's a disk eject symbol!
:P
Ulti ^^
masak ⏏⏏
nwc10 r: say sprintf "%x %x", 301281685344656640, 301281685344656669
camelia rakudo d02067: OUTPUT«b84c9d00 b84c9d1d␤»
nwc10 so, that's your answer, isn't it? 32 bits 16:26
oh, I can't read, 24
Ulti Java uses sign bytes instead of bits 254 is a +ve integer anything else is negative 16:27
masak my sprintf.nqp has bitrotted, fancy that. 16:30
can someone help me upgrade this routine to modern NQP? github.com/masak/sprintf/blob/mast...tf.nqp#L26
obviously I shouldn't be doing pir::new__Ps('StringBuilder') as that is so 2012.
nwc10 oh, silly me. it's all truncated 16:31
$ perl -le 'printf "%x %x\n", 301281685344656640, 301281685344656669'
42e5e18b84c9d00 42e5e18b84c9d1d
jnthn masak: Just keep an array of strings and nqp::join 'em at the end
masak jnthn: gotcha.
why nqp::join and not join ? 16:34
oh, I guess the latter calls the former under the hood anyway...
jnthn masak: If you are already turning all the pieces into strings already, nqp::join is more efficient. 16:35
masak ah, ok.
16:41 ztt_ left, jaldhar left
timotimo hm, || syntax doesn't seem to exist yet 16:42
masak ah, the .[0] change of the ? quantifier was the cause of the bitrot :)
16:46 raiph joined, panchiniak_ joined, Rotwang left 16:47 moritz left, jaldhar joined, _ilbot left
timotimo my brain-dead-simple recursive attempt at multidim slicing doesn't work :( 16:47
(but it is much simpler)
16:48 moritz joined, moritz left
colomon n: say sprintf "%x %x", 301281685344656640, 301281685344656669 16:49
camelia niecza v24-81-g6672fa2: OUTPUT«42e5e18b84c9d00 42e5e18b84c9d1d␤»
colomon is that a known (Parrot) rakudobug?
rn: say sprintf "%x %x", 301281685344656640, 301281685344656669
camelia rakudo d02067: OUTPUT«b84c9d00 b84c9d1d␤»
..niecza v24-81-g6672fa2: OUTPUT«42e5e18b84c9d00 42e5e18b84c9d1d␤»
colomon (more precisely)
masak good question. 16:51
hold on, I'll scan for it.
no.
masak submits rakudobug
16:52 JimmyZ left
nwc10 rn: say 301281685344656640 + 1 16:53
camelia rakudo d02067, niecza v24-81-g6672fa2: OUTPUT«301281685344656641␤»
nwc10 rn: say 301281685344656640 - 301281685344656669
camelia rakudo d02067, niecza v24-81-g6672fa2: OUTPUT«-29␤»
nwc10 so that seems to be a printf bug in Rakudo, rather than a parsing bug 16:54
how long until the sprintf sprint? :-)
16:54 Rotwang joined
timotimo gist.github.com/timo/5841141 - here i'm getting "Cannot modify an immutable value"; what black magic do i have to use to make it work with assigning/binding? 16:55
16:56 berekuk joined 16:59 Rotwang left, berekuk left
diakopter masak: where will you do the sprintf work 17:00
timotimo it's called "the sprintf sprint" 17:01
nwc10 rn: say sprintf "%d %d", 301281685344656640, 301281685344656669 17:02
camelia niecza v24-81-g6672fa2: OUTPUT«301281685344656640 301281685344656669␤»
..rakudo d02067: OUTPUT«-1202938624 -1202938595␤»
nwc10 masak: I think that your bug title for RT #118601 is incorrect, but we seem to have two related bugs here 17:03
masak diakopter: here. I thought about forking off into a different channel, but I believe the multiplier effect will be bigger if we stay on #perl6.
nwc10: oh! indeed.
masak adds this information to the ticket
nwc10 that one looks like truncation to 32 bits 17:04
but I'm now a bit confused about where the truncation in Rat was coming from
colomon nwc10: if you're talking about the one that I was looking at, rat was fine. It was the Int it was being compared against that had troubles. 17:05
dalek kudo/nom: 01fc34b | jnthn++ | src/vm/jvm/Perl6/Ops.nqp:
Fix code-gen thinko in p6return.

Unbusts given/when as an l-value, which all kinds of things depended upon.
17:08
jnthn There's some hundreds more
timotimo hundreds more passing spectests? :3
jnthn yes 17:09
timotimo awesome!
jnthn Well, certainly hundreds more attempted
timotimo should i go run a full spectest and update my gist?
jnthn Well, I'll sort out the junction failover later on today
That should get some hundreds more, I hope
17:10 moritz joined, moritz left 17:11 dmol joined 17:14 Rotwang joined 17:15 _ilbot joined
jnthn afk for a bit 17:15
17:16 _ilbot left 17:18 _ilbot joined, _ilbot left
FROGGS ahh, jnthn is taking a walk with ilbot... 17:18
17:19 birdwindupbird left, berekuk joined
[Coke] kicks off today's "official" run. 17:20
17:22 berekuk left, dmol left, berekuk joined 17:23 panchiniak_ left, dmol joined, _ilbot joined 17:24 berekuk left, _ilbot left 17:26 moritz joined 17:27 moritz left 17:29 berekuk joined 17:31 _ilbot joined, moritz joined, berekuk left
masak about half an hour remain until the sprintf sprint. 17:32
let's hope ssutch and tadzik show up :) 17:33
FROGGS I'll be around too, but I might be late (kids are not in bed yet)
diakopter masak: see the clogs; ssutch was awake until not too many hours ago
masak well, he's the one set the time :) 17:34
17:36 berekuk joined 17:37 _ilbot left, moritz left
dagurval r: my $a = 0; $a = Int.new.WHERE while $a >= 0; say $a 17:37
camelia rakudo d02067: OUTPUT«-1374370416␤»
dagurval shouldn't WHERE always return a positive value?
masak I don't see why it should. 17:38
dagurval I haven't seen negative memory adresses used before 17:40
17:40 berekuk left
dagurval but I suppose it's possible 17:40
timotimo just wrote a bit of perl6 code to do html5 canvas work with the help of perlito6 :) 17:42
(well, it was pretty obvious how to make it; it's pretty much a 1:1 copy of the example js code, just with $s everywhere 17:43
17:43 risou_awy is now known as risou
timotimo but still cool!) 17:43
17:44 moritz joined 17:45 berekuk joined 17:46 berekuk left 17:47 _ilbot joined 17:50 ssutch joined
diakopter ssutch: you made it :) 17:50
ssutch what did i make?
moritz IT! 17:51
ssutch sweet!
timotimo and with barely any sleep, too! 17:52
masak ssweet! \o/
FROGGS hehe
masak I counted almost 8 hours of sleep.
but maybe I missed some other channel?
ssutch: what's your github id?
ssutch masak: `samuraisam` 17:53
masak hehe
17:54 kst` joined, john5 left
masak ssutch: you now have write access to github.com/masak/sprintf 17:54
ssutch: feel free to make any commit you deem necessary -- but I'd appreciate it if you always did '--rebase' when you pulled. 17:55
17:55 berekuk joined
ssutch no problem 17:55
my nqp is still pretty weak, i have to search the ops files a lot 17:56
masak or just ask here. 17:57
nqp: say("OH HAI")
camelia nqp: OUTPUT«OH HAI␤»
masak wow, nqp you so fast :)
ssutch nqp: say((grammar X{})) 18:02
camelia nqp: OUTPUT«␤»
masak ssutch: I'm currently putting together a rough guide to the next two hours.
ssutch cool, thanks 18:03
are we trying to accomplish something like this: github.com/perl6/roast/blob/master.../sprintf.t
masak ssutch: yes -- nice set of tests. feel free to simply bring them in bit by bit if you want. 18:07
ssutch: better to do it little by little than in one large bunch. 18:08
FROGGS masak: what about that? github.com/mirrors/perl/blob/blead...ntf.t#L176
masak FROGGS: very much so, too.
FROGGS k, great
masak as you see, we have more than two hours' work in front of us :)
but let's make a dent in this interesting beast.
ssutch: initial guidelines: github.com/masak/sprintf/commit/d1...a8d781333c
[Coke] pugs, niecza, rakudo-pvm - done. rakudo-jvm - S04 and counting. :) 18:09
masak I'll add the links to the two test files as well. ssutch++ FROGGS++
FROGGS masak: I'm back in an hour or so
masak FROGGS: sure thing.
ssutch: I feel like starting with %b, %B, %o, %x, and %X 18:13
ssutch masak ok ill try %c - seems like an easy enough place to start 18:14
18:14 SmokeMac_ joined, SmokeMachine left
ssutch does nqp have big ints? 18:15
timotimo nqp: say(1111111111111111111111111111111111111111111111111); 18:17
camelia nqp: OUTPUT«-2147483648␤»
timotimo not like that
masak ssutch: if you prefer reviewing of commits, feel free to push to a branch. 18:19
ssutch masak yep
masak don't worry about wasting branches, either. just treat branches as convenient ways to link to commits :)
18:20 tomyan left
masak I will reserve the right to cherry-pick, rebase, and generally push --force this repo as I see fit :) 18:20
ssutch branches are practically free in git anyway
diakopter r: say $1111111111111111111111111 18:21
camelia rakudo 01fc34: OUTPUT«Cannot use negative index -2147483648 on Any␤ in method gist at src/gen/CORE.setting:10361␤ in method gist at src/gen/CORE.setting:892␤ in sub say at src/gen/CORE.setting:11249␤ in block at /tmp/soB3a4LRRC:1␤␤»
diakopter yah
nwc10: there's another truncate fun one ;)
masak .oO( using the email regex again, are we? ) :P 18:22
18:33 moritz left, _ilbot left
sorear good * #perl6 18:35
masak sorear! \o/ 18:36
18:37 konundra joined
timotimo github.com/timo/rakudo/compare/sem...L?expand=1 - would like comments. seems mergable if no spectests break? 18:37
18:38 crab2313 left 18:39 moritz joined, moritz left
djanatyn does the perl6 REPL have readline support 18:39
[Coke] yes. 18:40
timotimo it does, if you compile parrot with libreadline-dev installed
djanatyn okay, I'll compile again!
18:40 tgt left 18:41 kingbeast joined
sorear Ulti: it may be. IO::Pty::HalfDuplex (people other than me use that? gack) was never tested except on Linux 2.6 and FreeBSD 7.0, and it seems quite sensitive to kernel behavior 18:43
jnthn o/ sorear
sorear and I haven't tested it since I had 5.10, either
o/ jnthn, masak 18:44
18:45 moritz joined 18:47 _ilbot joined, kaare__ left 18:50 _ilbot left, moritz left
masak rpn: say sprintf "%b", -12 18:52
camelia?
camelia pugs: OUTPUT«(timeout)»
..niecza v24-81-g6672fa2: OUTPUT«-1100␤»
..rakudo 01fc34: OUTPUT«11111111111111111111111111110100␤»
masak oh man.
I'm gonna go with Niecza here. 18:53
sometimes sanity is called for.
timotimo 2's complement is not good? :)
masak not in a world of bigints.
ssutch masak: github.com/masak/sprintf/compare/sam;percent-c 18:54
masak ssutch: nice! feel free to push to master. 18:56
ssutch: how does is fare with non-ASCII unicode codepoints?
might be worth a test.
ssutch totally
18:57 raiph left
sorear what of supplementary characters? 18:59
ssutch sorear: not sure what you mean 19:00
masak: unicode works (test pushed). do you want me to squash the commits or just merge em?
19:01 moritz joined 19:02 moritz left
masak ssutch: hold on, checking. 19:07
sorear: do you have a test case? that would help.
ssutch: feel free to squash those. that'll also give you a chance to fix the '%d' typo ;) 19:08
after squashing, feel free to merge the squashed commit directly to master. 19:09
dagurval masak: you have a pull request :)
ssutch my first commit message is derp 19:10
[Coke] S19... 19:11
19:11 raiph joined, atroxaper left
sorear ssutch: characters > 0x10000 19:12
19:12 _ilbot joined, _ilbot left 19:14 domidumont left
masak rn: say chr( 0x10004 ) 19:15
19:15 risou is now known as risou_awy
camelia rakudo 01fc34, niecza v24-81-g6672fa2: OUTPUT«𐀄␤» 19:15
ssutch nqp: say(nqp::chr(0x10004))
camelia nqp: OUTPUT«𐀄␤»
19:15 _ilbot joined, _ilbot left
masak dagurval: hey, neat! 19:16
dagurval: I'm rebasing it in.
GlitchMr github.com/rakudo/rakudo/commit/94...37d252d0f8
Why is it $*VM, and not %*VM?
dagurval I'll take %x and %X while I'm at it if it's all the same :)
GlitchMr I mean, it's a dictionary.
Without any magic, unlike $/.
masak dagurval: sure! 19:17
ssutch ill do zero-padding
masak dagurval: mind if I give you a commit bit?
19:17 _ilbot joined
masak you guys are awesome. 19:17
19:17 _ilbot left
GlitchMr rn: say "█".succ 19:18
camelia niecza v24-81-g6672fa2: OUTPUT«WTF␤»
..rakudo 01fc34: OUTPUT«⚀␤»
GlitchMr I'm not sure whatever of these is correct.
(but I laughed on Niecza)
19:18 dalek left
ssutch too 19:19
dagurval masak: of course not :)
19:19 moritz joined, moritz left, dalek joined, ChanServ sets mode: +v dalek
FROGGS ohh, sprintf.nqp is borken 19:20
masak dagurval: commit cherry-picked; commitbit given. 19:21
dagurval: welcome aboard! :)
FROGGS masak: can I get commit bit please? 19:22
masak FROGGS: done. :) 19:23
instructions to be found at the beginning of the file. 19:24
ssutch FROGGS i fixed the bork
masak oh, did I bork it? :/
FROGGS ssutch++
a missing comma line 131
masak oh, yes. masak--
ssutch++ 19:25
nqp doesn't do final comma?
nqp: say(1,2,3,)
camelia nqp: OUTPUT«123␤»
FROGGS no, it wasnt the final
masak I know.
but it does. so we should have it.
masak adds it
19:26 kingbeast left
FROGGS hmmm, it might help to see the sommits here, so one knows when to pull 19:26
masak :)
FROGGS: please always do 'pull --rebase'
I won't accept merge commits to this repo.
FROGGS k
ssutch is the plan to move this into the nqp repo when it's ready enough? 19:27
masak think so.
jnthn said he'd have use for an nqp sprintf implementation right about now for Rakudo on JVM.
nwc10 masak: does github give you the ability to enforce that?
masak nwc10: no, I just have to be vigilant. 19:28
nwc10: not that I know, anyway
also, we have a number of RT tickets which basically say "Parrot's sprintf isn't good enough for us".
which could be fixed with our own implementation.
nwc10 yes, unless they gave a bunch of pre-cooked options on what to do, it would let people run arbitrary code on their servers
perl 5's sprint is a small cluster of insanity
for a sadly non-small value of "small"
masak very much in line with what we usually do. use Parrot's infrastructure until we have a good idea of what it was we actually needed ;)
nwc10 writing it in a high(er) level language feels like the way to go 19:29
masak aye, that's also part of it.
an incremental lifting of all the things.
19:29 konundra left
nwc10 and, IIRC, at one point I linked to a PyPy example of where PyPy can optimise particular sprintf calls with constant format strings to the underlying function calls 19:29
(if not inline those functions)
masak yes, I remember that.
ssutch even the p5 sprintf test suite is a little crazy it seems 19:31
masak dagurval++ # %x and %X 19:32
ssutch: how so?
nwc10 well, you have to push the corner cases in the test suite
ssutch just with the pod format i guess, then i realized there are ~550 cases 19:33
er, not the pod format, just the end of file thingy
FROGGS the __DATA__ block 19:35
is somebody working on %b?
19:36 _ilbot joined
ssutch [11:13:21] <masak> ssutch: I feel like starting with %b, %B, %o, %x, and %X 19:36
masak FROGGS: yes, but feel free to steal %b :)
19:36 _ilbot left
FROGGS I'd like to, thanks 19:36
masak I'll try my hand at %e instead.
nwc10 possibly stupid question, why is there no %O ? 19:37
19:37 gdey joined
sorear nwc10: Because octal digits are caseless 19:37
nwc10 rn: print "%o", 42
camelia rakudo 01fc34, niecza v24-81-g6672fa2: OUTPUT«%o42»
sorear Why is ther a %B?
nwc10 rn: print "%B", 42
camelia rakudo 01fc34, niecza v24-81-g6672fa2: OUTPUT«%B42»
nwc10 rn: printf "%B", 42 19:38
camelia niecza v24-81-g6672fa2: OUTPUT«Unhandled exception: invalid format specifier␤ at /home/p6eval/niecza/lib/CORE.setting line 1396 (sprintf @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1397 (printf @ 5) ␤ at /tmp/aRBqe20Whs line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE…
..rakudo 01fc34: OUTPUT«101010»
19:38 berekuk left
nwc10 $ perl -e 'printf "%#b\n", 42; printf "%#B\n", 42' 19:38
0b101010
0B101010
rn: printf "%o", 42 19:39
camelia rakudo 01fc34, niecza v24-81-g6672fa2: OUTPUT«52»
nwc10 rn: printf "%o" 052
camelia rakudo 01fc34: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/xSRJlyKtDP:1␤------> printf "%o" ⏏052␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement end␤ statement modifier␤ state…
..niecza v24-81-g6672fa2: OUTPUT«===SORRY!===␤␤Two terms in a row at /tmp/fHdeX0wHES line 1:␤------> printf "%o" ⏏052␤␤Parse failed␤␤»
nwc10 rn: printf "%o", 052
camelia niecza v24-81-g6672fa2: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6; please use 0o52 if you mean that at /tmp/cLQA4SHKFO line 1 (EOF):␤------> printf "%o", 052⏏<EOL>␤␤64»
..rakudo 01fc34: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6; please use 0o52 if you mean that␤ at /tmp/AbVJJM8ALB:1␤ ------> printf "%o", 052⏏<EOL>␤ Leading 0 does not indicate octal in Perl 6; please use 0o52 if you mean tha…
19:39 berekuk joined
nwc10 rn: printf "%o", 0o52 19:39
camelia rakudo 01fc34, niecza v24-81-g6672fa2: OUTPUT«52»
nwc10 right, so that's my question...
masak npr: say sprintf "%e", 42 19:40
nwc10 as the language now defines 0o52 as the octal input
why is the output from %o the C-style?
camelia rakudo 01fc34: OUTPUT«4.200000e+01␤»
..pugs: OUTPUT«(timeout)»
..niecza v24-81-g6672fa2: OUTPUT«4.200000e+001␤»
masak oh dear.
nwc10 (there probably is no right answer to that)
masak does pugs only do timeouts these days?
[Coke] pugs: say "bite me";
camelia pugs: OUTPUT«bite me␤»
nwc10 does the spec have anything to say about that discrepancy? 19:41
[Coke] nope! ;)
masak nwc10: I'm leaning towards the conservative answer: output what other sprintf implementations output.
ssutch how should zero-padded negatives work? sprintf("%04d", -1) => '-001'?
masak nwc10: I can see the case for the other answer, but I don't think it's strong enough.
ssutch: answser: check with Perl 5 and/or C.
nwc10 masak: which is exactly why I felt that there's no right answer.
masak answer*
nwc10 just a less wrong answer 19:42
dalek kudo-star-daily: ddd0acf | coke++ | log/ (5 files):
today (automated commit)
kudo-star-daily: dc0909c | coke++ | log/ (5 files):
today (automated commit)
nwc10 rn: printf "%#o", 0o52
camelia niecza v24-81-g6672fa2: OUTPUT«Unhandled exception: invalid format specifier␤ at /home/p6eval/niecza/lib/CORE.setting line 1396 (sprintf @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1397 (printf @ 5) ␤ at /tmp/C1TLTfPeFm line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE…
..rakudo 01fc34: OUTPUT«052»
masak nwc10: right. the less wrong answer (IMHO) is to not disrupt sprintf's output.
nwc10 OK, there we go
I don't know how nailed down %#o is
masak nwc10: there's been talk of a modern sprintf-alike where we can innovate.
but it's only talk. 19:43
[Coke] for masak: java.lang.IllegalArgumentException: sprintf only accepts ints, nums, and strs, not class __P6opaque__62
nwc10 but maybe %#o and %#O should exist and do the 0o notation
sorear pubs.opengroup.org/onlinepubs/00969...rintf.html 19:44
masak [Coke]: I feel I'm missing some context.
sorear: thanks. adding. 19:45
[Coke] failure from one of the rakudo.jvm spec tests.
I mention it only because I thought you were sprintf hacking.
(I'll have today's run posted shortly, you can grab the failing test from there.)
masak [Coke]: ah. thanks.
[Coke]: I'm sprintf hacking, but so far outside of Rakudo. 19:46
[Coke] notes that Dynamic variable $*PID not found is a common error in the r-jvm spec run
labster more like sprintf replacing?
sorear "... if FLT_RADIX is not a power of 2 ..."
these people think of everything 19:47
masak sorear: like the NetHack devs! :P 19:48
nwc10 sorear: IIRC it's because there's now an IEEE spec for decimal arithmetic, and so I guess the two are related
sorear is_run et al won't work on rkaudo jvm without involved changes 19:49
nwc10 IIRC there's an IBM floating point format which is base 16, not base 2, but (obviously) for that, anything that is a power of 16 will be a power of two :-)
sorear ie what do we do with $*EXECUTABLE_NAME
nwc10 but that base 16 format has interesting artefacts due
dalek rl6-roast-data: 1b39b72 | coke++ | / (5 files):
today (automated commit)
19:50
nwc10 due to, er I forget exactly what
19:50 _ilbot joined
[Coke] ^^ daily run, rakudo-jvm up over 17K passes. 19:50
nwc10 it sort of makes sense im my head, but I can't explain it
19:50 berekuk left, _ilbot left 19:51 berekuk joined
[Coke] rakud.jvm passing 66.2% of the tests rakudo.parrot does. 19:51
nwc10 "this week" :-) 19:52
jnthn [Coke]: As of which commit?
oh, wait, it's probably in there...
[Coke] no, only the commit of roast is kept. one moment. 19:53
as of 01fc34b on rakudo.jvm
masak r: my $yesterday = 63.88; my $today = 66.62; my $day_rate = $today - $yesterday; say my $days_left = (100.00 - $today) / $day_rate 19:54
camelia rakudo 01fc34: OUTPUT«12.182482␤»
masak :)
sorear++ jnthn++
[Coke] sorear++ jnthn++
colomon jnthn++ sorear++
jnthn [Coke]: Oh, that's latest one. 19:55
masak: That's not an S-curve! :P
[Coke] man, you guys really slowed down, then! ;)
jnthn demands better curves :P
19:55 lue joined
masak jnthn: I just thought the best time to extrapolate linearly would be somewhere in the middle of the S-curve :D 19:57
masak turns the estimate into a deadline and cracks his whip
oh, the two hours are up already... 19:58
sorear is it more sigmoid, or more Gompertzy? 19:59
masak seven commits, three features. not bad :)
dagurval++ ssutch++ FROGGS++
nwc10 masak++
masak feel free to keep hacking -- I'll probably stick around.
sorear nwc10: inconsistent relative error between f.fff[ef] and 1.000[01 ?
masak I may even end up doing something useful myself. :)
nwc10 yes, something like that
ssutch :)
FROGGS masak: I should get a prefix, not a postfix :o) 20:00
masak FROGGS-- ++FROGGS
lue hello world o/
FROGGS right :o)
masak lue! \o/
nwc10 actually, I think that the problem was that 2 is smaller than 10, whereas 16 is larger than 10
so the artefacts of conversion shake out in a very different way
I'm really failing to remember. Sorry 20:01
sorear nwc10: makes sense, I read something once on proper rounding in binary-to-decimal conversion
20:01 moritz joined
sorear it's actually a really hard problem 20:01
20:02 moritz left
masak it is? sounds interesting. 20:03
nwc10 the artefacts of conversion for various pairs of numbers with adjacent representations
colomon what the hey is Ops.java's radix function supposed to be doing?
oh. 20:04
:\
jnthn colomon: Parsing iirc
[Coke] colomon: I just ahd the same jar issue you did. it was sufficient to remove install-jvm and reinstall it.
20:05 moritz_bck joined
jnthn colomon: It's *meant* to be a fairly direct port of the Rakudo on Parrot one. 20:05
moritz_bck two short announcements regarding the IRC logs: 1) the network connection to the logging host suffers from massive packet loss; don't be surprised if it's slow/unresponsive 20:06
colomon jnthn: why is it using doubles?
moritz_bck 2) I have a branch of the logging code that uses a totally different search backend (Lucy); you can try it out at tina.perlgeek.de/perl6/search (it doesn't have the data from the last ~2 days)
feedback welcome :-)
20:06 moritz joined
jnthn colomon: Are you looking at radix_i, or radix_I? Rakudo uses the latter, which does bigint stuff, iirc. 20:07
colomon: Short answer is "I don't know 'cus I just ported it", though ;)
20:07 moritz left
colomon it's just named radix 20:07
jnthn colomon: There may be errors in the port but I doubt I'd have introduced doubles where they weren't there.
ah, OK
I think radix_I is the one Rakudo uses, though.
colomon that's a capital i there? 20:09
colomon has located that function
[Coke] bah. Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' 20:10
is rakudo.jvm make -j safe?
moritz_bck colomon: capital I for bigint
[Coke] starts over.
jnthn [Coke]: del *.class 20:11
colomon 's font doesn't distinguish well between I and l
20:11 moritz joined 20:12 _ilbot joined
[Coke] jnthn: will try to remember for next time. :) 20:12
flussence dreams of some Grand Unified String Theory where sprintf and pack/unpack get replaced with something even better with a grammar-like syntax...
.oO( oh wait, I may be describing perl5 formats... )
20:13
ssutch in nqp, how can i get integer string without the sign character?
20:13 moritz left, _ilbot left
sorear abs then stringify? 20:14
[Coke] nqp: say(~nqp:abs(-3))
camelia nqp: OUTPUT«Confused at line 2, near "say(~nqp:a"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
[Coke] nqp: say(~nqp::abs(-3))
camelia nqp: OUTPUT«Error while compiling block : Error while compiling op call (source text: "~nqp::abs(-3)"): Error while compiling op stringify (source text: "~"): Error while compiling op abs (source text: "nqp::abs(-3)"): No registered operation handler for 'abs'␤current instr.: '' pc 5057…
masak flussence: grammar-like syntax, and excellent 6model integration.
ssutch nqp: say(nqp::abs(-3))
camelia nqp: OUTPUT«Error while compiling block : Error while compiling op call (source text: "nqp::abs(-3)"): Error while compiling op abs (source text: "nqp::abs(-3)"): No registered operation handler for 'abs'␤current instr.: '' pc 50579 (src/stage2/QAST.pir:18466) (src/stage2/QAST.nqp:3077)…
[Coke] no abs()? huh.
masak flussence: come to think of it, maybe such a format could be *seen* as a repr in some sense! 20:15
20:15 _ilbot joined 20:16 _ilbot left, moritz joined, berekuk left, moritz left
jnthn abs_i 20:17
flussence masak: if I ever get unlazy enough to write code, one of the things I want to make happen is being able to call .Buf on arbitrary objects and have it DWIM, without declaring anything besides sufficiently unambiguous data types on their attributes. 20:18
(or at least a sub buf() that can take arbitrary input)
20:19 rindolf left
flussence (and vice-versa, given a type object and a Buf...) 20:19
20:21 berekuk joined
tadzik uh-h 20:21
seems I'm late for sprintf hacking :(
tadzik keeps missing hackathons
nwc10 tadzik: I think you're allowed to carry on from where they left off 20:22
20:23 berekuk left
tadzik I guess so 20:24
jnthn go tadzik!
20:24 berekuk joined 20:26 konundra joined
masak tadzik: instructions at the top of the file. 20:26
tadzik yep, looking :) 20:27
20:27 berekuk left, berekuk joined 20:29 fhelmberger joined 20:30 fhelmberger left 20:31 berekuk left
colomon is not seeing any obvious issues with radix_I 20:32
20:33 moritz joined
diakopter anyone: golfiest way to iterate characters in a string? 20:34
nqp or p6
jnthn r: .say for 'omg'.comb
camelia rakudo 01fc34: OUTPUT«o␤m␤g␤»
moritz_bck for $str.comb 20:35
diakopter comb. rockin. thanks!
20:36 MrMeek-afk left, moritz left
ssutch tadzik i am finishing up 0-padding 20:36
20:37 berekuk joined
FROGGS there is a bug in hex_directive, github.com/masak/sprintf/blob/mast...f.nqp#L135 20:37
~ (concat) has a higher precedence than ??!!
masak so it does. 20:38
fixing.
[Coke] 's build fails again. wtf. 20:39
guess I have to stick with "rebuild completely from scratch" each time.
moritz_bck ternary is just a smidgeon tighter than item assignment
masak likes the word "smidgeon" wrt operator tightness
20:40 berekuk left
masak nqp: sub foo(:$p = False) { say($p) }; foo() 20:40
camelia nqp: OUTPUT«␤»
masak nqp: sub foo(:$p) { say($p) }; foo()
camelia nqp: OUTPUT«␤»
20:41 konundra left 20:42 berekuk joined
ssutch nqp: say(match('<%0*%>', /'%' $<size>=(\d+|'*')? '%'/)) 20:42
camelia nqp: OUTPUT«␤»
ssutch why doesn't this match?
20:42 konundra joined
dagurval nqp: say(2**64) 20:42
camelia nqp: OUTPUT«1.84467440737096e+19␤»
jnthn ssutch: You don't quantify the outside thing 20:43
dagurval anyone know of a way to not get the scientific notation on that?
masak ssutch: because it can only match either \d+ or '*', not both.
ssutch nqp: say(match('<%*%>', /'%' $<size>=(\d+|'*')? '%'/))
camelia nqp: OUTPUT«%*%␤»
ssutch ahh, yep
jnthn nqp: say(match('<%*%>', /'%' $<size>=[[\d+|'*']+]? '%'/)) 20:44
camelia nqp: OUTPUT«%*%␤»
jnthn nqp: say(match('<%0*0%>', /'%' $<size>=[[\d+|'*']+]? '%'/))
camelia nqp: OUTPUT«%0*0%␤»
20:44 moritz joined
ssutch nqp: say(match('<%0*0%>', /'%' $<size>=[[\d+|'*']{0..2} '%'/)) 20:45
camelia nqp: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}' at line 2, near "0..2} '%'/"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
20:45 _ilbot joined
ssutch nqp: say(match('<%0*0%>', /'%' $<size>=[[\d+|'*'] ** 0..2 '%'/)) 20:46
camelia nqp: OUTPUT«Unrecognized regex metacharacter = (must be quoted to match literally) at line 2, near "'%' $<size"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
20:47 _ilbot left, moritz left
ssutch r: say(match('<%0*0%>', /'%' $<size>=[[\d+|'*'] ** 0..2 '%'/)) 20:47
camelia rakudo 01fc34: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter = (must be quoted to match literally)␤at /tmp/QFvde02u6f:1␤------> %>', /'%' $<size>=[[\d+|'*'] ** 0..2 '%'⏏/))␤Unable to parse regex; couldn't find final '/'␤at /tmp/QFvde02u6f:1␤--…
ssutch nqp: say(match('<%0*0%>', /'%' $<size>=[[[\d+|'*'] ** 0..2] '%'/))
camelia nqp: OUTPUT«Unrecognized regex metacharacter = (must be quoted to match literally) at line 2, near "'%' $<size"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
ssutch how does nqp do repetition? 20:48
jnthn nqp: say('aaaa' ~~ /a ** 2..3/) 20:49
camelia nqp: OUTPUT«aaa␤»
jnthn hm, like that.
oh, I think your regex opens one too many [ ?
yeah, I count 3 openers, two closers
ssutch nqp: say(match('<%0*0%>', /'%' $<size>=[\d+|'*'] ** 0..2 '%'/))
camelia nqp: OUTPUT«␤»
FROGGS nqp: say(nqp::floor_n(3))
camelia nqp: OUTPUT«3␤»
20:51 moritz_bck left
jnthn ssutch: Thing you need 0..3 for that to match. 0, then *, then 0 = 3 things. 20:51
20:51 dmol left
jnthn Right, let's see if I can finally do this junction bind failover.. 20:51
ssutch nqp: say(match('<%0*0%>', /'%' $<size>=[\d+|'*'] ** 0..3 '%'/))
camelia nqp: OUTPUT«%0*0%␤»
FROGGS nqp: say(nqp::floor_n( (3.3 - 3) * 10 )) # wtf?
camelia nqp: OUTPUT«2␤»
nwc10 "junction bind failover" sounds painful
FROGGS meh, I hate floats
nwc10 tell me about it
been hating them for years 20:52
ever since I had 4 different values of 500
(or was it -500. Sign proably doesn't matter)
jnthn nwc10: In theory it should be straightforward...
colomon gist.github.com/colomon/5842544 # on the trail of the Int bug
20:52 ajr_ left
jnthn nwc10: At least, now I've worked out a way to do it that I think will work... 20:52
nwc10 "buy sorear beer, sit back and wait" ? :-) 20:53
jnthn I'm not sure beer is quite the way sorear++ is fueled... :)
hm, though I'd not mind a beer...
FROGGS I already got one :o) 20:54
sqirrel++
20:54 raiph left 20:55 konundra_ joined 20:57 dmol joined 20:59 xlat joined, cooper joined, cooper left, cooper joined
xlat I try to install panda, but bootstrap.pl won't :-( pastebin.com/HFeht0wV 20:59
21:00 snoopy joined 21:01 berekuk left
colomon woah, zillions of numbers fail 21:01
xlat trying to try perl6 21:03
tadzik AccÞs refusÚ
is that "Access denied"?
xlat yes
tadzik dafuq 21:04
xlat I m running rakudo 05.2013 on win7
tadzik what platform is that?
ok
sorear looks like mojibake
at least, Accths is not a word in any language *I* know... 21:05
jnthn
.oO( mojibake...my fave kind of cake... )
sorear oh, þ ne Þ
.u Þ
yoleaux U+00DE LATIN CAPITAL LETTER THORN [Lu] (Þ)
21:05 fgomez left
sorear ok, accTHs 21:05
jnthn xlat: Did you build it yourself or do a binary download?
21:06 _ilbot joined, fridim_ joined
nwc10 Hello _ilbot! 21:06
21:06 _ilbot left
nwc10 oops 21:06
xlat bin download (I don't remember a success compilation of rakudo this year)
jnthn builds it on Win7 daily ;) 21:07
If it's the Rakudo Star binary then it should already have a Panda set up.
Without needing to bootstrap it
tadzik Exception in thread "main" java.lang.NoSuchMethodError: org.perl6.nqp.runtime.CodeRef.<init> 21:08
jnthn wat
tadzik more: gist.github.com/tadzik/5842624 21:09
sorear jnthn: how does rakudo-jvm do on windows, btw?
jnthn sorear: The eval client / eval server don't work. Aside from that, so far so good. 21:10
21:10 _ilbot joined, _ilbot left
colomon does sort work on jvm yet? 21:11
sorear tadzik: "perl6.getCodeRefs" is suspicious
xlat jnthn: I've tryed "perl6 panda install Grammar::Debugger" but it complain on Missing or wrong version of dependency 'c:/.../lib/Shell/Command.pm'
sorear because, um, there's nothing that can generate a method of that name...
*now*.
tadzik xlat: isn't that after the failed bootstrap? 21:12
xlat: try nuking c:/rakudo/lib/parrot/5.3.0/languages/perl6/site/
sorear there is evidence in the current code that it may have been used in the distant past
perhaps you have a very old something floating around
xlat ouch.. I got another error before but can't remember
jnthn colomon: yes
colomon jnthn++ 21:13
If I choose numbers with (^99999999999999999).roll, I get 293 good versus 707 bad (where bad means $_ != $_.Str.eval) 21:14
tadzik sorear: seems to work fine after git-clean -fdx
make realclean didn't really clean it though 21:15
jnthn colomon: That's a little bothersome.
colomon jnthn: yes, I concur.
jnthn colomon: I'm guessing this will boil down to something silly.
colomon I'm sure it will!
21:15 Guest1337 joined
jnthn Which doesn't mean it'll be easy to find :( 21:15
colomon I'm randomly searching in hope of seeing a pattern of some sort
xlat tadzik: it's building Grammar::Debugger now ...
tadzik xlat: whew. I'm relieved :) 21:16
sorear jnthn: what's the releationship between github.com/perl6/nqp/commit/2d9304 and github.com/perl6/nqp/commit/f4a840 ?
21:16 jeff_s1 left
jnthn sorear: They're drinking buddies... 21:16
jnthn actually looks at them... :)
sorear: I managed to overgeneralize in f4a840 21:17
sorear: And fixed that in the other one
sorear: I assumed & and ^/~ had the same truncation semantics. Seems the tests thing otherwise. 21:18
21:18 moritz joined, moritz left
FROGGS masak / ssutch: here is my patch, all passes except the vector tests... note: I need to clean up a lot: gist.github.com/FROGGS/9cf8ecb4132e2fba589e 21:19
jnthn yay, think I've got the bind failover to work 21:20
sorear jnthn: ah, I made the same generalization and then wondered why the later one wasn't just a revert...
ssutch FROGGS: cool. we're going to have to merge our regex changes
i am about to push mine right now
21:20 _ilbot joined
jnthn sorear: Because & needed to stay truncatitive 21:21
21:21 _ilbot left
jnthn uh, truncative? 21:21
How is English work...
FROGGS ssutch: ahhh sssss push it
I'm trying now to support the vector stuff
21:21 dmol left
FROGGS and will read more docs how the flags/modifier can be combined 21:22
diakopter jnthn: truncatory?
jnthn: truncacious?
ssutch FROGGS: pusherd
diakopter jnthn: truncarific?
jnthn: truncatiferous?
jnthn: truncatillaminous? 21:23
dalek kudo/nom: 51f4ebe | jnthn++ | src/vm/jvm/ (2 files):
Junction bind failover.

Gets almost all of the junction tests passing that to on Rakudo Parrot as well as helping many other test files that depend on this somehow.
jnthn Suspect that is worth another couple of percent.
masak FROGGS: looks great. 21:24
FROGGS masak: cool
masak FROGGS: I'd rather you not push commented-out tests.
either delete them or pass them ;)
ssutch: reviewing your changes now. 21:25
FROGGS masak: I'm not going to push them that way, no worries :o)
21:25 jaldhar left
masak ssutch: looks great, but I think $padding_char is better off being a parameter. I can change it, no worries. 21:26
a parameter like $size, that is. 21:27
ssutch masak: i know what you mean, i was having an internal debate myself, i can change it
jnthn sips on a DIPA
ssutch yum 21:28
masak: going to wait a sec until after FROGGS merges his changes in, it will make his merge less painful 21:30
masak ssutch: changing it now.
ssutch ah ok
masak ssutch: ok, I'll hold until after FROGGS pushes.
FROGGS masak: no, go ahead, I guess I need another 30mins 21:31
masak oh, ok.
21:34 moritz joined, moritz left
nwc10 jnthn: so, "this week" we're at 66% passing? :-) 21:35
masak there, fixed.
jnthn nwc10: [Coke]++'s last number was 66.62%
nwc10: That's before I landed the failover fixes
21:37 _ilbot joined
nwc10 OK, "last week" we were at 66.62%, and "this week" we're improved? 21:37
and "next week" is in about 8 hours?
21:37 _ilbot left
jnthn depends how you count weeks, dunnit? :) 21:38
nwc10 I think someone pushed the fast-forward button on the calendar 21:39
jnthn colomon: I can reproduce what you're seeing here, at least 21:41
21:41 snoopy_ joined 21:43 snoopy left 21:44 _ilbot joined
colomon \o/ 21:44
FROGGS r: augment class Order { } 21:45
jnthn Don't see what's going on yet, though
camelia rakudo 01fc34: OUTPUT«===SORRY!===␤augment not allowed without 'use MONKEY_TYPING'␤at /tmp/Hndts6bDQK:1␤------> augment class Order ⏏{ }␤ expecting any of:␤ scoped declarator␤ generic role␤»
21:45 _ilbot left, moritz joined, moritz left
FROGGS r: use MONKEY_TYPING; augment class Order { } 21:45
jnthn Also, Order is not a class
camelia rakudo 01fc34: OUTPUT«===SORRY!===␤Cannot augment Order because it is closed␤at /tmp/VARvnaLmeO:1␤------> use MONKEY_TYPING; augment class Order ⏏{ }␤ expecting any of:␤ scoped declarator␤ generic role␤»
FROGGS ahh
21:46 mtk left, spider-mario left, _ilbot joined
FROGGS okay, then I just numify the return value of cmp and <=>... 21:46
21:47 _ilbot left
FROGGS well, I do that tmw, masak: I'll push tomorrow the binary patch... too tired 21:47
gnight all
jnthn Wow. That junctions fix gets us attemtping (no idea about passing) over 1000 more tests. 21:48
Files=739, Tests=20394, 1524 wallclock secs
colomon here's my latest number sweep: gist.github.com/colomon/5842544
jnthn > say 9156818666617013 21:49
9156818666617012
grrr
21:50 moritz joined, moritz left, FROGGS[mobile] joined
tadzik :D 21:51
colomon seems like the bottom bits are always 0 (in the incorrect version)
FROGGS[mobile] masak: what about making an NQP::PrintfGrammer? 21:52
masak: the regexes are going to be complex
jnthn r: say nqp::atpos(nqp::radix_I(10, '9156818666617013', 0, 2, Int)) 21:53
camelia rakudo 01fc34: OUTPUT«===SORRY!===␤Error while compiling block (source text: "say nqp::atpos(nqp::radix_I(10, '9156818666617013', 0, 2, Int))"): Error while compiling op call: Error while compiling block : Error while compiling op call (source text: "say nqp::atpos(nqp::radix_I(10, '91…
jnthn r: say nqp::atpos(nqp::radix_I(10, '9156818666617013', 0, 2, Int), 0)
camelia rakudo 01fc34: OUTPUT«9156818666617013␤»
jnthn > say nqp::atpos(nqp::radix_I(10, '9156818666617013', 0, 2, Int), 0)
9156818666617013
Hmmm.
So it's not radix_I, it seems
colomon rn: say 8989468655634681.hwx 21:54
camelia niecza v24-81-g6672fa2: OUTPUT«Unhandled exception: Unable to resolve method hwx in type Int␤ at /tmp/dvcPHn5TvK line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4532 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4533 (module-CORE @ 578) ␤ at /home/p6…
..rakudo 01fc34: OUTPUT«No such method 'hwx' for invocant of type 'Int'␤ in block at /tmp/_O4Wmazbx9:1␤␤»
colomon rn: say 8989468655634681.hex
camelia rakudo 01fc34: OUTPUT«No such method 'hex' for invocant of type 'Int'␤ in block at /tmp/0HULobq722:1␤␤»
..niecza v24-81-g6672fa2: OUTPUT«Unhandled exception: Unable to resolve method hex in type Int␤ at /tmp/xQDWjuGaqD line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4532 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4533 (module-CORE @ 578) ␤ at /home/p6…
colomon rn: printf ("%x", 8989468655634681)
camelia niecza v24-81-g6672fa2: OUTPUT«Unhandled exception: Not enough arguments for this format string␤ at /home/p6eval/niecza/lib/CORE.setting line 1396 (sprintf @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1397 (printf @ 5) ␤ at /tmp/7puaQht2ut line 1 (mainline @ 3) ␤ at /home/p6e…
..rakudo 01fc34: OUTPUT«Null PMC access in get_integer()␤ in sub sprintf at src/gen/CORE.setting:2770␤ in sub printf at src/gen/CORE.setting:2775␤ in block at /tmp/ffWxd0Kjx8:1␤␤»
colomon that number (8989468655634681) is the highest working odd number in a sweep I just made (with numbers one digit less than the previous sweep) 21:55
and no numbers smaller than that fail 21:56
masak FROGGS[mobile]: yes, it's a good idea. please try it. don't go overboard on complexity; just the functionality we have/need right now is enough :)
FROGGS[mobile] k
masak ++FROGGS[mobile] 21:57
21:58 FROGGS[mobile] left
tadzik jnthn: thesis: on windows, unlink doesn't remove read-only files. Can you confirm? 21:59
jnthn tadzik: gist.github.com/jnthn/5842775 22:00
22:01 berekuk joined
tadzik yep, that aligns with what xlat++ reported 22:01
should we count that as a bug? 22:02
unlink works in Perl 5 for read-only files
22:04 berekuk left
masak then I'd say yes, consider that a bug. 22:05
unless the spec clearly says that Perl 6 deviates in that regard.
labster unless you want unlink("file", :if-writable)? 22:08
probably not though, since it's not much harder to test if you mean that. 22:09
masak that's missing the point a little. Perl 5 removes the file regardless of whether it's writable or not.
labster it's still a bug, certainly
masak adding a flag to emulate the current behavior may cover some future use case, but we don't have such a use case right now.
jnthn r: say nqp::isbig_I(9156818666617013) 22:10
camelia rakudo 51f4eb: OUTPUT«1␤»
jnthn colomon: isbig_I comes back false on JVM; wonder if it's to do with that 22:11
colomon jnthn: I've found the vast majority of odd numbers 9007060094858671 and 9275232044134063725 fail
masak r: say nqp::isbig_I(3)
camelia rakudo 51f4eb: OUTPUT«0␤»
colomon (note that the second number has three additional digits
)
22:12 _ilbot joined, moritz joined, _ilbot left, moritz left
labster I do wish we could rely less on Perl 5 for specification. I guess that means I need to go add more to the synopses. 22:15
22:16 berekuk joined
masak well, half of what I'm saying is "Perl 6 tends to default to Perl 5 semantics, unless otherwise specified". 22:17
colomon using (9007060094858671..9275232044134063725).roll
501 even, 499 odd
7 good versus 993 bad
afk # greatlakes.loons.milb.com/index.jsp?sid=t456
masak the other half is "I think it's probably a good idea to unlink files even if they're readonly, because that's what Perl 5 already does". 22:18
labster and that's not a bad idea, masak. I'm just talking about another purpose, which is: the point of having a specification is so that we don't have to refer to an implementation 22:19
Of course, I do lots of referring to the Perl 5 implementation when I write the specs anyway.
22:24 panchiniak_ joined, _ilbot joined, _ilbot left 22:26 _ilbot joined, _ilbot left
masak labster: we agree, it seems. 22:27
labster hugme: hug masak
hugme hugs masak
22:27 berekuk left
masak the fundamental problem inherent in "I wish we didn't have to default to Perl 5 semantics" is something like this: covering all semantics in the spex is undecidable. 22:28
case in point: what we just found out about 'unlink'.
22:28 berekuk joined
masak I bet no-one even thought of that case before. 22:28
22:28 moritz joined, _ilbot joined, _ilbot left, moritz left
xlat masak: no one use panda on windows? 22:29
masak perldoc doesn't mention that 'unlink' removes readonly files.
xlat: probably few enough.
xlat: or maybe the 'unlink' is not on a path that's exercised often enough. I dunno.
github.com/mirrors/perl/blob/blead...p/unlink.t contains ablauts, but not really any tests for readonly files. 22:31
dalek p: 060b4b4 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Seems isbig_I needs a smaller idea of "big".

Suspect there's a little more to it than this; somewhere, an int must be getting turned into a num before being stringified, or similar. This should bring it out of the range where errors can occur as a result, however.
  colomon++ for reporting, bug hunting etc. for this.
22:34
22:34 moritz joined, moritz left 22:35 _ilbot joined 22:36 _ilbot left 22:39 _ilbot joined, _ilbot left 22:41 _ilbot joined, _ilbot left 22:43 xlat left 22:46 moritz joined, moritz left 22:55 berekuk left, berekuk joined
timotimo what cool stuff have i missed while i was away watching Star Trek: The Motion Picture? 22:56
22:59 census joined 23:00 _ilbot joined, _ilbot left 23:01 mtk joined
ssutch timotimo github.com/masak/sprintf 23:02
23:03 moritz joined, moritz left 23:05 berekuk left 23:09 moritz joined, moritz left 23:12 mine_too joined, mine_too left
masak heh. I'm reading en.wikipedia.org/wiki/Software_crisis and my first thought is "what makes us think that the crisis is in any way over?" 23:13
jnthn 'night, #perl6 23:14
masak 'night, #perl6
diakopter 'nite
tadzik good knight jnthn
sorear once it becomes the status quo it is no longer a /crisis/
timotimo night jnthn! :)
masak sorear: heh. 23:17
timotimo Files=713, Tests=17754, 668 wallclock secs ( 3.33 usr 0.71 sys + 14.49 cusr 3.41 csys = 21.94 CPU) btw 23:18
labster All of these new-fangled auto-mobiles have sure led to a lot of cost overruns and unmanageable traffic.
timotimo Files=739, Tests=28132, 410 wallclock secs ( 5.14 usr 0.83 sys + 1214.20 cusr 81.63 csys = 1301.80 CPU) (and this, for comparison, is parrokudo)
diakopter timotimo: why is the CPU so different 23:19
timotimo because one is jvm and the other is parrot?
oh, i guess it's because it uses the eval server 23:20
so the cpu time is being attributed to another process
diakopter I didn't know there was an eval server
timotimo "make spectest" automatically uses it
so, anyway, 63.1% of the tests rakudo runs 23:22
tadzik in ~160% of the tme
* time
timotimo true, true. except the parrot spectest has an even bigger penalty, because it just fires up a new parrot instance for each test file 23:23
so, very obviously the jit doesn't get a chance to warm up very much during the spectest suite, which makes sense.
diakopter what jit 23:24
timotimo JVM's jit
sorear parrot doesn't have a jit, so it's not so bad to start a new instance for each run 23:26
23:26 ugexe left
sorear on my machine, parrot takes .6 sec to start, jrakudo takes 6.0 sec to start, and a running evalserver takes .6 sec to create a fresh GlobalContext for a new test file 23:26
23:26 ugexe joined
flussence sure it does, it JITs tons of base64 blobs into usable stuff every run :P 23:27
sorear we could get the per-file overhead much lower if we were willing to run multiple files in the same container, but I didn't want to risk crosstalk
flussence: even with the evalserver we currently do a fresh deserialize for each test file and then throw away the object graph at the end
so that if one test winds up mutating CORE objects for whatever reason, it won't affect the nexr 23:28
diakopter can the evalserver create a new GlobalContext in another thread as soon as the last fresh one starts to be consumed?
(starting from a pristine master that remains untouched)
sorear diakopter: it can't do anything in another thread because I'm running prove -j4 and my CPUs are maxed out :) 23:30
TEST_JOBS=4 spectest
diakopter heh.
tadzik hehe, same here
23:30 _ilbot joined
tadzik 400% cpu load, 2 gigs of ram in use :) 23:31
23:31 _ilbot left
sorear 'true' ram usage actually stays fairly low, only around 200 megs for my TEST_JOBS=4 spectest 23:31
you can see that with jvisualvm, btw
tadzik htop says my evalserver eats 28% of system memory 23:32
sorear a larger heap means less time garbage collecting
diakopter wait, is rakudo-jvm using a cross-compiler at all?
sorear diakopter: no 23:33
diakopter oh, nice.
how do I get/build it..
sorear if you open the evalserver in jvisualvm and click on the 'Monitor' tab it shows you a graph of memory usage 23:34
[Coke] masak: weird. I'm reading en.wikipedia.org/wiki/Infinite_Crisis
sorear fun to look at :)
is that anything like Crisis on Infinite Earths?
[Coke] sorear: any chance we can make the test server work for t/spec/test_summary ? 23:35
tadzik Files=713, Tests=18617, 837 wallclock secs ( 6.84 usr 1.10 sys + 33.35 cusr 5.99 csys = 47.28 CPU)
[Coke] sorear: yes. it's basically a sequel, 20 years later.
23:35 _ilbot joined, _ilbot left
sorear [Coke]: yeah, I thought you said/implied lizmat++ was working on it so I didn't want to interfere 23:36
diakopter: github.com/rakudo/rakudo/blob/nom/README#L32
[Coke] sorear: no, she's getting me a box to run stuff on. 23:37
interfere away!
diakopter oh, that test server. 23:41
flussence I have a terrible idea. Hook the evalserver up to a FastCGI frontend, and you've got a drop-in replacement for PHP :) 23:42
23:43 konundra_ left
labster flussence: you mean brilliant idea 23:44
23:44 konundra left
flussence anything that can replace php is a brilliant idea, but I'm talking relative to doing it right :) 23:44
diakopter oh, ConfigureJVM.pl can't --gen-nqp 23:45
23:45 ldthien0 joined, ldthien0 left
sorear nope 23:46
ooo 23:48
23:48 _ilbot joined, _ilbot left
sorear just came up with a reliable and portable(?) way to prevent the test server from outliving the test harness 23:49
diakopter is timing an nqp-jvm make install from scratch
23:49 moritz joined
sorear open(my $tserv, "| ./perl6-test-server") 23:49
flussence nice
sorear when the test harness dies for whatever reaser, the test server gets an EOF on stdin and can know to quit
sorear probably needs to implement a proper arg parser for the test server 23:50
23:50 moritz left
timotimo hoelzro: do you think you can work something like this? github.com/marijnh/CodeMirror/blob...rl/perl.js 23:50
23:54 _ilbot joined
timotimo codemirror.net/doc/manual.html#modeapi - this is documentation about that 23:54
23:54 moritz joined, _ilbot left, moritz left