Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-06-28

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 * [Coke] nukes rakudo.jvm and rakudo.jvm/nqp every time. it's the only way to be su... hey, is it fridy already?
00:00 flussence .oO( wouldn't that make it a literal segmentation fault? :)
00:00 sorear fridy?
00:01 flussence /frida++y/!
00:02 sorear flussence: The segmentation in SEGV refers to segmented memory management, and accessing outside the bounds of your process's reserved data segment
00:02 sorear Unix systems have used page-based memory management instead of segmentation for a couple decades now, but the name has stuck
00:02 sorear Windows, however, is more up to date and calls it INVALID_PAGE_FAULT iirc
00:02 timotimo fridcy?
00:03 timotimo er, fridby.
00:03 timotimo segfault is much funner to say IMO
00:07 dalek specs: c98d2d2 | (Brent Laabs)++ | S99-glossary.pod:
00:07 dalek specs: define and add some terms
00:07 dalek specs: review: https://github.com/perl6/specs/commit/c98d2d2c9d
00:08 labster feel free to adjust my definition of segfault in the above.
00:10 sorear :p
00:17 timotimo running python code after a while of perl6 coding: OOOOH GOD WHY IS IT SO FAST =o
00:18 sorear because it's not Perl6
00:18 timotimo yeah :(
00:18 timotimo but it's so many functions and deep recursion, computers have no business being this fast!
00:18 yoleaux joined #perl6
00:19 sorear because nobody had the "bright" idea to add Failure
00:19 sorear because + is an actual builtin and not calling into a giant wad of perl6 code
00:20 flussence because it's only designed to look nice from a distance, not when you're actually reading it
00:24 * timotimo has a sudden burst of "will perl6 ever be fast enough for me? :("
00:26 timotimo well, i'll just have to be as patient as everybody else; even less patient than most
00:26 [Coke] java.lang.NoSuchMethodError: org.perl6.nqp.runtime.Ops.srand(J)J
00:31 sorear timotimo: i have those all. the. time.
00:32 sorear srand is LHFy, if anyone wants it
00:32 xinming joined #perl6
00:32 timotimo bbl
00:33 sorear (you'll need to add a random-number object to the ThreadContext instead of using ThreadLocalRandom.current())
00:36 colomon sorear: you reckon that's a good idea, then?
00:39 timotimo do you think you can get rakudo close to niecza performance wise?
00:41 timotimo and that before the year ends? ;)
00:42 timotimo well by that time we may already have moarvm running
00:42 timotimo that may or may not improve things
00:42 xenoterracide joined #perl6
00:43 sorear timotimo: on moarvm?  probably
00:43 sorear niecza has some major cheats that it does when it thinks it can get away with it
00:43 timotimo cool
00:43 timotimo can those make it into rakudo? ;)
00:44 sorear like turning control exceptions into low-level 'goto's and running a special fastpath version of the arithmetic dispatcher
00:44 colomon I'd be shocked if MoarVM cannot beat Niecza performance-wise.
00:44 timotimo that sounds sensible actually
00:44 timotimo morphing loops should be sa pretty standard optimization
00:45 SamuraiJack joined #perl6
00:45 sorear timotimo: jnthn++ said some things earlier that make it sound like next-to-goto is already in moarvm
00:46 timotimo oooh nice
00:46 sorear OTOH jnthn is specifically opposed to maintaining a special version of the multidispatcher for arithmetic ops.  can't say I blame him
00:46 timotimo i wonder if the current compile time inlining and dispatch in the optimizer are already decent
00:47 timotimo for simple arithmetic
00:47 sorear right now the perl 6 feature that I would like to eliminate most is sink context
00:47 colomon sorear: from an efficiency standpoint?
00:47 sorear just think: an extra method call for every statement!  and the execution of for loops is very complicated
00:48 sorear colomon: from an efficiency and a semantic WTFs standpoint
00:48 timotimo eliminate from the language or while compiling?
00:48 sorear timotimo: eliminate from the language
00:48 * colomon has been opposed to sink context on semantic WTF standpoint since day one
00:48 timotimo i see your point :(
00:48 benabik joined #perl6
00:49 colomon but then, I was opposed to making map and for the same as well, which seems to have been the main impetus for sink context
00:51 sorear yes, map and for should not be the same
00:51 sorear that's like reason #1 rakudo is slow
00:51 sorear niecza is fast because it makes for mean for
00:56 sorear colomon: yes, having a random seed/object in ThreadContext is the best option imo
00:57 colomon sorear: If no one has tackled it before I finish the stuff I'm currently up to, I'll take another look at that, then.
00:58 BenGoldberg joined #perl6
00:59 timotimo is getting rid of the for/map-same-ness something that would happen?
01:00 colomon only if sorear and I figure out how to convince the rest of the p6 crew
01:01 colomon BigDecimal?!?
01:02 sorear colomon: moritz, too.
01:02 sorear what about BigDecimal?
01:02 colomon it's some sort of Num in java class?
01:02 sorear more like FatRat
01:02 colomon just ran into it trying to figure out why division is failing
01:02 sorear Num in java is Double
01:03 colomon > (1.Rat/2**256)
01:03 colomon 0
01:03 colomon rn: say (1.Rat/2**256)
01:03 camelia rakudo 3e5868: OUTPUT«8.63616855509444e-78␤»
01:03 camelia ..niecza v24-86-g39ab531: OUTPUT«8.6361685550944446E-78␤»
01:03 sorear (FatRat with the restriction that the denom is a power of10)
01:03 colomon is it actually standard java?
01:03 sorear yes
01:04 timotimo who hath the power to uploadeth a new S26.html?
01:04 timotimo http://t.h8.lv/S26-documentation.pod.html - i'd like to nominate this version of it
01:05 sorear colomon: I'd link you to the official java.math.BigDecimal docs but my DNS just went down
01:06 colomon sorear: it's okay, I think I've found them.
01:06 timotimo actually, hold on
01:06 timotimo i think that's based on code that's not in nom yet
01:06 timotimo indeed, the nomination is conceded
01:08 colomon oh, I've found the bug
01:08 colomon > (1 / 10**20).Num
01:08 colomon 0
01:08 colomon divide(new BigDecimal(getBI(tc, b)), 10, RoundingMode.HALF_UP)
01:08 colomon the 10 is the decimal precision of the result
01:09 colomon thus
01:09 colomon > (1 / 10**10).Num
01:09 colomon 1.0E-10
01:09 colomon > (1 / 10**11).Num
01:09 colomon 0
01:10 Guest1337 joined #perl6
01:13 colomon rn: say 2**1024
01:13 timotimo ah, that makes sense
01:13 camelia niecza v24-86-g39ab531: OUTPUT«1797693134862315907729305190789024733617976978942306572734300811577326758055009631327084773224075360211201138798713933576587897688144166224928474306394741243777678934248654852763022196012460941194530829520850057688381506823424628814739131105408272371633505…
01:13 camelia ..rakudo 3e5868: OUTPUT«1797693134862315907729305190789024733617976978942306572734300811577326758055009631327084773224075360211201138798713933576587897688144166224928474306394741243777678934248654852763022196012460941194530829520850057688381506823424628814739131105408272371633505106845862…
01:13 konundra joined #perl6
01:13 timotimo someone thought it was supposed to be the base?
01:14 colomon rn: say log10(2**1024)
01:14 camelia rakudo 3e5868: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Unable to parse expression in argument list; couldn't find final ')'â�¤at /tmp/qEVudq5SpS:1â�¤------> [32msay log10(2[33mâ��[31m**1024)[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤Â»â€¦
01:14 camelia ..niecza v24-86-g39ab531: OUTPUT«[31m===[0mSORRY![31m===[0m��Unable to parse argument list at /tmp/v9ssVngnwb line 1:�------> [32msay log10([33m�[31m2**1024)[0m�Couldn't find final ')'; gave up at /tmp/v9ssVngnwb line 1:�------> [32msay log10(2[33m�[31m**1024)[0m��Parse fail…
01:14 BenGoldberg r: (1/ 10**11).denominator.say
01:14 camelia rakudo 3e5868: OUTPUT«100000000000␤»
01:14 timotimo rn: say log10(2**1024)
01:14 camelia niecza v24-86-g39ab531: OUTPUT«308.25471555991669␤»
01:14 camelia ..rakudo 3e5868: OUTPUT«Inf␤»
01:14 colomon timotimo: thank you
01:14 timotimo yw :)
01:15 BenGoldberg r: (2**1024).WHAT.say
01:15 camelia rakudo 3e5868: OUTPUT«(Int)␤»
01:15 BenGoldberg rn: (2**1024).log10.say
01:15 camelia niecza v24-86-g39ab531: OUTPUT«308.25471555991669␤»
01:15 camelia ..rakudo 3e5868: OUTPUT«Inf␤»
01:16 BenGoldberg rn: (2**1024).Num.say
01:16 camelia rakudo 3e5868, niecza v24-86-g39ab531: OUTPUT«Inf␤»
01:16 colomon rakudobug, but I think it's known
01:17 timotimo bedtime for me :)
01:23 dalek nqp: b9f195c | (Solomon Foster)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
01:23 dalek nqp: Make div_In use the full accuracy possible in a Num.
01:23 dalek nqp:
01:23 dalek nqp: I'm a bit worried this is overkill that will reduce the efficiency
01:23 dalek nqp: of this conversion, but before this Rakudo JVM thought
01:23 dalek nqp: (1/10**11).Num == 0.0, which is completely unacceptable.
01:23 dalek nqp: review: https://github.com/perl6/nqp/commit/b9f195cf8d
01:23 colomon First JVM commit for me!  \o/
01:26 sorear colomon++
01:32 sorear colomon: fwiw, the way niecza handles this is to convert both sides to double *first*, then do a double divide
01:33 colomon sorear: right, but that's not necessarily the best way to do it.
01:33 colomon In particular, that will fail if either numerator or denominator is outside double range.
01:34 FROGGS joined #perl6
01:34 colomon whereas it's perfectly possible for both to be, and still have a quite reasonable result.
01:35 colomon though obviously constructing 308 digits of precision is braindead too.
01:36 sorear could go through an intermediate psuedo-double which is a double and an extra scale factor
01:37 sorear then divide the doubles and subtract the scales, and combine with Math.scalb
01:43 colomon true
01:44 raiph joined #perl6
01:53 dayangkun joined #perl6
01:59 [Coke] r: print 21831 / 25969
01:59 camelia rakudo 3e5868: OUTPUT«0.840656»
01:59 colomon [Coke]: did that catch my change?  ;)
02:00 sorear [Coke]: is that the curent pass%?
02:00 [Coke] colomon: it takes *hours* to run.
02:01 colomon [Coke]: really?  make spectest takes about ten minutes on my machine.
02:02 sorear colomon: i haven't a tuit to make test_summary use a persisant VM yet
02:02 [Coke] "I don't run make spectest"
02:02 sorear so right now it's spinnign up a fresh jvm for each file
02:02 colomon ugh
02:03 [Coke] it's at 3e58687
02:03 colomon r: say (21831 + 130) / 25969
02:03 camelia rakudo 3e5868: OUTPUT«0.845662␤»
02:04 [Coke] -> zzz
02:04 colomon o/
02:06 sorear o/
02:07 obra joined #perl6
02:07 sorear colomon: 130 new passing tests from the div change?
02:07 sorear o/ obra
02:07 colomon sorear: yes, it was causing a fatal div by zero error in fatrat.t
02:07 colomon halfway through
02:08 sorear think we can manage 85 by EOD?
02:09 colomon if we put our minds to it, I'm almost sure
02:09 [Coke] zzzzgoodluckzzz
02:13 colomon given.t is failing 40+ tests
02:14 colomon t/spec/S05-mass/properties-derived.t failing 256
02:17 colomon t/spec/S12-attributes/instance.t 83
02:18 colomon io_in_for_loops, 23
02:19 colomon t/spec/S32-list/categorize.t, 50+
02:19 colomon I'll take a look at that one, I was just messing around with it earlier this week.
02:20 colomon oodles of S32-temporal failures
02:21 colomon categorize:
02:21 colomon not ok 1 - simple sub call with Sub
02:21 colomon #      got: {"20" => [Any, Any], "10" => [Any, Any], "0" => [Any, Any, Any, Any]}
02:21 colomon # expected: {"20" => [29, 23], "10" => [12, 18], "0" => [7, 9, 3, 7]}
02:22 hypolin joined #perl6
02:33 colomon crazy
02:33 colomon self{$k}.push: $_; with $_ == 29 produces self{$k} === [Any]
02:34 adu joined #perl6
02:38 hlin_ joined #perl6
02:39 benabik That doesn't seem right.
02:39 colomon benabik: yes, I am debugging
02:40 benabik Can you build Rakudo for Parrot and JVM in the same directory?  Or would I need a second checkout?
02:41 colomon separate needed, I think.
02:43 colomon https://gist.github.com/colomon/5882090
02:43 * JimmyZ never tried to understand sink context
02:44 colomon the say "blue" ~ $_; line is getting $_ as undefined
02:45 colomon so the issue seems to be the nested loop...
02:45 benabik Either it's not looking up $_ properly or the inner loop is creating a $_ when it shouldn't.
02:45 benabik My guess is the 2nd.
02:45 Chat2044 joined #perl6
02:45 benabik (Or, of course, something I didn't think of.)
02:54 hlin_ joined #perl6
02:54 hypolin joined #perl6
02:57 colomon https://gist.github.com/colomon/5882157 # golfed for jnthn, benabik, sorear ....
03:00 sorear Stefans-MacBook-Air:rakudo-jvm sorear$ perl eval-client.pl TESTTOKEN run -e 'for 1 { for 2 -> $k { say $_ } }'
03:00 sorear (Any)
03:00 sorear r: for 1 { for 2 -> $k { say $_ } }
03:00 camelia rakudo 3e5868: OUTPUT«1␤»
03:01 hypolin joined #perl6
03:01 hlin_ joined #perl6
03:01 sorear r: ({ (-> $k { say $_ })(2) })(1)
03:01 camelia rakudo 3e5868: OUTPUT«1␤»
03:02 colomon sorear: good point, not nearly as golfed as it could be
03:02 sorear curiously, *that* one works on jvm,
03:02 sorear .
03:02 sorear so much for my first attempt to get mapiter out of the way
03:03 benabik So it's not broken $_, it's something particular to for loops?
03:03 colomon r: https://gist.github.com/colomon/5882157
03:03 camelia rakudo 3e5868: OUTPUT«1␤1␤5␤5␤10␤10␤»
03:03 colomon ./perl6 loop.pl
03:03 colomon (Any)
03:03 colomon (Any) #etc
03:04 benabik Perl6::Actions make_topic_block_ref
03:05 benabik Seems to be where $_ is installed for for.
03:06 benabik Hm.  Unless $<EXPR>.ast<past_block> is set.
03:06 benabik I'm going to guess past_block doesn't get set in JVM.
03:06 sorear Stefans-MacBook-Air:rakudo-jvm sorear$ perl eval-client.pl TESTTOKEN run -e '{ $_ := 1; for 2 -> $k { say $_ } }'
03:06 sorear (Any)
03:06 sorear Stefans-MacBook-Air:rakudo-jvm sorear$ perl eval-client.pl TESTTOKEN run -e '{ $_ = 1; for 2 -> $k { say $_ } }'
03:06 sorear 1
03:07 colomon huh
03:07 fridim_ joined #perl6
03:08 sorear Stefans-MacBook-Air:rakudo-jvm sorear$ perl eval-client.pl TESTTOKEN run -e '$_ = 3; { $_ := 1; for 2 -> $k { say $_ } }'
03:08 sorear 3
03:08 sorear the jvm backend is pickier than the parrot backend about declaration before use
03:09 sorear perhaps the signature stuff for $_ is getting installed at the wrong place in the past
03:09 benabik r: $_ = 3; { $_ := 1; for 2 -> $k { say $_ } }
03:09 camelia rakudo 3e5868: OUTPUT«1␤»
03:09 benabik (Expected that, but wanted to be sure.)
03:11 sorear .ask jnthn What would you say if I killed "Cannot stringify this" and replaced it with return "<unrepresentable>"?  All it does is cause deep tree dumpers to crash and slow down debugging.  --target=ast is being useless.
03:11 yoleaux sorear: I'll pass your message to jnthn.
03:12 sorear so presumably '{ $_ := 1; for 2 -> $k { say $_ } }' is generating bad QAST
03:12 sorear but 1. I can't see the QAST because of overeager exception throwing in the bowels of NQP
03:13 sorear 2. even if I could, sink context makes QAST unreadable in addition to its runtime effects and programmer-confusing effects
03:16 btyler joined #perl6
03:19 sorear yep, looking at the qast that's EXACTLY what's going on
03:19 colomon what's exactly what's going on?  (I mean, other than bad QAST)
03:20 sorear https://gist.github.com/sorear/5882254
03:20 sorear see lines 19 and 51
03:20 sorear the inner block, { say $_ }, is compiled before the inner $_ is installed in the inner pad
03:20 sorear so the lookup is resolved at compile time to $OUTER::OUTER::_
03:21 colomon sorear++
03:21 sorear parrot's getlex takes a string, JVM's takes (outer count, index in pad)
03:23 colomon ===SORRY!===
03:23 colomon java.lang.RuntimeException: is copy hash param NYI
03:23 colomon (looking at calendar.t)
03:24 dalek features: 5b06bad | (Zakariyya Mughal)++ | features.json:
03:24 dalek features: autovivification item
03:24 dalek features:
03:24 dalek features: fix spelling and add link to spec
03:24 dalek features: review: https://github.com/perl6/features/commit/5b06bad0a7
03:24 dalek features: 379bd34 | dukeleto++ | features.json:
03:24 dalek features: Merge pull request #2 from zmughal/master
03:24 dalek features:
03:24 dalek features: Fixes for autovivification item
03:24 dalek features: review: https://github.com/perl6/features/commit/379bd34f87
03:24 sivoais :-D
03:25 xinming joined #perl6
03:47 xenoterracide joined #perl6
03:48 atroxaper joined #perl6
03:53 sorear o/ xenoterracide
03:58 sorear std: { my $_ }
03:58 camelia std d4cc5ab: OUTPUT«Potential difficulties:â�¤  Useless redeclaration of variable $_ (see line 1) at /tmp/ByxbVrIRpf line 1:â�¤------> [32m{ my $_[33mâ��[31m }[0mâ�¤ok 00:00 43mâ�¤Â»
04:12 hypolin joined #perl6
04:28 Psyche^ joined #perl6
04:28 hlin_ joined #perl6
04:28 hypolin joined #perl6
04:49 birdwindupbird joined #perl6
04:51 dmol joined #perl6
05:13 btyler joined #perl6
05:35 FROGGS joined #perl6
05:37 sqirrel joined #perl6
05:44 ldthien0 joined #perl6
06:01 dayangkun joined #perl6
06:06 FROGGS r: s/abc/def # rakudobug
06:06 camelia rakudo 3e5868: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Malformed replacement part; couldn't find final $stopâ�¤at /tmp/8UUWhfKPG3:1â�¤------> [32ms/abc/def # rakudobug[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        statement listâ�¤        prefix or termâ�¤        prefix or meta-prefixâ�¤      â€¦
06:09 sorear FROGGS: should it be final / ?
06:10 FROGGS yes
06:10 FROGGS the code line is like: <.panic: "could find $stop">, but this does not interpolate
06:10 FROGGS I'm pushing in a sec
06:11 FROGGS well, more than a sec, need to build nqp+rakudo and spectest
06:12 PacoAir joined #perl6
06:15 sorear what?  now that's a bug
06:15 sorear "" strings should always interpolate
06:25 dmol joined #perl6
06:29 ldthien0 joined #perl6
06:32 FROGGS sorear: the problem is is that this is deep in the guts of the PGE
06:33 FROGGS (at least I think so)
06:33 sorear FROGGS: there is no PGE
06:33 FROGGS I mean the regex engine that pmichaud++ wrote... is it not called PGE?
06:34 sorear pmichaud told me at yapcna that he's written five regex engines... :D
06:34 sorear PGE was two of them
06:35 FROGGS ahh, okay, well, w/e... I'm not sure that I ever have seen the place where things like <.method: args> get handled
06:35 daxim joined #perl6
06:40 dayangkun joined #perl6
06:44 preflex joined #perl6
06:46 kaleem joined #perl6
06:51 lizmat good *, #perl6!
06:53 FROGGS hi lizmat
06:54 dalek rakudo/nom: d7a961c | (Tobias Leich)++ | src/Perl6/Grammar.nqp:
06:54 dalek rakudo/nom: correctly print $stop in s///-panic
06:54 dalek rakudo/nom:
06:54 dalek rakudo/nom: This is a workaround for nqp issue #105.
06:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d7a961c9b0
06:54 sorear o/ lizmat
06:55 lizmat FROGGS! sorear!
06:56 FROGGS lizmat!
06:56 FROGGS :P
06:56 lizmat :-)
06:56 lizmat what, no commits to nom that I need to spectest ?
06:56 lizmat :-)
06:56 lizmat better make some of my own then
06:57 FROGGS yepp, ++lizmat
06:57 FROGGS does somebody know what is going on with these macro fails?
06:59 lizmat not me
06:59 lizmat and by the way, labster++ for more glossary goodness
07:17 domidumont joined #perl6
07:31 labster no problem, lizmat
07:32 sorear o/ labster
07:32 lizmat backlogging: timotimo, [Coke]: the way I remember it, is that Flavio considers his project complete in the sense that pugs is complete
07:32 lizmat it has served its purpose, there won't be any more development on it
07:32 lizmat life support, as it were
07:32 labster good evening, sorear
07:34 ldthien0 joined #perl6
07:44 labster r: (-1).sqrt
07:44 camelia rakudo d7a961:  ( no output )
07:44 labster r: say (-1).sqrt
07:44 camelia rakudo d7a961: OUTPUT«NaN␤»
07:45 lizmat isn't that right?
07:45 lizmat or are you expecting i ?
07:46 labster Vaguely wondering if that should be the case.
07:47 sorear no
07:47 sorear if an algorithm becomes numerically unstable and a value which is supposed to be small and positive becomes negative, NaN is the appropriate response
07:47 lizmat labster: what would "((-1).sqrt)++" then give?  "j" ?
07:47 labster I admit, I'd be pretty surprised to see i as a result.
07:48 lizmat r: say i**2  # not just -1 ?
07:48 camelia rakudo d7a961: OUTPUT«-1+1.22460635382238e-16i␤»
07:48 lizmat n: say i**2
07:48 camelia niecza v24-86-g39ab531: OUTPUT«-1+1.2246063538223773E-16i␤»
07:49 lizmat at least we're consistent  :-)
07:49 labster r: say Complex.new(-1,0).sqrt
07:49 camelia rakudo d7a961: OUTPUT«6.12303176911189e-17+1i␤»
07:49 fhelmberger joined #perl6
07:49 moritz floating-point "fun"
07:49 labster r: say Complex.new(-1,0).sqrt.round
07:49 camelia rakudo d7a961: OUTPUT«0+1i␤»
07:49 lizmat r: say i*i
07:49 camelia rakudo d7a961: OUTPUT«-1+0i␤»
07:49 hlin_ joined #perl6
07:49 hypolin joined #perl6
07:50 lizmat r: my @a; @a[1]=1; say @a.exists(0)  # apparently exists knows about uninitialized array entries
07:51 camelia rakudo d7a961: OUTPUT«False␤»
07:51 labster Well, I guess I found a reasonable use case for rounding Complex :)
07:52 moritz fwiw powers of complex numbers calculate angle and magnitude, and then power the angle and multiply the magnitude
07:53 lizmat but how can me make an array element non-existent again?
07:53 * lizmat is afraid this reaches into the bowels of parrot
07:53 labster or maybe the crop of parrot.
07:55 labster the gizzard of parrot.  That's the better joke.
07:56 lizmat the entrails?
07:57 labster Perhaps you can read them and tell dukeleto what the future of Parrot will be.
07:57 sorear lizmat: bind nqp::null()?  I think that's what pm said at the hackathon
07:57 * lizmat will try that, sorear++
07:58 lizmat r: my @a; @a[1]=1; say @a.exists(1); @a[1] := nqp::null(); say @a.exists(1)   # alas
07:58 camelia rakudo d7a961: OUTPUT«True␤True␤»
08:03 Guest1337 joined #perl6
08:21 dalek nqp: 9963e43 | sorear++ | / (3 files):
08:21 dalek nqp: Move EvalServer into a new tools/ package
08:21 dalek nqp: review: https://github.com/perl6/nqp/commit/9963e43d75
08:23 dalek specs: 71e9f85 | (Brent Laabs)++ | S32-setting-library/Numeric.pod:
08:23 dalek specs: add Complex rounders (truncate, round, floor, ceiling)
08:23 dalek specs: review: https://github.com/perl6/specs/commit/71e9f8551c
08:30 hoelzro o/ #perl6
08:31 sorear o/
08:33 dalek nqp: 4ae08cd | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java:
08:33 dalek nqp: Give the eval server something resembling an arg parser
08:33 dalek nqp: review: https://github.com/perl6/nqp/commit/4ae08cdd56
08:33 dalek nqp: d4105e3 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java:
08:33 dalek nqp: Attempt to not blow up on Windows
08:33 dalek nqp: review: https://github.com/perl6/nqp/commit/d4105e3cf2
08:34 lizmat jnthn++ will like that
08:35 sorear the rest of you will like the next bit
08:37 lizmat is this an is_deeply artefact?
08:37 lizmat #      got: $("0" => 42, (), "2" => 23)
08:37 lizmat # expected: $(0 => 42, 2 => 23)
08:37 lizmat actually, I meant:
08:37 lizmat #      got: $("0" => 42, "1" => Any, "2" => 23)
08:37 lizmat # expected: $(0 => 42, 1 => Any, 2 => 23)
08:37 lizmat isn't the left side of a fat comma always auto-quoted, hence a string?
08:38 sorear no
08:38 sorear well, yes in perl 5 where there are fat commas
08:39 sorear => is the Pair construction operator in p6
08:39 sorear it is not comma-like
08:39 lizmat ah, that's my thinko
08:41 dalek nqp: b619dd6 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java:
08:41 dalek nqp: Implement -bind-stdin option which causes eval server to exit after an EOF on STDIN
08:41 dalek nqp: review: https://github.com/perl6/nqp/commit/b619dd6e35
08:42 FROGGS std: use v5; "a"x8
08:42 camelia std d4cc5ab: OUTPUT«[31m===[0mSORRY![31m===[0m�Whitespace is required between alphanumeric tokens at /tmp/DhEN3oDLMp line 1:�------> [32muse v5; "a"x[33m�[31m8[0m�Parse failed�FAILED 00:01 52m�»
08:42 FROGGS -.-
08:43 lizmat grrr
08:43 FROGGS I'm not sure how I should work around that one
08:45 sorear add whitespace?
08:46 sorear presumably you're not trying to parse p5 with STD.pm6
08:46 FROGGS sorear: everywhere in the tests and on CPAN?
08:46 sorear FROGGS: don't try to parse perl 5 code with a grammar that expects perl 6
08:46 FROGGS sorear: that is STD_5.pm6
08:46 sorear clearly a bug then
08:47 sorear don't call .ws after the x operator.. *waves hands*
08:47 FROGGS I know, the problem is that my v5 grammar has this bug too, and I think this goes down to EXPR
08:47 sorear yeah
08:47 sorear probably wants input from TimToady
08:48 FROGGS :/
08:52 FROGGS I mean it is only about allowing numbers after an op that is a letter
08:56 araujo joined #perl6
08:56 araujo joined #perl6
08:56 dalek rakudo/nom: 58f22ed | sorear++ | t (2 files):
08:56 dalek rakudo/nom: Track eval server changes
08:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/58f22ed1c0
08:56 sorear FROGGS: and you cant' just say x\d is whitespacey, because $x5 is a good identifier
08:58 FROGGS jepp
08:59 * sorear still associates that more with Jeep than Ja
08:59 dalek rakudo/nom: 7bfa6df | (Brent Laabs)++ | src/core/Complex.pm:
08:59 dalek rakudo/nom: add Complex.truncate, missed it earlier
08:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7bfa6dfa5a
09:05 Stygia joined #perl6
09:13 FROGGS sorear: I guess it is like this right now: <infix> [ <?before \W> || <.ws> ], and it should still work when doing: <infix> [ <?before \W | \d> || <.ws> ]
09:14 FROGGS because $x is longer than $ and x
09:15 FROGGS I wonder where the code is for all that
09:15 dalek roast: b6dac5b | (Elizabeth Mattijsen)++ | S03-operators/subscript-adverbs.t:
09:15 dalek roast: Added hopefully exhaustive tests for []:(kv|p|k|v) and {}:(kv|p|k|v)
09:15 dalek roast: review: https://github.com/perl6/roast/commit/b6dac5b4d0
09:18 lizmat I guess there's not going to be a Rakudo * this month?
09:21 * moritz hopes there is
09:22 * lizmat hopes so too
09:22 sorear o/ moritz
09:23 moritz \o sorear, *
09:24 FROGGS hi moritz
09:25 lizmat r: my @a; my @b; @b[0]:=@a[0]; say @a.exists(0); say @b.exists(0)  # Schrödinger's Cat ?
09:25 camelia rakudo 7bfa6d: OUTPUT«False␤True␤»
09:26 drbean joined #perl6
09:27 kaleem joined #perl6
09:30 FROGGS this seems to do it btw: token infix:sym<x> { <sym> <?MARKER('ws')> <O('%multiplicative')> }
09:30 FROGGS spectesting now
09:30 ldthien0 joined #perl6
09:32 jercos Hrm, is there meant to be some way to indicate that a gather list is infinite? Obviously perl6 can't solve the halting problem for me, but uh...
09:32 jercos r: (gather {state $x=1;loop {take $x++}})[0,1,2,3]
09:32 camelia rakudo 7bfa6d:  ( no output )
09:32 jercos r: (gather {state $x=1;loop {take $x++}})[0,1,2,3].say
09:32 camelia rakudo 7bfa6d: OUTPUT«1 2 3 4␤»
09:33 jercos r: (gather {state $x=1;loop {take $x++}}).say
09:33 camelia rakudo 7bfa6d: OUTPUT«(timeout)»
09:33 lizmat sink context strikes again ?
09:33 jercos well, no?
09:33 jercos r: (1...*).say
09:33 camelia rakudo 7bfa6d: OUTPUT«(timeout)»
09:34 jercos or uh, not? huh.
09:34 jercos on my own rakudo I get "1 2 3 4 ..."
09:34 FROGGS if you try to say it, it will be evaluated
09:35 FROGGS r: my @a := 1...*; say @a.elems
09:35 camelia rakudo 7bfa6d: OUTPUT«Inf␤»
09:35 FROGGS r: my @a := 1...*; say @a
09:35 FROGGS .... wait for it
09:35 camelia rakudo 7bfa6d: OUTPUT«(timeout)»
09:35 FROGGS dary!
09:36 jercos r: my @a = (gather {state $x=1;loop {take $x++}})[0,1,2,3];say "done"
09:36 camelia rakudo 7bfa6d: OUTPUT«done␤»
09:36 spider-mario joined #perl6
09:36 jercos r: my @a = (gather {state $x=1;loop {take $x++}});say "done"
09:36 FROGGS use the bind operator
09:36 camelia rakudo 7bfa6d: OUTPUT«(timeout)»
09:36 sorear pretty sure you CAN say it's infinite
09:36 jercos r: my @a := (gather {state $x=1;loop {take $x++}});say "done"
09:36 camelia rakudo 7bfa6d: OUTPUT«done␤»
09:37 FROGGS at the moment you access elements of @a, it will be computed up the used index
09:38 jercos ah, I see, doing that without the say at the end in the REPL printed the result of the assignment.
09:38 sorear the core uses GATHER({ ... }, :infinite) in a couple places
09:38 sorear "there must be a better way"
09:38 jercos Well that was obvious >.>
09:38 jercos r: (gather {state $x=1;loop {take $x++}}:infinite).say
09:39 camelia rakudo 7bfa6d: OUTPUT«(timeout)»
09:39 FROGGS you are missing a comma
09:39 jercos for GATHER(), yes, not for gather{}.
09:40 jercos r: (gather {state $x=1;loop {take $x++}}:infinite).infinite.say
09:40 camelia rakudo 7bfa6d: OUTPUT«True␤»
09:40 jercos r: (gather {state $x=1;loop {take $x++}},:infinite).infinite.say
09:40 camelia rakudo 7bfa6d: OUTPUT«(Mu)␤»
09:42 jercos r: (1...*).gist.say
09:43 camelia rakudo 7bfa6d: OUTPUT«(timeout)»
09:46 PacoAir joined #perl6
09:49 dalek nqp: 5f78018 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/CompilationUnit.java:
09:49 dalek nqp: Cache reflective info between activations of a shared compunit
09:49 dalek nqp: review: https://github.com/perl6/nqp/commit/5f7801861b
09:49 sorear that shaves about 100-150ms off of the time for per-file overhead when using evalserver
09:50 FROGGS that'S cool
09:50 sorear we're now consistently faster per file than rakudo-parrot, when cheating. :)
09:50 tadzik wow :)
09:50 FROGGS \o/
09:50 moritz CHEATING IS TECHNIQUE!
09:51 lizmat any cheating sufficiently advanced is indistinguishable from magic
09:51 sorear your 3am crazy idea for the day: the eval server is pretty much fastcgi, right?  we could make it actually use the fastcgi protocol and possibly do cool things
09:52 tadzik haha
09:52 lizmat why not psgi ?
09:52 tadzik why not zoidberg?
09:52 tadzik also, it's your crazy 3am idea, my crazy 12 o'clock idea ;)
09:53 sorear lizmat: fastcgi is very low level, it lets you socket connect to a running process, pass it "environment variables", "standard input", "command line arguments" and get back "standard output"
09:53 moritz .oO( FastIRC )
09:57 crab2313 joined #perl6
09:59 lizmat sorear: but is psgi that much different?   but anyway, were talking accessing an evalserver, right, not a high-volume website
10:00 lizmat it's just that for psgi, there is so much middleware available
10:00 lizmat fwiw, spectest of FROGGS++ latest grammar change, works out ok here
10:01 FROGGS yeah, but I didnt expect it to fail, not that tiny change
10:04 lizmat well, it didn't..  :-)
10:05 Guest1337 joined #perl6
10:07 sorear lizmat: i have a confession...
10:08 sorear lizmat: i have no idea what middleware is
10:09 lizmat http://en.wikipedia.org/wiki/Middleware
10:10 lizmat maybe more to the point: http://blogs.perl.org/users/jakob/2012/09/the-joy-of-psgi-middleware.html
10:13 FROGGS a middleware is like all and nothing
10:15 lizmat for me the mindblowing thing was the PSGI middleware that created a clickable stacktrace of en execution error in HTML, allowing you to see the code at every level of the stack
10:18 daxim old hat in other languages/frameworks
10:18 lizmat :-)
10:23 dalek specs: 30396f0 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
10:23 dalek specs: Spec that classify and categorize don't work on inifinite lists
10:23 dalek specs:
10:23 dalek specs: So we can close https://github.com/perl6/specs/issues/52
10:23 dalek specs: review: https://github.com/perl6/specs/commit/30396f0dab
10:23 * sorear is testing a test_summary patch
10:26 atroxaper left #perl6
10:39 sorear sent to [Coke]++
10:40 lizmat Q: in a multi-threaded environment, will "state" be thread local or process local?
10:40 lizmat I can see a pb if a sub with "state" hasn't been called before multiple threads are started
10:41 lizmat that the sub in each thread would get its own "state"
10:41 lizmat whereas the sub *was* called before, they would share the same state
10:42 sorear lizmat: neither... sub-clone-local
10:42 sorear r: sub acc { return sub { (state $i)++ } }; my $f = acc; my $g = acc; say $f(); say $g(); say $f()
10:42 camelia rakudo 7bfa6d: OUTPUT«0␤0␤1␤»
10:42 sorear probably not a good idea to share Sub objects across threads when using state
10:43 sorear I wouldn't guarantee locking
10:43 lizmat state updates should be lockless  :-)
10:44 lizmat and still maintain integrity  :-)
10:53 pecastro_ joined #perl6
11:12 dalek v5: 103343b | (Tobias Leich)++ | lib/Perl5/ (2 files):
11:12 dalek v5: make octets in strings ("\040") work
11:12 dalek v5: review: https://github.com/rakudo-p5/v5/commit/103343b137
11:12 dalek v5: 884a2b7 | (Tobias Leich)++ | lib/Perl5/Grammar.nqp:
11:12 dalek v5: correctly print missing stopper in s///
11:12 dalek v5: review: https://github.com/rakudo-p5/v5/commit/884a2b7d4f
11:12 dalek v5: c55531f | (Tobias Leich)++ | lib/Perl5/ (2 files):
11:12 dalek v5: added stub for tr///
11:12 dalek v5: review: https://github.com/rakudo-p5/v5/commit/c55531fdb7
11:12 dalek v5: 18050b8 | (Tobias Leich)++ | lib/Perl5/Grammar.nqp:
11:12 dalek v5: allow cuddled operator x
11:12 dalek v5: review: https://github.com/rakudo-p5/v5/commit/18050b8a08
11:13 dalek v5: 0009cbb | (Tobias Leich)++ | STATUS.md:
11:13 dalek v5: status update
11:13 dalek v5: review: https://github.com/rakudo-p5/v5/commit/0009cbba99
11:15 lizmat http://blogs.perl.org/users/stevan_little/2013/06/once-more-unto-the-breach.html   # Stevan Little++
11:19 colomon CSV::Parser is working!
11:19 lizmat colomon++
11:19 colomon lizmat: not my doing, I'm going observing the smoke testing results.  :)
11:20 lizmat colomon++ # you can never have enough
11:20 colomon lizmat++
11:28 dalek rakudo/nom: 6baad97 | (Elizabeth Mattijsen)++ | src/core/control.pm:
11:28 dalek rakudo/nom: Simplify sleep()
11:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6baad974e5
11:38 xinming joined #perl6
11:38 jnthn afternoon, #perl6
11:38 yoleaux 03:11Z <sorear> jnthn: What would you say if I killed "Cannot stringify this" and replaced it with return "<unrepresentable>"?  All it does is cause deep tree dumpers to crash and slow down debugging.  --target=ast is being useless.
11:38 yoleaux 08:37Z <nwc10> jnthn: coffee bootstrap reminder :-)
11:38 FROGGS hi jnthn
11:38 jnthn .tell sorear sounds fajn
11:38 yoleaux jnthn: I'll pass your message to sorear.
11:38 jnthn ooh, coffee...
11:38 mls Hi jnthn!
11:39 lizmat r: { our sub a { say "oi" } }; OUR::a  # silent??
11:39 camelia rakudo 7bfa6d:  ( no output )
11:39 FROGGS already got the m:5th/coffee/
11:39 lizmat r: { our sub a { say "oi" } }; OUR::a()  # huh?
11:39 camelia rakudo 7bfa6d: OUTPUT«No such method 'Any' for invocant of type 'Parcel'␤  in block  at /tmp/XqSnFz61lC:1␤␤»
11:39 colomon jnthn!  \o/
11:39 lizmat jnthn!
11:41 colomon > 1e100.Num.perl
11:41 colomon 1.0E100e0
11:41 colomon whoops
11:42 colomon nqp::p6box_s(nqp::unbox_n(self) # where is the actual Num to Str conversion happening?
11:42 jnthn gee, 13:40. My timezone alignment is as messed up as the rest of me... :/
11:42 * jnthn goes to deal with some $dayjob bits...
11:42 jnthn colomon: probably smart_stringify or so
11:43 jnthn colomon: in Ops.java in nqp repo
11:44 colomon in SixModelObject?
11:46 jnthn oh, maybe it's actually coerce_ns or so
11:46 jnthn No, in Ops for sure
11:46 colomon coerce_n2s ?
11:46 jnthn coerce_n2s
11:46 jnthn yeh
11:46 jnthn I guess that's the one
11:47 colomon jnthn++
11:49 * colomon is being forced to learn some Java....
11:50 jnthn It's like C# but will all the awesome removed.
11:52 colomon which is sort of like p6 with all the mildly good or better removed....
11:53 colomon jnthn: did you see the inner loop getting wrong $_ bug from last night?
11:53 jnthn noticed when I skimmed the logs, no immediate idea what's up
11:54 colomon sorear++ did a lot of investigating, but I don't think he ended up with a fix.  or maybe I missed it in the scrollback.
11:55 jnthn I assume Rakudo on Parrot gets the right answer?
11:55 colomon jnthn: yes
11:56 colomon hmmm... I think I just fixed coerce_n2s, but it didn't make any difference to the code.  :\
11:56 colomon nr: say 1e100
11:56 camelia niecza v24-86-g39ab531: OUTPUT«1.0000000000000002E+100␤»
11:56 camelia ..rakudo 7bfa6d: OUTPUT«1e+100␤»
11:57 colomon huh.  maybe my expectations are wrong?
11:58 kaleem joined #perl6
12:03 colomon no, I'm pretty sure we're not calling coerce_n2s there
12:12 dalek specs: 94fb8bc | (Elizabeth Mattijsen)++ | S29-functions.pod:
12:12 dalek specs: Remove extra period.
12:12 dalek specs: review: https://github.com/perl6/specs/commit/94fb8bc497
12:13 * colomon has a work-around which gets S02-types/num.t working, but feels it is kind of hacky
12:14 Stygia joined #perl6
12:15 fridim_ joined #perl6
12:23 lestrrat joined #perl6
12:25 sqirrel joined #perl6
12:30 btyler joined #perl6
12:38 dalek rakudo/nom: 3952e96 | (Elizabeth Mattijsen)++ | src/core/control.pm:
12:38 dalek rakudo/nom: Implement interval($seconds), as per S29:265
12:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3952e96965
12:39 * [Coke] drinks some office sludge.
12:42 * colomon wonders about jdb
12:44 lizmat what about jdb?
12:44 colomon how to use it to debug nqp-jvm
12:44 dalek perl6-roast-data: a7a27b4 | sorear++ | bin/rakudo.jvm.sh:
12:44 dalek perl6-roast-data: Use eval server in rakudo.jvm.sh
12:44 dalek perl6-roast-data:
12:44 dalek perl6-roast-data: Known issues: requires bash, and does not support time or memory limits.
12:44 dalek perl6-roast-data: (Note that ulimit -t would be useless as that only handles CPU time, not
12:44 dalek perl6-roast-data: wall time.)
12:44 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/a7a27b4262
12:44 dalek perl6-roast-data: 339f879 | (Will Coleda)++ | bin/rakudo.jvm.sh:
12:44 dalek perl6-roast-data: Merge pull request #4 from sorear/master
12:44 dalek perl6-roast-data:
12:44 dalek perl6-roast-data: Minimal eval server patch from sorear++
12:44 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/339f879e5e
12:45 * jnthn looks forward to today's run ;)
12:45 * FROGGS looks forward to his current run
12:45 * [Coke] hates running.
12:45 * colomon looks forward to understanding wtf is going on with Num.Str
12:45 * [Coke] returns from the gym this morning. :P
12:46 FROGGS [Coke]: nonzero?
12:46 * FROGGS .oO( [Coke zero]? )
12:47 Stygia joined #perl6
12:47 [Coke] CokeZero++
12:48 FROGGS bah
12:48 FROGGS I dont like it
12:48 [Coke] I need to stop drinking it, but as far as diet sodas go, it's the best (aside from homemade)
12:48 [Coke] sorear++ #again
12:48 FROGGS I only drink coffee and water
12:49 * jnthn drinks many things, but very rarely does he do soft drinks
12:50 jnthn Well, sodas
12:50 colomon water, water, water, hard cider, whisky, wine
12:56 konundra joined #perl6
12:57 atroxaper joined #perl6
12:58 [Coke] sorear++ much faster.
12:58 [Coke] now it might actually be slower to rebuild from scratch each day!
12:58 * colomon thinks he may have been trying to solve the wrong problem
13:01 atroxaper left #perl6
13:01 [Coke] colomon: ... that is what the last 10 years have felt like to me here!
13:04 Stygia joined #perl6
13:05 cognominal joined #perl6
13:05 dalek rakudo/nom: 248ca07 | (Solomon Foster)++ | src/core/Num.pm:
13:05 dalek rakudo/nom: Num.perl needs to look for 'e' and 'E'.
13:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/248ca07b9f
13:05 Chillance joined #perl6
13:08 [Coke] muuuch faster. and now I already want it faster. :)
13:09 Stygia joined #perl6
13:11 cognominal__ joined #perl6
13:21 lelf` joined #perl6
13:24 colomon Above patch should get us at least 50 more passing tests in JVM. :)  (But I'm just now spectesting it on parrot.)
13:26 [Coke] colomon: you have until... noonish eastern, I think.
13:26 [Coke] (those will be moving to 8ish eastern at some point)
13:26 benabik joined #perl6
13:29 Stygia joined #perl6
13:32 [Coke] r: print 21994 / 25969
13:32 camelia rakudo 248ca0: OUTPUT«0.846933»
13:34 btyler joined #perl6
13:42 * [Coke] realizes that the 29 failures on rakudo are probably already failing on rakudo.jvm - of course we're probably recover them at the same time, too.
13:43 [Coke] also - rakudo still failing spec tests as of yesterday!
13:44 lizmat I think that was timotimo's doing
13:44 lizmat Method 'evaluate_unquotes' not found for invocant of class 'String'
13:44 lizmat at t/spec/S06-macros/quasi-blocks.t:96
13:44 colomon Is that the rat stuff?
13:45 [Coke] only 4053 more failing tests to go for rakudo.jvm to catch up, if I read this right.
13:45 colomon no, rat looks like it's working finr
13:45 jnthn 84.7%...that means Rakudo JVM has overtaken Niecza as second-most-spectest-passing impl?
13:45 colomon yes
13:46 lizmat wow!
13:46 jnthn Whee!
13:46 jnthn Though, given a load of Rakudo's failures are in IO...niecza++ is probably still more useful at the moment :)
13:46 colomon crazy to think that at YAPC::NA, it basically didn't work at all
13:47 colomon my num patch spectested fine on parrakudo
13:47 colomon :)
13:47 * jnthn wonders if that brings us below 4000 to go :)
13:50 raiph joined #perl6
14:08 [Coke] colomon: how many more passing?
14:09 FROGGS meh, I'm still about 39500 to go /o\
14:09 timotimo what did i miss in the last 2 hours?
14:10 FROGGS me I suppose
14:10 timotimo oh
14:11 timotimo lizmat: what was my doing? the macro failures?
14:11 lizmat I thought so?
14:12 timotimo how did i manage to do that?
14:13 colomon [Coke]: about 54, I think
14:13 * lizmat is confused now
14:14 lizmat I was under the impression that these failures started after some large commits you did a few days ago
14:14 tadzik timotimo: I have some tuits for Pod hacking now :)
14:14 timotimo the last commit i had was soft-failing div by zero
14:14 timotimo that was like a week ago
14:15 lizmat hmmm….  will check in a mo
14:15 timotimo tadzik: on github.com/timo/rakudo there's the pod6-improvements branch and do you still have the gist link i gave you? otherwise i'll get it
14:15 FROGGS I guess the macro fails are due to some nqp changes...
14:15 FROGGS I dont see any related rakudo commit
14:16 FROGGS I can bisect this this night
14:16 lizmat aha, then timotimo: my apologies
14:16 tadzik timotimo: I don't think I have it
14:16 timotimo no problem :)
14:17 timotimo apparently having a bit of trouble with the network right now
14:17 timotimo https://gist.github.com/timo/543f7b8b791cbd617b71 - there we go. my first attempt at making cells in tables parsed with formattingcodes
14:18 PacoAir joined #perl6
14:19 dalek roast: 78d15be | (Elizabeth Mattijsen)++ | S29-context/sleep.t:
14:19 dalek roast: Added test for "interval()"
14:19 dalek roast: review: https://github.com/perl6/roast/commit/78d15be0c1
14:23 lizmat I found the pb first on http://irclog.perlgeek.de/perl6/2013-06-26#i_7254019
14:23 lizmat so it must have been a commit not too long before that
14:24 colomon labster++ # just got around to reading blog post
14:25 skids joined #perl6
14:26 SatFS joined #perl6
14:26 lizmat interesting read for some of us around here: http://users.ece.cmu.edu/~arebert/papers/mayhem-oakland-12.pdf
14:29 xilo joined #perl6
14:29 segomos joined #perl6
14:33 daniel-s_ joined #perl6
14:33 lizmat and indeed, there are many nqp files with an "evaluate_unquotes" method, but src/QAST/Str.nqp is not one of them
14:33 lizmat in fact, there is no src/QAST/Str.nqp
14:33 lizmat jnthn: thoughts?
14:33 wtw_ joined #perl6
14:34 jnthn ?
14:34 jnthn there's no QAST::Str
14:34 jnthn What makes you think there is?
14:34 jnthn s/is/might be/
14:35 lizmat the error in spectest in rakudo: Method 'evaluate_unquotes' not found for invocant of class 'String'
14:35 jnthn That means a string is having evaluate_unquotes called on it.
14:35 lizmat String then
14:35 jnthn As in, a normal, boring string.
14:35 jnthn When it should be called on a QAST node
14:36 lizmat this seems to trigger it:
14:36 lizmat macro four () { quasi { 2+2 } }
14:36 lizmat is(four, 4, "macro returning quasi");
14:36 lizmat not your very strange macro, that
14:36 jnthn Oddness.
14:37 * jnthn suggests trying to bisect it, if there's not some obvious candidate commits
14:38 lizmat my guess would be between 8cea464c1006dfcb and 152ab7af42d5b880ea3f7 inclusive in nqp
14:38 lizmat all done by sorear
14:38 lizmat within 20 minutes of each other
14:40 Stygia joined #perl6
14:40 lizmat making a nqp/rakudo from before these patches
14:43 * timotimo has some foods
14:44 * colomon is working on keybag.t
14:46 daniel-s_ Hi. How much of the perl6 language is covered by the test suite on github?
14:46 xilo_ joined #perl6
14:46 timotimo a part as big as we can make it
14:47 timotimo some parts are a bit flaky, especially those that are not yet implemented in any of our implementations
14:57 SatFS Hi, I found my $xml = from-xml(:file<test.xml>); in the XML module's readme file. Is the :file<> thingy documented somewhere?
14:57 hoelzro that's just an adverbial pair
14:57 hoelzro it's basically the same as 'file' => 'test.xml'
14:57 hoelzro SatFS: http://perlcabal.org/syn/S02.html#Adverbial_Pair_forms
14:59 SatFS Thanks. :)
14:59 lizmat hmmm… is there a way to find out which version of nqp a given version of "perl6" is using?
14:59 SatFS Well, then the readme seems odd. from-xml() expects a string.
15:00 moritz lizmat: no. But patches to the build system that add that would be very welcome indeed
15:00 timotimo so, something like an entry into %*VM?
15:01 hoelzro that raises a good question; is there a "config" hash that describes the compilation environment for a Perl6?
15:01 timotimo r: say %*VM.keys
15:01 camelia rakudo 248ca0: OUTPUT«0␤»
15:01 timotimo r: say $*VM.keys
15:01 camelia rakudo 248ca0: OUTPUT«name config␤»
15:01 hoelzro neat
15:01 timotimo r: say $*VM<config>.keys
15:01 camelia rakudo 248ca0: OUTPUT«git_describe sha1 a ar ar_extra ar_out archname arflags as backtrace bigendian bindir bison_version blib_dir build_dir byteorder cat cc cc_debug cc_exe_out cc_inc cc_ldflags cc_o_out cc_shared ccflags ccwarn chmod clang clock_best configdate configuration_steps con…
15:01 hoelzro is %*VM documented?
15:01 timotimo with $, not %
15:02 hoelzro ooooh
15:03 lizmat hoelzro: S02:3107:    $*VM        Which VM I'm running under
15:03 hoelzro sweet
15:03 hoelzro lizmat: thanks!
15:05 arlinius joined #perl6
15:06 carlitos_30 joined #perl6
15:06 lizmat however, $*VM doesn't have anything about NQP in it
15:07 colomon :(
15:07 jnthn Well, the NQP being used will be in the makefile
15:07 jnthn So take that path and --version on it
15:08 colomon jnthn: that seems ... very roundabout
15:08 jnthn colomon: Not saying there shouldn't be a better way, just that it's a way.
15:20 colomon this line: if $choice ~~ $i ..^ +$im.key {  keeps on giving me
15:20 colomon ===SORRY!===
15:20 colomon java.lang.ArrayIndexOutOfBoundsException: 0
15:20 colomon I'm having a hard time seeing how...
15:20 crab2313 joined #perl6
15:21 jnthn Sounds internals-y
15:21 * colomon just realized he was considering rewriting the algorithm without ever figuring out what was wrong with the current one.
15:21 jnthn --ll-exception
15:22 colomon wtf?
15:22 colomon oh, no fudging
15:23 colomon https://gist.github.com/colomon/5885498
15:23 colomon looks very internals-y
15:24 jnthn yeah...I guess getting a Java stack trace may be the next task...
15:24 colomon line numbers won't mean anything to you, hold on
15:24 colomon errr... line numbers don't mean anything to me, either.  :(
15:25 colomon it looks a bit like it might be a variant on the double loop $_ issue last night, this time with a normal variable?
15:25 colomon could that get an error like that?
15:26 jnthn It's *possible* a lexical environment screw-up could cause it
15:26 jnthn But it sounds weird.
15:28 colomon It sounds weird no matter what.  ;)
15:29 kaleem joined #perl6
15:29 bluescreen10 joined #perl6
15:31 colomon jnthn: https://gist.github.com/colomon/5885572 source code
15:32 daxim r: use MONKEY_TYPING; augment class Set { method have-some-more(Str $foo) { say $foo } };  set <fnord quux>.have-some-more('stuff');
15:32 colomon jnthn: just updated with a bit of the output, so you see why I'm confused
15:32 camelia rakudo 248ca0: OUTPUT«No such method 'have-some-more' for invocant of type 'Parcel'␤  in block  at /tmp/AV1T71RTTo:1␤␤»
15:33 colomon daxim: you want (set <fnord quux>).have...
15:33 daxim r: use MONKEY_TYPING; augment class Set { method have-some-more(Str $foo) { say $foo } };  set(<fnord quux>).have-some-more('stuff');
15:33 camelia rakudo 248ca0: OUTPUT«stuff␤»
15:33 daxim thanks for spotting that
15:33 * lizmat gives up on bisecting the quasi problem
15:34 lizmat my nqp fiddling foo is definitely not foo enough
15:34 jnthn colomon: Dunno if you can golf it to work out if it's the smart match tht does it, or range, or combinatino of the two?
15:34 daxim when's the next stable rakudo release?
15:34 colomon jnthn: I can try!
15:35 mls jnthn: about getting rid of prior invokation
15:35 lizmat daxim: do you mean rakudo * or rakudo?
15:35 mls https://gist.github.com/mlschroe/5867111
15:35 daxim just rakudo
15:35 [Coke] ENOSTABLE.
15:35 [Coke] there are just releases.
15:35 colomon jnthn: looks like it might be the range?
15:36 lizmat didn't masak already do a 2013.06 named Poznan?
15:36 [Coke] yes.
15:36 colomon jnthn: belay that, forgot to recompile
15:36 daxim I missed that one
15:36 [Coke] 2013-07-18   Rakudo #66                      tadzik
15:36 [Coke] there's the next one
15:37 daxim http://rakudo.org front-page implies -05 is the latest
15:37 jnthn That's the compiler release, not the Star one...
15:37 daxim ah, yes, you're right
15:37 [Coke] why do all releases except the last one have () around names?
15:38 colomon jnthn: you're not going to like this, but it looks like I may have been right.  it's actually $i that's the problem, I think.
15:38 dalek rakudo/nom: 597d2c8 | coke++ | docs/release_guide.pod:
15:38 dalek rakudo/nom: claim a release several months out
15:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/597d2c8775
15:39 jnthn mls: It does get rid of it. However, it doesn't actually fix the lifetime issue or the thread safety problem.
15:39 mls why not?
15:40 jnthn ((CodeRef)code).outer = tc.curFrame; # still leaves the previous outer in the code object once it's over, plus there's no promise that multiple threads won't set that .outer
15:40 colomon jnthn: yeah, you're not going to like this
15:41 lizmat jnthn: is there an NQP way of making @a.exists($n) return false *after* it has once been set?
15:41 colomon jnthn: ah, related to the eager do?
15:41 lizmat aka "deleting" an array element?
15:41 colomon jnthn: just the do
15:41 * lizmat is considering implementing []:delete and []:exists
15:41 colomon https://gist.github.com/colomon/5885649 # golfed for your terror
15:42 mls jnthn: the outer is supposed to be set once when a sub/method/regexp is defined and never again
15:42 mls and it is not set for "immediate" blocks
15:42 jnthn lizmat: Doesn't delete bind an nqp::null in there?
15:42 jnthn mls: OK, will have to look more carefully
15:42 lizmat possibly, but that still leaves exist() to return true on that
15:43 jnthn lizmat: If so, nqp::isnull(nqp::atpos($vm_array, $idx))
15:43 lizmat jnthn++ will try that
15:43 jnthn colomon: Wow, that's it? :)
15:43 colomon yup
15:43 colomon take away the do and it works
15:44 mls jnthn: it's kind of a "proof of concept". I'm quite sure that those capture_outer calls are better made somewhere else, but I'm missing some knowledge on the fixup/deserilization stuff.
15:44 jnthn colomon: Thanks
15:44 colomon jnthn: you're welcome
15:44 mls Plus, my other goal was to also get rid of the autoclose() method, I'm 99% there, but there are still a few times where it's needed.
15:45 mls in theory we should be able to replace the autoclose with throwing an exception
15:45 cognominal joined #perl6
15:45 mls (because it's most likely an error if it's done)
15:46 * colomon finds it frustrating that there are bugs in code he knows well that he cannot fix, but hopes golfing them will make it easier for jnthn ++ and/or sorear++ to fix them.
15:46 jnthn colomon: That's going to be much easier for me to look into, yes.
15:47 FROGGS joined #perl6
15:47 mls Oh yes, I also had some fun with the java exceptions. Debugging was a bit easier with parrot.
15:49 lizmat jnthn: what is $vm_array in this context: nqp::isnull(nqp::atpos($vm_array, $idx)) ?
15:50 mls Plus, running javap only shows that qb_ functions, but not the uniqueIds...
15:51 jnthn lizmat: The underlying storage
15:51 lizmat jnthn: $!items ?
15:51 jnthn $!items maybe
15:51 jnthn May need to make enough of the array already got reified
15:52 lizmat ack
15:52 lizmat oops, sorry petdance
15:53 jnthn :P
15:55 hoelzro I wonder if petdance has a filter for if that word occurs by itself on a line?
15:56 [Coke] just as a word, IIRC.
16:01 timotimo tadzik: are you already neck-deep into the pod stuff? should i help you with something? should i rewrite the formattingcode stuff to only parse, but not yet generate formattingcodes in blocks and come up with a new way to parse formattingcodes from plain text?
16:03 timotimo kind of feel like a nap now.
16:06 * [Coke] feeds timo*2 some kafe.
16:06 flussence how can I use the jvm perl6 script without being cd'd into the rakudo dir? I get «Unhandled exception: java.nio.file.NoSuchFileException: Perl6/Grammar» if I try to run it from elsewhere.
16:07 * colomon just realized that golfing the bug means he can reimplement the code in question...
16:07 flussence (I've already tried making all the paths inside the perl6 script absolute)
16:07 jnthn flussence: By doing the "make install" target... ;)
16:07 jnthn flussence: I'm not sure there's a good way to make it work just yet.
16:09 flussence but that just gives me "make: Nothing to be done for `install'"...
16:09 flussence oh.
16:09 jnthn flussence: No no, make install is NYI
16:09 flussence yeah, I'm slow today
16:11 SatFS_ joined #perl6
16:18 lizmat r: my @a=Any; say @a.exists(0) # jnthn: should this give True or False according to you?
16:18 camelia rakudo 597d2c: OUTPUT«True␤»
16:18 lizmat r: my @a; say @a.exists(0) # jnthn: should this give True or False according to you?
16:18 camelia rakudo 597d2c: OUTPUT«False␤»
16:21 jnthn I think those are right.
16:21 dalek specs: 03ce297 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
16:21 dalek specs: Added lemma's for brb and afk
16:21 dalek specs: review: https://github.com/perl6/specs/commit/03ce297f04
16:21 lizmat jnthn: but checking isnull returns false on the Any
16:22 lizmat so that would make the first one return False if that were the base of @a.exists
16:22 lizmat and that is at least not according to the spectest
16:22 dalek rakudo/nom: 7e443cd | (Solomon Foster)++ | src/core/Bag.pm:
16:22 dalek rakudo/nom: Rewrite KeyBag.roll a bit.
16:22 dalek rakudo/nom:
16:22 dalek rakudo/nom: This version stores fills @inverse-mapping with Pairs which have a Range as the key.  A bit more elegant, and with any luck will work under JVM.
16:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7e443cd0d1
16:24 lizmat brb
16:25 vk joined #perl6
16:27 colomon crap.  first test failed under JVM.  :\
16:28 jnthn lizmat: Huh? Any is not null...
16:32 lelf`` joined #perl6
16:35 spider-mario joined #perl6
16:36 lelf``` joined #perl6
16:37 dalek rakudo/nom: 78374b7 | (Solomon Foster)++ | src/core/Bag.pm:
16:37 dalek rakudo/nom: Try removing eager do from KeyBag.roll.
16:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/78374b7684
16:41 pmichaud r: my @a = Any;  say @a.elems;  say @a.exists(0);
16:41 camelia rakudo 597d2c: OUTPUT«1␤True␤»
16:41 pmichaud correct.
16:41 lizmat r: my @a=Any; say @a[0,1]  # so how to distinguish then between unassigned and assigned Any?
16:41 camelia rakudo 597d2c: OUTPUT«(Any) (Any)␤»
16:41 pmichaud r: my @a; say @a.elems; say @a.exists(0);
16:41 camelia rakudo 597d2c: OUTPUT«0␤False␤»
16:41 pmichaud also correct.
16:41 lizmat pmichaud!
16:42 lizmat so, how can I make an element return false on exists *after* it has been assigned once
16:42 pmichaud ummmm... delete?
16:42 pmichaud r: my @a = 0..4;  say @a[3];  @a.delete(3);  say @a[3];  say @a.exists(3);   # might be a bug here, though
16:42 camelia rakudo 597d2c: OUTPUT«3␤(Any)␤True␤»
16:42 lizmat @a.delete is NYI, that's want I want to do!
16:43 xenoterracide joined #perl6
16:43 pmichaud oh, delete is the way to do that, then.
16:43 pmichaud you need to bind @a[3] to null.
16:43 pmichaud (that's what .delete should do)
16:43 lizmat then it still returns True on exists
16:43 jnthn o/ pmichaud
16:43 pmichaud then that's a bug with .exists, I bet.
16:44 lizmat hehe
16:44 pmichaud I know that last time I looked, .delete was way wrong.
16:44 lizmat ok, I've a feeling I'm going in circles now
16:44 lizmat yes, and that's what I want to correct
16:44 lizmat but it feels to me .delete is wrong
16:45 lizmat as it simply undefines the value, which is the equvalent of putting my $undefined in it
16:45 pmichaud yes, that's wrong.
16:45 pmichaud and I suspect "sub undefine" is wrong also.
16:46 pmichaud iirc, undefine should probably do the equivalent of assigning Nil to a container
16:46 lizmat r: my %h; %h=Nil
16:46 camelia rakudo 597d2c:  ( no output )
16:46 lizmat hmmm…last time I checked, that didn't work
16:46 pmichaud well, I really meant "scalar container"
16:46 lizmat ok, I'm about to go out to dinner
16:46 pmichaud we know there are bugs with containers for @a and %h
16:47 pmichaud (long standing bugs)
16:47 lizmat trying to fix those, is what I'm trying to do  :)
16:47 pmichaud they're deep bugs.
16:47 lizmat while waiting for someone to look at S11 again  ;-)
16:47 pmichaud as in,   "my %h"  does the wrong thing entirely.
16:47 pmichaud (which is why they've not been fixed)
16:48 pmichaud r:  my %h;  say %h.defined;   # wrong
16:48 camelia rakudo 597d2c: OUTPUT«True␤»
16:48 lizmat does this have to do with the method -> sub migration?
16:48 pmichaud no
16:48 pmichaud it has to do with Rakudo assuming that there's no "container" element involved in the declaration of hashes and arrays
16:49 pmichaud (in the sense of a scalar container element)
16:49 lizmat you;re saying there is one/ should be one?
16:49 pmichaud yes.
16:49 pmichaud a declaration like  "my %h"   should create a container for %h and bind it to the Hash type object
16:50 pmichaud %h is thus undefined, and autovivifies on the first bind/assignment/whatever.
16:50 pmichaud what happens now is that Rakudo creates a Hash object and binds %h directly to that
16:50 pmichaud which we've collectively decided is wrong
16:51 pmichaud however, since Rakudo currently assumes that all containers denote unflattening scalars, it's not as simple as just fixing the declaration
16:51 lizmat r: my $h= Hash.new; say $h.defined  # how does that work here ?
16:51 camelia rakudo 597d2c: OUTPUT«True␤»
16:51 pmichaud because a ton of List handling code makes the same assumption
16:52 pmichaud Hash.new creates a Hash object.
16:52 pmichaud so it's defined.
16:52 pmichaud as opposed to:
16:52 pmichaud r: my $h = Hash; say $h.defined
16:52 camelia rakudo 597d2c: OUTPUT«False␤»
16:53 lizmat r: my $h=Hash; $h.=new
16:53 camelia rakudo 597d2c:  ( no output )
16:53 lizmat r: my $h=Hash; $h.=new; say $h.perl
16:53 camelia rakudo 597d2c: OUTPUT«{}␤»
16:53 pmichaud figuring out flattening behavior in Perl 6 has been one of the great adventures of the language design.
16:53 pmichaud more concretely, I think:
16:53 pmichaud rn: my %h;  say %h.defined
16:53 camelia rakudo 597d2c, niecza v24-86-g39ab531: OUTPUT«True␤»
16:53 pmichaud oh, hmm.
16:53 pmichaud I thought niecza++ got that one right already.
16:54 pmichaud r:  my %h;  %h = (Nil, Nil);  say %h.elems;
16:54 camelia rakudo 597d2c: OUTPUT«0␤»
16:54 pmichaud r:  say (Nil).elems
16:54 camelia rakudo 597d2c: OUTPUT«0␤»
16:55 pmichaud the reason   "my %h;  %h = Nil"    "works"  is because Nil is still being treated as (), I suspect.
16:55 pmichaud r:  say (Nil, Nil).elems
16:55 camelia rakudo 597d2c: OUTPUT«0␤»
16:55 pmichaud yup.
16:56 pmichaud that's another spec change that Rakudo has yet to catch up with.
16:56 pmichaud n: say (Nil, Nil).elems
16:56 camelia niecza v24-86-g39ab531: OUTPUT«2␤»
16:56 pmichaud niecza++ gets it right
16:56 pmichaud (Rakudo's behavior was the correct one as of last year.)
16:57 lizmat S02:2265 is up to date in that respect?
16:57 colomon pmichaud: are you sure on that?  I thought Niecza's behavior was very broken in that area, last time I checked....
16:57 pmichaud colomon: checking
16:57 pmichaud colomon: iiuc, Nil no longer flattens to empty lists
16:58 abnorman joined #perl6
16:58 lizmat grrr, I need to go out to dinner, will check backlog&
16:58 pmichaud lizmat: yes, I believe S02:2265 is the latest thinking on the topic
16:59 pmichaud colomon: S02:2265 seems to say that Nil doesn't disappear in list context
16:59 pmichaud thus I'd think that  (Nil, Nil).elems should be 2
16:59 pmichaud or, more to the point
17:00 pmichaud rn:  say (1, Nil, 2, Nil, 3).elems
17:00 camelia rakudo 597d2c: OUTPUT«3␤»
17:00 camelia ..niecza v24-86-g39ab531: OUTPUT«5␤»
17:00 pmichaud niecza is right according to my reading of S02, while rakudo has the old behavior.
17:00 colomon pmichaud: for sure there are a bunch of spectests which test for Rakudo's behavior, not Niecza's.
17:00 colomon like thus:
17:00 pmichaud colomon: sure, deep changes to the spec hurt.  :-)
17:00 colomon rn: say say (1, Nil, 2, Nil, 3).join(',')
17:00 camelia rakudo 597d2c, niecza v24-86-g39ab531: OUTPUT«1,2,3␤True␤»
17:01 colomon errr...  :\
17:01 colomon rn: say (1..10).map({ $_ * $_ if $_.is-prime }).join(',')
17:01 camelia niecza v24-86-g39ab531: OUTPUT«,4,9,,25,,49,,,␤»
17:01 camelia ..rakudo 597d2c: OUTPUT«4,9,25,49␤»
17:02 colomon rn: say (1..10).map({ $_ * $_ if $_.is-prime }).perl
17:02 camelia niecza v24-86-g39ab531: OUTPUT«(Empty, 4, 9, Empty, 25, Empty, 49, Empty, Empty, Empty).list␤»
17:02 camelia ..rakudo 597d2c: OUTPUT«(4, 9, 25, 49).list␤»
17:02 colomon okay, now I'm completely confused
17:02 pmichaud colomon: sure, deep changes to the spec hurt
17:02 domidumont joined #perl6
17:03 colomon my understand of that issue was that those should be Nil instead of Empty, and they should go away like Empty does
17:03 stevan_ joined #perl6
17:03 colomon that may have been a very shallow understanding
17:03 pmichaud they should be Nil instead of Empty, yes.
17:03 pmichaud I don't know that they "go away" anymore
17:04 pmichaud it depends on the oh, wait
17:04 pmichaud no.
17:04 colomon if all those roast failures [Coke] has been nagging me to fix for months turn out to be bugs in roast, I will be most put out.  ;)
17:04 pmichaud Rakudo has that one right.
17:04 colomon so it should be Nil, but it should disappear in that context?
17:04 pmichaud the result of  { $_ * $_ if $_.is-prime }   is no longer Nil for non-prime numbers
17:05 pmichaud it's ()
17:05 pmichaud and therefore it disappears
17:05 pmichaud r:  sub xyz() { };    say xyz().perl
17:05 camelia rakudo 597d2c: OUTPUT«Nil␤»
17:05 pmichaud that's wrong.
17:05 pmichaud technically, that's the old spec.
17:06 pmichaud r:  sub xyz() { if 0 { "abc" }; };  say xyz().perl
17:06 camelia rakudo 597d2c: OUTPUT«Nil␤»
17:06 pmichaud that should be ()
17:06 * colomon is pretty sure what pmichaud is saying does not match what TimToady has said in the recent past.  But that may be just a symptom of his own extreme confusion .
17:06 pmichaud I'm just reading the spec.
17:07 pmichaud S04:212
17:07 * moritz back
17:07 pmichaud " If there are no statements
17:07 pmichaud in the block at all, the result is also C<()>.
17:07 pmichaud "
17:08 pmichaud That change was introduced in https://github.com/perl6/specs/commit/48958abed853ecc0e2632e6f77beaf855a4afd72
17:08 pmichaud and it's a Deep Change that requires a lot of internal rework in Rakudo.
17:08 pmichaud which affects a lot of the list-handling code.
17:08 colomon oh, wait.  maybe my Niecza goal was to make Empty (aka () ) disappear?
17:09 colomon this is what I get for taking so long to getting around to it.
17:09 pmichaud my absences give me this problem also... it's hard to keep up with the impacts of the deep changes
17:11 timotimo pmichaud: now that you're here, can you tell me how @a[;1,2] and @a[*;1,2] behave for "defined as multidimensional" and "not otherwise special" arrays? and also, if the current behavior of @a[*][1,2] and @a[][1,2] are sensible. (or should i open a specbug for discussion on that?)
17:13 pmichaud timotimo: I can't speak in great detail about how multidimensional arrays work.  A lot of S09 is uncharted area.
17:14 pmichaud however, note that  @a[*][1,2]   and (@a[*]).[1,2]   would be different.
17:14 timotimo would you feel comfortable letting me come up with lots of stuff that may even differ from what's currently there?
17:14 timotimo indeed, that is a thing that i thought of
17:14 timotimo especially: should the parser collate @a[*][1,2] to a call with a LoL of [*; 1,2]?
17:14 pmichaud i.e., there has to be parser support to recognize   @a[*][1,2]  and convert it to the equivalent of  @a[*;1,2]
17:14 timotimo ah, perfect!
17:15 timotimo that clears up a bit of stuff for me :)
17:15 pmichaud that's what S09 says, yes.
17:16 pmichaud I'd say you can play with stuff here, but please please please remember that LoL is itself very slushy
17:16 pmichaud so it might all end up being thrown completely out when I bring the rest of the lists implementation up to spec
17:16 timotimo mhm
17:17 pmichaud (or when anyone does it, if it ends up being not me)
17:17 pmichaud as a general note -- right now people are trying to add/update features on top of some unstable fundamentals.  That worries me.
17:18 timotimo implementers gonna implement ;)
17:18 pmichaud it doesn't worry me enough to say "no, please don't do it", but it does mean that there's a lot of code that we may discover to be wrong or broken based on incorrect assumptions about the fundamentals
17:19 pmichaud (it also means that upgrading the fundamentals becomes harder, because there's a larger burden of stuff depending on them)
17:19 timotimo oh
17:20 timotimo should i rather pause my work on lol-slices for the time being?
17:20 timotimo i can totally do that.
17:20 pmichaud I'm reluctant to say "pause work"
17:20 pmichaud very reluctant
17:20 timotimo hehe. i could totally find another spot to throw my brainmatter at, as long as it seems rather easy
17:21 pmichaud I just know that a lot of code is being added with some incorrect assumptions baked in, and it's a technical debt that has to be managed or acknowledged somehow.
17:22 pmichaud (I'm not saying your code is that way... just that when I go and look at things like  Array.delete and sub undefine, I know that whoever added them was just trying to make tests pass and didn't really investigate what the spec needs)
17:23 pmichaud (or if they did, they didn't investigate deeply enough :)
17:23 pmichaud sadly, I must depart again, having now mixed everyone up for a while.
17:23 pmichaud bbl
17:23 cognominal joined #perl6
17:24 timotimo hehe :)
17:24 tadzik timotimo: well, all tests pass on your branch :)
17:25 tadzik (sorry for the late response)
17:25 timotimo yeah, i know that. there are not nearly enough pod tests
17:25 tadzik I only get some sink context warnings
17:26 tadzik so, what are we at there?
17:27 colomon pmichaud++
17:27 timotimo so far, my code takes care that sequences of angle brackets are either shorter than the innermost outer delimiters or are balanced.
17:27 timotimo it also refuses to parse codes that don't have the "i am an allowed formattingcode" bit set
17:27 masak good evening, #perl6.
17:27 timotimo fwiw, the logic for which codes are and are not allowed at any point needs to be in there to make the balancedness work properly
17:28 timotimo that's another interesting question. if there's a table cell that has a C< in a line and then has two newlines so that it looks like the table cell has ended, the table needs to be aware of that and merge it with more rows before saying "this is the whole row and it ends here"
17:29 colomon o/
17:31 tadzik interesting indeed
17:31 tadzik for balancing, I think at some point we need to use nibbler
17:31 tadzik which would be far easier now, as it's already ported :)
17:32 segomos how can i debug why my module isn't showing up in the perl6 module listing?
17:33 tadzik ask moritz :)
17:34 tadzik or run the script locally
17:34 stevan_ joined #perl6
17:38 [Coke] colomon: it's almost a year at this point.
17:39 dalek roast: 3a95af7 | tadzik++ | S26-documentation/06-lists.t:
17:39 dalek roast: Add missing is() calls
17:39 dalek roast: review: https://github.com/perl6/roast/commit/3a95af7151
17:39 tadzik it's weird they weren
17:39 tadzik 't there
17:42 dalek perl6-roast-data: 8796b8d | coke++ | / (5 files):
17:42 dalek perl6-roast-data: today (automated commit)
17:42 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/8796b8db83
17:42 [Coke] summary: # 06/28/2013 78d15be rakudo++ (26020); niecza (81.91%); pugs (36.51%); rakudo.jvm (84.93%)
17:43 timotimo very nice :)
17:43 [Coke] at this point, even if niecza passes the 63 tests it's been failing for a while, rakudo.jvm is passing more.
17:45 masak wow.
17:49 konundra joined #perl6
17:50 kaare_ joined #perl6
17:53 colomon substantially more.
17:53 moritz segomos: the most common reason is a malformed JSON META.info file
17:54 colomon bad news is rakudo.jvm's failures are more ... urgent? crucial? ... than niecza's
17:54 tadzik this one is valid
17:55 flussence not being able to use it outside of running tests is kind of a bug :)
17:55 flussence (the only reason I was trying to is to see if it'd run *other* tests...)
17:56 jnthn colomon: yes, the raw numbers aren't that telling
18:00 [Coke] looks like all the big "aborted" errors are gone.
18:01 [Coke] ... or I'm an idiot.
18:01 colomon jnthn, masak: any notion where the https://gist.github.com/colomon/5885649 and https://gist.github.com/colomon/5882157 should go in roast?
18:02 [Coke] yes, I'm an idiot. ok. here's an updated gist: https://gist.github.com/coke/5879701
18:02 [Coke] if anyone is looking for big bangs for their jvm hacking tuits.
18:02 colomon [Coke]++ # great list!
18:02 * colomon had essentially been doing the same thing without, you know, making a list or anything helpful like that.
18:03 [Coke] shell tools ftw.
18:03 colomon we seemed to be losing a lot of temporal tests to %h is copy NYI
18:04 colomon ===SORRY!===
18:04 colomon java.lang.RuntimeException: is copy hash param NYI
18:04 colomon [Coke]: the keybag.t one (54 tests) is already fixed.  though one of the tests is still failing.
18:05 jnthn colomon: ooh, I can do that one tonight
18:05 colomon \o/
18:05 colomon Error in socket connection:org.perl6.nqp.runtime.UnwindException
18:05 colomon at org.perl6.nqp.runtime.ThreadContext.<init>(ThreadContext.java:105)
18:05 colomon at org.perl6.nqp.runtime.GlobalContext.<init>(GlobalContext.java:207)
18:05 colomon at org.perl6.nqp.tools.EvalServer$ServiceThread.service(EvalServer.java:140)
18:05 colomon at org.perl6.nqp.tools.EvalServer$ServiceThread.run(EvalServer.java:107
18:06 jnthn eek
18:06 colomon that's S04-statements/given.t.  sorear++'s issue?
18:06 segomos moritz: thank you - it seems to be showing up in panda but not on the website^
18:06 jnthn mebbe...does it pass without the eval seerver?
18:06 jnthn No, it doesn't
18:07 jnthn So it's a general issue
18:07 colomon it's a when in a when
18:07 colomon bet it's related to the $_ issue from last night?
18:07 jnthn My gut feeling is no
18:07 jnthn It's possible but it looks like a fairly different failure mode.
18:10 * colomon stubbornly holds that theory
18:10 colomon ===SORRY!===
18:10 colomon java.lang.IllegalArgumentException: sprintf only accepts ints, nums, and strs, not class __P6opaque__62
18:10 colomon (tried to print a Match)
18:12 colomon jnthn: it's failing coming back out of the when statements
18:12 colomon so you're right and I'm wrong on this one
18:13 tomyan joined #perl6
18:14 colomon https://gist.github.com/colomon/5886791 # golfed
18:24 jnthn colomon: OK. Gonna have dinner, try and nail a couple more $dayjob slides, then will see if I can take a look
18:24 colomon jnthn++
18:25 * colomon has been ignoring his $work all day, escaping into the sweet temptation of spectest fixing....
18:27 sciurius left #perl6
18:30 abnorman joined #perl6
18:31 araujo joined #perl6
18:33 * colomon is finding it hard to remember to recompile his C++ $work code, a sure sign of having done a lot of p6 hacking lately.
18:48 FROGGS joined #perl6
18:49 dalek v5: 317004a | (Tobias Leich)++ | lib/Perl5/warnings.pm:
18:49 dalek v5: add NONFATAL
18:49 dalek v5: review: https://github.com/rakudo-p5/v5/commit/317004a54c
18:49 dalek v5: c323694 | (Tobias Leich)++ | / (4 files):
18:49 dalek v5: add int() and reorganise indirect object syntax
18:49 dalek v5: review: https://github.com/rakudo-p5/v5/commit/c3236941fb
19:08 * colomon asks again: "any notion where the https://gist.github.com/colomon/5885649 and https://gist.github.com/colomon/5882157 should go in roast?" If I don't hear suggestions soon I'll just choose a flip a coin and work from there...
19:11 flussence when in doubt, dump everything in t/integration and let pickier people organise it
19:12 colomon flussence++ # I was leaning towards t/integration, very glad to have a second opinion in favor of it
19:13 flussence there's a random pugsbug in there already, so it seems like a safe assumption
19:22 abnorman joined #perl6
19:23 rafl joined #perl6
19:42 FROGGS lizmat++ # using pod for S11, that is way better than a cryptic unit or module statement
19:45 vk joined #perl6
19:51 * TimToady & the Mrs are sitting in Dulles
19:52 awwaiid Enjoying our rain, TimToady?
19:52 * awwaiid sitting in downtown DC
19:53 FROGGS[mobile] joined #perl6
19:53 TimToady at the moment not raining here, but there's enough weather to delay our incoming plane some, dunno how much
19:54 * TimToady wonders if he has enough battery to backlog...
19:57 colomon TimToady!  \o/
19:58 colomon TimToady: let me summarize: rakudo.jvm (84.93%)
19:58 dalek v5: c6923f0 | (Tobias Leich)++ | / (2 files):
19:58 dalek v5: added weird test sub `within`
19:58 dalek v5: review: https://github.com/rakudo-p5/v5/commit/c6923f0ab5
19:58 TimToady I presume passing, since I saw a 90+ % running earlier
19:58 FROGGS TimToady: and pod items instead of the unit keyword # lizmat++
19:59 TimToady still wondering about that
19:59 * TimToady has a prejudice against meaningful comments, but has been known to overcome that prejudice occasionally
20:00 mathw joined #perl6
20:00 FROGGS well, it is way more readable
20:00 colomon TimToady: passing, yes
20:01 * TimToady is very happy about all the progress, and should maybe drop off the network more often :)
20:01 flussence on the other hand it does mean that pod parsing can't be trivially skipped over as a speed tweak
20:01 colomon It *is* easier to make implement when no one is changing the spec.  ;)
20:01 colomon s/make//
20:02 jnthn ;-)
20:03 jnthn Until you reach a bit of the spec that's impossible to implement until tweaked :-)
20:03 lue joined #perl6
20:03 pmichaud TimToady: wb to the states
20:05 TimToady well, they keep saying welcome to DC, which ain't one, but we're really in VA
20:06 colomon jnthn: true enough.  I still remember all the trouble we were having with the sequence operator, and pmichaud++ says, "I can make this work", and then the first thing he did was convince TimToady++ to remove about half the magic baked into the operator.  :)
20:07 TimToady well, sometimes I have visions, and sometimes I'm just seein' things
20:08 FROGGS r: say (1188 * 100 / 40706) ~ '%' # V5 that is
20:08 camelia rakudo 78374b: OUTPUT«2.918489%␤»
20:08 FROGGS err, v5 is the correct term
20:09 bluescreen10 joined #perl6
20:10 berekuk joined #perl6
20:20 domidumont joined #perl6
20:21 Rotwang joined #perl6
20:28 sorear good * #perl6
20:28 yoleaux 11:38Z <jnthn> sorear: sounds fajn
20:29 FROGGS hi sorear
20:32 sorear colomon: you can get jave stack straces by putting NQP_VERBOSE_EXCEPTIONS=1 in the environment
20:32 colomon sorear++
20:32 colomon o/
20:33 jnthn sorear: ooh, I didn't know that one!
20:33 sorear jnthn: the $_ issue is simple to state but I have no iea how to fix it
20:34 jnthn sorear++
20:34 sorear jnthn: it's basically the same as the packages.t fail from the hackathon, but in Rakudo
20:34 masak hi sorear
20:35 sorear jnthn: in pblock() in Actions.pm, $_ is getting pushed on $block[0].  unfortunately, this is too late for any blocks nested inside the pblock - they wind up earlier than the $_ decl in the QAST, so when compiled they see $OUTER::_
20:35 sorear hi masak
20:35 jnthn sorear: oops.
20:37 sorear jnthn: $_ *should* be getting installed at finishpad time, but I'm not sure why it isn't.  pblock calls blockoid which calls finishpad
20:37 mathw joined #perl6
20:45 autumn joined #perl6
20:46 donaldh joined #perl6
20:56 sivoais joined #perl6
20:58 donaldh_ joined #perl6
21:02 sivoais_ joined #perl6
21:08 berekuk joined #perl6
21:11 sorear "total",     21497,  4052,   531,  1771, 27346, 25863
21:11 sorear real    0m6.524s
21:13 stevan_ joined #perl6
21:13 dalek roast: 39fc591 | sorear++ | test_summary:
21:13 dalek roast: Extend test_summary to support an --archive option accepting TAP::Harness::Archive output in lieu of running tests
21:13 dalek roast: review: https://github.com/perl6/roast/commit/39fc591137
21:13 sorear [Coke]: ever wanted to run a test summary on multiple cores?  now you can
21:14 stevan_ joined #perl6
21:24 vk joined #perl6
21:43 dmol joined #perl6
22:02 adam7504 joined #perl6
22:03 sorear colomon: why did roll have to be modified for jvm?
22:04 colomon sorear: this bug https://gist.github.com/colomon/5885649
22:04 adam7504 left #perl6
22:05 colomon that code gets this error:
22:05 colomon ===SORRY!===
22:05 colomon java.lang.ArrayIndexOutOfBoundsException: 7
22:05 colomon it works without the do
22:05 colomon the error happens at the "say $i"
22:07 sorear oh, blast...
22:09 sorear colomon: same error with my $i = 42; say (do sub { $i })()
22:09 colomon yes, loops and variables are a thrill a minute in the JVM version right now
22:09 sorear i think blasts are mishandling lexicals
22:10 jnthn oh blorst!
22:10 colomon oh, forgot that was a thing, thought you were just making a general purpose exclamation of dismay
22:11 sorear I was trying to pun
22:12 jnthn It worked :)
22:13 jnthn "blorst" almost sounds like a posh English southerner saying "blast" anyway :P
22:13 jnthn <-- common northerner :)
22:14 sorear jnthn: have you tried to use the eval server on windows yet?
22:15 jnthn sorear: No, but my build of the latest stuff just finished :D
22:15 sorear :D :D
22:15 jnthn So, how do I test it? :)
22:15 jnthn nmake test didn't work out :(
22:15 sorear make test?
22:15 jnthn t\00-parrot\01-literals.t .......... Dubious, test returned 2 (wstat 512, 0x200)
22:15 sorear ah... :/
22:15 jnthn for all the things
22:16 sorear perl t/harness --jvm --verbosity=1 t/01-parrot ?
22:16 jnthn aww, --verbose doesn't tell me any more
22:16 jnthn oh...
22:16 jnthn bah!
22:16 jnthn Can't locate File/Slurp.pm in @INC (@INC contains: C:/Perl64/site/lib C:/Perl64/
22:16 jnthn lib .) at ./eval-client.pl line 6.
22:16 jnthn :)
22:16 jnthn OK, *that* one I can do something about.
22:18 sorear jnthn: do you expect you'll be able to do anything interesting with the two lexical bugs today?
22:19 jnthn sorear: Not sure. Just writing a couple of abstracts for YAPC::EU at the moment.
22:19 jnthn I can try and look after that.
22:19 jnthn But if you're looking at it already, don't let me stop you.
22:19 sorear Nah
22:20 sorear I, uh, really ought to focus more on $dayjob than I have been this week...
22:20 jnthn ok :)
22:21 jnthn sorear: yaaaays!
22:21 jnthn sorear++
22:21 jnthn It works now I installed File::Slurp
22:21 sorear \o/ \o/
22:22 jnthn lemme try spectest :)
22:22 jnthn sorear: Works. What parallelism level does it use? Is there a way to tweak it?
22:24 sorear jnthn: controlled by TEST_JOBS
22:24 sorear if you set TEST_JOBS=4, it runs four threads in the same VM :)
22:25 pecastro_ joined #perl6
22:25 sorear actually this came nearly for free: the harness runs as many copies of eval-client.pl as you set TEST_JOBS, and each incoming connection is processed on its own thread
22:26 dalek modules.perl6.org: 606b186 | (David Warring)++ | web/lib/P6Project/Stats.pm:
22:26 dalek modules.perl6.org: fixed typo in P6Project::Stats->new()
22:26 dalek modules.perl6.org: review: https://github.com/perl6/modules.perl6.org/commit/606b186532
22:28 FROGGS r: my $b = Buf.new(-1); my $r; try { $r = $b.decode; CATCH { default { 1 } } }; say $b # what I am doing wrong?
22:28 camelia rakudo 78374b: OUTPUT«Invalid character for UTF-8 encoding␤␤  in method set_codes at src/gen/CORE.setting:7970␤  in method new at src/gen/CORE.setting:7962␤  in block  at /tmp/aALj4SuTAv:1␤␤»
22:29 sorear which one is David Warring?
22:31 FROGGS he is not here as it seems
22:33 dalek v5: 4b75a85 | (Tobias Leich)++ | t/test.pl:
22:33 dalek v5: added which_perl
22:33 dalek v5: review: https://github.com/rakudo-p5/v5/commit/4b75a85af2
22:33 dalek v5: f055792 | (Tobias Leich)++ | / (2 files):
22:33 dalek v5: added %SIG, invoke $SIG{__WARN__} when defined
22:33 dalek v5: review: https://github.com/rakudo-p5/v5/commit/f0557923a9
22:34 snoopy um that's me
22:34 FROGGS ahh
22:34 FROGGS hi snoopy
22:34 BenGoldberg joined #perl6
22:34 snoopy hi FROGGS
22:35 sorear hi snoopy!
22:35 timotimo what did he do? o_O
22:35 timotimo oh, i saw it now
22:35 snoopy jhi sorear etc all
22:36 berekuk joined #perl6
22:37 FROGGS the css-grammar is pretty cool (and it sounds like a lot of work)
22:37 jnthn sorear: That cuts the spectest time in half for me, before I twiddel with TEST_JOBS
22:37 jnthn The css-grammar looked like a lot of work! :)
22:37 jnthn snoopy++
22:37 snoopy i wouldn't call it work
22:38 sorear jnthn: aweshome
22:39 snoopy i didn't need to bother anyone much, the grammar stuff is all pretty solid
22:42 snoopy the w3c specs are another story
22:43 FROGGS snoopy: and you are using your grammar as a validator?
22:45 snoopy yep
22:45 cognominal joined #perl6
22:46 snoopy the w3c specs are a bit vague & inconsistent in places
22:48 snoopy I think that one of the problems is they don't have the tools to prototype as they go
22:48 FROGGS I had guessed it is because the browser vendors just implement new things that become spec later
22:49 flussence I tried writing a CSS3 grammar based off the spec years ago, found out the hard way the same thing (the specs are crap)
22:50 snoopy i think that'
22:51 snoopy .. there' crap partly because they don't (until now) have the prototyping tools to test the specs as they're developed
22:51 snoopy still trying to use lex/yacc from the 80's
22:52 BenGoldberg How far off is the specification from the css code that's out there in the real world?
22:52 flussence I'd guess nobody actually uses the full range of whitespace their spec allows...
22:53 benabik joined #perl6
22:53 FROGGS jnthn: do you have a clue why .decode fails cant be catched?
22:54 snoopy I think that by the time, they've reached recommend status 80-90% accurate
22:54 jnthn FROGGS: They can't?
22:54 snoopy drafts are way less accurate
22:54 FROGGS r: my $b = Buf.new(-1); my $r; try { $r = $b.decode; CATCH { default { 1 } } }; say $b # what I am doing wrong?
22:54 camelia rakudo 78374b: OUTPUT«Invalid character for UTF-8 encoding␤␤  in method set_codes at src/gen/CORE.setting:7970␤  in method new at src/gen/CORE.setting:7962␤  in block  at /tmp/Ghr6bsMGdN:1␤␤»
22:56 FROGGS jnthn: is the example valied?
22:56 FROGGS -e
22:56 jnthn r: my $b = Buf.new(-1);
22:56 camelia rakudo 78374b: OUTPUT«Invalid character for UTF-8 encoding␤␤  in method set_codes at src/gen/CORE.setting:7970␤  in method new at src/gen/CORE.setting:7962␤  in block  at /tmp/c7TbYuNxTH:1␤␤»
22:56 FROGGS ohh
22:56 jnthn It's not in a try when it fails
22:56 jnthn "in method new" is there in the trace :)
22:56 FROGGS well, that explains it :o)
22:56 FROGGS yeah...
22:56 FROGGS thanks!
22:56 timotimo r: my $fblock = "FULL BLOCK"; say eval(q{\c[} ~ $fblock ~ q{]}); # how do i do this better?
22:56 camelia rakudo 78374b: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared names:â�¤    BLOCK used at line 1â�¤    FULL used at line 1â�¤Undeclared routine:â�¤    c used at line 1â�¤â�¤Â»
22:57 timotimo oh, right
22:57 timotimo r: my $fblock = "FULL BLOCK"; say eval(q{"\c[} ~ $fblock ~ q{]"}); # how do i do this better?
22:57 camelia rakudo 78374b: OUTPUT«█␤»
22:57 lue r: my $b = Buf.new(-1); my $r; $r = $b.decode; CATCH { default { 1 } }  # this should work though, no?
22:57 camelia rakudo 78374b: OUTPUT«Invalid character for UTF-8 encoding␤␤  in method set_codes at src/gen/CORE.setting:7970␤  in method new at src/gen/CORE.setting:7962␤  in block  at /tmp/lmnGnlrFaf:1␤␤»
22:57 jnthn timotimo: um...not sure.
22:58 * lizmat back from dinner but too tired / inebriated to backlog sensibly
22:58 lizmat therefore sleep&
22:58 jnthn 'night, lizmat
22:59 timotimo "FULL BLOCK".unilookup, obviously
23:00 snoopy w3c have the css validator https://github.com/w3c/css-validator
23:00 FROGGS r: my $fblock = "FULL BLOCK"; say eval(qq{"\\c[$fblock]"});
23:00 camelia rakudo 78374b: OUTPUT«█␤»
23:01 timotimo FROGGS: not sufficiently better to shut me up :)
23:01 dalek roast: 9d317d0 | (Elizabeth Mattijsen)++ | S11-modules/require.t:
23:01 dalek roast: Another case where we want to unshift to @*INC instead of push
23:01 dalek roast: review: https://github.com/perl6/roast/commit/9d317d0416
23:01 FROGGS meh
23:01 snoopy that's written in Java. Parsing appears to be procedural and it's mostly stuck at css 2.1
23:01 FROGGS :P
23:01 timotimo although it's still shorter than import unicodedata; unicodedata.lookup("FULL BLOCK") which python has
23:01 lizmat really gone now :-)
23:02 sorear r: say chr(nqp::codepointfromname("FULL BLOCK"))
23:02 camelia rakudo 78374b: OUTPUT«█␤»
23:02 jnthn sorear: heh, I was pondering that one but it's Rakudo specific :)
23:03 lue r: my $fblock = "FULL BLOCK"; say qq{\c[$fblock]};
23:03 camelia rakudo 78374b: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Unrecognized \\c characterâ�¤at /tmp/yBThIHc56c:1â�¤------> [32mmy $fblock = "FULL BLOCK"; say qq{\c[[33mâ��[31m$fblock]};[0mâ�¤    expecting any of:â�¤        argument listâ�¤        prefix or termâ�¤        prefix or meta-prefixâ�¤Â»â€¦
23:03 sorear n: use Niecza::UCD; say get_codepoint("FULL BLOCK")
23:03 camelia niecza v24-86-g39ab531: OUTPUT«[31m===[0mSORRY![31m===[0m��Q:CgOp not allowed in safe mode at /home/p6eval/niecza/lib/Niecza/UCD.pm6 line 4:�------> [32m { (ucd_get_ranges {$table} {$matcher}) [33m�[31m}[0m��Q:CgOp not allowed in safe mode at /home/p6eval/niecza/lib/Niecza/UCD.p…
23:04 snoopy so I they don't seem to have any tools for writing declarative grammars or validating as they go
23:04 snoopy hoping that Perl6 grammars could help here
23:11 Guest1337 joined #perl6
23:15 jnthn sorear: I think make_thunk_ref may be the guilty party
23:15 * colomon used Rakudo's Grammar::Tracer module to good effect a couple of days ago.  :)
23:35 benabik joined #perl6
23:36 sorear o/ benabik
23:36 benabik 'lo sorear
23:38 ecocode joined #perl6
23:38 jnthn hm, well, the lexical fix I have here takes us from 24486 attempted to 24502 attempted, so I guess it must do something...
23:38 jnthn Fixes the golf colomon++ gave me too
23:38 sorear my $i = 42; say (do sub { $i })() ?
23:39 sorear or the nested pblock one
23:39 dalek rakudo/nom: 6b4e594 | jnthn++ | src/Perl6/ (2 files):
23:39 dalek rakudo/nom: Fix blorst to genrate well-nested QAST.
23:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6b4e594062
23:40 jnthn sorear: The nested pblock one is the one I meant
23:40 jnthn but
23:40 masak so, in one week, Rakudo on le JVM has surpassed Niecza?
23:40 jnthn > my $i = 42; say (do sub { $i })()
23:40 jnthn 42
23:40 jnthn masak: I've been working on it since NOVEMBER. :P
23:40 jnthn and sorear++ for some weeks :)
23:40 jnthn Not to mention others :)
23:40 sorear jnthn: { $_ := 1; for 2 -> $k { say $_ } } is another fun case
23:41 jnthn r: { $_ := 1; for 2 -> $k { say $_ } }
23:41 camelia rakudo 78374b: OUTPUT«1␤»
23:41 jnthn ok, that one's still busted
23:41 jnthn grr
23:41 sorear jnthn: that one's caused by the pblock action method installing a $_ alias too late
23:41 jnthn Will look at that one tomorrow.
23:41 jnthn oh...
23:42 * jnthn tries "the obvious stupid thing"
23:42 sorear jnthn: the $_ alias needs to be put in at finishlex time, not at pblock reduce time
23:43 jnthn sorear: needs to be? Or jsut needs to appear early enough?
23:44 sorear jnthn: i think finishlex is the most correct time, for handling BEGIN and whatnot
23:44 jnthn hm, true
23:45 jnthn sorear: Turns out changing the push to unshift in pblock actually "fixes" it too :)
23:45 sorear jnthn: does 65b4e594 break  'BEGIN my $x = 5; say $x' ?
23:46 jnthn um
23:46 jnthn r: BEGIN my $x = 5; say $x
23:46 camelia rakudo 78374b: OUTPUT«5␤»
23:46 sorear n: BEGIN my $x = 5; say $x
23:46 camelia niecza v24-86-g39ab531: OUTPUT«5␤»
23:46 sorear std: BEGIN my $x = 5; say $x
23:46 camelia std d4cc5ab: OUTPUT«ok 00:00 43m␤»
23:46 sorear p: BEGIN my $x = 5; say $x
23:46 camelia pugs: OUTPUT«*** No such subroutine: "&BEGIN"␤    at /tmp/ZgJeTgFq2o line 1, column 1-16␤»
23:47 jnthn Darn, yes...
23:47 jnthn hmm.
23:48 dalek rakudo/nom: fd7e929 | jnthn++ | src/Perl6/ (2 files):
23:48 dalek rakudo/nom: Revert "Fix blorst to genrate well-nested QAST."
23:48 dalek rakudo/nom:
23:48 dalek rakudo/nom: This reverts commit 6b4e594062412e45faeaa40f079c85239f65fa9c. It
23:48 dalek rakudo/nom: breaks "BEGIN my $x = 5; say $x;". sorear++ for noticing.
23:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fd7e929efa
23:48 jnthn Guess I look at it tomorrow then.
23:49 sorear .oO( dalek should generate -- if $commitmsg =~ /^Revert/ )
23:49 jnthn :P
23:52 benabik The person doing the revert might be different than the committer.
23:54 lue Also, we're positive here. Even if the reverter made the offending change, we prefer to reward your ability to correct your own mistakes :)

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo