»ö« 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.
PerlJam r: printf("%.50f", 1.115) 00:04
camelia rakudo-jvm 9a2f3e: OUTPUT«(timeout)»
..rakudo-{parrot,moar} 9a2f3e: OUTPUT«1.11500000000000000000000000000000000000000000000000»
00:05 cooper left
PerlJam nqp-jvm: say(nqp::sprintf("%.50f",[1.115])) 00:05
camelia nqp-jvm: OUTPUT«#␤# There is insufficient memory for the Java Runtime Environment to continue.␤# pthread_getattr_np␤# An error report file with more information is saved as:␤# /home/p6eval/hs_err_pid5092.log␤»
[Coke] t/spec/S02-types/multi_dimensional_array.t is failing. 00:16
00:19 cooper joined
PerlJam Seems we need a "fudge" for setting LOLLY 00:20
TimToady yes, I mentioned that test last night
but it's a temporary thing, so maybe just run the tests under LOLLY, since I've already vetted them for poisoned lollipops 00:21
it's really only the panda modules and dar6pan that need to run once without LOLLY and get fixed 00:24
6arkpan?
PerlJam
.oO( sharkpan? )
TimToady: Are you going to do shaped decls next? :) 00:25
TimToady no, I think Mouq++ is headed that direction
TimToady is working toward a faster gather/take now
PerlJam TimToady++ that would be awesome 00:26
TimToady first target, make a version of GatherIter that can take a batch of values every %% batchsize instead of one at a time 00:27
a variant, not a replacement, to be used when known eager
or known pure code
and possibly parameterize the co-routine with the target to reify to directly, and use the coro only for coordination, not to pass data back through an exception, but that's a bigger stretch, and possibly prone to locking issues 00:30
00:31 cooper left, BenGoldberg joined 00:32 jnap left 00:34 iarna joined
TimToady if I can get the latter to work, it makes it easier to reify a batch all at once before yielding 00:34
00:36 cooper joined
TimToady then take becomes something like 'push $!reified, $taken; yield if $!reified.elems %% $batchsize' 00:36
PerlJam the former seems way easier though :)
it would be a good stepping stone 00:37
TimToady except you have to wrap and unwrap each batch
since batches aren't supposed to turn into parcels
adding each parcel directly to $!reified would be simpler
and if we make every take wrap in a batch container, then normal lazy take becomes slower 00:38
PerlJam true
TimToady boy, that's hard to parse :)
so I think the 2nd is a worthwhile yakshave if I can swing it 00:39
00:39 avuserow_ left 00:40 avuserow_ joined
TimToady first, an experiment to see if I can pass a parameter to the block() 00:41
00:41 gfldex joined
PerlJam Would you end up getting rid of $GATHER_PROMPT and $SENTINEL? They look like artifacts of the current implementation to me. 00:44
TimToady maybe
01:01 thou joined 01:06 thou left
hoelzro should I leave the content method on for POD blocks and mark it as deprecated, so that people aren't surprised when they try it instead of .contents? 01:09
tadzik +1 01:10
TimToady seems reasonable to an outsider :)
tadzik deprecation warnings tend to be so annoying that people fix their stuff in no time :D 01:11
TimToady which is partly why I didn't even bother to make the lolligag a warning, just a parse error
dalek Heuristic branch merge: pushed 137 commits to roast/S26-WHY by hoelzro
01:13 dayangkun joined
TimToady actually, we probably need to not only keep the continuation tag, but refine it to do lexotic gathers as specced, and not yet implemented 01:16
01:17 iarna left, iarna joined
TimToady S04:796 01:17
synopsebot Link: perlcabal.org/syn/S04.html#line_796
jnthn accidentally the whole evening with fun :) 01:18
japhb LHF request: Implement PIO.isatty on all backends. I could really use the .t (is a TTY) file test for a couple UI features.
TimToady yowser xx *
japhb jnthn: Accident? Or Freudian Behavior?
TimToady RFTMI (Request For...) 01:19
japhb LOL
jnthn Uh, I went for curry and had some beer. :P
01:19 hagiri joined
hagiri hello 01:19
=)
jnthn As opposed to writing my talks. :)
awwaiid hello
TimToady you sure you didn't go for beer and have some curry?
japhb Yeah, I realized that joke would probably be immediately misinterpreted ... right after I hit enter.
jnthn No, the order was certainly curry first. :)
japhb .ask timotimo If you are still tracking LHF requests, I'm looking for someone to implement PIO.isatty on all backends, so I can rely on the .t (is a TTY) file test. 01:21
yoleaux japhb: I'll pass your message to timotimo.
jnthn is going to be away from home for a month, and figured he'd better get in a trip to his local curry house before that. :)
01:22 FROGGS_ joined
jnthn There's so much backlog I didn't manage to get through it all on the train home. :) 01:22
01:22 hagiri left
jnthn I did get to the gather/take and coroutines (actually continuations in Moar) bit. 01:24
TimToady m: (<a b c>;<d e f>) 01:25
camelia rakudo-moar 9a2f3e: OUTPUT«===SORRY!=== Error while compiling /tmp/m_TX6wEpxt␤Unsupported use of ; in brackets as a statement sequence; in this and future versions please use SEQ(;) or $(;) for C comma semantics (or set LOLLY for the new list-of-list semantics fo…»
jnthn One thing I've wondered is how many of those cases could be eliminated by implementing r-value loops.
TimToady so you know about the lolly merge
jnthn xx could be done that way, for example
01:25 FROGGS left
jnthn I think the lolly merge is just ahead of where I'm reading :) 01:25
01:28 hagiri joined
dalek ecs: 273da4c | TimToady++ | S99-glossary.pod:
add tl;dr and TMI
01:30
jnthn finally read it all :) 01:36
TimToady er...congrats?
jnthn fwiw, I don't think GATHER_PROMPT and SENTINEL are problems. They're simply unique enough markers. 01:37
TimToady I figgered that out, and that we'd use that even harder for lexotic gathers 01:38
jnthn They actually were taken directly from sorear++'s JVM continuation impl. I did the same API on Moar.
Though what's underneath it is quite different. 01:39
(Since stack frames are more "first class" in Moar)
TimToady do you think it would work to give 'take' a direct reference to $!reified to push to? 01:40
01:40 klapperl_ joined
jnthn Perhaps so. When I've thought about speeding it up, I'd considered having it not yield until there are another values. 01:41
That is, still have take do the exception throw, but it immediately resumes rather than doing continuation-y stuff.
So far as I can tell, the major cost is in the continuation, not the exception. 01:42
TimToady which is why you want to batch them if you can under one continuation
jnthn Right, that's what I'd been hoping for
The other thing I'd been thinking - though didn't yet figure out a good model, is that in:
my @a = 0 xx 1000; 01:43
It's be really nice if we could have it reify directly into $!items of @a
And avoid all the copying.
01:43 klapperl left
jnthn Maybe that's what you meant by direct reference to $!reified... 01:44
Question really is when we know we can get away with such cheating.
01:44 ilbot3 left
jnthn It felt to me like it was a sole consumer vs bound distinction. 01:45
TimToady well, that's my job, and pmichaud++'s
jnthn As in, in the direct assignment case, it's clear that there's a single sinker.
TimToady well, if multiple, you have to have a queue that can be pushed onto, and anyone take off 01:46
which is why I mentioned potential locking issues
jnthn Yes, today if two threads want to reify the same thing at a time...problem.
The main thing to look out for there is that we don't end up with circular waiting. 01:47
01:47 ilbot3 joined
TimToady well, yes, I'd like a constant list to be able to define itself in terms of its earlier elements, as Haskell allows 01:47
we haven't got there quite yet 01:48
01:48 lue left, Possum left, robinsmidsrod left, eiro left, vanila left
jnthn Yes, it's making that situation work out without ending up with deadlock... 01:49
.tell lizmat On SEGV, maybe try bumping to latest MoarVM; I fixed a nasty bug that broke a GC invariant earlier today...uh, yesterday... 01:51
yoleaux jnthn: I'll pass your message to lizmat.
TimToady but direct reification might be just what the doctor ordered to avoid the current behavior
jnthn If we can get rid of the continuation for every value and the copying in something with an eager array assignment on the LHS and a gather/take-using thing on the RHS, we're probably onto something that can perform well. 01:52
TimToady m: constant foo = 1, foo; say foo[1]
camelia rakudo-moar 9a2f3e: OUTPUT«===SORRY!===␤Cannot invoke null object␤»
jnthn The other thing that would be really nice is if: 01:53
for something() { ... }
Could compile into something that pulls values from some iterator, and so can flatten away taht block
Though maybe that's less of an issue when spesh gets cleverer about closure semantics. 01:54
TimToady or at turn it into a loop with a simple goto
jnthn Well, the reason we do well on some for-using benchmarks and not others is because we can turn for 1..10000 { } into a while loop 01:55
(But not the other cases)
TimToady though that's not as bad as it used to be, even without that optimization, since Range knows how to do some batching on it's own when called from MapIter
jnthn Another one to keep in mind - which I know is slow but don't have a good answer for - is for @a X @b { ... }
Yes, but for a for <literal range> { ... } today, Rakudo completely optimizes away need for a MapIter or a Range. 01:56
*the need 01:57
TimToady well, at least we have @x[@a;@b] notation now to play with there, though I doubt it's blazing fast yet
01:57 thou joined, lue joined, Possum joined, robinsmidsrod joined, vanila joined, eiro joined
TimToady yes, I know, but not for 1..10, 100..200 {...} 01:57
jnthn Right
So far as I can tell, much of the cost in forest fire, which we're > 150x slower at than Perl 5, is overhead from list-y stuff. 01:59
TimToady that's the old ff, not my revised one that doesn't copy, I assume
jnthn (I can try and get some higher resolution answers on where the cost is if it helps, but it'll be at/after YAPC)
01:59 gfldex left
jnthn Whichever one perl6-bench as 01:59
*has
TimToady looking 02:00
jnthn Though array_set_xx is probably our most awful result
TimToady yes, that's the old one that copies element by element 02:01
(the new one has a Warming state to enable processing it in place)
jnthn Current r-m weighs in 350x slower there. Though it's an improvement on a year ago, when the latest and greatest r-p was 2060x slower :)
TimToady well xx should be pretty easy to optimize when the LHS is constant, since it's relatively pure like a Range 02:02
jnthn visit_2d_indices_cross is a good one to look at for X being slow, fwiw. 02:03
TimToady so you can at least batch it even if it's in a lazy context, or infinite
jnthn Yes, true.
TimToady well, X should be constant foldable with constant ranges, fwiw 02:06
jnthn Hm, true
TimToady but I suspect a lot of the overhead is in the indexing end
note that ff uses the same constant X over and over 02:07
so might be worth it there
jnthn The result in visit_2d_indices_for suggests the cost is in the X, afaict.
TimToady and uses it in multiple places
maybe it is, now, with jit
if you know you're binding to $x,$y, you can preflatten the X constant too 02:08
jnthn Gonna sleep. Should try and not get my body used to crazy late nights when I'll have to get up early for a YAPC flight in a couple of days... :)
TimToady and share all the same ones in the program
'night
japhb Good night, jnthn!
jnthn o/
(BTW, really pleased to see list performance is getting some serious attention. If we can get that a good bit faster, we will be in a much better place overall.) 02:09
'night
02:15 rindolf left 02:20 jnap joined, jnap left 02:21 hagiri left 02:25 iarna left 02:26 vanila left, ivanshmakov left 02:27 PotatoGim joined 02:45 avuserow_ left 02:47 noganex_ joined 02:50 noganex left 03:02 fling left 03:03 fling joined
dalek Heuristic branch merge: pushed 92 commits to rakudo/S26-WHY by hoelzro 03:05
ast/S26-WHY: f9ad8e9 | (Rob Hoelz)++ | integration/advent2011-day10.t:
Fix calls to POD .content

It's now .contents
ast: 2c0ae6c | (David Warring [email@hidden.address] | integration/advent2012-day04.t:
removed invalid test
03:07
03:08 kaleem joined, avuserow_ joined 03:14 telex left 03:16 xragnar_ joined, xragnar is now known as Guest65948, Guest65948 left, xragnar_ is now known as xragnar, telex joined 03:18 xenoterracide left 03:19 xenoterracide joined 03:30 xenoterracide left 03:52 kaare_ joined 03:54 nbrown_ left 04:00 j4jackj is now known as f4tass
dalek kudo/S26-WHY: 358271b | (Rob Hoelz)++ | src/core/Pod.pm:
Mark Pod::Block.content as deprecated
04:01
04:02 f4tass is now known as j4jackj 04:10 BenGoldberg left 04:12 bjz left 04:14 colomon left 04:24 anaeem1_ joined, kurahaupo left, nbrown_ joined 04:28 kaare_ left 04:30 mr-foobar left 04:31 mr-foobar joined 04:37 nbrown_ left 04:38 ren1us2 is now known as ren1us 04:41 daniel-s_ joined 04:51 kaare_ joined 04:52 jercos left 04:53 jercos joined
clkao w/in 2 05:04
05:11 nbrown_ joined 05:12 [Sno] left 05:15 nbrown_ left 05:25 kaleem left 05:32 colomon joined 05:33 isacloud____ left 05:36 isacloud____ joined
dalek kudo/nom: e7835e9 | TimToady++ | src/core/GatherIter.pm:
gather should batch an eager reify

Just changing the batch size from 1 to 1000 makes a simple gather/take run twice as fast, even though it's still doing all the continuations.
05:49
TimToady also makes 0 xx 100000 run roughly 10% faster, but that's in a case it shouldn't be using gather/take at all 05:52
06:04 denis_boyun_ joined 06:12 baest_ is now known as baest, nbrown_ joined 06:14 kaleem joined 06:16 nbrown_ left
dalek kudo/nom: f1a7c65 | TimToady++ | src/core/List.pm:
make xx about 3 times faster on literals
06:16
TimToady for N in the neighborhood of 100000 06:17
still uses gather/take, but does batches of 100 for N larger than 100 06:19
doubtless one could still do much better with something handrolled in nqp 06:20
it's also a pity we don't have a GatherIter that just pushes rather than parcelizing each take
and really one should scale the batch size to the order of magnitude of sqrt(N) or so 06:22
but this is a start
06:42 wtw left, wtw joined 06:48 rindolf joined 07:03 zakharyas joined, [Sno] joined
ingy1 jnthn: you about? 07:05
TimToady could probably help me the most but I'm scared of his response :) 07:06
07:09 fhelmberger joined 07:13 nbrown_ joined 07:17 nbrown_ left 07:28 krunen joined 07:39 darutoko joined
sergot o/ 07:47
07:54 klaas-janstol joined 07:56 donaldh joined 08:07 pmurias joined
daniel-s_ \o 08:09
Hey sergot
08:11 woolfy left 08:13 Ven joined, nbrown_ joined 08:14 ClarusCogitatio left
Ven hahaha that take seq $n -= 100 feels like a bit of a hack :P 08:14
08:17 nbrown_ left 08:18 ClarusCogitatio joined, klaas-janstol left
sergot hi daniel-s_ 08:20
lizmat jnthn: confirmed that Moar master does not segv's with jit enabled and without LOLLY
yoleaux 01:51Z <jnthn> lizmat: On SEGV, maybe try bumping to latest MoarVM; I fixed a nasty bug that broke a GC invariant earlier today...uh, yesterday...
08:21 brrt joined
nwc10 lizmat: yay! So now works on your machine? 08:22
08:23 FROGGS_ is now known as FROGGS
lizmat yup, and spectest is clean 08:23
except for LOLLY tests
so I'm gonna bump revisions
dalek p: 3857128 | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION:
Bump for fix for LOLLY crash on OSX
08:24
kudo/nom: f532c1d | TimToady++ | src/core/List.pm:
scale xx better based on size
lizmat testing bumped NQP version now 08:26
08:27 ClarusCogitatio left 08:28 clkao left 08:29 ClarusCogitatio joined
FROGGS nwc10: The requested URL /apw2014/wikiedit was not found on this server. :o( 08:30
nwc10: hmm, now it works... weird 08:31
nwc10 odd 08:32
FROGGS yeah, maybe the preview is broken only
dalek kudo/nom: 6e536ac | TimToady++ | src/core/List.pm:
couple of buglets in previous patch
08:34
lizmat hmmm... serious failures with this NQP version :-( 08:38
seem to all fail with: Unexpected named parameter 'thunked' passed 08:40
08:40 clkao joined
lizmat ah, buglets 08:40
trying again with latest patch...
08:43 klaas-janstol joined
dalek kudo/nom: ebfe24f | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION:
Bump NQP to fix jit/LOLLY problem on OSX
08:45
TimToady with these patches, 42 xx 1_000_000 appears to be about 50 times faster
lizmat still same problems, but seem dependent on TimToady's patches
08:45 ChoHag left
lizmat so bumping anyway 08:45
fitness, back in ~ 2 hours& 08:46
TimToady and on 10_000_000 at least 100 times faster
will run another fulll spectest 08:47
brrt what is the LOLLY problem?
08:48 ClarusCogitatio left
TimToady doesn't do nqp::getenvhash right when there's no entry 08:49
08:49 ClarusCogitatio joined
TimToady reproduced test failures here, investigating 08:49
dalek kudo/nom: c516d5e | TimToady++ | src/core/List.pm:
xx * can also be called with :thunked
08:57
08:57 brrt left
TimToady looks much cleaner so far up through S17 08:58
08:59 brrt joined
TimToady sorry, for some reason I thought that repeat.t was enough testing for xx :) 08:59
09:00 ClarusCogitatio left
TimToady now just fails the usual two suspects, IO-Socket-Async and uniq 09:01
09:02 ClarusCogitatio joined
TimToady once this recompiles, you should be able to just about do 'say (42 xx 10_000_00).elems' before camelia times out; takes 2 seconds on my slower machine 09:03
m: say (42 xx 10_000_00).elems 09:04
camelia rakudo-moar f1a7c6: OUTPUT«1000000␤»
09:04 brrt left
TimToady oh, that's missing a 0 09:04
m: say (42 xx 10_000_000).elems
nwc10 oh, much spectest fail :-(
camelia rakudo-moar f1a7c6: OUTPUT«10000000␤»
TimToady fetch again
if you're failing array and set 09:05
nwc10 Unexpected named parameter 'thunked' passed
TimToady that was what I just fixed
nwc10 ah righto
TimToady repeat.t doesn't test anything like rand xx * 09:06
09:07 brrt joined
TimToady m: say (rand xx *)[10] 09:08
camelia rakudo-moar f1a7c6: OUTPUT«0.900392391008587␤»
masak good antenoon, #perl6
TimToady very ante here in California
masak TimToady: yes, what are you doing up at this unblogly hour? 09:10
TimToady speeding up gather and xx 09:11
masak \o/
xxcellent. 09:12
jnthn morning o/ 09:13
TimToady m: say (42 xx 20_000_000).elems
camelia rakudo-moar f1a7c6: OUTPUT«(timeout)»
TimToady m: say (42 xx 10_000_000).elems
camelia rakudo-moar f1a7c6: OUTPUT«(timeout)» 09:14
TimToady guess I got lucky before
m: say (42 xx 1_000_000).elems
camelia rakudo-moar f1a7c6: OUTPUT«1000000␤»
jnthn TimToady++ # lots of GatherIter patches
09:14 nbrown_ joined
TimToady well, only one really 09:14
plus removing an unneeded .eager 09:15
jnthn Yes, I was wondering about that...and whether it's really unneeded
TimToady and it should be a sink() if it were needed :) 09:16
09:16 brrt left
jnthn hm, good point 09:18
09:19 nbrown_ left
nwc10 TimToady: yes, pass 09:19
jnthn is spectesting here also
TimToady mostly I've been trying to get xx faster, and scale well to large values of N
nwc10 t/spec/S32-list/uniq.t failed spectest, but seems to be OK when re-run
TimToady it seems to flap a bit 09:20
jnthn Yeah, I've see that too.
TimToady random coredumps
nwc10 t/spec/S02-types/multi_dimensional_array.rakudo.moar passes when I set LOLLY
TimToady that's also expected
nwc10 t/spec/S32-io/IO-Socket-Async.rakudo.moar is our usual flappy friend
everything else decided to pass
TimToady about what I got here too
jnthn
.oO( Flappy Test, the hit successor to Flappy Bird... )
09:21
TimToady and that 5-times gather/take speedup was merely paying attention to eager context with the mechanism already there 09:23
didn't get rid of coro calls, but now call a bunch of them at once, so cache probably stays hotter
09:23 ClarusCogitatio left 09:26 ClarusCogitatio joined
jnthn will do a perl6-bench run in a bit and see if there's a nice difference on the xx benchmark :) 09:28
09:32 pmurias left
TimToady should go to bed before raising the ante on noon much more 09:33
zzz &
09:34 ClarusCogitatio left 09:37 ClarusCogitatio joined 09:42 kaleem left
timotimo o/ 09:47
yoleaux 01:21Z <japhb> timotimo: If you are still tracking LHF requests, I'm looking for someone to implement PIO.isatty on all backends, so I can rely on the .t (is a TTY) file test.
timotimo oh 09:50
do we also have/get isatty for our standard input/output?
sergot what is 'LHF requests'? 09:56
Ven looking for help?
donaldh low hanging fruit 09:57
Ven oh
jnthn As in, a task that's relatively easy to pick off 09:58
masak spectest run: gist.github.com/masak/e3702f7029125394e50c 10:00
sergot where is the list? 10:01
10:01 Ven left 10:03 immortal left, erkan joined 10:07 Ven joined 10:09 anaeem1_ left
lizmat masak: the first one needs LOLLY=1 10:13
the other ones are flappers as far as I can see
(as in, they're ok now, seen them randomly, depending on load, fail in the past) 10:14
10:14 spider-mario joined
masak I was not aware of LOLLY=1 10:15
10:15 nbrown_ joined
masak but it does indeed work when that env var is set. 10:15
any reason I wouldn't want to set it permanently?
10:16 bjz joined 10:17 spider-mario left, Ven left
jnthn TimToady: array_set_xx was 350x slower than Perl 5, now only 21 times slower 10:18
Marginal improvement on rc-forest-fire 10:19
10:19 nbrown_ left 10:22 spider-mario joined
sergot jnthn: could you tell me where is the LHF requests list? 10:22
is it just on rt?
in
masak is positively surprised by t/spec/S02-types/multi_dimensional_array.t 10:24
I didn't know we had that much of multidim in place.
means I'll start using it in code, I guess. 10:25
jnthn sergot: Dunno how many things are now, but in RT we've sometimes tagged things [LHF] 10:26
In the title
masak: Yes, I need to catch up on what's been happening there too :)
sergot jnthn++ thanks :) 10:27
nwc10 would it be better to make a LHF queue, and move stuff there? 10:29
something that makes it easy to have a URL which lists LHF
sergot +1 10:31
10:37 Ven joined
Ven masak: migrating code, I guess? 10:37
10:46 Ven left
masak not sure I understand the question. 10:46
11:15 nbrown_ joined 11:19 nbrown_ left 11:33 anaeem1_ joined 11:37 iarna joined 11:41 brrt joined 11:44 itz_ joined 11:46 itz left 11:48 psch joined
moritz nwc10: I'm against a LHF queue; I don't know how to view tickets from multiple queues in RT 11:58
12:00 krunen left 12:01 anaeem1_ left 12:07 mr-foobar left 12:13 xinming left 12:14 xinming joined 12:15 nbrown_ joined 12:16 PotatoGim left 12:20 nbrown_ left, Akagi201_ joined 12:23 prevost joined, Akagi201 left 12:24 iarna left, iarna joined 12:32 dayangkun left 12:38 mr-foobar joined 12:40 FROGGS[mobile] left 12:42 FROGGS[mobile] joined 12:48 iarna left 12:51 dayangkun joined
colomon JSON::Jansson isn't in the ecosystem yet? 12:56
lizmat m: class A {}; INIT say "starting"; say A::B # is there a reason this is a runtime error, not a compile time error ? 13:05
camelia rakudo-moar c516d5: OUTPUT«starting␤Could not find symbol '&B'␤ in method <anon> at src/gen/m-CORE.setting:13076␤ in any find_method_fallback at src/gen/m-Metamodel.nqp:2625␤ in any find_method at src/gen/m-Metamodel.nqp:944␤ in block at /tmp/TTfklu9aHM:1␤␤»
13:06 JimmyZ joined 13:11 jnap joined 13:12 telex left, ggoebel11111112 joined 13:14 xenoterracide joined, telex joined 13:16 ggoebel11111111 left, nbrown_ joined 13:20 nbrown_ left
dalek kudo-star-daily: 4033bf4 | coke++ | log/ (14 files):
today (automated commit)
13:23
[Coke] nwc10: I think there's already a URL for that. one sec. 13:24
13:24 iarna joined
[Coke] rakudo.org/tickets/ //Tickets marked "easy" 13:24
rakudo.org/rt/easy 13:25
though it could use some xss loving.
awwaiid Happy _why Day! 13:26
[Coke] ... it's pretty broken actually. there's some LHF, fix that url. :)
786 new/open tickets in RT. 13:31
masak I think we were near 800 when the RT queue was at its worst somewhere around 2009-2010. 13:32
but it doesn't feel nearly as bad these days :)
[Coke] 685 rakudo fudges in roast that don't say "NYI, RT#, unspecced"
masak: ^^ that's why. :P
we're hiding almost as many tickets in the test suite, unopened.
masak *nod* 13:33
13:33 xenoterracide left
FROGGS I'd like to do a bugfixathon again soonish... though, would be nice to not do that alone... 13:33
lizmat t/spec/S02-types/range.t tests for Range:D:.push and friends
the comments indicate that it should fail because of the immutablility of Ranges 13:34
however, it fails for quite different reasons:
m: my $r = 1..5; $r.shift
camelia rakudo-moar c516d5: OUTPUT«No such method 'shift' for invocant of type 'Range'␤ in block at /tmp/36kaOlOCRx:1␤␤»
13:35 iarna left
moritz well, it doesn't have that method because it's immutable 13:35
so that's kinda OK, IMHO
lizmat m: my $r = 1..5; $r.unshift(6)
camelia rakudo-moar c516d5: OUTPUT«Cannot call 'unshift'; none of these signatures match:␤:(Any:U \SELF: *@values, *%_)␤ in block at /tmp/IEJq8R6krq:1␤␤»
lizmat ranges are interpreted by many people to be listy things 13:36
masak relevant: arstechnica.com/information-technol...its-flaws/
lizmat I would think a better error message would be helpful in that respect
by I guess I am wrong in that respect 13:37
masak the consensus of those answers seems to be "don't upgrade existing code".
lizmat which is *exactly* what Perl 6 will allow you to do, component wise, once S11 and S22 are fully operational 13:38
moritz lizmat: I'm not against better error messages, I just wanted to point out that the tests aren't wrong
PerlJam +1 for better error messages
lizmat I would argue that in this case the test is incomplete, because it does not test *why* t failed 13:39
which is why I'm going through the test-suite
nwc10 why is that article dated 2014/08/16 but the stack exchange question that it "summarises" is from 1 year aho?
[Coke] is this the move from dies_ok to throws_like? +1 from me. (and anywhere where the type is adhoc, that's a place to think about improving our exception types) 13:40
13:40 gfldex joined
moritz well, if the tests become more specific, the specs should reflect that 13:40
[Coke] TimToady: some bugs in RT about uniname(), btw.
the specs don't really list what exceptions can be thrown when, do they? 13:41
(they probably should)
13:41 kaare_ left
[Coke] S02-lexical-conventions/comments.rakudo.jvm........ still hanging on jvm. 13:41
[6~[6~[6~
moritz [Coke]: not yet
[Coke] parrot is building again: should we keep rt.perl.org/Ticket/Display.html?id=122436 open? 13:42
lizmat S03:3412 states that Ranges are immutable 13:43
synopsebot Link: perlcabal.org/syn/S03.html#line_3412
gtodd1 [Coke]: yay!!
13:43 gtodd1 is now known as gtodd
gtodd parrot was just resting ;-) 13:44
13:44 molaf joined
dalek ecs: 775d078 | (Elizabeth Mattijsen)++ | S03-operators.pod:
Remove Range :by fossil
13:45
gtodd nwc10: the article also says python3 has been "available for 4 years"
or one of the comments
but "Python 3.0 final was released on December 3rd, 2008."
[Coke] rakudo: Foo::bar(); module Foo { our $x = 42; our sub bar() { $x.say } } 13:47
camelia rakudo-jvm c516d5: OUTPUT«(timeout)»
..rakudo-{parrot,moar} c516d5: OUTPUT«(Any)␤»
nwc10 gtodd: that's what caused me to go digging
[Coke] ^^ rt.perl.org/Ticket/Display.html?id=79464 just needs a test and is closable. 13:48
13:49 guru joined 13:50 guru is now known as Guest91468, Guest91468 is now known as ajr_
[Coke] r: say NaN===NaN 13:50
camelia rakudo-{parrot,jvm,moar} c516d5: OUTPUT«False␤»
gtodd nwc10: if you include the time testing and planning new features etc python 3 is a lot closer in age to perl6 than the interweb thinks it is :-) 13:52
[Coke] m: multi infix:<===>(NaN \a, NaN \b) { True }; say NaN===NaN 13:53
camelia rakudo-moar c516d5: OUTPUT«True␤»
dalek ast: 8120b6b | (Elizabeth Mattijsen)++ | S02- (10 files):
Last batch of dies_ok -> throws_like cleanup
[Coke] ^^ is that an ok way to handle that? preferable to putting in logic in the Num variant, aye?
lizmat it just wears me out too much
afk for a bit&
[Coke] hugme: hug lizmat 13:54
hugme hugs lizmat
gtodd lizmat: don't wear out!
masak hugs lizmat 13:56
gtodd are: multi infix:<===>(NaN \a, NaN \b) { True }; say NaN===NaN 13:57
oops
msg camelia
[Coke] is spectesting a run with that change.
masak m: multi infix:<===>(NaN, NaN) { True }; say NaN === NaN 13:58
camelia rakudo-moar c516d5: OUTPUT«True␤»
masak [Coke]: simpler.
Ulti neat Cris Fields is pushing to the BioPerl6 repo again >:3 13:59
*Chris
gtodd I like staring at it ... multi infix:<===>(NaN \a, NaN \b) { True }; say NaN===NaN ...
moritz didn't know you could use NaN in a type position 14:00
14:02 darutoko- joined
gtodd is this still accurate: rosettacode.org/wiki/List_comprehensions#Perl6 14:02
masak molaf: you can use any value in type position. 14:03
er, moritz*
m: multi infix:<+>(2, 2) { 5 }; say 2 + 2
camelia rakudo-moar c516d5: OUTPUT«5␤»
moritz m: multi infix:<+>(2 $a, 2 $b) { 5}; say 2 + 2
camelia rakudo-moar c516d5: OUTPUT«5␤»
moritz such wow. 14:04
masak I argued for that change. it made fibonacci much nicer to write :)
you go `multi fib(0)` instead of `multi fib($ where { $_ === 0 })`
14:05 darutoko left
masak or, hm, I don't know if it's === semantics there. 14:05
moritz ~~ iirc
masak ah, yes.
moritz well, we've had that feature for a while, but I didn't know it allowed a variable after the expression
TTIAR and all that
masak m: multi infix:<+>(/foo/ $l, /bar/ $r) { $l ~ $r }; say "the foo says: " + "OH bar HAI!" 14:06
camelia rakudo-moar c516d5: OUTPUT«===SORRY!=== Error while compiling /tmp/E8Lhjkgcsv␤Cannot use a value type constraints whose value is unknown at compile time␤at /tmp/E8Lhjkgcsv:1␤------> multi infix:<+>(/foo/ ⏏$l, /bar/ $r) { $l ~ $r }; say "the f…»
masak apparently there are limits.
"whose value is unknown at compile time"?
how is that? I thought a regex was a fairly known thing.
m: multi infix:<+>($l where /foo/, $r where /bar/) { $l ~ $r }; say "the foo says: " + "OH bar HAI!" 14:07
camelia rakudo-moar c516d5: OUTPUT«the foo says: OH bar HAI!␤»
masak :)
m: multi infix:<+>($l where /foo/, $r where /bar/) { $l ~ $r }; say 2 + 2 14:08
camelia rakudo-moar c516d5: OUTPUT«4␤»
masak ♥ Perl 6
moritz remembers a time using your own multi with a setting-defined multi wouldn't work reliable 14:09
masak aye. 14:10
not so long ago.
(whoever fixed that)++
14:11 JimmyZ left
moritz jnthn++ # seems like a good candidate 14:11
FROGGS[mobile] there was also the problem where you got a conflict when trying to import another candidate from a module
moritz or the same candidate one through a module, once directly 14:12
FROGGS[mobile] yeah
(that was the first issue I ran into) 14:13
and it took only about two months to fix it
dalek kudo/nom: a82c407 | coke++ | src/core/Num.pm:
NaN === NaN (RT #83622)

  masak++ for a simplification
14:14
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=83622
14:14 grondilu joined
dalek ast: a5a1fcf | coke++ | S02-types/nan.t:
Fixed in rakudo
14:15
grondilu today I tried again to write a parallel version of mandelbrot. Failed again: gist.github.com/grondilu/9990847
colomon grondilu: failed in what sense? 14:16
grondilu it appear to fail non-determinastically and when it fails it's with the can not write read-only variable
colomon under moar?
grondilu yes
colomon may well be a moar bug 14:17
14:17 nbrown_ joined
colomon at least, last time I tried parallel mandelbrot, it worked great under JVM and was glitchy under Moar 14:17
grondilu exat error is:
===SORRY!===
Cannot assign to a readonly variable or a value
colomon: which did you use? 14:18
colomon which what did I use?
grondilu « last time I tried parallel mandelbrot »
colomon is building jvm
make: *** No rule to make target `j-clean', needed by `clean'. Stop.
Failed running make realclean at /Users/colomon/.rakudobrew/bin/rakudobrew line 23.
I tried jvm and moar.
tadzik grr 14:19
I think I'm going to put git clean in there
14:21 iarna joined, aindilis left, nbrown_ left, aindilis joined
hoelzro ahoy #perl6 14:24
14:27 PZt left
colomon hopes tadzik++ is fixing rakudobrew right now... 14:28
tadzik nah, I'm at work
moritz m: say NaN === NaN, NaN == NaN 14:29
camelia rakudo-moar c516d5: OUTPUT«FalseFalse␤»
moritz nonononono 14:30
after a82c4076057fb543ec5bd56b06be1ffd67796f26, NaN === NaN will say True and NaN == NaN will say False
that's just SO WRONG
how can two things be identical, but not equal?
gtodd m: my @y; my @x <== 1..5; @x ==> @y ==> { .print }
camelia rakudo-moar c516d5: OUTPUT«===SORRY!=== Error while compiling /tmp/l52Lg0vVjz␤Sorry, do not know how to handle this case of a feed operator yet.␤at /tmp/l52Lg0vVjz:1␤------> my @x <== 1..5; @x ==> @y ==> { .print }⏏<EOL>␤ expecting a…»
colomon moritz: that's the magic of NaN
14:31 [Sno] left
colomon it's not equal to itself 14:31
gtodd oh wait ... "expecting a…" is "expecting any of:" heheh 14:32
PerlJam m: say NaN === NaN, NaN eq NaN;
camelia rakudo-moar c516d5: OUTPUT«FalseTrue␤»
PerlJam moritz: will that be better for you? :)
colomon "A comparison with a NaN always returns an unordered result even when comparing with itself."
en.wikipedia.org/wiki/NaN 14:33
gtodd an easy way to segfault the perl6-m repl is to copy a line from IRC starting with "r:" :-) ... perl6-j gives java.lang.NullPointerException .... 14:34
PerlJam weird. 14:35
I would have thought it would just be taken as a target for goto 14:36
gtodd I think that given the popularity of evalbots the repl should handle r: m: j: in some nice way :-) e.g. "I'm stripping the 'r:' from the start of your line of code ... you shouldn't cut and paste things from IRC bad user" 14:37
masak moritz: if you permit, I don't see anything weird in the way NaN behaves now. 14:39
moritz: IEEE 754 requires that NaN not be numerically equal to *anything*, not even itself.
PerlJam gtodd: treating it as a label would be a nice way to handle it, and that's what should happen IMHO
masak moritz: which makes sense, because two NaNs that you got through different computations will, in general, be different.
moritz: but === ignores numerical semantics, and asks "is this *the same thing*?". yes it is. it's NaN, twice. 14:40
moritz: meaning, for example, that `$num === NaN` will tell you the truth. 14:41
14:42 kaleem joined
[Coke] S29-os/system.rakudo.jvm...........................00-parrot 01-sanity 02-rakudo fudgeandrun harness spec spectest.data 14:43
dir: cannot access t: No such file or directory
moritz masak: I guess my error is to assume that $a != $b always implies $a !=== $b
if they aren't equal, how can they be identical?
masak moritz: no, I think that's an excellent intuition.
moritz: it's just that == for NaN is a special case.
PerlJam moritz: but, I've already shown that they are "equal" :) 14:44
masak moritz: for the sake of mathematical sanity, it will "lie" to you.
moritz: because those two NaN's *are* identical, of course. they're just not equal, because IEEE 754.
moritz (depends on the NaNs, of course...)
masak well, can you create two different NaNs in Perl 6?
I hadn't thought about that. 14:45
if you can, then they maybe shouldn't be === equal :)
also, in that case, which NaN is NaN? so to speak.
huf you need a does-she-make-cookies() function to tell them apart
masak huf: necessary, but not sufficient.
masak makes cookies, yet is not a nan 14:46
gtodd PerlJam: ++ yes , I should have thought of that ... and that would not be special casing things 14:48
huf masak: yes, but you're == to yourself
or...?
masak huf: yes, of course. all non-NaN values are.
gtodd PerlJam: I am now thinking of it as a label .... of course the core dump still occurs so :-D 14:49
masak huf: well -- I'm assuming we're only talking about my numification, nothing else.
huf there you are then, if it's not == to itself, you check with does-she-make-cookies() and you know which NaN you have :)
masak all NaNs make cookies.
huf whoa. TIL.
masak not many people get that far into IEEE 754. 14:50
14:50 treehug88 joined
[Coke] m: say +NaN 14:51
camelia rakudo-moar c516d5: OUTPUT«NaN␤»
masak m: say Inf/Inf
camelia rakudo-moar c516d5: OUTPUT«NaN␤»
masak m: say Inf/-Inf
camelia rakudo-moar c516d5: OUTPUT«NaN␤»
moritz there are signalling and quiet NaNs
[Coke] m: say +Inf # there are some tickets about this.
camelia rakudo-moar c516d5: OUTPUT«Inf␤»
[Coke] m: say Inf.Int # there are some tickets about this, I mean. 14:52
camelia rakudo-moar c516d5: OUTPUT«Cannot coerce Inf or NaN to an Int␤ in method gist at src/gen/m-CORE.setting:13072␤ in sub say at src/gen/m-CORE.setting:14010␤ in block at /tmp/R8FE3h5u3q:1␤␤»
masak wow, the error message doesn't know what it failed to convert.
moritz also, NaNs have some more bits left that could be any value
[Coke] that looks reasonable to me.
masak [Coke]: it does, but then you find out the spec isn't reasonable.
[Coke] (that it errored, not the specifics of the text of the error)
masak [Coke]: in the spec, Inf is a Num, an Int, and a Str. 14:53
[Coke] the spec is an ass.
masak [Coke]: or at least enough like one to act as the rhs of a range.
masak .oO( enough of the donkey business, spec! ) 14:54
14:56 kaare_ joined
gtodd hmm using Perl6::Feeds I experimented with feeds ... but now, using perl6, not all the syntax from en.wikibooks.org/wiki/Perl_6_Progra...eeds#Feeds works as well as in perl5... 8-) ... 15:04
for the missing bits the the error messages say perl6 can't handle that kind of feed "yet" 15:06
OTOH maybe the syntax has changed ... @x ==> @y ==> { .print } doesn't work but @x ==> @y ==> print does .... 15:08
TimToady feeds are "experimental" :) 15:09
gtodd oh
well they are nice :-)
feeds ++
++ ==> feeds 15:10
carlin
.oO( experimental... use feature 'feeds'; )
15:11
PerlJam I didn't think feeds did auto-map.
gtodd for 5.22!!
oops this is the perl6 channel
;)
PerlJam (at least that's what @foo ==> { .print } looks like to me.
)
masak at some point, I want to give a talk exclusively about interesting corner cases found in RT tickets. :)
TimToady the only thing that changed recently was lollipop syntax
masak .oO( Alan Perlis, is that you? ) 15:12
15:15 denis_boyun_ left
TimToady @foo ==> map { .print } should work fine 15:17
15:18 nbrown_ joined
masak m: my @foo = <a b c>; @foo ==> map { .print } 15:18
camelia rakudo-moar c516d5: OUTPUT«abc»
masak yep.
ingy1 seen jnthn
15:19 ingy1 is now known as ingy
masak ingy: I last saw jnthn last night. 15:19
ingy: (there were beers)
15:19 fhelmberger_ joined
ingy masak: do you know a lot about p6 parsing? 15:19
masak I've lost touch with the NQP internals about two parser overhauls ago. 15:20
but I write a lot of grammars, if that's what you mean.
ingy yeah, I'm kinda stuck on a lex vs parse thing, and pinged jnthn about it last night 15:21
15:22 fhelmberger left
ingy it doesn't involve p6 but I think a p6 mindset is needed 15:22
masak ooh, sounds interesting.
15:22 nbrown_ left
ingy I wrote it up (tired) here: gist.github.com/anonymous/31b2017c97abee2c5af0 15:22
jnthn Ah, I glanced that this morning, then got sucked into writing my YAPC::EU talks... :)
ingy when I woke up (just now) I had a fuzzy conclusion
PerlJam just read "it doesn't involve perl 6, but perl6 people are really smart, so ... " ;) 15:23
ingy that it is ok to pre lex up to the end of a statement
ie the lexing rules won't change mid-statement 15:24
15:24 retupmoc1 is now known as retupmoca
ingy ah yes, YAPC::EU 15:24
and I remember jnthn (or maybe TimToady) saying that p6 rules provides a lexer for you, and I never really got what that meant 15:26
and maybe I'm running into that need here
masak ingy: I read the gist. indeed interesting. 15:27
ingy: my first thought is: I have no idea.
:P
ingy cool :)
15:27 zakharyas left
TimToady now knows what TimToady's answer would be that ingy is scared of :) 15:27
masak ingy: I believe it's TimToady who said that a p6 grammar induces a lexer.
ingy masak: but you weren't in that room in tokyo 15:28
masak nope. I wasn't.
whatever room that was.
ingy but maybe you are psychic
masak or maybe things are said multiple times in different places.
ingy :D
PerlJam masak: quick! What are the winning lottery numbers?!?
masak ingy: maybe a first approximation to what that means is that leaf nodes of the parse tend to be found in `token` declarations. 15:29
TimToady no, I never repeat myself
masak PerlJam: all I'm getting is negative numbers.
PerlJam it's a sign!
masak PerlJam: oops, there's an imaginary one.
I think that means we're perpendicular to the actual lottery.
TimToady i agree 15:30
PerlJam we just need to choose a different basis function
masak PerlJam: sure, as long as you remember to transpose *all* the free variables accordingly.
TimToady what e said
ingy some of that problem space also applies to parsing YAML, which I've been working on with some success 15:31
masak ingy: what if you turned your problem into one that parses line by line? would something fall out of that?
ingy: I mean, obviously some lines would need to return "carry flag" information.
ingy: like "yes, this line parses, but need to parse the next one in this mode" 15:32
ingy ie YAML also has mixable indent and {} scoping
masak: well {} has no real line need/concept
masak troo.
ingy so that's a bit oh the wrench 15:33
*of
masak ingy: could you somehow turn the indent into meaningful tokens?
ingy: and then parse on those?
PerlJam ingy: your problem strikes me as a form of mini-slang. I dunno if that helps
ingy masak: you are onto something there
masak ingy: tokens like <same-indent> <more-indent> <outdent 1>
ingy: maybe think of it as a preprocessing step, even if it isn't. 15:34
rurban parrot-6.7.0 released
ingy indent/ondent/undent I call them
masak ingy: a preprocessing step that converts the problem into a trivial one :)
ingy and andent is a continuation dent
masak rurban++ # parrot-6.7.0
TimToady endent feels left out
ingy masak: now you are getting to the cruxt
TimToady the crunchy bits!
ingy preprocessing is desired and yet undesired 15:35
rurban parrot: this time only marginal perf improvements, but added some more missing UNICODE name aliases
ingy TimToady: I'm reserving endent
thought of errdent
TimToady endent should mean $ :)
ingy :) 15:36
masak ingy: if you're lucky, the preprocessing doesn't actually need to happen. that is, you can hide it behind rules. 15:37
timotimo eeeh, so much backlog :\
ingy masak: yes
TimToady timotimo: don't go away for so long next time, silly!
masak cf accessors, where you don't know if an accessor is something computed, or an attribute slot.
timotimo TimToady: that sounds like quite the compliment :) 15:38
ingy another option is to redefine tokeninzinf ws inside a indent or {} statement context
timotimo ingy: are you going to look some more into making TestML and YAML work again? 15:39
ingy masak: if I'm *really* lucky, jnthn will do this as an example in p6rules
timotimo: certainly
timotimo sounds good :)
ingy my p6 breakout is just around the corner 15:40
always
TimToady well, that's better than always 20 years away, like fusion
ingy actually if I can get past this problem, I am getting very close to p6 action 15:41
nwc10 how is energy independence?
IPv6, and a few other things...
ingy hungry time. bbl
timotimo .o( or General AI )
nwc10 yes, good point. AI
PerlJam I thought masak was the psychic one?
nwc10 and still no flying cars
masak I... outsource. 15:42
15:47 FROGGS left, FROGGS joined
japhb nwc10: IPv6 is here. It's just unevenly distributed 15:49
15:49 ajr_ left 15:50 guru joined
japhb (So are flying cars, actually, but considerably more so). 15:50
15:50 guru is now known as Guest73641, Guest73641 is now known as ajr_ 15:51 dayangkun left
masak it's kind of interesting to read steve-yegge.blogspot.se/2007/02/nex...guage.html 7.5 years later. 15:53
15:53 ajr_ left
timotimo did he ever say what that language was actually supposed to be? 15:56
masak don't think so.
I'm not sure he has/had a particular language in mind.
there's a lot of speculation in the comments.
everything from JavaScript to Perl 6.
timotimo i wondered about that also
[Coke] how's that corporate sponsorship thing working out for us? 15:57
timotimo js is certainly big
masak js has already won.
it's not big, it's won.
timotimo I did not receive my ship in the mail yet 15:58
masak all the rest of us can do at this point is to compile to JavaScript.
(pmurias++)
timotimo it is the assembly of the web, after all
masak right. or the OS, or the VM. 15:59
huf emphasis on the "ass"
but i suppose it was the hero the web needed :)
masak it doesn't matter exactly what of the web it is. it's the substrate to which we target our compilers so that our code runs on everyone's browser.
wise people treat it as a compiled-to language sooner rather than later, and choose a suitable author language. 16:00
huf yeah. soon we'll forget our grievances, just like the industry eventually accepted PC hardware :)
masak right! JavaScript is the x86 of languages!
huf :D
what a great sales pitch
masak worse is better! it better be!
huf otherwise where's my lisp machine 16:01
masak hands huf a lisp machine VM written in JavaScript
huf :)
running on the browser, yeah
dalek p: 53583b8 | coke++ | tools/build/PARROT_REVISION:
require parrot 6.7.0
16:02
[Coke] man, cloning parrot is slow. 16:04
masak [Coke]: remember that if you already have a local repo, you can clone locally. don't know if it applies in your case, but just in case. 16:05
16:05 ajr joined
masak I know many people who don't know that they can clone locally, and waste a lot of time re-fetching history from ze Net. 16:05
16:05 ajr is now known as Guest26205, Guest26205 is now known as ajr_
gtodd how does one do a full rakudo build and grab the latest parrot? perl Configure.pl --backends=moar,parrot,jvm --gen-nqp --gen-parrot --gen-moar --prefix=/home/devbuilder/perl6 ....seems to not grab a new parrot 16:09
[Coke] masak: then I have to remember to update my local master.
gtodd: your parrot is new enough, then. 16:10
gtodd oh
[Coke] if you want to force it, you can do --gen-parrot=master
but unless you're testing/fixing something parrot releated, prolly not worth it.
gtodd it uses 6.6.0 and breaks somewhere :-)
masak [Coke]: yes. it'd be local clone + pull. but it'd likely be a lot faster.
gtodd so I thought I'd try the newer one
thanks
hmm might not really be a parrot thing ... more likely my toolchain ... starting a new build will paste error when it breaks 16:12
moritz for latest parrot, --gen-parrot=master 16:13
16:16 ajr_ left, pmurias joined
[Coke] you then have to pre-checkout the repo whenever you want it. too many moving parts for day to day dev. (I automated it for the daily runs so I get the benefit there, anyway) 16:18
16:18 nbrown_ joined
gtodd ok same old error I've had for a while paste.scsys.co.uk/416737?tx=on&...rmat+it%21 16:20
16:20 donaldh left, bjz left
gtodd not really a parrot thing 16:21
16:21 bjz joined
dalek p-js: 03e4199 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Implement nqp::pow_n.
16:22
16:22 kaleem left 16:23 nbrown_ left, Rotwang joined
gtodd I redid the build with --gen-parrot=RELEASE_6_7_0 and it seems to have worked :) 16:24
16:26 klaas-janstol left 16:27 aoseki left 16:28 klaas-janstol joined
[Coke] the next rakudo release will require that version, so good it fixes something. 16:31
16:31 akaseki joined
gtodd parrot built not sure if perl6-p is going to go but ... one step at a time :) 16:31
dalek rl6-roast-data: 9b8cb15 | coke++ | / (6 files):
today (automated commit)
[Coke] rakudo.parrot failing 71 tests. jvm, 186. moar, 66-67 16:32
*sadface*
gtodd oops same error here on perl6-p
/usr/bin/ld: ../../../../3rdparty/dyncall/dyncall/libdyncall_s.a(dyncall_api.o): relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC
[Coke] S02-types/multi_dimensional_array.t is aborting 58 tests on all platforms. 16:33
TimToady presumably because you haven't set LOLLY=1 16:36
masak what's the big idea with LOLLY=1 ? 16:37
TimToady it's a one-release envvar
masak doesn't everyone want a little lolly in their life?
TimToady it's a temporary 'use future'
masak I mean, why is it opt-in?
is it dangerous?
TimToady to force star to fix all the lollipops
as soon as the modules and the dark6pan fix all the lolligags, they're ready for the new semantics 16:38
[Coke] I shouldn't have to set LOLLY to run the spectests. 16:39
TimToady if they want to play with the new semantics, they have to set LOLLY in this release, otherwise they can forget it
masak I agree with [Coke].
TimToady the spectests are playing with the new semantics already
masak it's wrong that we have spectests failing by default.
[Coke] I'm fudging that test file so it works with an out of the box rakudo.
TimToady so don't include that spectest yet
nwc10 so could the Rakudo makefile set LOLLY to run the spectests?
[Coke] if someone wants to refudge them so they skip the tests only if lolly isn't set, that's fine. 16:40
masak TimToady: what does "fix all the lolligags" mean?
TimToady: what needs to be fixed before this opt-in feature can be the default?
[Coke] I'm fine with removing that test file from the default spectest run.
TimToady (foo;bar) that are intended to mean SEQ(foo;bar), not LoL
masak feels like he fell asleep and woke up in a different Perl 6 16:41
TimToady which the compiler gags on if you don't have LOLLY set
masak who writes (foo;bar) ? not me.
TimToady masak: don't go away for so long next time, silly!
masak I'll... try.
maybe I should backlog harder. 16:42
TimToady apparently a number of test writers do that
masak OK, let's start over.
TimToady trying to shoehorn statements into an argument
masak what does SEQ(foo;bar) mean?
is it spec'd?
TimToady yes
masak looks
[Coke] is there an RT for the SEQ stuff?
TimToady see S02:2462 16:43
synopsebot Link: perlcabal.org/syn/S02.html#line_2462
masak ok, it's from yesterday.
16:43 fhelmberger_ left
masak that makes me feel a little better. :) 16:43
[Coke] how does one set LOLLY? env? 16:44
masak I can live with being one day out of touch.
[Coke]: yes.
I'm happy we're spec'ing these lol things. that's been long in the coming. TimToady++ for that. 16:45
[Coke] r: say "HI" if not $*ENV{lolly}
camelia rakudo-jvm a82c40: OUTPUT«(timeout)»
..rakudo-{parrot,moar} a82c40: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ lolly used at line 1. Did you mean 'roll'?␤␤»
masak I'm skeptical about env-varing our way to happiness. but that may or may not be me not seeing the whole picture.
[Coke] rant: the jvm rakudo in eval is almost useless. :(
masak [Coke]: <LOLLY>
TimToady masak: it's very temporary
[Coke] r: say "HI" if not %*ENV<lolly>
camelia rakudo-{parrot,jvm,moar} a82c40: OUTPUT«HI␤»
[Coke] r: say "HI" if not %*ENV<LOLLY>
masak [Coke]: CAPS.
camelia rakudo-{parrot,jvm,moar} a82c40: OUTPUT«HI␤»
[Coke] masak: GETTING THERE
masak OK! 16:46
TimToady next release after this one, the lolligag check goes away, and lollipops get the new LoL meaning
masak (WHY ARE WE WHISPERING???)
[Coke] TimToady: have you added this to the changelog?
TimToady never touches the changelog
[Coke] and/or the release announcement?
ok. then please make sure the release manager knows about your plans, or he will be quite irate. 16:47
TimToady expects his mom to pick up after him
dalek ecs: e29e9a1 | masak++ | S02-bits.pod:
fix a wee typo
TimToady thinks release managers should backlog occasionally :)
and read the git log
masak TimToady: in theory, that's what the release guide advises. 16:48
TimToady: in practice, moritz++ does a lot of the heavy lifting. :/
TimToady thinks the git log is the real changelog :)
timotimo git the change you want to log in the world 16:49
dalek ast: 40bd158 | coke++ | S02-types/multi_dimensional_array.t:
Fudge test so it's runnable LOLLY +/-
16:51
TimToady SEQ() is not necessarily the final form of sequential syntax, so some bikeshedding on that is okay; just don't anyone suggest we adopt the C comma operator
[Coke] ^^ fixed it the right way.
TimToady how to ship two versions of the product simultaneously :) 16:52
s/how/how not/ if Bool.pick; 16:53
what I really wanted to avoid was declarations that live forever in the program, like "use future" 16:54
well, maybe 'use future' is a bad example of that
16:55 aoseki joined, noganex joined
TimToady BASICPLUS2 had a permanent "extend" statement at the front, and that traumatized me 16:55
[Coke] I think you mean 'use feature' ! 16:56
16:56 bjz left, ggoebel11111113 joined
TimToady er, I was just confusing perl with python 16:56
16:56 bjz joined
masak or maybe you meant `from __future__ import...` 16:57
16:57 pmurias left
timotimo from __future__ import braces 16:57
16:57 darutoko- left, pmurias joined
masak timotimo: SyntaxError: not a chance 16:57
16:58 ggoebel11111112 left, noganex_ left, akaseki left
TimToady cool, Cannot reference undeclared local '__lowered_lex_3063' 16:59
nqp has such lovely error messages 17:00
17:01 [Sno] joined
TimToady "That's wrong, here, have a flying butt unicorn." 17:01
timotimo at least you can almost immediately see that it's something to do with the optimizer
TimToady all I'm trying to do is wrap the gather block in another block that traps TAKE exceptions and batches them up before doing the real take 17:02
17:02 itz_ is now known as itz
japhb camelia: r: my %h = a => "b > c > d"; say %h.perl; %h<a> .= split(/\s*">"\s*/); say %h.perl; 17:02
camelia japhb: rakudo-moar a82c40: OUTPUT«("a" => "b > c > d").hash␤("a" => ("b", "c", "d").list.item).hash␤»
..rakudo-{parrot,jvm} a82c40: OUTPUT«("a" => "b > c > d").hash␤("a" => ().list.item).hash␤»
japhb ^^ Note the different result for r-j
Current annoying bug of the day. :-) 17:03
17:03 klaas-janstol left
japhb Well, I guess r-m is the only one that gets it right. I hadn't even tested r-p locally. Hmmmm. 17:04
17:11 bjz_ joined, bjz left
pmichaud a proposed patch for nqp was just posted to the debian rakudo-devel list 17:12
lists.alioth.debian.org/pipermail/p...00432.html 17:13
itz I wonder if aveuserow/star parrot tests pass with the new version 17:14
I would guess probably not :) 17:15
17:16 xusia left, gmunoz_ joined
itz s/ave/av/ 17:17
japhb r: my %h = a => "b > c > d"; say %h.perl; %h<a> = %h<a>.split(/\s*">"\s*/); say %h.perl; 17:19
camelia rakudo-{parrot,jvm,moar} a82c40: OUTPUT«("a" => "b > c > d").hash␤("a" => ("b", "c", "d").list.item).hash␤»
17:19 nbrown_ joined
japhb ^^ For what it's worth, r-j and r-p are only wrong when doing .= split; desugaring seems to work around the bug. 17:20
timotimo tee hee. .list.item).hash
17:23 nbrown_ left 17:26 Ven joined, brrt left 17:39 Ven left 17:44 tgt joined
ingy masak: I have a strawman solution 17:45
I should write it up
masak :)
17:47 Ven joined 18:03 Rotwang left
moritz likes strawberry better than strawmen 18:04
18:06 pyrimidine joined
Ven wonders why ... 18:08
dalek o: 83674a0 | (Steve Mynott)++ | bin/ufo:
fix ufo to work with new compiled suffixes
18:10
o: 8e72aa3 | (Carl Mäsak)++ | bin/ufo:
Merge pull request #17 from stmuk/master

fix ufo to work with new compiled suffixes
Ven .o( Steve Wynot ) 18:14
itz if I had a pound/EU/$ for everytime I'd heard that.. ;) 18:15
or "lev2 18:18
^ "lev"
nwc10 Swiss Francs are prettier, and seem to be a better currency of last resort
Ven I'll give you an inductive profof. works?
proof. not profof.
nwc10: damn these Swiss with their old monies! 18:19
18:19 klaas-janstol joined
ingy masak, jnthn, TimToady: Here's my strawman: gist.github.com/anonymous/32ce4746...-swim-L101 18:20
It seems pretty elegant.
Huff and puff and blow it down!
18:20 nbrown_ joined 18:22 Ven left 18:24 nbrown_ left 18:31 klaas-janstol left 18:32 kurahaupo_ joined 18:37 molaf_ joined 18:40 molaf left 18:47 Ven joined
PerlJam ingy: doesn't that grammar mean that continued expressions over several lines will gradually walk to the right? (andent says "more than current indentation") Or do the andents not count for indentation? 18:49
Ven remembers of if and implicit calls in coffee ...
PerlJam I guess only the latter thing makes sense. nevermind :) 18:51
19:06 FROGGS[mobile] left 19:21 nbrown_ joined 19:25 nbrown_ left 19:34 treehug88 left
carlin how can I catch SIGINFO or SIGUSR1? 19:39
19:39 fling left
flussence m: say &signal; say Signal.enums 19:42
camelia rakudo-moar a82c40: OUTPUT«sub signal (Signal $signal, *@signals, Any :scheduler($scheduler) = { ... }) { #`(Sub|67669632) ... }␤("SIGBREAK" => 2, "SIGHUP" => 3, "SIGINT" => 1, "SIGWINCH" => 4).hash␤»
flussence That enum type seems kinda short...
jnthn Sometimes leaving an LHF task for others works out. Sometimes, this happens. :) 19:43
flussence I haven't poked around in the rakudo source for a while, maybe I'll go take a look... 19:44
19:46 [Sno] left 19:50 [particle] left
flussence okay, I know enough about signals to know I don't know enough to touch this :) 19:56
is there any special meaning to those enum numbers, or are they just sorted by "order people needed these in"? 19:58
TimToady Cast in Order of Appearance 19:59
flussence now that I think about it, the same probably applies to posix signal numbers... 20:02
20:04 telex left 20:05 integral_ left, integral joined, integral left, integral joined 20:06 telex joined
gtodd flussence: Signal.enums is even shorter in perl6-j 20:07
20:09 woolfy joined 20:11 anaeem1_ joined 20:12 prevost_ joined, prevost_ left 20:15 tgt left 20:18 rindolf left 20:19 H2O1 joined, H2O1 left
carlin looks like the actual signal codes are defined in Moar 20:19
20:22 nbrown_ joined 20:25 PZt joined 20:26 nbrown_ left
carlin so it would involve, adding more signal code to Moar. Adding more const::SIG_XXX to NQP, and mapping the SIGNAMES to the NQP constants in Rakudo 20:26
20:26 aoseki left
carlin gotta touch all the repos 20:26
where does Signal.^enum_value_list get defined?
20:26 nickpatc1 is now known as nickpatch
jnthn carlin: That's just derived from the enum declaration. 20:26
carlin ah of course, I see 20:28
I should be able to take a stab at doing this tonight
jnthn Cool :)
++carlin
flussence I've got this so far, if it's any help: gist.github.com/flussence/7520b3a659e9cd95fec1 20:31
(seems like SIGRTMIN and SIGRTMAX are runtime-defined, fun)
carlin rakudo does qx/kill -l/.words to get the list 20:32
gtodd Signals.enum in perl6-j too! 20:33
carlin rakudo: say $*KERNEL.signals 20:35
camelia rakudo-moar a82c40: OUTPUT«(Any) SIGHUP SIGINT (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) SIGWINCH␤»
..rakudo-{parrot,jvm} a82c40: OUTPUT«No such method 'signals' for invocant of type 'Kernel'␤ in block at /tmp/tmpfile:1␤␤»
carlin rakudo: say Signal.enums
camelia rakudo-{parrot,jvm} a82c40: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared name:␤ Signal used at line 1␤␤»
..rakudo-moar a82c40: OUTPUT«("SIGBREAK" => 2, "SIGHUP" => 3, "SIGINT" => 1, "SIGWINCH" => 4).hash␤»
20:37 dwarring joined
timotimo m: say nqp::bool_I(1234) 20:37
camelia rakudo-moar a82c40: OUTPUT«1␤»
timotimo m: say nqp::bool_I(Int)
camelia rakudo-moar a82c40: OUTPUT«(signal )»
masak read "SIGBREAK" as "SIGBEAR"
20:38 Ven left 20:39 [Sno] joined
carlin SIGBEAR is what you send when you want your program to run faster 20:40
japhb m: say &signal # The stringification of the :$scheduler param seems rather verbose
camelia rakudo-moar a82c40: OUTPUT«sub signal (Signal $signal, *@signals, Any :scheduler($scheduler) = { ... }) { #`(Sub|73661584) ... }␤»
20:40 prevost left
japhb Any should be assumed, and :scheduler($scheduler) should just be :$scheduler 20:41
masak carlin: the program doesn't have to run faster than the bear, only faster than you. :P
japhb timotimo: Another for your LHF list ^^
carlin I was going to say it would only make it run faster than the program next to it 20:45
japhb masak: I really like the idea of a SIGBEAR. Next time I write an adventure game, there will totally be a SIGBEAR at some point.
masak haha
maybe work a SIGHUG in there somewhere, too? 20:46
20:46 akaseki joined
japhb That's what you get for saving the poor damsel/beleaguered knight/annoyed camel/take your pick 20:46
20:47 avuserow_ is now known as avuserow 20:49 [particle] joined, treehug88 joined
japhb is reminded of The Paper Bag Princess 20:50
en.wikipedia.org/wiki/The_Paper_Bag_Princess
20:53 guru joined 20:54 guru is now known as Guest74585, Guest74585 is now known as ajr_ 20:58 Sqirrel joined, anaeem1_ left
masak .oO( THANK YOU MARIO! BUT OUR ANNOYED CAMEL IS IN ANOTHER CASTLE! ) 20:58
20:59 tgt joined, kaare_ left
japhb Exactly. 21:02
21:02 Pleiades` left
japhb It occurs to me it might be nice to have a game where you choose what you're going to save at the beginning and it backfills clues and story interludes to match. A witness that got spit on by the camel, camel footprints turning left at the mysterious intersection, ... 21:04
ingy PerlJam: andents don't add to the indentation stack 21:06
they just match one indentation great than the current level
japhb "Today I plan to save a __(noun)__ from the horrible __(noun)__ in the __(adj)__ __(noun)__.
ingy so no cascade
PerlJam: there's an error in the grammar though. see if you can find it :) 21:08
bbl
21:10 Pleiades` joined
pmurias masak: I have thought a bit about the JavaScript vs others as the author language, and I think that if Perl 6 is intended to be a sensible JavaScript replacement (as the author language) we will need to have some advantage that would justify introducing the layer of indirection 21:11
masak aye.
a nice Angular-like framework could be it, perhaps. 21:12
dalek kudo/nom: 1a7f85b | TimToady++ | src/core/List.pm:
don't try to make a batch of size 0
masak I wouldn't mind writing my application in Angular, except the JavaScript is Perl 6.
pmurias likes Angular too
21:12 gfldex left
pmurias would it be possible to create a significantly better Angular? 21:16
japhb Somehow it makes me considerably more interested in learning this particular JS product knowing that people from the Perl 6 world like it. Might not drive me insane, as many frameworks have .... 21:20
masak japhb: in brief: AngularJS lures you in with the shiny (data binding, expression language, dependency injection), and then as you settle into it turns out to have a surprisingly solid "Angular Way" discipline to it that makes writing straight-up JavaScript almost bearable again. 21:22
21:22 nbrown_ joined
masak having said that, I'd rather be writing straight-up Perl 6, I think. 21:23
as to whether it would be possible to create a significantly better Angular, I have no idea. 21:24
japhb "straight-up" meaning no e.g. JQuery, or meaning not e.g. coffeescript?
masak the latter.
japhb Ah, OK.
masak re jQuery though, Angular recognizes how common it is to need it.
timotimo is the segfault in S32-list/uniq.t known?
masak so it supplies its own minimal variant, and if you end up loading the actual jQuery, it steps back and lets it take its place.
japhb I friend of mine used to say he wrote his web code "in jQuery" instead of in JavaScript, since really most of the time he was living in the sugar. 21:25
masak japhb: I see that a lot.
japhb: I teach a bunch of JavaScript. people know jQuery a lot better than they know the underlying language. 21:26
PerlJam resembles that remark when he has to write JS
japhb is not surprised by that
21:26 nbrown_ left
masak I tend to leverege it by showing how jQuery exploits a variety of quirks in JavaScript to do what it does. 21:26
TimToady t/spec/S02-lexical-conventions/comments.rakudo.jvm seems to be hanging these days
japhb I can, if forced, write raw DOM and events code. But my immediate reaction to being asked to do so is to pushd back hard. Because, ewww. 21:27
masak japhb: it's just not cost-effective most of the time. 21:28
japhb Very much agreed. 21:29
masak japhb: though it *is* getting less and less ridiculous as browsers build more stuff into the DOM layer.
japhb: there is a small but growing "Vanilla JS" movement brewing.
japhb Especially when the cost is some of my sanity points.
21:29 treehug88 left
masak but the consensus is still that for "end users" (web authors), jQuery should very much be the go-to default. 21:29
for library writers, it depends. 21:30
pmurias masak: there is angularjs for dart
masak pmurias: also known as AngularDart, yes.
japhb Things must have gotten a whole hell of a lot better in the browsers since the last time I had to real vanilla JS.
masak pmurias: I don't care much for Dart, though I know some people do.
pmurias so what's your prefered JS replacement?
masak pmurias: I'm still shopping around. but I do like TypeScript for various reasons. 21:31
japhb: yes. yes, they have.
japhb: vanilla-js.com/ is tongue-in-cheek, but makes a worthwhile point. 21:32
pmurias masak: why do you dislike Dart?
dalek kudo/nom: 18429d5 | TimToady++ | src/core/List.pm:
just do a straight eager rpa write, 10% faster

No point in involving gather/take at all when we know this is eager. Could probably speed this up further if we had low-level memory copying of rpa pointer data, so we could batch the memory initialization.
Actually, this runs 10% faster on Moar, but a little slower on JVM than previous. We'll optimize for the better optimizer at this point, which is Moar's. Presumably the JVM's optimizer will catch up sooner or later.
TimToady t/spec/S02-lexical-conventions/comments.rakudo.jvm only hangs when run in harness; works find standalone, so probably evalserver is blocking 21:35
PerlJam wonders what "rpa" is since the only thing it expands to in my head is parrot-specific.
masak pmurias: I think Dart is not ambitious enough as a JavaScript replacement. ES6 feels about as ambitious, and more likely to gain marketshare.
TimToady well, there's a lot of code that still say 'rpa' to mean whatever the VM's lowlevel array typ eis
[Coke] why $rpa? callback to resizablepmcarray? 21:36
oh.
[Coke] catches up. "when is this?"
jnthn There's a lot of code living in the $past too... :)
TimToady nowadays it's a Resizable nqP Array
PerlJam How about we just call it RA and open up the space for sun-god puns? :) 21:37
japhb masak: chuckling at Vanilla JS referring to the various frameworks as "Vanilla JS Plugins"
masak pmurias: minor points: (a) void main()? really? (b) they had the chance to introduce static types, and they made them into hints? (c) what would possibly posses Apple or Microsoft or Mozilla to start supporting Google's JavaScript-killer language natively in their browser? 21:38
japhb: :)
TimToady Three cheers for the sun god! He sure is a fun god! Ra! Ra! Ra!
pmurias masak: re (c) - there is dart2js which seems to produce code without a performance penalty 21:39
without a signifcant performance penalty
masak pmurias: that's great. so Dart is another author language that compiles to JS. as such, it's not terribly impressive.
(IMHO) 21:40
pmurias masak: and I think Google could easily bully Mozilla to add Dart to firefox
masak guess we'll have to wait and see.
that *would* make it more interesting, though.
maybe the web would somehow be helped by having two native languages.
PerlJam doubts it 21:41
I mean ... we could have had *BASIC* as one of the web languages ;)
japhb PerlJam: That depends on whether the second one is good enough to trigger the first back into rapid innovation mode. Like V8 did for ... well, everyone else's JS implementation. 21:42
masak yeah.
though EcmaScript is definitely in rapid innovation mode now.
pmurias Dart seems a better Perl6 compilation target
masak pmurias: hm. hadn't considered that. 21:43
pmurias: if you finish a Dart backend before the JS one, I will officially be interested in Dart. :>
PerlJam heh
21:48 Ven joined
Ven masak: re "people know jQuery a lot better than they know the underlying language." <- you tell me :-). I often get downvoted on Stackoverflow because I say something in angular "works like in js" without re-explaining the whole js stuff 21:49
or we get people asking coffee questions "I create two instances, push to the first, it's also in the second's" well, if you set the property on the constructor's prototype .. 21:50
I'm kinda scared by Perl6, but I'd really rather avoid writing JS :-).
masak Ven: understanding the underlying data model of a language is invaluable. otherwise, one is likely to have to live with weird aliasing problems and roundabout hacky solutions. 21:52
Ven but I'm not sure if we can leverage Angular in p6(-js). Every other altJS that's not "just a bit prettier" (coffee, dart, ts, etc) have icky interfaces
because angular relies pretty heavily on JS being JS.
masak Ven: much of what I teach in the JavaScript courses is how JavaScript actually does things. people are generally very grateful -- no-one ever explained these things to them. all they had was StackOverflow and (shudder) w3schools. 21:53
Ven .o( yer a jquery w3fools, harry )
I actually most often that not don't include jQuery. But I have this big advantage: I don't care about older browsers. 21:54
masak Ven: yes, AngularJS makes a good case of "preserving" the JS part while enhancing it with structure. I don't think we can pull that off with Perl 6.
21:54 pyrimidine left
pmurias Ven: which Perl 6 features do you think I'll have a hard time implementing in rakudo-js? 21:55
Ven as for dart in browsers ... Not going to happen. Not even dart in chrome is going to happen :-). the chrome lead dev is very much against it
hoelzro pmurias: anything dealing with concurrency =/
Ven pmurias: everything nonbasic, actually.
hoelzro </2c>
masak so maybe the slogan "an AngularJS for Perl 6" is not so useful. but here's what I want: I want (a) the whipuptitude of AngularJS, but (b) writing Perl 6 application logic. then fill in the blanks. :)
Ven backlogged enough so that he read masak++'s answer online instead of in his irc client :-) 21:56
pmurias: dispatching is going to be painful and costful. capturing functions with correct `this` and such. corner-cases of destructuring arrays/hahes/instances, named args, ... 21:57
the flattening operator. multi-indices indexing. HyperWhatever, `;` and `;;`.
21:59 klaas-janstol joined
Ven containers are going to be insanely hard to optimize. I've got no clue about these - at all. Implementing an efficient `~~`. Simulating `my` (would need js' `let`.). Dynamic variables. lazy arrays. infinite arrays. And blah, blah, blah. 21:59
masak Ven: re js' `let` -- turns out ES3's `catch` blocks have block scope! and you can use them to emulate `let`. 22:00
crazy, I know.
Ven masak: that's true ... except in JScript :-).
masak: don't expect to teach the monkey how to make faces :p 22:01
masak what, IE's engine?
is that, like, IE below some given version, even?
Ven 'think so. And the old embedded JS stuff. and wsh
masak ok, then I don't care much at all. 22:02
Ven github.com/jashkenas/coffeescript/pull/1476
masak: also, github.com/jashkenas/coffeescript/issues/2422 .
so, yes, I know how es3's catch works, but it's a terrible idea to use that to emulate `let`. 22:04
I'd much rather do something SSAF-y (somewhat) where you generate new names for inner 6scopes. 22:05
22:07 araujo left 22:08 araujo joined 22:10 tgt left
masak Ven: interesting. 22:11
Ven: I only recently learned about the subtle interaction between let declarations and function hoisting. now there's a corner case I didn't see coming. 22:12
Ven well, I only learned recently that you can re-declare variables that appear in the arglist (`fn (foo) { var foo; }`) and keep the value! how terrible :-) 22:14
pmurias masak: emulating my with 'catch' blocks - that's a horrible idea as try/catch disables optimalisation in v8
Ven: re my I'm already doing that 22:16
ingy PerlJam: the fixed bug is here: gist.github.com/anonymous/5ab0fe69...-swim-L136
Ven yay ;-)
pmurias Ven: just by (function() {})() for introducing a perl6 block 22:17
masak pmurias: depends how much you value the semantics, I guess. Traceur does exactly that, for example. and there's been talk about optimizing exactly that case in v8, because people are starting to compile to it.
pmurias named arguments I emulate by passing a named arguments hash 22:18
dynamic variable I emulate by having a ctx argument containing the dynamic lexicals 22:19
jnthn pmurias: fwiw, NQP is really pretty good by now at optimizing away lexical scopes that aren't needed, and Rakudo will converge towards that with time, so compiling a QAST::Block into a function to get the lexical scope semantics will be a good choice. 22:20
Heck, NQP is good at optimizing away *lexicals*.
pmurias jnthn: good ;)
jnthn: it turn them into local which I compile into lexicals anyway ;) 22:21
Ven the this-passing will become costly in the long run, I believe.
jnthn pmurias: heh, yes :)
pmurias: Moar cares a bit more :) 22:22
pmurias generally emulating features requires either a performance penalty or good static analysis
22:23 nbrown_ joined
jnthn bbi10 22:23
pmurias bbi10? 22:24
Ven be back in 10, I'd say
geekosaur be back in 10 (minutes)?
Ven welp.
pmurias the good thing about v8 is that it has a lot of performance we can sacrifice 22:25
22:27 nbrown_ left
japhb I had a FOAF who retrofitted a turbine engine to a normal car chassis. He drove around town with the turbine basically idling and brake pressure determining speed. You appear to be recommending the same, except s:g/turbine/V8/. 22:28
Ven pmurias: well, we're deep into SufficientlySmartCompiler's field :-)
22:28 klaas-janstol left
Ven .o( I got 99 problems but nqp's SufficientlySmartCompilerCompilerGenerator ain't one ) 22:29
pmurias nqp currently isn't a very smart compiler
Ven that was mostly a reference to futamura's projections -- I guess I should've said "pypy" instead of nqp there. 22:30
22:31 Psyche^ joined 22:33 klaas-janstol joined 22:35 Psyche^_ left 22:40 iarna left
masak japhb: that reminds me about a Darwin award Liz told a bunch of us about. 22:41
FROGGS masak: I remember too :o) 22:46
masak www.darwinawards.com/darwin/darwin1995-04.html
I'm not terribly shocked to learn this particular one wasn't true. 22:49
22:56 xragnar left 22:59 xragnar joined 23:01 dwarring left
[Coke] pmurias: are you at a point where folks can help? 23:02
(with rakudo-js)
timotimo m: say "foo" xx -1
camelia rakudo-moar 18429d: OUTPUT«MVMArray: Can't resize to negative elements␤ in sub infix:<xx> at src/gen/m-CORE.setting:8720␤ in block at /tmp/UF1Xx0gOHy:1␤␤»
timotimo ^- that way a bunch of spectests explode 23:03
and i've been thinking i broke something %)
timotimo looks for a good fix
TimToady ah, probalbly my fault 23:07
23:08 pmurias left
timotimo yup :) 23:09
i've got you covered, though
there are some more failures, it seems. maybe i need to put a abort-if-negative into a different multi candidate, too 23:10
# at t/spec/S32-array/exists-adverb.t line 31 23:12
# got: (Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True).list.item
# expected: $(Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True)
i don't think this is my fault :)
dalek kudo/nom: 2204422 | (Timo Paulssen)++ | src/core/List.pm:
return an empty list for foobar xx -1
23:13
23:14 aoseki joined
labster rn: say ".pl".succ 23:16
camelia rakudo-{parrot,jvm,moar} 18429d: OUTPUT«.pl␤»
..niecza v24-109-g48a8de3: OUTPUT«WTF␤»
labster niecza is the most suprising, but I was expecting ".pm"
23:17 akaseki left
TimToady see S03:426 23:20
synopsebot Link: perlcabal.org/syn/S03.html#line_426
labster Just noticed it myself TimToady.
I also noticed that .succ and .pred need to be documented in S32::Str, which I should probably do. 23:21
masak 'night, #perl6 23:22
labster 'night masak
23:24 nbrown_ joined 23:27 klaas-janstol left
timotimo oh hey labster :) 23:27
23:28 nbrown_ left 23:29 j4jackj left 23:31 spider-mario left
timotimo TimToady: can you look into the exists-adverb thing? 23:32
TimToady sure 23:33
timotimo looks kind of similar to something you'd be involved in, or mouq? maybe lizmat?
23:36 Colby` joined, telex left, Pleiades` left, Colby` is now known as Pleiades`, telex joined
labster hi timotimo! 23:44
timotimo i think i haven't seen you in here for a long time
labster busy with $dayjob mostly. 23:45
YAPC::NA gave me enough time to unbust my P6 modules, but I've been knee deep in a pile of old Perl 5. 23:46
23:57 Ven left 23:58 [j4jackj] joined