Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-08-19

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | full mode

All times shown according to UTC.

Time Nick Message
00:15 [Coke] t/spec/S02-types/multi_dimensional_array.t is failing.
00:20 PerlJam Seems we need a "fudge" for setting LOLLY
00:20 TimToady yes, I mentioned that test last night
00:21 TimToady but it's a temporary thing, so maybe just run the tests under LOLLY, since I've already vetted them for poisoned lollipops
00:24 TimToady it's really only the panda modules and dar6pan that need to run once without LOLLY and get fixed
00:25 PerlJam TimToady: Are you going to do shaped decls next?  :)
00:25 TimToady no, I think Mouq++ is headed that direction
00:25 * TimToady is working toward a faster gather/take now
00:27 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 TimToady a variant, not a replacement, to be used when known eager
00:27 TimToady or known pure code
00:30 TimToady 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:34 TimToady if I can get the latter to work, it makes it easier to reify a batch all at once before yielding
00:36 TimToady then take becomes something like 'push $!reified, $taken; yield if $!reified.elems %% $batchsize'
00:44 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:11 dalek Heuristic branch merge: pushed 137 commits to roast/S26-WHY by hoelzro
01:16 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:17 TimToady S04:796
01:21 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:24 jnthn I did get to the gather/take and coroutines (actually continuations in Moar) bit.
01:25 jnthn One thing I've wondered is how many of those cases could be eliminated by implementing r-value loops.
01:25 jnthn xx could be done that way, for example
01:37 jnthn fwiw, I don't think GATHER_PROMPT and SENTINEL are problems. They're simply unique enough markers.
01:38 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.
01:39 jnthn Though what's underneath it is quite different.
01:39 jnthn (Since stack frames are more "first class" in Moar)
01:40 TimToady do you think it would work to give 'take' a direct reference to $!reified to push to?
01:41 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 jnthn That is, still have take do the exception throw, but it immediately resumes rather than doing continuation-y stuff.
01:42 jnthn 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
01:46 jnthn Right, that's what I'd been hoping for
01:46 jnthn The other thing I'd been thinking - though didn't yet figure out a good model, is that in:
01:46 jnthn my @a = 0 xx 1000;
01:46 jnthn It's be really nice if we could have it reify directly into $!items of @a
01:46 jnthn And avoid all the copying.
01:46 jnthn Maybe that's what you meant by direct reference to $!reified...
01:46 jnthn Question really is when we know we can get away with such cheating.
01:47 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:48 TimToady we haven't got there quite yet
01:49 jnthn Yes, it's making that situation work out without ending up with deadlock...
01:51 TimToady but direct reification might be just what the doctor ordered to avoid the current behavior
01:52 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:53 jnthn The other thing that would be really nice is if:
01:53 jnthn for something() { ... }
01:53 jnthn Could compile into something that pulls values from some iterator, and so can flatten away taht block
01:54 jnthn Though maybe that's less of an issue when spesh gets cleverer about closure semantics.
01:55 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 { ... }
01:59 jnthn 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 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)
02:01 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 :)
02:03 jnthn visit_2d_indices_cross is a good one to look at for X being slow, fwiw.
02:06 TimToady well, X should be constant foldable with constant ranges, fwiw
02:07 jnthn The result in visit_2d_indices_for suggests the cost is in the X, afaict.
02:09 jnthn (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.)
03:05 dalek Heuristic branch merge: pushed 92 commits to rakudo/S26-WHY by hoelzro
03:05 dalek roast/S26-WHY: f9ad8e9 | (Rob Hoelz)++ | integration/advent2011-day10.t:
03:05 dalek roast/S26-WHY: Fix calls to POD .content
03:05 dalek roast/S26-WHY: It's now .contents
03:07 dalek roast: 2c0ae6c | (David Warring david.warring@gmail.com)++ | integration/advent2012-day04.t:
03:07 dalek roast: removed invalid test
04:01 dalek rakudo/S26-WHY: 358271b | (Rob Hoelz)++ | src/core/Pod.pm:
04:01 dalek rakudo/S26-WHY: Mark Pod::Block.content as deprecated
05:49 dalek rakudo/nom: e7835e9 | TimToady++ | src/core/GatherIter.pm:
05:49 dalek rakudo/nom: gather should batch an eager reify
05:49 dalek rakudo/nom: Just changing the batch size from 1 to 1000 makes a simple gather/take
05:49 dalek rakudo/nom: run twice as fast, even though it's still doing all the continuations.
05:52 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
06:16 dalek rakudo/nom: f1a7c65 | TimToady++ | src/core/List.pm:
06:16 dalek rakudo/nom: make xx about 3 times faster on literals
06:17 TimToady for N in the neighborhood of 100000
06:19 TimToady still uses gather/take, but does batches of 100 for N larger than 100
06:20 TimToady it's also a pity we don't have a GatherIter that just pushes rather than parcelizing each take
06:22 TimToady and really one should scale the batch size to the order of magnitude of sqrt(N) or so
06:22 TimToady but this is a start
08:20 lizmat jnthn: confirmed that Moar master does not segv's with jit enabled and without LOLLY
08:23 lizmat yup, and spectest is clean
08:23 lizmat except for LOLLY tests
08:23 lizmat so I'm gonna bump revisions
08:24 dalek nqp: 3857128 | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION:
08:24 dalek nqp: Bump for fix for LOLLY crash on OSX
08:24 dalek rakudo/nom: scale xx better based on size
08:26 lizmat testing bumped NQP version now
08:34 dalek rakudo/nom: 6e536ac | TimToady++ | src/core/List.pm:
08:34 dalek rakudo/nom: couple of buglets in previous patch
08:45 dalek rakudo/nom: ebfe24f | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION:
08:45 dalek rakudo/nom: 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
08:46 TimToady and on 10_000_000 at least 100 times faster
08:47 brrt what is the LOLLY problem?
08:49 TimToady doesn't do nqp::getenvhash right when there's no entry
08:49 TimToady reproduced test failures here, investigating
08:56 dalek rakudo/nom: c516d5e | TimToady++ | src/core/List.pm:
08:56 dalek rakudo/nom: xx * can also be called with :thunked
09:01 TimToady now just fails the usual two suspects, IO-Socket-Async and uniq
09:03 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:04 TimToady m: say (42 xx 10_000_000).elems
09:04 camelia rakudo-moar f1a7c6: OUTPUT«10000000␤»
09:23 TimToady and that 5-times gather/take speedup was merely paying attention to eager context with the mechanism already there
09:23 TimToady didn't get rid of coro calls, but now call a bunch of them at once, so cache probably stays hotter
10:17 jnthn TimToady: array_set_xx was 350x slower than Perl 5, now only 21 times slower
10:19 jnthn Marginal improvement on rc-forest-fire
10:24 * masak is positively surprised by t/spec/S02-types/multi_dimensional_array.t
10:24 masak I didn't know we had that much of multidim in place.
10:25 masak means I'll start using it in code, I guess.
10:26 jnthn masak: Yes, I need to catch up on what's been happening there too :)
13:05 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:31 [Coke] 786 new/open tickets in RT.
13:32 masak I think we were near 800 when the RT queue was at its worst somewhere around 2009-2010.
13:32 masak but it doesn't feel nearly as bad these days :)
13:32 [Coke] 685 rakudo fudges in roast that don't say "NYI, RT#, unspecced"
13:32 [Coke] masak: ^^ that's why. :P
13:32 [Coke] we're hiding almost as many tickets in the test suite, unopened.
13:33 FROGGS I'd like to do a bugfixathon again soonish... though, would be nice to not do that alone...
13:36 masak relevant: http://arstechnica.com/information-technology/2014/08/keep-a-programming-language-backwards-compatible-or-fix-its-flaws/
13:42 [Coke] parrot is building again: should we keep https://rt.perl.org/Ticket/Display.html?id=122436 open?
13:45 dalek specs: 775d078 | (Elizabeth Mattijsen)++ | S03-operators.pod:
13:45 dalek specs: Remove Range :by fossil
13:47 [Coke] rakudo: Foo::bar(); module Foo { our $x = 42; our sub bar() { $x.say } }
13:47 camelia ..rakudo-{parrot,moar} c516d5: OUTPUT«(Any)␤»
13:48 [Coke] ^^ https://rt.perl.org/Ticket/Display.html?id=79464 just needs a test and is closable.
13:52 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:53 [Coke] m: multi infix:<===>(NaN \a, NaN \b) { True }; say NaN===NaN
13:53 camelia rakudo-moar c516d5: OUTPUT«True␤»
13:53 dalek roast: 8120b6b | (Elizabeth Mattijsen)++ | S02- (10 files):
13:53 dalek roast: Last batch of dies_ok -> throws_like cleanup
13:53 [Coke] ^^ is that an ok way to handle that? preferable to putting in logic in the Num variant, aye?
13:53 lizmat it just wears me out too much
13:53 lizmat afk for a bit&
13:54 [Coke] hugme: hug lizmat
13:54 gtodd lizmat: don't wear out!
13:56 * masak hugs lizmat
13:58 masak m: multi infix:<===>(NaN, NaN) { True }; say NaN === NaN
13:58 masak [Coke]: simpler.
13:59 Ulti neat Cris Fields is pushing to the BioPerl6 repo again >:3
13:59 Ulti *Chris
14:00 * moritz didn't know you could use NaN in a type position
14:03 masak m: multi infix:<+>(2, 2) { 5 }; say 2 + 2
14:03 camelia rakudo-moar c516d5: OUTPUT«5␤»
14:03 moritz m: multi infix:<+>(2 $a, 2 $b) { 5}; say 2 + 2
14:03 camelia rakudo-moar c516d5: OUTPUT«5␤»
14:04 moritz such wow.
14:05 moritz well, we've had that feature for a while, but I didn't know it allowed a variable after the expression
14:06 masak m: multi infix:<+>(/foo/ $l, /bar/ $r) { $l ~ $r }; say "the foo says: " + "OH bar HAI!"
14:06 camelia rakudo-moar c516d5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/E8Lhjkgcsv�Cannot use a value type constraints whose value is unknown at compile time�at /tmp/E8Lhjkgcsv:1�------> [32mmulti infix:<+>(/foo/ [33m�[31m$l, /bar/ $r) { $l ~ $r }; say "the f…»
14:06 masak apparently there are limits.
14:06 masak "whose value is unknown at compile time"?
14:06 masak how is that? I thought a regex was a fairly known thing.
14:08 masak m: multi infix:<+>($l where /foo/, $r where /bar/) { $l ~ $r }; say 2 + 2
14:08 camelia rakudo-moar c516d5: OUTPUT«4␤»
14:08 * masak ♥ Perl 6
14:09 * moritz remembers a time using your own multi with a setting-defined multi wouldn't work reliable
14:10 masak not so long ago.
14:11 FROGGS[mobile] there was also the problem where you got a conflict when trying to import another candidate from a module
14:12 moritz or the same candidate one through a module, once directly
14:13 FROGGS[mobile] and it took only about two months to fix it
14:14 dalek rakudo/nom: a82c407 | coke++ | src/core/Num.pm:
14:14 dalek rakudo/nom: NaN === NaN (RT #83622)
14:14 dalek rakudo/nom: masak++ for a simplification
14:15 dalek roast: a5a1fcf | coke++ | S02-types/nan.t:
14:15 dalek roast: Fixed in rakudo
14:15 grondilu today I tried again to write a parallel version of mandelbrot.  Failed again:  https://gist.github.com/grondilu/9990847
14:16 grondilu it appear to fail non-determinastically and when it fails it's with the can not write read-only variable
14:17 colomon may well be a moar bug
14:17 colomon at least, last time I tried parallel mandelbrot, it worked great under JVM and was glitchy under Moar
14:18 * colomon is building jvm
14:18 colomon make: *** No rule to make target `j-clean', needed by `clean'.  Stop.
14:18 colomon Failed running make realclean at /Users/colomon/.rakudobrew/bin/rakudobrew line 23.
14:19 tadzik I think I'm going to put git clean in there
14:29 moritz m: say NaN === NaN, NaN == NaN
14:29 camelia rakudo-moar c516d5: OUTPUT«FalseFalse␤»
14:30 moritz after a82c4076057fb543ec5bd56b06be1ffd67796f26,  NaN === NaN will say True and NaN == NaN will say False
14:30 moritz that's just SO WRONG
14:30 moritz how can two things be identical, but not equal?
14:32 colomon "A comparison with a NaN always returns an unordered result even when comparing with itself."
14:33 colomon http://en.wikipedia.org/wiki/NaN
14:34 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:37 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:39 masak moritz: IEEE 754 requires that NaN not be numerically equal to *anything*, not even itself.
14:39 PerlJam gtodd: treating it as a label would be a nice way to handle it, and that's what should happen IMHO
14:40 masak moritz: but === ignores numerical semantics, and asks "is this *the same thing*?". yes it is. it's NaN, twice.
14:41 masak moritz: meaning, for example, that `$num === NaN` will tell you the truth.
14:44 masak well, can you create two different NaNs in Perl 6?
14:51 moritz there are signalling and quiet NaNs
14:52 [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␤␤»
14:52 masak wow, the error message doesn't know what it failed to convert.
14:52 [Coke] that looks reasonable to me.
14:52 masak [Coke]: it does, but then you find out the spec isn't reasonable.
14:53 masak [Coke]: in the spec, Inf is a Num, an Int, and a Str.
14:53 masak [Coke]: or at least enough like one to act as the rhs of a range.
15:04 gtodd hmm using Perl6::Feeds I experimented with feeds ... but now, using perl6, not all the syntax from http://en.wikibooks.org/wiki/Perl_6_Programming/Lazy_Lists_and_Feeds#Feeds  works as well as in perl5... 8-)   ...
15:09 TimToady feeds are "experimental" :)
15:19 ingy masak: do you know a lot about p6 parsing?
15:20 masak I've lost touch with the NQP internals about two parser overhauls ago.
15:20 masak but I write a lot of grammars, if that's what you mean.
15:21 ingy yeah, I'm kinda stuck on a lex vs parse thing, and pinged jnthn about it last night
15:22 ingy it doesn't involve p6 but I think a p6 mindset is needed
15:22 ingy I wrote it up (tired) here: https://gist.github.com/anonymous/31b2017c97abee2c5af0
15:22 ingy when I woke up (just now) I had a fuzzy conclusion
15:23 ingy that it is ok to pre lex up to the end of a statement
15:23 ingy ie the lexing rules won't change mid-statement
15:26 ingy 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 ingy and maybe I'm running into that need here
15:27 masak ingy: my first thought is: I have no idea.
15:27 * TimToady now knows what TimToady's answer would be that ingy is scared of :)
15:31 ingy some of that problem space also applies to parsing YAML, which I've been working on with some success
15:34 masak rurban++ # parrot-6.7.0
15:35 rurban parrot: this time only marginal perf improvements, but added some more missing UNICODE name aliases
16:02 dalek nqp: 53583b8 | coke++ | tools/build/PARROT_REVISION:
16:02 dalek nqp: require parrot 6.7.0
16:09 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:10 [Coke] gtodd: your parrot is new enough, then.
16:10 [Coke] if you want to force it, you can do --gen-parrot=master
16:10 [Coke] but unless you're testing/fixing something parrot releated, prolly not worth it.
16:20 gtodd ok same old error I've had for a while http://paste.scsys.co.uk/416737?tx=on&amp;submit=Format+it%21
16:20 gtodd not really a  parrot  thing
16:22 dalek nqp-js: 03e4199 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
16:22 dalek nqp-js: Implement nqp::pow_n.
16:24 gtodd I redid the build with --gen-parrot=RELEASE_6_7_0  and it seems to have worked :)
16:31 [Coke] the next rakudo release will require that version, so good it fixes something.
16:31 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/9b8cb15fe7
16:32 [Coke] rakudo.parrot failing 71 tests. jvm, 186. moar, 66-67
16:32 [Coke] *sadface*
16:40 masak TimToady: what does "fix all the lolligags" mean?
16:40 masak TimToady: what needs to be fixed before this opt-in feature can be the default?
16:40 TimToady (foo;bar) that are intended to mean SEQ(foo;bar), not LoL
16:41 * masak feels like he fell asleep and woke up in a different Perl 6
16:41 masak who writes (foo;bar) ? not me.
16:41 TimToady masak: don't go away for so long next time, silly!
16:42 masak OK, let's start over.
16:42 masak what does SEQ(foo;bar) mean?
16:42 masak is it spec'd?
16:42 TimToady yes
16:43 TimToady see S02:2462
16:43 masak ok, it's from yesterday.
16:43 masak that makes me feel a little better. :)
16:44 masak I'm happy we're spec'ing these lol things. that's been long in the coming. TimToady++ for that.
16:46 TimToady next release after this one, the lolligag check goes away, and lollipops get the new LoL meaning
16:49 timotimo git the change you want to log in the world
16:51 dalek roast: 40bd158 | coke++ | S02-types/multi_dimensional_array.t:
16:51 dalek roast: 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
17:02 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␤»
17:02 camelia ..rakudo-{parrot,jvm} a82c40: OUTPUT«("a" => "b > c > d").hash␤("a" => ().list.item).hash␤»
17:02 japhb ^^ Note the different result for r-j
17:03 japhb Current annoying bug of the day.  :-)
17:12 pmichaud a proposed patch for nqp was just posted to the debian rakudo-devel list
17:13 pmichaud http://lists.alioth.debian.org/pipermail/pkg-rakudo-devel/2014-August/000432.html
18:10 dalek ufo: 83674a0 | (Steve Mynott)++ | bin/ufo:
18:10 dalek ufo: fix ufo to work with new compiled suffixes
18:20 ingy masak, jnthn, TimToady: Here's my strawman: https://gist.github.com/anonymous/32ce47462616a6e99d2a#file-parsingproblem-swim-L101
19:39 carlin how can I catch SIGINFO or SIGUSR1?
19:42 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␤»
19:42 flussence That enum type seems kinda short...
19:43 jnthn Sometimes leaving an LHF task for others works out. Sometimes, this happens. :)
19:44 flussence I haven't poked around in the rakudo source for a while, maybe I'll go take a look...
19:56 flussence okay, I know enough about signals to know I don't know enough to touch this :)
20:07 gtodd flussence:  Signal.enums is even shorter in perl6-j
20:19 carlin looks like the actual signal codes are defined in Moar
20:26 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 carlin gotta touch all the repos
20:26 carlin where does Signal.^enum_value_list get defined?
20:26 jnthn carlin: That's just derived from the enum declaration.
20:28 carlin I should be able to take a stab at doing this tonight
20:28 jnthn ++carlin
20:31 flussence I've got this so far, if it's any help: https://gist.github.com/flussence/7520b3a659e9cd95fec1
20:31 flussence (seems like SIGRTMIN and SIGRTMAX are runtime-defined, fun)
20:32 carlin rakudo does qx/kill -l/.words to get the list
20:35 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␤»
20:35 camelia ..rakudo-{parrot,jvm} a82c40: OUTPUT«No such method 'signals' for invocant of type 'Kernel'␤  in block  at /tmp/tmpfile:1␤␤»
20:40 japhb m: say &signal   # The stringification of the :$scheduler param seems rather verbose
20:40 camelia rakudo-moar a82c40: OUTPUT«sub signal (Signal $signal, *@signals, Any :scheduler($scheduler) = { ... }) { #`(Sub|73661584) ... }␤»
20:41 japhb Any should be assumed, and :scheduler($scheduler) should just be :$scheduler
20:41 japhb timotimo: Another for your LHF list ^^
21:12 dalek rakudo/nom: 1a7f85b | TimToady++ | src/core/List.pm:
21:12 dalek rakudo/nom: don't try to make a batch of size 0
21:24 timotimo is the segfault in S32-list/uniq.t known?
21:26 TimToady t/spec/S02-lexical-conventions/comments.rakudo.jvm seems to be hanging these days
21:32 dalek rakudo/nom: 18429d5 | TimToady++ | src/core/List.pm:
21:32 dalek rakudo/nom: just do a straight eager rpa write, 10% faster
21:32 dalek rakudo/nom: Could probably speed this up further if we had low-level memory copying
21:32 dalek rakudo/nom: of rpa pointer data, so we could batch the memory initialization.
21:35 TimToady t/spec/S02-lexical-conventions/comments.rakudo.jvm only hangs when run in harness; works find standalone, so probably evalserver is blocking
21:55 pmurias Ven: which Perl 6 features do you think I'll have a hard time implementing in rakudo-js?
21:55 hoelzro pmurias: anything dealing with concurrency =/
21:55 Ven pmurias: everything nonbasic, actually.
21:57 Ven 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 Ven the flattening operator. multi-indices indexing. HyperWhatever, `;` and `;;`.
21:59 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.
22:20 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 jnthn Heck, NQP is good at optimizing away *lexicals*.
23:02 [Coke] pmurias: are you at a point where folks can help?
23:02 [Coke] (with rakudo-js)
23:02 timotimo m: say "foo" xx -1
23:02 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␤␤»
23:03 * timotimo looks for a good fix
23:07 TimToady ah, probalbly my fault
23:09 timotimo i've got you covered, though
23:13 dalek rakudo/nom: 2204422 | (Timo Paulssen)++ | src/core/List.pm:
23:13 dalek rakudo/nom: return an empty list for foobar xx -1
23:16 labster rn: say ".pl".succ
23:16 camelia rakudo-{parrot,jvm,moar} 18429d: OUTPUT«.pl␤»
23:16 camelia ..niecza v24-109-g48a8de3: OUTPUT«WTF␤»
23:16 labster niecza is the most suprising, but I was expecting ".pm"
23:32 timotimo TimToady: can you look into the exists-adverb thing?
23:33 TimToady sure
23:44 labster hi timotimo!
23:44 timotimo i think i haven't seen you in here for a long time
23:45 labster busy with $dayjob mostly.
23:46 labster YAPC::NA gave me enough time to unbust my P6 modules, but I've been knee deep in a pile of old Perl 5.

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | full mode

Perl 6 | Reference Documentation | Rakudo