»ö« 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 sorear on 25 June 2013.
[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? :)
sorear fridy?
flussence /frida++y/! 00:01
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
Unix systems have used page-based memory management instead of segmentation for a couple decades now, but the name has stuck
Windows, however, is more up to date and calls it INVALID_PAGE_FAULT iirc
timotimo fridcy? 00:03
er, fridby.
segfault is much funner to say IMO
dalek ecs: c98d2d2 | (Brent Laabs)++ | S99-glossary.pod:
define and add some terms
00:07
labster feel free to adjust my definition of segfault in the above. 00:08
sorear :p 00:10
00:17 yoleaux left
timotimo running python code after a while of perl6 coding: OOOOH GOD WHY IS IT SO FAST =o 00:17
sorear because it's not Perl6 00:18
timotimo yeah :(
but it's so many functions and deep recursion, computers have no business being this fast!
00:19 yoleaux joined, ChanServ sets mode: +v yoleaux
sorear because nobody had the "bright" idea to add Failure 00:19
because + is an actual builtin and not calling into a giant wad of perl6 code
flussence because it's only designed to look nice from a distance, not when you're actually reading it 00:20
timotimo has a sudden burst of "will perl6 ever be fast enough for me? :(" 00:24
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:30 xinming left
sorear timotimo: i have those all. the. time. 00:31
srand is LHFy, if anyone wants it 00:32
00:32 xinming joined
timotimo bbl 00:32
sorear (you'll need to add a random-number object to the ThreadContext instead of using ThreadLocalRandom.current()) 00:33
00:35 Guest1337 left
colomon sorear: you reckon that's a good idea, then? 00:36
timotimo do you think you can get rakudo close to niecza performance wise? 00:39
00:41 benabik left
timotimo and that before the year ends? ;) 00:41
well by that time we may already have moarvm running 00:42
that may or may not improve things
00:42 xenoterracide joined
sorear timotimo: on moarvm? probably 00:43
niecza has some major cheats that it does when it thinks it can get away with it
timotimo cool
can those make it into rakudo? ;)
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.
timotimo that sounds sensible actually
morphing loops should be s^Ha pretty standard optimization
00:45 SamuraiJack joined
sorear timotimo: jnthn++ said some things earlier that make it sound like next-to-goto is already in moarvm 00:45
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
timotimo i wonder if the current compile time inlining and dispatch in the optimizer are already decent
for simple arithmetic 00:47
sorear right now the perl 6 feature that I would like to eliminate most is sink context
colomon sorear: from an efficiency standpoint?
sorear just think: an extra method call for every statement! and the execution of for loops is very complicated
colomon: from an efficiency and a semantic WTFs standpoint 00:48
timotimo eliminate from the language or while compiling?
sorear timotimo: eliminate from the language
colomon has been opposed to sink context on semantic WTF standpoint since day one
timotimo i see your point :(
00:48 benabik joined
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:49
sorear yes, map and for should not be the same 00:51
that's like reason #1 rakudo is slow
niecza is fast because it makes for mean for
colomon: yes, having a random seed/object in ThreadContext is the best option imo 00:56
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:57
00:58 BenGoldberg left, BenGoldberg joined
timotimo is getting rid of the for/map-same-ness something that would happen? 00:59
colomon only if sorear and I figure out how to convince the rest of the p6 crew 01:00
BigDecimal?!? 01:01
sorear colomon: moritz, too. 01:02
what about BigDecimal?
colomon it's some sort of Num in java class?
sorear more like FatRat
colomon just ran into it trying to figure out why division is failing
sorear Num in java is Double
colomon > (1.Rat/2**256) 01:03
0
rn: say (1.Rat/2**256)
camelia rakudo 3e5868: OUTPUT«8.63616855509444e-78␤»
..niecza v24-86-g39ab531: OUTPUT«8.6361685550944446E-78␤»
sorear (FatRat with the restriction that the denom is a power of10)
colomon is it actually standard java?
sorear yes 01:04
timotimo who hath the power to uploadeth a new S26.html?
t.h8.lv/S26-documentation.pod.html - i'd like to nominate this version of it
sorear colomon: I'd link you to the official java.math.BigDecimal docs but my DNS just went down 01:05
colomon sorear: it's okay, I think I've found them. 01:06
timotimo actually, hold on
i think that's based on code that's not in nom yet
indeed, the nomination is conceded
colomon oh, I've found the bug 01:08
> (1 / 10**20).Num
0
divide(new BigDecimal(getBI(tc, b)), 10, RoundingMode.HALF_UP)
the 10 is the decimal precision of the result
thus 01:09
> (1 / 10**10).Num
1.0E-10
> (1 / 10**11).Num
0
01:10 Guest1337 joined
colomon rn: say 2**1024 01:13
timotimo ah, that makes sense
camelia niecza v24-86-g39ab531: OUTPUT«1797693134862315907729305190789024733617976978942306572734300811577326758055009631327084773224075360211201138798713933576587897688144166224928474306394741243777678934248654852763022196012460941194530829520850057688381506823424628814739131105408272371633505…
..rakudo 3e5868: OUTPUT«1797693134862315907729305190789024733617976978942306572734300811577326758055009631327084773224075360211201138798713933576587897688144166224928474306394741243777678934248654852763022196012460941194530829520850057688381506823424628814739131105408272371633505106845862…
01:13 konundra joined
timotimo someone thought it was supposed to be the base? 01:13
colomon rn: say log10(2**1024) 01:14
camelia rakudo 3e5868: OUTPUT«===SORRY!===␤Unable to parse expression in argument list; couldn't find final ')'␤at /tmp/qEVudq5SpS:1␤------> say log10(2⏏**1024)␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤»…
..niecza v24-86-g39ab531: OUTPUT«===SORRY!===␤␤Unable to parse argument list at /tmp/v9ssVngnwb line 1:␤------> say log10(⏏2**1024)␤Couldn't find final ')'; gave up at /tmp/v9ssVngnwb line 1:␤------> say log10(2⏏**1024)␤␤Parse fail…
BenGoldberg r: (1/ 10**11).denominator.say
camelia rakudo 3e5868: OUTPUT«100000000000␤»
timotimo rn: say log10(2**1024)
camelia niecza v24-86-g39ab531: OUTPUT«308.25471555991669␤»
..rakudo 3e5868: OUTPUT«Inf␤»
colomon timotimo: thank you
timotimo yw :)
BenGoldberg r: (2**1024).WHAT.say 01:15
camelia rakudo 3e5868: OUTPUT«(Int)␤»
BenGoldberg rn: (2**1024).log10.say
camelia niecza v24-86-g39ab531: OUTPUT«308.25471555991669␤»
..rakudo 3e5868: OUTPUT«Inf␤»
BenGoldberg rn: (2**1024).Num.say 01:16
camelia rakudo 3e5868, niecza v24-86-g39ab531: OUTPUT«Inf␤»
colomon rakudobug, but I think it's known
timotimo bedtime for me :) 01:17
01:21 FROGGS left
dalek p: b9f195c | (Solomon Foster)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Make div_In use the full accuracy possible in a Num.

I'm a bit worried this is overkill that will reduce the efficiency of this conversion, but before this Rakudo JVM thought
  (1/10**11).Num == 0.0, which is completely unacceptable.
01:23
colomon First JVM commit for me! \o/
sorear colomon++ 01:26
colomon: fwiw, the way niecza handles this is to convert both sides to double *first*, then do a double divide 01:32
colomon sorear: right, but that's not necessarily the best way to do it. 01:33
In particular, that will fail if either numerator or denominator is outside double range.
01:34 FROGGS joined
colomon whereas it's perfectly possible for both to be, and still have a quite reasonable result. 01:34
though obviously constructing 308 digits of precision is braindead too. 01:35
01:36 xenoterracide left
sorear could go through an intermediate psuedo-double which is a double and an extra scale factor 01:36
then divide the doubles and subtract the scales, and combine with Math.scalb 01:37
colomon true 01:43
01:44 raiph joined 01:53 dayangkun joined
[Coke] r: print 21831 / 25969 01:59
camelia rakudo 3e5868: OUTPUT«0.840656»
01:59 Guest1337 left
colomon [Coke]: did that catch my change? ;) 01:59
sorear [Coke]: is that the curent pass%? 02:00
[Coke] colomon: it takes *hours* to run.
colomon [Coke]: really? make spectest takes about ten minutes on my machine. 02:01
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"
sorear so right now it's spinnign up a fresh jvm for each file
colomon ugh
[Coke] it's at 3e58687 02:03
colomon r: say (21831 + 130) / 25969
camelia rakudo 3e5868: OUTPUT«0.845662␤»
[Coke] -> zzz 02:04
colomon o/
sorear o/ 02:07
02:07 obra joined
sorear colomon: 130 new passing tests from the div change? 02:07
o/ obra
colomon sorear: yes, it was causing a fatal div by zero error in fatrat.t
halfway through
sorear think we can manage 85 by EOD? 02:08
colomon if we put our minds to it, I'm almost sure 02:09
[Coke] zzzzgoodluckzzz
colomon given.t is failing 40+ tests 02:13
t/spec/S05-mass/properties-derived.t failing 256 02:14
t/spec/S12-attributes/instance.t 83 02:17
io_in_for_loops, 23 02:18
t/spec/S32-list/categorize.t, 50+ 02:19
I'll take a look at that one, I was just messing around with it earlier this week.
oodles of S32-temporal failures 02:20
categorize: 02:21
not ok 1 - simple sub call with Sub
# got: {"20" => [Any, Any], "10" => [Any, Any], "0" => [Any, Any, Any, Any]}
# expected: {"20" => [29, 23], "10" => [12, 18], "0" => [7, 9, 3, 7]}
02:22 hypolin left, hypolin joined 02:27 Chillance left 02:28 census left
colomon crazy 02:33
self{$k}.push: $_; with $_ == 29 produces self{$k} === [Any]
02:34 adu joined 02:38 hlin_ joined
benabik That doesn't seem right. 02:39
colomon benabik: yes, I am debugging
benabik Can you build Rakudo for Parrot and JVM in the same directory? Or would I need a second checkout? 02:40
colomon separate needed, I think. 02:41
gist.github.com/colomon/5882090 02:43
JimmyZ never tried to understand sink context
colomon the say "blue" ~ $_; line is getting $_ as undefined 02:44
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.
My guess is the 2nd.
02:45 Chat2044 joined
benabik (Or, of course, something I didn't think of.) 02:45
02:45 Chat2044 left 02:54 hlin_ left, hypolin left, hlin_ joined, hypolin joined
colomon gist.github.com/colomon/5882157 # golfed for jnthn, benabik, sorear .... 02:57
sorear Stefans-MacBook-Air:rakudo-jvm sorear$ perl eval-client.pl TESTTOKEN run -e 'for 1 { for 2 -> $k { say $_ } }' 03:00
(Any)
r: for 1 { for 2 -> $k { say $_ } }
camelia rakudo 3e5868: OUTPUT«1␤»
03:01 hlin_ left, hypolin left, hypolin joined, hlin_ joined
sorear r: ({ (-> $k { say $_ })(2) })(1) 03:01
camelia rakudo 3e5868: OUTPUT«1␤»
colomon sorear: good point, not nearly as golfed as it could be 03:02
sorear curiously, *that* one works on jvm,
.
so much for my first attempt to get mapiter out of the way
benabik So it's not broken $_, it's something particular to for loops? 03:03
colomon r: gist.github.com/colomon/5882157
camelia rakudo 3e5868: OUTPUT«1␤1␤5␤5␤10␤10␤»
colomon ./perl6 loop.pl
(Any)
(Any) #etc
benabik Perl6::Actions make_topic_block_ref 03:04
Seems to be where $_ is installed for for. 03:05
Hm. Unless $<EXPR>.ast<past_block> is set. 03:06
I'm going to guess past_block doesn't get set in JVM.
sorear Stefans-MacBook-Air:rakudo-jvm sorear$ perl eval-client.pl TESTTOKEN run -e '{ $_ := 1; for 2 -> $k { say $_ } }'
(Any)
Stefans-MacBook-Air:rakudo-jvm sorear$ perl eval-client.pl TESTTOKEN run -e '{ $_ = 1; for 2 -> $k { say $_ } }'
1
colomon huh 03:07
03:07 fridim_ joined
sorear Stefans-MacBook-Air:rakudo-jvm sorear$ perl eval-client.pl TESTTOKEN run -e '$_ = 3; { $_ := 1; for 2 -> $k { say $_ } }' 03:08
3
the jvm backend is pickier than the parrot backend about declaration before use
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 $_ } }
camelia rakudo 3e5868: OUTPUT«1␤»
benabik (Expected that, but wanted to be sure.)
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.
sorear so presumably '{ $_ := 1; for 2 -> $k { say $_ } }' is generating bad QAST 03:12
but 1. I can't see the QAST because of overeager exception throwing in the bowels of NQP
2. even if I could, sink context makes QAST unreadable in addition to its runtime effects and programmer-confusing effects 03:13
03:16 btyler joined
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)
sorear gist.github.com/sorear/5882254 03:20
see lines 19 and 51
the inner block, { say $_ }, is compiled before the inner $_ is installed in the inner pad
so the lookup is resolved at compile time to $OUTER::OUTER::_
colomon sorear++ 03:21
sorear parrot's getlex takes a string, JVM's takes (outer count, index in pad)
03:22 xinming left
colomon ===SORRY!=== 03:23
java.lang.RuntimeException: is copy hash param NYI
(looking at calendar.t)
dalek atures: 5b06bad | (Zakariyya Mughal)++ | features.json:
autovivification item

fix spelling and add link to spec
03:24
atures: 379bd34 | dukeleto++ | features.json:
Merge pull request #2 from zmughal/master

Fixes for autovivification item
sivoais :-D
03:25 xinming joined 03:26 adu left 03:47 xenoterracide joined 03:48 atroxaper joined
sorear o/ xenoterracide 03:53
std: { my $_ } 03:58
camelia std d4cc5ab: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $_ (see line 1) at /tmp/ByxbVrIRpf line 1:␤------> { my $_⏏ }␤ok 00:00 43m␤»
04:03 abnorman left 04:11 BenGoldberg left 04:12 hypolin left, hypolin joined 04:28 konundra left, hlin_ left, hypolin left, Psyche^ joined, hlin_ joined, hypolin joined 04:31 Patterner left, Psyche^ is now known as Patterner 04:49 birdwindupbird joined 04:51 dmol joined 04:57 FROGGS left 05:07 fridim_ left 05:11 btyler left 05:13 btyler joined 05:17 btyler left 05:20 dayangkun left 05:29 lue left 05:35 FROGGS joined 05:37 sqirrel joined 05:44 ldthien0 joined, ldthien0 left 05:45 xenoterracide left 06:01 dayangkun joined
FROGGS r: s/abc/def # rakudobug 06:06
camelia rakudo 3e5868: OUTPUT«===SORRY!===␤Malformed replacement part; couldn't find final $stop␤at /tmp/8UUWhfKPG3:1␤------> s/abc/def # rakudobug⏏<EOL>␤ expecting any of:␤ statement list␤ prefix or term␤ prefix or meta-prefix␤ …
sorear FROGGS: should it be final / ? 06:09
FROGGS yes 06:10
the code line is like: <.panic: "could find $stop">, but this does not interpolate
I'm pushing in a sec
06:11 xilo left
FROGGS well, more than a sec, need to build nqp+rakudo and spectest 06:11
06:12 PacoAir joined
sorear what? now that's a bug 06:15
"" strings should always interpolate
06:21 dmol left 06:25 dmol joined 06:27 dayangkun left 06:28 PacoAir left 06:29 ldthien0 joined
FROGGS sorear: the problem is is that this is deep in the guts of the PGE 06:32
(at least I think so) 06:33
sorear FROGGS: there is no PGE
FROGGS I mean the regex engine that pmichaud++ wrote... is it not called PGE?
sorear pmichaud told me at yapcna that he's written five regex engines... :D 06:34
PGE was two of them
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
06:35 daxim joined 06:39 preflex left 06:40 dayangkun joined 06:44 preflex joined, ChanServ sets mode: +v preflex 06:46 kaleem joined
lizmat good *, #perl6! 06:51
FROGGS hi lizmat 06:53
dalek kudo/nom: d7a961c | (Tobias Leich)++ | src/Perl6/Grammar.nqp:
correctly print $stop in s///-panic

This is a workaround for nqp issue #105.
06:54
sorear o/ lizmat
lizmat FROGGS! sorear! 06:55
FROGGS lizmat! 06:56
:P
lizmat :-)
06:56 dmol left
lizmat what, no commits to nom that I need to spectest ? 06:56
:-)
better make some of my own then
FROGGS yepp, ++lizmat 06:57
does somebody know what is going on with these macro fails?
lizmat not me 06:59
and by the way, labster++ for more glossary goodness
07:03 ldthien0 left 07:07 arlinius left 07:17 domidumont joined, kaleem left
labster no problem, lizmat 07:31
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
it has served its purpose, there won't be any more development on it
life support, as it were
labster good evening, sorear
07:34 ldthien0 joined 07:42 cognominal left
labster r: (-1).sqrt 07:44
camelia rakudo d7a961: ( no output )
labster r: say (-1).sqrt
camelia rakudo d7a961: OUTPUT«NaN␤»
lizmat isn't that right? 07:45
or are you expecting i ?
labster Vaguely wondering if that should be the case. 07:46
07:46 dayangkun left
sorear no 07:47
if an algorithm becomes numerically unstable and a value which is supposed to be small and positive becomes negative, NaN is the appropriate response
lizmat labster: what would "((-1).sqrt)++" then give? "j" ?
labster I admit, I'd be pretty surprised to see i as a result.
lizmat r: say i**2 # not just -1 ? 07:48
camelia rakudo d7a961: OUTPUT«-1+1.22460635382238e-16i␤»
lizmat n: say i**2
camelia niecza v24-86-g39ab531: OUTPUT«-1+1.2246063538223773E-16i␤»
lizmat at least we're consistent :-) 07:49
labster r: say Complex.new(-1,0).sqrt
camelia rakudo d7a961: OUTPUT«6.12303176911189e-17+1i␤»
07:49 fhelmberger joined
moritz floating-point "fun" 07:49
07:49 hypolin left
labster r: say Complex.new(-1,0).sqrt.round 07:49
camelia rakudo d7a961: OUTPUT«0+1i␤»
07:49 hlin_ left
lizmat r: say i*i 07:49
camelia rakudo d7a961: OUTPUT«-1+0i␤»
07:49 hlin_ joined, hypolin joined
lizmat r: my @a; @a[1]=1; say @a.exists(0) # apparently exists knows about uninitialized array entries 07:50
camelia rakudo d7a961: OUTPUT«False␤» 07:51
labster Well, I guess I found a reasonable use case for rounding Complex :)
moritz fwiw powers of complex numbers calculate angle and magnitude, and then power the angle and multiply the magnitude 07:52
lizmat but how can me make an array element non-existent again? 07:53
lizmat is afraid this reaches into the bowels of parrot
labster or maybe the crop of parrot.
the gizzard of parrot. That's the better joke. 07:55
lizmat the entrails? 07:56
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
lizmat will try that, sorear++
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 08:14 ldthien0 left 08:19 ssutch left
dalek p: 9963e43 | sorear++ | / (3 files):
Move EvalServer into a new tools/ package
08:21
ecs: 71e9f85 | (Brent Laabs)++ | S32-setting-library/Numeric.pod:
add Complex rounders (truncate, round, floor, ceiling)
08:23
hoelzro o/ #perl6 08:30
sorear o/ 08:31
dalek p: 4ae08cd | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java:
Give the eval server something resembling an arg parser
08:33
p: d4105e3 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java:
Attempt to not blow up on Windows
lizmat jnthn++ will like that 08:34
sorear the rest of you will like the next bit 08:35
lizmat is this an is_deeply artefact? 08:37
# got: $("0" => 42, (), "2" => 23)
# expected: $(0 => 42, 2 => 23)
actually, I meant:
# got: $("0" => 42, "1" => Any, "2" => 23)
# expected: $(0 => 42, 1 => Any, 2 => 23)
isn't the left side of a fat comma always auto-quoted, hence a string?
sorear no 08:38
well, yes in perl 5 where there are fat commas
=> is the Pair construction operator in p6 08:39
it is not comma-like
lizmat ah, that's my thinko
dalek p: b619dd6 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java:
Implement -bind-stdin option which causes eval server to exit after an EOF on STDIN
08:41
FROGGS std: use v5; "a"x8 08:42
camelia std d4cc5ab: OUTPUT«===SORRY!===␤Whitespace is required between alphanumeric tokens at /tmp/DhEN3oDLMp line 1:␤------> use v5; "a"x⏏8␤Parse failed␤FAILED 00:01 52m␤»
FROGGS -.-
lizmat grrr 08:43
FROGGS I'm not sure how I should work around that one
sorear add whitespace? 08:45
presumably you're not trying to parse p5 with STD.pm6 08:46
FROGGS sorear: everywhere in the tests and on CPAN?
sorear FROGGS: don't try to parse perl 5 code with a grammar that expects perl 6
FROGGS sorear: that is STD_5.pm6
sorear clearly a bug then
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
sorear yeah
probably wants input from TimToady
FROGGS :/ 08:48
I mean it is only about allowing numbers after an op that is a letter 08:52
08:56 araujo joined, araujo left, araujo joined
dalek kudo/nom: 58f22ed | sorear++ | t (2 files):
Track eval server changes
08:56
sorear FROGGS: and you cant' just say x\d is whitespacey, because $x5 is a good identifier
FROGGS jepp 08:58
sorear still associates that more with Jeep than Ja 08:59
dalek kudo/nom: 7bfa6df | (Brent Laabs)++ | src/core/Complex.pm:
add Complex.truncate, missed it earlier
09:05 Stygia joined
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:13
because $x is longer than $ and x 09:14
I wonder where the code is for all that 09:15
dalek ast: b6dac5b | (Elizabeth Mattijsen)++ | S03-operators/subscript-adverbs.t:
Added hopefully exhaustive tests for []:(kv|p|k|v) and {}:(kv|p|k|v)
lizmat I guess there's not going to be a Rakudo * this month? 09:18
moritz hopes there is 09:21
09:22 drbean left
lizmat hopes so too 09:22
sorear o/ moritz
moritz \o sorear, * 09:23
FROGGS hi moritz 09:24
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 09:27 kaleem joined
FROGGS this seems to do it btw: token infix:sym<x> { <sym> <?MARKER('ws')> <O('%multiplicative')> } 09:30
spectesting now
09:30 ldthien0 joined
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
r: (gather {state $x=1;loop {take $x++}})[0,1,2,3]
camelia rakudo 7bfa6d: ( no output )
jercos r: (gather {state $x=1;loop {take $x++}})[0,1,2,3].say
camelia rakudo 7bfa6d: OUTPUT«1 2 3 4␤»
jercos r: (gather {state $x=1;loop {take $x++}}).say 09:33
camelia rakudo 7bfa6d: OUTPUT«(timeout)»
lizmat sink context strikes again ?
jercos well, no?
r: (1...*).say
09:33 Guest1337 left
camelia rakudo 7bfa6d: OUTPUT«(timeout)» 09:33
jercos or uh, not? huh. 09:34
on my own rakudo I get "1 2 3 4 ..."
FROGGS if you try to say it, it will be evaluated
r: my @a := 1...*; say @a.elems 09:35
camelia rakudo 7bfa6d: OUTPUT«Inf␤»
FROGGS r: my @a := 1...*; say @a
.... wait for it
camelia rakudo 7bfa6d: OUTPUT«(timeout)»
FROGGS dary!
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
jercos r: my @a = (gather {state $x=1;loop {take $x++}});say "done" 09:36
FROGGS use the bind operator
camelia rakudo 7bfa6d: OUTPUT«(timeout)»
sorear pretty sure you CAN say it's infinite
jercos r: my @a := (gather {state $x=1;loop {take $x++}});say "done"
camelia rakudo 7bfa6d: OUTPUT«done␤»
FROGGS at the moment you access elements of @a, it will be computed up the used index 09:37
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
"there must be a better way"
jercos Well that was obvious >.>
r: (gather {state $x=1;loop {take $x++}}:infinite).say
camelia rakudo 7bfa6d: OUTPUT«(timeout)» 09:39
FROGGS you are missing a comma
jercos for GATHER(), yes, not for gather{}.
r: (gather {state $x=1;loop {take $x++}}:infinite).infinite.say 09:40
camelia rakudo 7bfa6d: OUTPUT«True␤»
jercos r: (gather {state $x=1;loop {take $x++}},:infinite).infinite.say
camelia rakudo 7bfa6d: OUTPUT«(Mu)␤»
jercos r: (1...*).gist.say 09:42
camelia rakudo 7bfa6d: OUTPUT«(timeout)» 09:43
09:46 PacoAir joined 09:47 PacoAir left 09:48 ldthien0 left
dalek p: 5f78018 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/CompilationUnit.java:
Cache reflective info between activations of a shared compunit
09:49
sorear that shaves about 100-150ms off of the time for per-file overhead when using evalserver
FROGGS that'S cool 09:50
sorear we're now consistently faster per file than rakudo-parrot, when cheating. :)
tadzik wow :)
FROGGS \o/
09:50 hlin_ left
moritz CHEATING IS TECHNIQUE! 09:50
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
tadzik haha 09:52
lizmat why not psgi ?
tadzik why not zoidberg?
also, it's your crazy 3am idea, my crazy 12 o'clock idea ;)
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
lizmat sorear: but is psgi that much different? but anyway, were talking accessing an evalserver, right, not a high-volume website 09:59
it's just that for psgi, there is so much middleware available 10:00
fwiw, spectest of FROGGS++ latest grammar change, works out ok here
FROGGS yeah, but I didnt expect it to fail, not that tiny change 10:01
lizmat well, it didn't.. :-) 10:04
10:05 Guest1337 joined
sorear lizmat: i have a confession... 10:07
lizmat: i have no idea what middleware is 10:08
lizmat en.wikipedia.org/wiki/Middleware 10:09
maybe more to the point: blogs.perl.org/users/jakob/2012/09/...eware.html 10:10
FROGGS a middleware is like all and nothing 10:13
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:15
10:16 mtk left
daxim old hat in other languages/frameworks 10:18
lizmat :-)
dalek ecs: 30396f0 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
Spec that classify and categorize don't work on inifinite lists

So we can close github.com/perl6/specs/issues/52
10:23
sorear is testing a test_summary patch
10:26 atroxaper left, crab2313 left
sorear sent to [Coke]++ 10:39
lizmat Q: in a multi-threaded environment, will "state" be thread local or process local? 10:40
I can see a pb if a sub with "state" hasn't been called before multiple threads are started
that the sub in each thread would get its own "state" 10:41
whereas the sub *was* called before, they would share the same state
sorear lizmat: neither... sub-clone-local 10:42
r: sub acc { return sub { (state $i)++ } }; my $f = acc; my $g = acc; say $f(); say $g(); say $f()
camelia rakudo 7bfa6d: OUTPUT«0␤0␤1␤»
sorear probably not a good idea to share Sub objects across threads when using state
I wouldn't guarantee locking 10:43
lizmat state updates should be lockless :-)
and still maintain integrity :-) 10:44
10:53 pecastro_ joined 10:56 pecastro left 10:57 sqirrel left 11:06 raiph left
dalek : 103343b | (Tobias Leich)++ | lib/Perl5/ (2 files):
make octets in strings ("\040") work
11:12
: 884a2b7 | (Tobias Leich)++ | lib/Perl5/Grammar.nqp:
correctly print missing stopper in s///
: c55531f | (Tobias Leich)++ | lib/Perl5/ (2 files):
added stub for tr///
: 18050b8 | (Tobias Leich)++ | lib/Perl5/Grammar.nqp:
allow cuddled operator x
: 0009cbb | (Tobias Leich)++ | STATUS.md:
status update
11:13
lizmat blogs.perl.org/users/stevan_little/...reach.html # Stevan Little++ 11:15
colomon CSV::Parser is working! 11:19
lizmat colomon++
colomon lizmat: not my doing, I'm going observing the smoke testing results. :)
lizmat colomon++ # you can never have enough 11:20
colomon lizmat++
11:24 pecastro_ is now known as pecastro
dalek kudo/nom: 6baad97 | (Elizabeth Mattijsen)++ | src/core/control.pm:
Simplify sleep()
11:28
11:36 xinming left 11:38 xinming joined
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.
08:37Z <nwc10> jnthn: coffee bootstrap reminder :-)
FROGGS hi jnthn
jnthn .tell sorear sounds fajn
yoleaux jnthn: I'll pass your message to sorear.
jnthn ooh, coffee...
mls Hi jnthn!
lizmat r: { our sub a { say "oi" } }; OUR::a # silent?? 11:39
camelia rakudo 7bfa6d: ( no output )
FROGGS already got the m:5th/coffee/
lizmat r: { our sub a { say "oi" } }; OUR::a() # huh?
camelia rakudo 7bfa6d: OUTPUT«No such method 'Any' for invocant of type 'Parcel'␤ in block at /tmp/XqSnFz61lC:1␤␤»
colomon jnthn! \o/
lizmat jnthn!
colomon > 1e100.Num.perl 11:41
1.0E100e0
whoops
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... :/
jnthn goes to deal with some $dayjob bits...
colomon: probably smart_stringify or so
colomon: in Ops.java in nqp repo 11:43
colomon in SixModelObject? 11:44
jnthn oh, maybe it's actually coerce_ns or so 11:46
No, in Ops for sure
colomon coerce_n2s ?
jnthn coerce_n2s
yeh
I guess that's the one
colomon jnthn++ 11:47
colomon is being forced to learn some Java.... 11:49
jnthn It's like C# but will all the awesome removed. 11:50
colomon which is sort of like p6 with all the mildly good or better removed.... 11:52
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
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:54
jnthn I assume Rakudo on Parrot gets the right answer? 11:55
colomon jnthn: yes
hmmm... I think I just fixed coerce_n2s, but it didn't make any difference to the code. :\ 11:56
nr: say 1e100
camelia niecza v24-86-g39ab531: OUTPUT«1.0000000000000002E+100␤»
..rakudo 7bfa6d: OUTPUT«1e+100␤»
colomon huh. maybe my expectations are wrong? 11:57
11:57 kaleem left 11:58 kaleem joined
colomon no, I'm pretty sure we're not calling coerce_n2s there 12:03
12:11 Stygia left
dalek ecs: 94fb8bc | (Elizabeth Mattijsen)++ | S29-functions.pod:
Remove extra period.
12:12
colomon has a work-around which gets S02-types/num.t working, but feels it is kind of hacky 12:13
12:14 Stygia joined 12:15 fridim_ joined 12:22 lestrrat left 12:23 Stygia left, lestrrat joined 12:25 sqirrel joined 12:30 btyler joined 12:34 skids left
dalek kudo/nom: 3952e96 | (Elizabeth Mattijsen)++ | src/core/control.pm:
Implement interval($seconds), as per S29:265
12:38
[Coke] drinks some office sludge. 12:39
colomon wonders about jdb 12:42
lizmat what about jdb? 12:44
colomon how to use it to debug nqp-jvm
dalek rl6-roast-data: a7a27b4 | sorear++ | bin/rakudo.jvm.sh:
Use eval server in rakudo.jvm.sh

Known issues: requires bash, and does not support time or memory limits.
  (Note that ulimit -t would be useless as that only handles CPU time, not
  wall time.)
rl6-roast-data: 339f879 | (Will Coleda)++ | bin/rakudo.jvm.sh:
Merge pull request #4 from sorear/master

Minimal eval server patch from sorear++
jnthn looks forward to today's run ;) 12:45
FROGGS looks forward to his current run
[Coke] hates running.
colomon looks forward to understanding wtf is going on with Num.Str
[Coke] returns from the gym this morning. :P
FROGGS [Coke]: nonzero? 12:46
FROGGS .oO( [Coke zero]? )
12:47 Stygia joined
[Coke] CokeZero++ 12:47
FROGGS bah 12:48
I dont like it
[Coke] I need to stop drinking it, but as far as diet sodas go, it's the best (aside from homemade)
sorear++ #again
FROGGS I only drink coffee and water
jnthn drinks many things, but very rarely does he do soft drinks 12:49
Well, sodas 12:50
12:50 Stygia left
colomon water, water, water, hard cider, whisky, wine 12:50
12:57 konundra joined, btyler left, atroxaper joined
[Coke] sorear++ much faster. 12:58
now it might actually be slower to rebuild from scratch each day!
colomon thinks he may have been trying to solve the wrong problem
13:01 atroxaper left
[Coke] colomon: ... that is what the last 10 years have felt like to me here! 13:01
13:04 fridim_ left, Stygia joined 13:05 cognominal joined
dalek kudo/nom: 248ca07 | (Solomon Foster)++ | src/core/Num.pm:
Num.perl needs to look for 'e' and 'E'.
13:05
13:05 Chillance joined
[Coke] muuuch faster. and now I already want it faster. :) 13:08
13:08 Stygia left 13:09 Stygia joined 13:11 cognominal__ joined 13:13 Stygia left 13:14 cognominal left 13:19 fhelmberger left 13:21 lelf` joined 13:22 lelf left
colomon Above patch should get us at least 50 more passing tests in JVM. :) (But I'm just now spectesting it on parrot.) 13:24
13:25 benabik left
[Coke] colomon: you have until... noonish eastern, I think. 13:26
(those will be moving to 8ish eastern at some point)
13:26 benabik joined 13:29 Stygia joined
[Coke] r: print 21994 / 25969 13:32
camelia rakudo 248ca0: OUTPUT«0.846933»
13:34 btyler joined
[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:42
also - rakudo still failing spec tests as of yesterday! 13:43
lizmat I think that was timotimo's doing 13:44
Method 'evaluate_unquotes' not found for invocant of class 'String'
at t/spec/S06-macros/quasi-blocks.t:96
colomon Is that the rat stuff?
[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
jnthn 84.7%...that means Rakudo JVM has overtaken Niecza as second-most-spectest-passing impl?
colomon yes
lizmat wow! 13:46
jnthn Whee!
Though, given a load of Rakudo's failures are in IO...niecza++ is probably still more useful at the moment :)
colomon crazy to think that at YAPC::NA, it basically didn't work at all
my num patch spectested fine on parrakudo 13:47
:)
jnthn wonders if that brings us below 4000 to go :)
13:50 raiph joined, kaleem left
[Coke] colomon: how many more passing? 14:08
14:08 nyuszika7h is now known as NYUSZIKA7H, NYUSZIKA7H is now known as nyuszika7h
FROGGS meh, I'm still about 39500 to go /o\ 14:09
timotimo what did i miss in the last 2 hours?
FROGGS me I suppose 14:10
14:10 benabik left
timotimo oh 14:10
lizmat: what was my doing? the macro failures? 14:11
lizmat I thought so?
timotimo how did i manage to do that? 14:12
colomon [Coke]: about 54, I think 14:13
lizmat is confused now
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 :)
timotimo the last commit i had was soft-failing div by zero
that was like a week ago
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
FROGGS I guess the macro fails are due to some nqp changes...
I dont see any related rakudo commit
I can bisect this this night 14:16
lizmat aha, then timotimo: my apologies
tadzik timotimo: I don't think I have it
timotimo no problem :)
apparently having a bit of trouble with the network right now 14:17
gist.github.com/timo/543f7b8b791cbd617b71 - there we go. my first attempt at making cells in tables parsed with formattingcodes
14:18 PacoAir joined
dalek ast: 78d15be | (Elizabeth Mattijsen)++ | S29-context/sleep.t:
Added test for "interval()"
14:19
14:20 Stygia left
lizmat I found the pb first on irclog.perlgeek.de/perl6/2013-06-26#i_7254019 14:23
so it must have been a commit not too long before that
colomon labster++ # just got around to reading blog post 14:24
14:25 skids joined 14:26 SatFS joined
lizmat interesting read for some of us around here: users.ece.cmu.edu/~arebert/papers/m...and-12.pdf 14:26
14:27 FROGGS left 14:29 xilo joined, segomos left, segomos joined 14:33 daniel-s_ joined
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
in fact, there is no src/QAST/Str.nqp
jnthn: thoughts?
14:33 wtw_ joined
jnthn ? 14:34
there's no QAST::Str
What makes you think there is?
s/is/might be/
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.
lizmat String then
jnthn As in, a normal, boring string.
When it should be called on a QAST node
lizmat this seems to trigger it: 14:36
macro four () { quasi { 2+2 } }
is(four, 4, "macro returning quasi");
14:36 wtw left
lizmat not your very strange macro, that 14:36
jnthn Oddness.
jnthn suggests trying to bisect it, if there's not some obvious candidate commits 14:37
lizmat my guess would be between 8cea464c1006dfcb and 152ab7af42d5b880ea3f7 inclusive in nqp 14:38
all done by sorear
within 20 minutes of each other
14:40 Stygia joined
lizmat making a nqp/rakudo from before these patches 14:40
timotimo has some foods 14:43
14:43 xilo_ left
colomon is working on keybag.t 14:44
14:45 Stygia left
daniel-s_ Hi. How much of the perl6 language is covered by the test suite on github? 14:46
14:46 xilo_ joined
timotimo a part as big as we can make it 14:46
some parts are a bit flaky, especially those that are not yet implemented in any of our implementations 14:47
14:55 domidumont left
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
it's basically the same as 'file' => 'test.xml'
SatFS: perlcabal.org/syn/S02.html#Adverbial_Pair_forms
SatFS Thanks. :) 14:59
lizmat hmmm… is there a way to find out which version of nqp a given version of "perl6" is using?
SatFS Well, then the readme seems odd. from-xml() expects a string.
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?
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
camelia rakudo 248ca0: OUTPUT«0␤»
timotimo r: say $*VM.keys
camelia rakudo 248ca0: OUTPUT«name config␤»
hoelzro neat
timotimo r: say $*VM<config>.keys
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…
hoelzro is %*VM documented?
timotimo with $, not %
hoelzro ooooh 15:02
lizmat hoelzro: S02:3107: $*VM Which VM I'm running under 15:03
hoelzro sweet
lizmat: thanks!
15:05 arlinius joined 15:06 carlitos_30 joined
lizmat however, $*VM doesn't have anything about NQP in it 15:06
colomon :( 15:07
jnthn Well, the NQP being used will be in the makefile
So take that path and --version on it
colomon jnthn: that seems ... very roundabout 15:08
15:08 carlitos_30 left
jnthn colomon: Not saying there shouldn't be a better way, just that it's a way. 15:08
colomon this line: if $choice ~~ $i ..^ +$im.key { keeps on giving me 15:20
===SORRY!===
java.lang.ArrayIndexOutOfBoundsException: 0
I'm having a hard time seeing how...
15:20 crab2313 joined
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.
jnthn --ll-exception
colomon wtf? 15:22
oh, no fudging
gist.github.com/colomon/5885498 15:23
looks very internals-y
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
errr... line numbers don't mean anything to me, either. :(
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
could that get an error like that?
jnthn It's *possible* a lexical environment screw-up could cause it 15:26
But it sounds weird.
15:27 sqirrel left
colomon It sounds weird no matter what. ;) 15:28
15:29 kaleem joined, bluescreen10 joined
colomon jnthn: gist.github.com/colomon/5885572 source code 15:31
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
camelia rakudo 248ca0: OUTPUT«No such method 'have-some-more' for invocant of type 'Parcel'␤ in block at /tmp/AV1T71RTTo:1␤␤»
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');
camelia rakudo 248ca0: OUTPUT«stuff␤»
daxim thanks for spotting that
lizmat gives up on bisecting the quasi problem
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?
daxim when's the next stable rakudo release?
colomon jnthn: I can try!
mls jnthn: about getting rid of prior invokation 15:35
lizmat daxim: do you mean rakudo * or rakudo?
mls gist.github.com/mlschroe/5867111
daxim just rakudo
[Coke] ENOSTABLE.
there are just releases.
colomon jnthn: looks like it might be the range?
lizmat didn't masak already do a 2013.06 named Poznan? 15:36
[Coke] yes.
colomon jnthn: belay that, forgot to recompile
daxim I missed that one
[Coke] 2013-07-18 Rakudo #66 tadzik
there's the next one
daxim rakudo.org front-page implies -05 is the latest 15:37
jnthn That's the compiler release, not the Star one...
daxim ah, yes, you're right
[Coke] why do all releases except the last one have () around names?
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 kudo/nom: 597d2c8 | coke++ | docs/release_guide.pod:
claim a release several months out
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?
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
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?
lizmat aka "deleting" an array element?
colomon jnthn: just the do
lizmat is considering implementing []:delete and []:exists
colomon gist.github.com/colomon/5885649 # golfed for your terror
mls jnthn: the outer is supposed to be set once when a sub/method/regexp is defined and never again 15:42
and it is not set for "immediate" blocks
jnthn lizmat: Doesn't delete bind an nqp::null in there?
mls: OK, will have to look more carefully
lizmat possibly, but that still leaves exist() to return true on that
jnthn lizmat: If so, nqp::isnull(nqp::atpos($vm_array, $idx)) 15:43
lizmat jnthn++ will try that
15:43 cognominal__ left
jnthn colomon: Wow, that's it? :) 15:43
colomon yup
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.
jnthn colomon: Thanks
colomon jnthn: you're welcome
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.
in theory we should be able to replace the autoclose with throwing an exception 15:45
15:45 cognominal joined
mls (because it's most likely an error if it's done) 15:45
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
mls Oh yes, I also had some fun with the java exceptions. Debugging was a bit easier with parrot. 15:47
lizmat jnthn: what is $vm_array in this context: nqp::isnull(nqp::atpos($vm_array, $idx)) ? 15:49
mls Plus, running javap only shows that qb_ functions, but not the uniqueIds... 15:50
jnthn lizmat: The underlying storage 15:51
lizmat jnthn: $!items ?
jnthn $!items maybe
15:51 bbkr left
jnthn May need to make enough of the array already got reified 15:51
lizmat ack 15:52
oops, sorry petdance
jnthn :P 15:53
hoelzro I wonder if petdance has a filter for if that word occurs by itself on a line? 15:55
[Coke] just as a word, IIRC. 15:56
15:57 Guest1337 left, kaleem left
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:01
kind of feel like a nap now. 16:03
[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.
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)
jnthn flussence: By doing the "make install" target... ;)
flussence: I'm not sure there's a good way to make it work just yet.
flussence but that just gives me "make: Nothing to be done for `install'"... 16:09
oh.
jnthn flussence: No no, make install is NYI
flussence yeah, I'm slow today
16:11 SatFS_ joined, daxim left 16:13 SatFS left 16:17 SatFS_ left
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␤»
lizmat r: my @a; say @a.exists(0) # jnthn: should this give True or False according to you?
camelia rakudo 597d2c: OUTPUT«False␤»
jnthn I think those are right. 16:21
dalek ecs: 03ce297 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Added lemma's for brb and afk
lizmat jnthn: but checking isnull returns false on the Any
so that would make the first one return False if that were the base of @a.exists 16:22
and that is at least not according to the spectest
dalek kudo/nom: 7e443cd | (Solomon Foster)++ | src/core/Bag.pm:
Rewrite KeyBag.roll a bit.

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.
lizmat brb 16:24
16:25 vk joined
colomon crap. first test failed under JVM. :\ 16:27
jnthn lizmat: Huh? Any is not null... 16:28
16:30 spider-mario left 16:32 lelf`` joined 16:34 SamuraiJack left 16:35 spider-mario joined 16:36 lelf` left, FROGGS left, lelf``` joined
dalek kudo/nom: 78374b7 | (Solomon Foster)++ | src/core/Bag.pm:
Try removing eager do from KeyBag.roll.
16:37
16:37 bluescreen10 left 16:38 lelf`` left
pmichaud r: my @a = Any; say @a.elems; say @a.exists(0); 16:41
camelia rakudo 597d2c: OUTPUT«1␤True␤»
pmichaud correct.
lizmat r: my @a=Any; say @a[0,1] # so how to distinguish then between unassigned and assigned Any?
camelia rakudo 597d2c: OUTPUT«(Any) (Any)␤»
pmichaud r: my @a; say @a.elems; say @a.exists(0);
camelia rakudo 597d2c: OUTPUT«0␤False␤»
pmichaud also correct.
lizmat pmichaud!
so, how can I make an element return false on exists *after* it has been assigned once 16:42
pmichaud ummmm... delete?
r: my @a = 0..4; say @a[3]; @a.delete(3); say @a[3]; say @a.exists(3); # might be a bug here, though
camelia rakudo 597d2c: OUTPUT«3␤(Any)␤True␤»
lizmat @a.delete is NYI, that's want I want to do! 16:43
16:43 xenoterracide joined
pmichaud oh, delete is the way to do that, then. 16:43
you need to bind @a[3] to null.
(that's what .delete should do)
lizmat then it still returns True on exists
jnthn o/ pmichaud
pmichaud then that's a bug with .exists, I bet.
lizmat hehe 16:44
pmichaud I know that last time I looked, .delete was way wrong.
lizmat ok, I've a feeling I'm going in circles now
yes, and that's what I want to correct
but it feels to me .delete is wrong
as it simply undefines the value, which is the equvalent of putting my $undefined in it 16:45
pmichaud yes, that's wrong.
and I suspect "sub undefine" is wrong also.
iirc, undefine should probably do the equivalent of assigning Nil to a container 16:46
lizmat r: my %h; %h=Nil
camelia rakudo 597d2c: ( no output )
lizmat hmmm…last time I checked, that didn't work
pmichaud well, I really meant "scalar container"
lizmat ok, I'm about to go out to dinner
pmichaud we know there are bugs with containers for @a and %h
(long standing bugs) 16:47
16:47 raiph left
lizmat trying to fix those, is what I'm trying to do :) 16:47
pmichaud they're deep bugs.
lizmat while waiting for someone to look at S11 again ;-)
pmichaud as in, "my %h" does the wrong thing entirely.
(which is why they've not been fixed)
r: my %h; say %h.defined; # wrong 16:48
camelia rakudo 597d2c: OUTPUT«True␤»
lizmat does this have to do with the method -> sub migration?
pmichaud no
it has to do with Rakudo assuming that there's no "container" element involved in the declaration of hashes and arrays
(in the sense of a scalar container element) 16:49
lizmat you;re saying there is one/ should be one?
pmichaud yes.
a declaration like "my %h" should create a container for %h and bind it to the Hash type object 16:50
%h is thus undefined, and autovivifies on the first bind/assignment/whatever.
what happens now is that Rakudo creates a Hash object and binds %h directly to that
which we've collectively decided is wrong
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 ?
camelia rakudo 597d2c: OUTPUT«True␤»
pmichaud because a ton of List handling code makes the same assumption
Hash.new creates a Hash object. 16:52
so it's defined.
as opposed to:
r: my $h = Hash; say $h.defined
camelia rakudo 597d2c: OUTPUT«False␤»
lizmat r: my $h=Hash; $h.=new 16:53
camelia rakudo 597d2c: ( no output )
16:53 birdwindupbird left
lizmat r: my $h=Hash; $h.=new; say $h.perl 16:53
camelia rakudo 597d2c: OUTPUT«{}␤»
pmichaud figuring out flattening behavior in Perl 6 has been one of the great adventures of the language design.
more concretely, I think:
rn: my %h; say %h.defined
camelia rakudo 597d2c, niecza v24-86-g39ab531: OUTPUT«True␤»
pmichaud oh, hmm.
I thought niecza++ got that one right already.
r: my %h; %h = (Nil, Nil); say %h.elems; 16:54
camelia rakudo 597d2c: OUTPUT«0␤»
pmichaud r: say (Nil).elems
camelia rakudo 597d2c: OUTPUT«0␤»
pmichaud the reason "my %h; %h = Nil" "works" is because Nil is still being treated as (), I suspect. 16:55
r: say (Nil, Nil).elems
camelia rakudo 597d2c: OUTPUT«0␤»
pmichaud yup.
that's another spec change that Rakudo has yet to catch up with. 16:56
n: say (Nil, Nil).elems
camelia niecza v24-86-g39ab531: OUTPUT«2␤»
pmichaud niecza++ gets it right
(Rakudo's behavior was the correct one as of last year.)
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....
pmichaud colomon: checking
colomon: iiuc, Nil no longer flattens to empty lists
16:58 abnorman joined
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
colomon: S02:2265 seems to say that Nil doesn't disappear in list context 16:59
thus I'd think that (Nil, Nil).elems should be 2
or, more to the point
rn: say (1, Nil, 2, Nil, 3).elems 17:00
camelia rakudo 597d2c: OUTPUT«3␤»
..niecza v24-86-g39ab531: OUTPUT«5␤»
pmichaud niecza is right according to my reading of S02, while rakudo has the old behavior.
colomon pmichaud: for sure there are a bunch of spectests which test for Rakudo's behavior, not Niecza's.
like thus:
pmichaud colomon: sure, deep changes to the spec hurt. :-)
colomon rn: say say (1, Nil, 2, Nil, 3).join(',')
camelia rakudo 597d2c, niecza v24-86-g39ab531: OUTPUT«1,2,3␤True␤»
colomon errr... :\ 17:01
rn: say (1..10).map({ $_ * $_ if $_.is-prime }).join(',')
camelia niecza v24-86-g39ab531: OUTPUT«,4,9,,25,,49,,,␤»
..rakudo 597d2c: OUTPUT«4,9,25,49␤»
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␤»
..rakudo 597d2c: OUTPUT«(4, 9, 25, 49).list␤»
colomon okay, now I'm completely confused
pmichaud colomon: sure, deep changes to the spec hurt
17:02 domidumont joined, stevan_ left
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
17:03 stevan_ joined
colomon that may have been a very shallow understanding 17:03
pmichaud they should be Nil instead of Empty, yes.
I don't know that they "go away" anymore
it depends on the oh, wait 17:04
no.
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. ;)
pmichaud Rakudo has that one right.
17:04 stevan_ left
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
it's () 17:05
and therefore it disappears
r: sub xyz() { }; say xyz().perl
camelia rakudo 597d2c: OUTPUT«Nil␤»
pmichaud that's wrong.
technically, that's the old spec.
r: sub xyz() { if 0 { "abc" }; }; say xyz().perl 17:06
camelia rakudo 597d2c: OUTPUT«Nil␤»
pmichaud that should be ()
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 .
pmichaud I'm just reading the spec.
S04:212 17:07
moritz back
pmichaud " If there are no statements
in the block at all, the result is also C<()>.
"
That change was introduced in github.com/perl6/specs/commit/4895...855a4afd72 17:08
and it's a Deep Change that requires a lot of internal rework in Rakudo.
which affects a lot of the list-handling code.
colomon oh, wait. maybe my Niecza goal was to make Empty (aka () ) disappear?
17:09 crab2313 left
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
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:12
pmichaud timotimo: I can't speak in great detail about how multidimensional arrays work. A lot of S09 is uncharted area. 17:13
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?
indeed, that is a thing that i thought of
especially: should the parser collate @a[*][1,2] to a call with a LoL of [*; 1,2]?
pmichaud i.e., there has to be parser support to recognize @a[*][1,2] and convert it to the equivalent of @a[*;1,2]
timotimo ah, perfect! 17:15
that clears up a bit of stuff for me :)
pmichaud that's what S09 says, yes.
I'd say you can play with stuff here, but please please please remember that LoL is itself very slushy 17:16
so it might all end up being thrown completely out when I bring the rest of the lists implementation up to spec
timotimo mhm 17:17
pmichaud (or when anyone does it, if it ends up being not me)
as a general note -- right now people are trying to add/update features on top of some unstable fundamentals. That worries me.
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
(it also means that upgrading the fundamentals becomes harder, because there's a larger burden of stuff depending on them) 17:19
timotimo oh
should i rather pause my work on lol-slices for the time being? 17:20
i can totally do that.
pmichaud I'm reluctant to say "pause work"
very reluctant
17:20 araujo left
timotimo hehe. i could totally find another spot to throw my brainmatter at, as long as it seems rather easy 17:20
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:21
(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:22
(or if they did, they didn't investigate deeply enough :) 17:23
17:23 cognominal left
pmichaud sadly, I must depart again, having now mixed everyone up for a while. 17:23
bbl
17:23 cognominal joined
timotimo hehe :) 17:24
tadzik timotimo: well, all tests pass on your branch :)
(sorry for the late response) 17:25
timotimo yeah, i know that. there are not nearly enough pod tests
tadzik I only get some sink context warnings
so, what are we at there? 17:26
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.
it also refuses to parse codes that don't have the "i am an allowed formattingcode" bit set
masak good evening, #perl6.
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
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:28
colomon o/ 17:29
tadzik interesting indeed 17:31
for balancing, I think at some point we need to use nibbler
which would be far easier now, as it's already ported :)
segomos how can i debug why my module isn't showing up in the perl6 module listing? 17:32
tadzik ask moritz :) 17:33
or run the script locally 17:34
17:34 stevan_ joined
[Coke] colomon: it's almost a year at this point. 17:38
dalek ast: 3a95af7 | tadzik++ | S26-documentation/06-lists.t:
Add missing is() calls
17:39
tadzik it's weird they weren
't there
dalek rl6-roast-data: 8796b8d | coke++ | / (5 files):
today (automated commit)
17:42
[Coke] summary: # 06/28/2013 78d15be rakudo++ (26020); niecza (81.91%); pugs (36.51%); rakudo.jvm (84.93%)
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.
masak wow. 17:45
17:49 konundra left, konundra joined 17:50 kaare_ joined
colomon substantially more. 17:53
moritz segomos: the most common reason is a malformed JSON META.info file
colomon bad news is rakudo.jvm's failures are more ... urgent? crucial? ... than niecza's 17:54
tadzik this one is valid
flussence not being able to use it outside of running tests is kind of a bug :) 17:55
(the only reason I was trying to is to see if it'd run *other* tests...)
jnthn colomon: yes, the raw numbers aren't that telling 17:56
[Coke] looks like all the big "aborted" errors are gone. 18:00
... or I'm an idiot. 18:01
colomon jnthn, masak: any notion where the gist.github.com/colomon/5885649 and gist.github.com/colomon/5882157 should go in roast?
[Coke] yes, I'm an idiot. ok. here's an updated gist: gist.github.com/coke/5879701 18:02
if anyone is looking for big bangs for their jvm hacking tuits.
colomon [Coke]++ # great list!
colomon had essentially been doing the same thing without, you know, making a list or anything helpful like that.
[Coke] shell tools ftw. 18:03
colomon we seemed to be losing a lot of temporal tests to %h is copy NYI
===SORRY!=== 18:04
java.lang.RuntimeException: is copy hash param NYI
[Coke]: the keybag.t one (54 tests) is already fixed. though one of the tests is still failing.
jnthn colomon: ooh, I can do that one tonight 18:05
colomon \o/
Error in socket connection:org.perl6.nqp.runtime.UnwindException
at org.perl6.nqp.runtime.ThreadContext.<init>(ThreadContext.java:105)
at org.perl6.nqp.runtime.GlobalContext.<init>(GlobalContext.java:207)
at org.perl6.nqp.tools.EvalServer$ServiceThread.service(EvalServer.java:140)
at org.perl6.nqp.tools.EvalServer$ServiceThread.run(EvalServer.java:107
jnthn eek 18:06
colomon that's S04-statements/given.t. sorear++'s issue?
segomos moritz: thank you - it seems to be showing up in panda but not on the website^
jnthn mebbe...does it pass without the eval seerver?
No, it doesn't
So it's a general issue 18:07
colomon it's a when in a when
bet it's related to the $_ issue from last night?
jnthn My gut feeling is no
It's possible but it looks like a fairly different failure mode.
colomon stubbornly holds that theory 18:10
===SORRY!===
java.lang.IllegalArgumentException: sprintf only accepts ints, nums, and strs, not class __P6opaque__62
(tried to print a Match)
jnthn: it's failing coming back out of the when statements 18:12
so you're right and I'm wrong on this one
18:13 tomyan joined
colomon gist.github.com/colomon/5886791 # golfed 18:14
18:17 abnorman left
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++
colomon has been ignoring his $work all day, escaping into the sweet temptation of spectest fixing.... 18:25
18:27 sciurius left 18:30 abnorman joined 18:31 araujo joined, araujo left, araujo joined
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:33
18:48 FROGGS joined, lelf``` is now known as lelf
dalek : 317004a | (Tobias Leich)++ | lib/Perl5/warnings.pm:
add NONFATAL
18:49
: c323694 | (Tobias Leich)++ | / (4 files):
add int() and reorganise indirect object syntax
18:51 domidumont left, abnorman left
colomon asks again: "any notion where the gist.github.com/colomon/5885649 and 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:08
flussence when in doubt, dump everything in t/integration and let pickier people organise it 19:11
colomon flussence++ # I was leaning towards t/integration, very glad to have a second opinion in favor of it 19:12
flussence there's a random pugsbug in there already, so it seems like a safe assumption 19:13
19:21 rafl left 19:22 abnorman joined 19:23 rafl joined
FROGGS lizmat++ # using pod for S11, that is way better than a cryptic unit or module statement 19:42
19:44 vk left, tomyan left 19:45 kaare_ left, vk joined
TimToady & the Mrs are sitting in Dulles 19:51
awwaiid Enjoying our rain, TimToady? 19:52
awwaiid sitting in downtown DC
19:53 FROGGS[mobile] joined
TimToady at the moment not raining here, but there's enough weather to delay our incoming plane some, dunno how much 19:53
19:53 FROGGS[mobile] left
TimToady wonders if he has enough battery to backlog... 19:54
colomon TimToady! \o/ 19:57
TimToady: let me summarize: rakudo.jvm (84.93%) 19:58
dalek : c6923f0 | (Tobias Leich)++ | / (2 files):
added weird test sub `within`
TimToady I presume passing, since I saw a 90+ % running earlier
FROGGS TimToady: and pod items instead of the unit keyword # lizmat++
TimToady still wondering about that 19:59
TimToady has a prejudice against meaningful comments, but has been known to overcome that prejudice occasionally
19:59 mathw left 20:00 mathw joined
FROGGS well, it is way more readable 20:00
colomon TimToady: passing, yes
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
colomon It *is* easier to make implement when no one is changing the spec. ;)
s/make//
jnthn ;-) 20:02
Until you reach a bit of the spec that's impossible to implement until tweaked :-) 20:03
20:03 lue joined
pmichaud TimToady: wb to the states 20:03
TimToady well, they keep saying welcome to DC, which ain't one, but we're really in VA 20:05
20:05 vk left
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:06
TimToady well, sometimes I have visions, and sometimes I'm just seein' things 20:07
FROGGS r: say (1188 * 100 / 40706) ~ '%' # V5 that is 20:08
camelia rakudo 78374b: OUTPUT«2.918489%␤»
FROGGS err, v5 is the correct term
20:09 berekuk left, bluescreen10 joined 20:10 berekuk joined 20:20 domidumont joined 20:21 Rotwang joined
sorear good * #perl6 20:28
yoleaux 11:38Z <jnthn> sorear: sounds fajn
FROGGS hi sorear 20:29
sorear colomon: you can get jave stack straces by putting NQP_VERBOSE_EXCEPTIONS=1 in the environment 20:32
colomon sorear++
o/
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
jnthn sorear++ 20:34
sorear jnthn: it's basically the same as the packages.t fail from the hackathon, but in Rakudo
masak hi sorear
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
hi masak
jnthn sorear: oops.
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
20:37 mathw left, mathw joined 20:41 sivoais left 20:44 autumn left 20:45 autumn joined 20:46 donaldh joined 20:48 stevan_ left 20:54 konundra left 20:56 sivoais joined, berekuk left 20:58 donaldh_ joined 20:59 donaldh left, donaldh_ is now known as donaldh 21:02 sivoais_ joined, skids left 21:04 domidumont left 21:07 sivoais_ left 21:08 berekuk joined
sorear "total", 21497, 4052, 531, 1771, 27346, 25863 21:11
real 0m6.524s
21:13 stevan_ joined
dalek ast: 39fc591 | sorear++ | test_summary:
Extend test_summary to support an --archive option accepting TAP::Harness::Archive output in lieu of running tests
21:13
sorear [Coke]: ever wanted to run a test summary on multiple cores? now you can
21:13 stevan_ left 21:14 stevan_ joined 21:24 vk joined 21:30 berekuk left 21:42 donaldh left 21:43 dmol joined 21:48 spider-mario left 21:49 Rotwang left 21:58 vk left 21:59 cognominal left, xenoterracide left 22:00 bluescreen10 left 22:02 adam7504 joined
sorear colomon: why did roll have to be modified for jvm? 22:03
colomon sorear: this bug gist.github.com/colomon/5885649 22:04
22:04 adam7504 left
colomon that code gets this error: 22:05
===SORRY!===
java.lang.ArrayIndexOutOfBoundsException: 7
it works without the do
the error happens at the "say $i"
sorear oh, blast... 22:07
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
sorear i think blasts are mishandling lexicals
jnthn oh blorst! 22:10
colomon oh, forgot that was a thing, thought you were just making a general purpose exclamation of dismay
sorear I was trying to pun 22:11
jnthn It worked :) 22:12
"blorst" almost sounds like a posh English southerner saying "blast" anyway :P 22:13
<-- common northerner :)
sorear jnthn: have you tried to use the eval server on windows yet? 22:14
jnthn sorear: No, but my build of the latest stuff just finished :D 22:15
sorear :D :D
jnthn So, how do I test it? :)
nmake test didn't work out :(
sorear make test?
jnthn t\00-parrot\01-literals.t .......... Dubious, test returned 2 (wstat 512, 0x200)
sorear ah... :/
jnthn for all the things
sorear perl t/harness --jvm --verbosity=1 t/01-parrot ? 22:16
jnthn aww, --verbose doesn't tell me any more
oh...
bah!
Can't locate File/Slurp.pm in @INC (@INC contains: C:/Perl64/site/lib C:/Perl64/
lib .) at ./eval-client.pl line 6.
:)
OK, *that* one I can do something about.
sorear jnthn: do you expect you'll be able to do anything interesting with the two lexical bugs today? 22:18
jnthn sorear: Not sure. Just writing a couple of abstracts for YAPC::EU at the moment. 22:19
I can try and look after that.
But if you're looking at it already, don't let me stop you.
sorear Nah
I, uh, really ought to focus more on $dayjob than I have been this week... 22:20
jnthn ok :)
sorear: yaaaays! 22:21
sorear++
It works now I installed File::Slurp
sorear \o/ \o/
jnthn lemme try spectest :) 22:22
sorear: Works. What parallelism level does it use? Is there a way to tweak it? 22:23
sorear jnthn: controlled by TEST_JOBS 22:24
if you set TEST_JOBS=4, it runs four threads in the same VM :)
22:25 pecastro_ joined
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:25
dalek href="https://modules.perl6.org:">modules.perl6.org: 606b186 | (David Warring)++ | web/lib/P6Project/Stats.pm:
fixed typo in P6Project::Stats->new()
22:26
22:26 pecastro left
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␤␤»
sorear which one is David Warring? 22:29
FROGGS he is not here as it seems 22:31
dalek : 4b75a85 | (Tobias Leich)++ | t/test.pl:
added which_perl
22:33
: f055792 | (Tobias Leich)++ | / (2 files):
added %SIG, invoke $SIG{__WARN__} when defined
snoopy um that's me 22:34
FROGGS ahh
hi snoopy
22:34 BenGoldberg joined
snoopy hi FROGGS 22:34
sorear hi snoopy! 22:35
timotimo what did he do? o_O
oh, i saw it now
snoopy jhi sorear etc all
22:36 berekuk joined
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
The css-grammar looked like a lot of work! :)
snoopy++
snoopy i wouldn't call it work
sorear jnthn: aweshome 22:38
22:38 berekuk left
snoopy i didn't need to bother anyone much, the grammar stuff is all pretty solid 22:39
the w3c specs are another story 22:42
FROGGS snoopy: and you are using your grammar as a validator? 22:43
snoopy yep 22:45
22:45 cognominal joined
snoopy the w3c specs are a bit vague & inconsistent in places 22:46
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
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:49
snoopy i think that' 22:50
.. there' crap partly because they don't (until now) have the prototyping tools to test the specs as they're developed 22:51
still trying to use lex/yacc from the 80's
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
FROGGS jnthn: do you have a clue why .decode fails cant be catched? 22:53
snoopy I think that by the time, they've reached recommend status 80-90% accurate 22:54
jnthn FROGGS: They can't?
snoopy drafts are way less accurate
FROGGS r: my $b = Buf.new(-1); my $r; try { $r = $b.decode; CATCH { default { 1 } } }; say $b # what I am doing wrong?
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␤␤»
FROGGS jnthn: is the example valied? 22:56
-e
jnthn r: my $b = Buf.new(-1);
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␤␤»
FROGGS ohh
jnthn It's not in a try when it fails
"in method new" is there in the trace :)
FROGGS well, that explains it :o)
yeah...
thanks!
timotimo r: my $fblock = "FULL BLOCK"; say eval(q{\c[} ~ $fblock ~ q{]}); # how do i do this better?
camelia rakudo 78374b: OUTPUT«===SORRY!===␤Undeclared names:␤ BLOCK used at line 1␤ FULL used at line 1␤Undeclared routine:␤ c used at line 1␤␤»
timotimo oh, right 22:57
r: my $fblock = "FULL BLOCK"; say eval(q{"\c[} ~ $fblock ~ q{]"}); # how do i do this better?
camelia rakudo 78374b: OUTPUT«█␤»
lue r: my $b = Buf.new(-1); my $r; $r = $b.decode; CATCH { default { 1 } } # this should work though, no?
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␤␤»
jnthn timotimo: um...not sure.
22:57 benabik left
lizmat back from dinner but too tired / inebriated to backlog sensibly 22:58
therefore sleep&
jnthn 'night, lizmat
timotimo "FULL BLOCK".unilookup, obviously 22:59
snoopy w3c have the css validator github.com/w3c/css-validator 23:00
FROGGS r: my $fblock = "FULL BLOCK"; say eval(qq{"\\c[$fblock]"});
camelia rakudo 78374b: OUTPUT«█␤»
timotimo FROGGS: not sufficiently better to shut me up :) 23:01
dalek ast: 9d317d0 | (Elizabeth Mattijsen)++ | S11-modules/require.t:
Another case where we want to unshift to @*INC instead of push
FROGGS meh
:P
snoopy that's written in Java. Parsing appears to be procedural and it's mostly stuck at css 2.1
timotimo although it's still shorter than import unicodedata; unicodedata.lookup("FULL BLOCK") which python has
lizmat really gone now :-)
sorear r: say chr(nqp::codepointfromname("FULL BLOCK")) 23:02
camelia rakudo 78374b: OUTPUT«█␤»
jnthn sorear: heh, I was pondering that one but it's Rakudo specific :)
lue r: my $fblock = "FULL BLOCK"; say qq{\c[$fblock]}; 23:03
camelia rakudo 78374b: OUTPUT«===SORRY!===␤Unrecognized \\c character␤at /tmp/yBThIHc56c:1␤------> my $fblock = "FULL BLOCK"; say qq{\c[⏏$fblock]};␤ expecting any of:␤ argument list␤ prefix or term␤ prefix or meta-prefix␤»…
sorear n: use Niecza::UCD; say get_codepoint("FULL BLOCK")
camelia niecza v24-86-g39ab531: OUTPUT«===SORRY!===␤␤Q:CgOp not allowed in safe mode at /home/p6eval/niecza/lib/Niecza/UCD.pm6 line 4:␤------> { (ucd_get_ranges {$table} {$matcher}) ⏏}␤␤Q:CgOp not allowed in safe mode at /home/p6eval/niecza/lib/Niecza/UCD.p…
snoopy so I they don't seem to have any tools for writing declarative grammars or validating as they go 23:04
hoping that Perl6 grammars could help here
23:11 Guest1337 joined
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
sorear o/ benabik 23:36
benabik 'lo sorear
23:38 ecocode joined
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
Fixes the golf colomon++ gave me too
sorear my $i = 42; say (do sub { $i })() ?
or the nested pblock one 23:39
dalek kudo/nom: 6b4e594 | jnthn++ | src/Perl6/ (2 files):
Fix blorst to genrate well-nested QAST.
jnthn sorear: The nested pblock one is the one I meant 23:40
but
masak so, in one week, Rakudo on le JVM has surpassed Niecza?
jnthn > my $i = 42; say (do sub { $i })()
42
masak: I've been working on it since NOVEMBER. :P
and sorear++ for some weeks :)
Not to mention others :)
sorear jnthn: { $_ := 1; for 2 -> $k { say $_ } } is another fun case
jnthn r: { $_ := 1; for 2 -> $k { say $_ } } 23:41
camelia rakudo 78374b: OUTPUT«1␤»
jnthn ok, that one's still busted
grr
sorear jnthn: that one's caused by the pblock action method installing a $_ alias too late
jnthn Will look at that one tomorrow.
oh...
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
jnthn sorear: needs to be? Or jsut needs to appear early enough? 23:43
sorear jnthn: i think finishlex is the most correct time, for handling BEGIN and whatnot 23:44
jnthn hm, true
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' ?
jnthn um 23:46
r: BEGIN my $x = 5; say $x
camelia rakudo 78374b: OUTPUT«5␤»
sorear n: BEGIN my $x = 5; say $x
camelia niecza v24-86-g39ab531: OUTPUT«5␤»
sorear std: BEGIN my $x = 5; say $x
camelia std d4cc5ab: OUTPUT«ok 00:00 43m␤»
sorear p: BEGIN my $x = 5; say $x
camelia pugs: OUTPUT«*** No such subroutine: "&BEGIN"␤ at /tmp/ZgJeTgFq2o line 1, column 1-16␤»
jnthn Darn, yes... 23:47
hmm.
dalek kudo/nom: fd7e929 | jnthn++ | src/Perl6/ (2 files):
Revert "Fix blorst to genrate well-nested QAST."

This reverts commit 6b4e594062412e45faeaa40f079c85239f65fa9c. It breaks "BEGIN my $x = 5; say $x;". sorear++ for noticing.
23:48
jnthn Guess I look at it tomorrow then.
sorear
.oO( dalek should generate -- if $commitmsg =~ /^Revert/ )
23:49
jnthn :P
benabik The person doing the revert might be different than the committer. 23:52
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 :) 23:54