Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-06-13

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

All times shown according to UTC.

Time Nick Message
01:55 sortiz joined #perl6-dev
02:52 llfourn joined #perl6-dev
03:33 skids joined #perl6-dev
03:49 CQ2 joined #perl6-dev
04:55 sortiz joined #perl6-dev
06:08 [Tux] This is Rakudo version 2016.05-116-g5d49498 built on MoarVM version 2016.05-18-g1339332
06:08 [Tux] test            17.164
06:08 [Tux] test-t           9.781
06:08 [Tux] csv-parser      21.413
06:13 sno joined #perl6-dev
07:02 RabidGravy joined #perl6-dev
07:07 cognominal joined #perl6-dev
08:14 AlexDaniel joined #perl6-dev
09:03 dalek rakudo/nom: b351d61 | lizmat++ | src/core/Mu.pm:
09:03 dalek rakudo/nom: Fix for RT #128393, sortiz++ for spotting
09:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b351d61006
09:03 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128393
09:27 edehont joined #perl6-dev
09:30 sortiz lizmat, about the nqp::while Seq producer semantic, wondering why a simple while is more expensive or if other looping construct can be faster.
09:31 lizmat the reason I changed many of those loops to nqp::while, is that they're guaranteed to not sink
09:32 lizmat postfix while currently doesn't sink either, but that could be considered a bug
09:32 lizmat also, I don't think nqp::while generates a Seq: it's just that if you look at it at the p6 level, it turns into a Seq
09:33 lizmat jnthn: please correct me if I'm talking nonsense here  :-)
09:33 jnthn m: say nqp::while(my $i = 0, $i, $i = $i + 1)
09:33 camelia rakudo-moar b351d6: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Could not find nqp::while, did you forget 'use nqp;' ?␤at <tmp>:1␤------> y nqp::while(my $i = 0, $i, $i = $i + 1)⏏<EOL>␤»
09:33 jnthn m: use nqp; say nqp::while(my $i = 0, $i, $i = $i + 1)
09:33 camelia rakudo-moar b351d6: OUTPUT«()␤»
09:33 jnthn m: use nqp; say nqp::while(my $i = 0, $i < 10, $i = $i + 1)
09:33 camelia rakudo-moar b351d6: OUTPUT«()␤»
09:33 jnthn m: use nqp; nqp::while(my $i = 0, $i < 10, $i = $i + 1).say
09:33 camelia rakudo-moar b351d6: OUTPUT«()␤»
09:34 lizmat jnthn: nqp::while takes the condition as the first
09:34 jnthn oh wait
09:34 jnthn yeah, duh
09:34 sortiz m: use nqp; my int $i = 0; nqp::while(nqp::islt_i($i,10),($i = nqp::add_i($i,1))).say';
09:34 camelia rakudo-moar b351d6: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> lt_i($i,10),($i = nqp::add_i($i,1))).say⏏';␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement modi…»
09:34 jnthn m: use nqp; say nqp::while($i < 10, $i = $i + 1)
09:34 camelia rakudo-moar b351d6: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Variable '$i' is not declared␤at <tmp>:1␤------> use nqp; say nqp::while(⏏$i < 10, $i = $i + 1)␤»
09:34 jnthn m: use nqp; my $i = 0; say nqp::while($i < 10, $i = $i + 1)
09:34 camelia rakudo-moar b351d6: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
09:34 psch m: use nqp; my $i = 0; say nqp::what(nqp::while($i < 10, $i = $i + 1))
09:34 camelia rakudo-moar b351d6: OUTPUT«(Sub+{<anon|65390768>})␤»
09:34 jnthn m: use nqp; my $i = 0; say WHAT nqp::while($i < 10, $i = $i + 1)
09:34 camelia rakudo-moar b351d6: OUTPUT«(Seq)␤»
09:35 jnthn Interesting... :)
09:35 jnthn Oh...maybe we did override it to do that :)
09:35 jnthn To ease code-gen of r-value while loops
09:35 jnthn Which is good really...
09:36 jnthn I guess in sink context it just does The Usual Thing :)
09:39 dalek rakudo/nom: 4890cdc | lizmat++ | src/core/Mu.pm:
09:39 dalek rakudo/nom: Pass on any fail in BUILD directly back to caller
09:39 dalek rakudo/nom:
09:39 dalek rakudo/nom: This means that .new may return a Failure from now on.  So you can do
09:39 dalek rakudo/nom: a Foo.new // say "what" now.
09:39 dalek rakudo/nom:
09:39 dalek rakudo/nom: This behaviour change does not cause any spectest breakage, and seems
09:39 dalek rakudo/nom: useful to have.  sortiz++ for suggesting
09:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4890cdc5da
09:40 lizmat jnthn: any opinions about this ^^^ ?
09:42 jnthn Hmm
09:43 jnthn Dunno, it costs us the extra type-check...
09:43 jnthn OTOH, we don't have the cost of sinking :)
09:43 sortiz m: class Foo { submethod BUILD { fail "noway" }}; with Foo.new { say "good" } else { .fail };
09:43 camelia rakudo-moar b351d6: OUTPUT«noway␤  in submethod BUILD at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
09:44 jnthn And they should probably be something we can optimize out in many cases, after my next chunk of work on code-gen'd BUILDALL
09:44 jnthn So I'm OK with it I think, but it could do with a pass through TimToady also. :)
09:45 jnthn It may be that failure to construct an object deserves to be fatal for some reason...
09:45 lizmat but being able to do Foo.new // say "what"  seems useful as well, no ?
09:46 sortiz Or handled with 'with', 'andthen', etc.
09:47 jnthn Yes, provided it doesn't cause some kind of WTF I didn't foresee yet :)
09:47 lizmat fwiw, it didn't cause any spectest breakage  :-)
09:48 sortiz lizmat, btw, what is the impact of that change in performance?
09:49 lizmat it would only affect classes with a BUILD in them
09:49 lizmat and now cause an extra nqp::istype
09:50 lizmat I'll benchmark in a moment, but I don't think it will cause a problem
09:51 sortiz Oki, thank you for the fast fix, and the improvement.
09:54 dalek roast: f2105b8 | lizmat++ | S12-construction/BUILD.t:
09:54 dalek roast: Add tests for RT #128393
09:54 dalek roast: review: https://github.com/perl6/roast/commit/f2105b8c40
09:54 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128393
09:56 psch hmm, am i getting this right that the fix in nqp commit adb2c8f7 means that the nested CU MAST::Frames get added to the surrounding CU?  as in, the EVAL M::Frames get added to the CU that does the EVAL
09:56 psch and doesn't that mean for nqp-j that, if we are in an EVAL, we don't want a J::Class, but just add the J::Methods to the surrounding J::Class?
09:58 psch well, even if that's true, there's still something missing.  we also return a MAST::CU, and we probably also always use that for something... :/
10:00 lizmat sortiz: within noise levels
10:01 sortiz lizmat++ # RT#128393 closed!
10:01 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128393
10:14 lizmat [Tux] : I seem to have mislaid the link to the test-t graphs again  :-(
10:15 jnthn lizmat: See my blog post to learn how to measure beneath the noise leve :D ;)
10:15 lizmat yeah, I've read it...
10:15 jnthn (If it's helpful to you, anyways. :))
10:16 lizmat well, on OS X it's all different...  :-(
10:16 jnthn Oh, damn :(
10:16 jnthn I had trouble using valgrind there, yeah :(
10:16 jnthn I can work it's just...it seems the OSX folks break the APIs they need every darn release or something :/
10:17 jnthn *It can work
10:17 lizmat anyways, it think it was more about "does this passing on Failure feature make things a lot slower" question
10:17 jnthn So last time I tried, I found that the latest shiny OSX version was just too new for valgrind to have been ported to it yet
10:17 lizmat it probably does, but we should have fixed the non-sinking of BUILD anyway, so
10:17 jnthn I'm somewhat tempted by OSX, but things like that kinda put me off...
10:18 lizmat yeah, I hear you
10:18 stmuk_ dtrace is a nice feature of OS X but the security settings don't let you trace system binaries like /bin/sh so no tracing of shell scripts :/
10:18 jnthn fwiw, is the "run latest" thing a carrot or a stick with OSX?
10:18 stmuk_ that really annoyed me
10:18 * jnthn very rarely upgrades OS
10:19 jnthn (Still on Win7)
10:19 jnthn So I could live with "run an earlier version where valgrind et al work" :)
10:19 jnthn Provided that's practical (e.g. still gets security updates)
10:23 timotimo lizmat, jnthn, remember how i complained about the buildall generator being broken in a way i didn't understand at all?
10:23 timotimo yeah, more like, i forgot to return self at the end
10:23 * lizmat remembers
10:24 lizmat that will break things  :-)
10:24 timotimo on the other hand, the restricted setting blows up now while trying to compile ... :(
10:24 psch hrm, so i have an unsorted list of ints that are strictly ascending with one gap
10:24 dalek rakudo/generate_buildallplan_3: 3fe4c30 | timotimo++ | src/ (3 files):
10:24 dalek rakudo/generate_buildallplan_3: get a tiny head-start on generating buildallplan code in CompilerServices
10:24 dalek rakudo/generate_buildallplan_3: review: https://github.com/rakudo/rakudo/commit/3fe4c305d6
10:24 dalek rakudo/generate_buildallplan_3: 8942239 | timotimo++ | src/Perl6/ (2 files):
10:24 dalek rakudo/generate_buildallplan_3: implement a lot more for code-genning BUILDALLPLAN.
10:24 dalek rakudo/generate_buildallplan_3:
10:24 dalek rakudo/generate_buildallplan_3: currently creates a setting that immediately crashes
10:24 dalek rakudo/generate_buildallplan_3: when it gets loaded. not sure why.
10:24 dalek rakudo/generate_buildallplan_3: review: https://github.com/rakudo/rakudo/commit/8942239aad
10:24 dalek rakudo/generate_buildallplan_3: 05b7c4c | timotimo++ | src/Perl6/World.nqp:
10:24 dalek rakudo/generate_buildallplan_3: BUILDALL has to return self.
10:24 dalek rakudo/generate_buildallplan_3: review: https://github.com/rakudo/rakudo/commit/05b7c4cdf5
10:24 dalek rakudo/generate_buildallplan_3: 9344cd9 | timotimo++ | src/Perl6/World.nqp:
10:24 psch e.g. (2, 1, 5, 3, Any, 0) or somesuch
10:24 dalek rakudo/generate_buildallplan_3: we removed the autovivs parameter for the time being
10:24 timotimo ^- rebased onto nom
10:25 psch sorting first is probably the best way to find the missing value, right?
10:25 timotimo that's not strictly ascending :)
10:25 lizmat psch: is it one or are there more ?
10:25 psch timotimo: well, right, sorted they would be, with one gap
10:25 psch lizmat: there could be more, but i care about all
10:25 timotimo ah
10:26 lizmat .grep(Int) ?
10:26 timotimo maybe Int:U
10:26 lizmat no, Int would be sufficient as Any is not an Int  :-)
10:26 psch well, i'm in jvm/QAST/Compiler.nqp :)
10:26 timotimo oh, of course
10:26 lizmat and it would be fast, as grep is optimised to handle type objects, afaik
10:27 psch so this is more of a "how do i algo this", instead of "how do i use perl6 for this" type of question
10:27 psch (compounded by the fact that we apparently don't have an nqp level &sort, and i'd have to write that too...)
10:28 psch so, in the end i'm kinda hoping there's a smart solution that doesn't need me to implement sorting, but i'm all but resigned to have to implement sorting... :S
10:28 timotimo you can copy-paste it from QASTOperationsMAST
10:29 psch anyway, yeah, the problem itself is "i have a list of unordered ints that when ordered would be ascending with one or more gaps.  how do i find the values that would fill the gaps to result in a strictly ascending list of ints"
10:29 psch and i'm thinking "sort and $a - $b == 1 afterwards for all elements"
10:30 timotimo sounds sensible
10:30 psch 'cause everything else i can think of involves at least two nested loops, and that's clearly slower than sorting and one pass over the sorted list
10:31 timotimo yeah
10:31 timotimo in algorithms class we were taught "always sort your input before you do anything with it, because complexity-wise, sorting is basically free"
10:31 psch yeah, that sounds reasonable
10:32 psch hm, p6sort is probably what i steal for that right
10:33 psch though i can probably simplify it at least a bit, since i only ever have < as comparator
10:33 timotimo so, the custom buildallplan is recursing endlessly ...
10:33 lizmat .oO( it takes a while to build the univers )
10:33 timotimo maybe it's running into a code 0, which involves calling FLATTENABLE_LIST, which perhaps runs another BUILDALL to work?
10:34 lizmat FLATTENABLE_LISTS are really just the nqp:: parts, no ?
10:34 timotimo dunno, would have to look closer
10:36 timotimo what about FLATTENABLE_HASH?
10:37 lizmat they all just return nqp::hashes
10:37 timotimo hmm
10:38 timotimo maybe you have the chance to look at that branch and figure out what i'm failing
10:38 timotimo especially since you have memory of BUILDALL fresh in your mind :)
10:39 timotimo OK, the debug output i put into the step 0 runners doesn't show up
10:39 |Tux| joined #perl6-dev
10:40 timotimo p6box_s shouldn't cause a BUILDALL to run, should it?
10:40 lizmat I don't see how it could
10:40 timotimo i've only implemented code 0 and code 1 in this branch ... so it must be one of those that's exploding
10:41 lizmat I mean, p6box_s is just short for box_s(..,Str), isnit it ?
10:41 psch practically, yeah
10:41 psch i think it does look into the hllconfig, but that turns out the same in the end
10:41 timotimo yeah, that's right
10:41 timotimo it shouldn't look into the hllconfig, though
10:44 timotimo it could perhaps be an exception being thrown from the buildall code
10:44 timotimo and creating the exception object invokes the buildall again?
10:45 dalek rakudo/nom: 0b824ba | lizmat++ | src/core/SlippyIterator.pm:
10:46 dalek rakudo/nom: /STATEMENT_LIST/stmts/ for SlippyIterator.slip-one
10:46 dalek rakudo/nom:
10:46 dalek rakudo/nom: Regardless of STATEMENT_LIST being public or not, feels to me we
10:46 dalek rakudo/nom: shouldn't have it in the setting.
10:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0b824bac2c
10:46 lizmat timotimo: *that* could very well be the case
10:46 lizmat and from there, it goes into building a universe of errors
10:46 lizmat seen that before  :-)
10:51 timotimo yes, Exception. over, and over, and over, and over again
10:52 timotimo beh. how do i figure out where this asplodes?
10:55 nine psch: yes, adding the MAST::Frames to the surrounding CU is exactly what happens and adding the J::Methods to the surrounding J::Class is exactly what we should do. It only gets complicated, when we have more than one EVAL and all of them should add to the surrounding J::Class.
10:56 nine psch: on Moar we just merge those hashes into one. We cannot just do that with J::Classes
10:56 nine psch: instead we have to pass on the first J::Class to those other EVALs and finally use it for the surrounding CU.
10:56 psch nine: right.  i was thinking on building a J::Method that calls the nested J::Class' mainline
10:57 psch nine: i don't think we can reuse the same J::Class, since JAST::Compiler always builds a full class
10:57 Zoffix joined #perl6-dev
10:57 nine psch: can we tell the JAST::Compiler to keep the class "open" so we can continue to add?
10:59 psch nine: the problem i see is that we'd have to conditianally skip/hack around a lot of things, e.g. generation of getCallSites, loadQbid, entryQbid
10:59 Zoffix 🎺🎺🎺 REMINDER:  Rakudo #100 will be released this Saturday. You're invited to to update the ChangeLog file, update the ROADMAP, etc.
10:59 psch which i think is more trouble than it'd be worth.  i'm still wondering where to put the nested JCLASS, though...
11:00 psch nine: also, i don't think "keeping open" is the problem, the problem is more that we generate a whole class for the nested CU, with e.g. the mentioned methods
11:00 nine psch: ah, now I get you. So for our nested CU structure we get an equally nested JCLASS structure.
11:00 psch nine: yeah, that's my thought
11:01 psch 'cause we kinda have to lean onto the jvms structure there
11:01 nine Sounds like a clean solution if you can pull that off :)
11:01 psch yeah, wondering about that myself... :)(
11:01 psch -(
11:03 |Tux| lizmat, I have no scrollback of the past 3 hours, but you were looking for http://tux.nl/Talks/CSV6/speed4.html ?
11:03 lizmat yup, thanks
11:03 timotimo ha!
11:03 timotimo i'll just bail out of creating the buildall when the name is "Exception"
11:03 timotimo fantastic!!
11:04 nine |Tux|: maybe we should put your URI into the topic ;) You seem to be answering the question quite regularly
11:05 |Tux| feel free
11:06 timotimo .. and for "Any" as well ...
11:15 timotimo things are still broken :(
11:16 dalek rakudo/nom: 313bb18 | lizmat++ | src/core/Str.pm:
11:16 dalek rakudo/nom: /STATEMENT_LIST/stmts/ for Str.split
11:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/313bb1888d
11:17 lizmat timotimo: not sure how I can help you with that
11:17 timotimo Use of uninitialized value of type Str in string context
11:17 timotimo Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at tools/build/install-core-dist.pl line 18
11:17 timotimo that seems to happen after the first customly compiled buildplan runs in the build process
11:18 lizmat something with code 10 ?
11:19 lizmat seems to be the only string like initialization ?
11:20 timotimo thing is, i put little says into the compiled code to run for each code
11:20 timotimo the only buildplan that gets compiled & run is Cool, which ends up with 0 steps
11:20 lizmat hmmm...
11:21 lizmat I must admit I don't fully grok the building of the buildplan itself
11:21 lizmat I basically only looked at the code and made sure it did the same thing when optimizing BUILDALL
11:21 lizmat :-(
11:21 timotimo the only thing i know about that is that we inspect all the vars and such and then emit a list of "opcodes" with the right parameters ...
11:21 lizmat yup, that is my understanding as well
11:22 lizmat and those "opcodes" are handled by BUILDALL
11:22 timotimo right
11:22 timotimo i don't know more than you, then :)
11:22 brrt joined #perl6-dev
11:23 timotimo one thing i do know is if i implement code 4 next, all the X:: classes will suddenly have their buildplans compiled
11:24 timotimo of course it'd be much nicer if the compiled buildplans would actually not cause things to asplode
11:29 dalek rakudo/nom: 56bbc8d | lizmat++ | / (2 files):
11:29 dalek rakudo/nom: /STATEMENT_LIST/stmts/ in SLICE
11:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/56bbc8d163
11:36 pmurias joined #perl6-dev
11:36 dalek nqp: 0f4d0af | (Pawel Murias)++ | src/vm/js/Operations.nqp:
11:36 dalek nqp: [js] Implement dummy nqp::lock and nqp::unlock, we don't support threads on the js backend.
11:36 dalek nqp: review: https://github.com/perl6/nqp/commit/0f4d0afdfd
11:36 dalek nqp: dcb6308 | (Pawel Murias)++ | src/vm/js/nqp-runtime/runtime.js:
11:36 dalek nqp: [js] Avoid a console.log when throwing an exception that might get caught.
11:36 dalek nqp: review: https://github.com/perl6/nqp/commit/dcb6308d1e
11:36 dalek nqp: dd2a118 | (Pawel Murias)++ | src/vm/js/nqp-runtime/reprs.js:
11:36 dalek nqp: [js] Support creating a dummy ReentrantMutex type object.
11:36 dalek nqp: review: https://github.com/perl6/nqp/commit/dd2a118bfc
11:36 dalek nqp: 297fb11 | (Pawel Murias)++ | src/vm/js/Compiler.nqp:
11:36 dalek nqp: [js] Use the variable type when compiling variables as dynamic.
11:36 dalek nqp: review: https://github.com/perl6/nqp/commit/297fb11552
11:36 dalek nqp: 1a373fd | (Pawel Murias)++ | src/vm/js/nqp-runtime/sixmodel.js:
11:36 dalek nqp: [js] Remove no longer needed TODO.
11:41 cognominal joined #perl6-dev
11:45 dalek rakudo/nom: ae74c90 | lizmat++ | src/core/Map.pm:
11:45 dalek rakudo/nom: /STATEMENT_LIST/stmts/ for Map.kv
11:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ae74c90d0f
12:04 psch hrm, this is really keeping me guessing
12:05 psch i mean, we do have the right amount of methods, but one slot is empty and we have one method that has a qbid equal to the size of the class' methods array
12:09 moritz we have quantum bids now? :-)
12:10 psch moritz: we've had them in nqp-j since its inception, i think ;)
12:10 moritz psch: maybe we should use that to get some grant money :-)
12:10 psch although i readily admit i don't really know what the qb in qb id stands for
12:10 psch QAST Border, maybe..?
12:11 psch oh, QAST Block, if anything like that
12:11 psch cause that's what they correspond to on the nqp-ish level i think
12:11 jnthn QAST::Block
12:15 psch well, i'll just assume that we actually are just missing one jmeth, and the fact that we have a qbid that's greater than the last assignable element in JCLASS.methods happens because we count only the existing methods
12:16 psch because if i'd assume that we have an off-by-one somewhere in cuid_to_qbid then i'd be completely clueless vOv
12:16 psch because that sub really shouldn't produce anything off-by-one-y
12:24 dalek rakudo/nom: 7f0f464 | lizmat++ | src/core/Hash.pm:
12:24 dalek rakudo/nom: /STATEMENT_LIST/stmts/ for Hash.push/append
12:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7f0f46465e
12:28 brrt joined #perl6-dev
12:52 nine So it's not a q bid but a qb id! That explains the mystery :)
12:53 nine psch: I guess the missing jmeth is the EVAL's mainline?
12:54 psch nine: yeah, that's what i'd assume
12:57 dalek rakudo/nom: ea53ce5 | lizmat++ | src/core/Array.pm:
12:57 dalek rakudo/nom: /STATEMENT_LIST/stmts/ for Array.iterator|is-lazy|shift
12:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ea53ce5cc6
13:10 timotimo lizmat: i don't know if you've looked at the buildplan compiler, but all it does is read the buildallplan (just like BUILDALL itself would) but instead of acting it out, it concatenates the instructions into a QAST::Block or whateve
13:11 lizmat I looked at it, but got scared by the amount of QAST
13:11 lizmat I don't think enough in trees yet
13:11 timotimo ah
13:11 timotimo ideally, the trees would look the same as the stuff in the BUILDALL
13:11 timotimo but ... yes, it's a bit hard on the eyes
13:12 lizmat I'm trying to get some things done before travel to YAPC::NA
13:13 timotimo OK
13:13 lizmat won't be having much time for hacking while there, I would think
13:13 lizmat and I plan to be translating perl6intro to Dutch on the way there
13:13 lizmat (and back, probably)
13:17 timotimo oh, that's pretty cool!
13:30 dalek rakudo/nom: 350a8cd | lizmat++ | src/core/List.pm:
13:30 dalek rakudo/nom: s/STATEMENT_LIST/stmts/ for List.iterator|is-lazy|FLATTENABLE_LIST
13:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/350a8cd577
13:40 dalek rakudo/nom: ffba1fd | lizmat++ | src/core/List.pm:
13:40 dalek rakudo/nom: /STATEMENT_LIST/stmts/ for infix:<,>
13:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ffba1fdad1
13:52 skids joined #perl6-dev
14:10 AlexDaniel joined #perl6-dev
14:38 edehont joined #perl6-dev
14:50 dalek rakudo/nom: 42e72a4 | lizmat++ | src/core/Any-iterable-methods.pm:
14:50 dalek rakudo/nom: /STATEMENT_LIST/stmts/ sequential-map
14:50 dalek rakudo/nom:
14:50 dalek rakudo/nom: Alas, couldn't nqp-ify deeper: during setting compilation, MAST stage
14:50 dalek rakudo/nom: the error "Cannot reference undeclared local '__lowered_lex_3205'"
14:50 dalek rakudo/nom: would occur.  Could not find a way around that  :-(
14:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/42e72a491e
14:51 timotimo uh oh, the optimizer has asploded when that message shows
14:51 dalek rakudo/nom: c8c8de6 | (Brock Wilcox)++ | src/ (2 files):
14:51 dalek rakudo/nom: Migrate more looping and printing into REPL.pm
14:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c8c8de680d
14:51 dalek rakudo/nom: 74138ef | (Brock Wilcox)++ | src/core/REPL.pm:
14:51 dalek rakudo/nom: Make implicit return style consistent
14:51 lizmat sorry dalek
14:52 dalek joined #perl6-dev
15:13 lizmat afk for a few hours&
15:43 TimToady joined #perl6-dev
16:00 |Tux| This is Rakudo version 2016.05-138-g6b93592 built on MoarVM version 2016.05-18-g1339332
16:00 |Tux| test            16.669
16:00 |Tux| test-t           9.356
16:00 |Tux| csv-parser      21.309
16:02 psch "java.lang.invoke.WrongMethodTypeException: expected (ThreadContext,CodeRef,CallSiteDescriptor)void but found (ThreadContext,CodeRef,CallSiteDescriptor)void"
16:02 psch oh java /o\
16:04 masak [Tux]: wow, 9.4
16:04 masak no longer noise :)
16:04 masak lizmat++ jnthn++ others++ # fasterening
16:05 |Tux| I'd say: just continue this nice work :)
16:07 masak playing devil's advocate for a while... I for one would really like to see Rakudo become a lot slower again
16:07 masak (not really) :P
16:09 sexy-coder-girl Is one of those values the Perl 5 version?
16:10 nine sexy-coder-girl: AFAIK the Perl 5 versions are in the 0.1 second range or even faster...
16:10 perlpilot only if you  adjust the location of the decimal place
16:10 sexy-coder-girl :(
16:12 hankache joined #perl6-dev
16:19 jnthn nine: Pure Perl 5 versions?
16:31 timotimo yeah, tux has a bunch of csv benchmark code thingies in a table
16:32 timotimo http://tux.nl/Talks/CSV6/speed5.html
16:33 timotimo jnthn: ^
16:41 cognominal joined #perl6-dev
16:50 [Coke] m: say 9.536 / 0.033
16:50 camelia rakudo-moar 6b9359: OUTPUT«288.969697␤»
16:50 [Coke] m: say 9.536 / 0.125
16:50 camelia rakudo-moar 6b9359: OUTPUT«76.288␤»
16:50 [Coke] so about 76 times slower than the pure perl5 version.
16:51 [Coke] ... er. that table has lots of things under modules, probably -this- one:
16:51 [Coke] m: say 9.536 / 0.501
16:51 camelia rakudo-moar 6b9359: OUTPUT«19.033932␤»
16:51 [Coke] that's perl6's Text::CSV vs. perl5's Text::CSV_PP
16:52 [Coke] wow. and 8s of that has nothing to do with processing time, it seems.
16:53 [Coke] m: say (9.536-8.045) / (0.501-0.484)
16:53 camelia rakudo-moar 6b9359: OUTPUT«87.705882␤»
16:53 |Tux| [Coke] feel free to improve of timing approaches ( https://github.com/Tux/CSV/blob/master/time.pl )
16:54 [Coke] [Tux]: not sure how to improve it, just wanted to compare apples to apples if possible.
16:54 [Coke] I think I ended up in the right place.
16:55 * masak .oO( you ended up in the 80s )
17:13 [Coke] RT: 1326; CONC: 7; GLR: 6; JVM: 70; LHF: 1; LTA: 75; NYI: 28; OSX: 6; PERF: 16; POD: 3; PRECOMP: 3; RFC: 24; SEGV: 21; STAR: 1; TESTNEEDED: 29; TODO: 9; UNI: 5; WEIRD: 3
17:22 CQ left #perl6-dev
17:25 timotimo spending only 80s in the 80s doesn't sound so terrible
17:32 cognominal joined #perl6-dev
17:51 * TimToady spent 315619206s in the 80s
17:53 nine To calculate that I'd need a definition of an exact moment of birth
17:55 sexy-coder-girl I spent...
17:55 sexy-coder-girl m: say DateTime.new(:1990year :01month :01day).Instant - DateTime.new(:1986year :04month :03day :23hour :57minute).Instant
17:55 camelia rakudo-moar 6b9359: OUTPUT«118195382␤»
17:55 sexy-coder-girl m: say DateTime.now - DateTime.now
17:55 camelia rakudo-moar 6b9359: OUTPUT«Cannot resolve caller Numeric(DateTime: ); none of these signatures match:␤    (Mu:U \v: *%_)␤  in block <unit> at <tmp> line 1␤␤»
17:55 sexy-coder-girl ^ kinda expected that to DWIM
17:58 * geekosaur spent more time in the 80s than he prefers to remember >.>
18:12 AlexDaniel joined #perl6-dev
18:13 nine I'm bisecting Perl 5 to find where exactly Inline::Perl5 stopped working (somewhere between 5.23.7 and 5.23.8). But what do I do when I do get an error that's a bit like the one I'm looking for but not exactly the same?
18:13 nine bad or good?
18:16 [Coke] nine- you can also skip
18:17 nine I voted bad on the premise that debugging an error is much harder when there's another one around that leads to a similar error message
18:23 nine Oh, this commit message explains rather well why we segfault after an endless recursion of "Method 'DESTROY' not found for invocant of class 'X::Method::NotFound':
18:23 nine [perl #124387] call AUTOLOAD when DESTROY isn't defined
18:23 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=124387
18:23 FROGGS joined #perl6-dev
18:23 vendethiel joined #perl6-dev
18:24 FROGGS o/
18:26 timotimo o/
18:32 sno joined #perl6-dev
18:52 dalek rakudo/nom: cd4268f | lizmat++ | src/core/IO/Handle.pm:
18:52 dalek rakudo/nom: /STATEMENT_LIST/stmts/ for IO::Handle.comb|Supply
18:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cd4268f467
18:54 lizmat the core is now STATEMENT_LIST free
18:56 dalek rakudo/nom: f7c8dc3 | lizmat++ | src/Perl6/Grammar.nqp:
18:56 dalek rakudo/nom: Eradicate SEQ
18:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f7c8dc3c54
18:56 lizmat wrt STATEMENT_LIST: I propose we remove directly after the next release
18:57 lizmat so we have a whole month to catch any ecosystem fallout
18:58 vendethiel oh, that's to be removed? I need to backlog.
19:00 lizmat vendethiel: well, it's not documented anywhere, there are no tests for it, and it feels like a core / setting internal
19:00 lizmat which it isn't anymore
19:00 lizmat if we want something like that in the language, it should probably be called something else
19:01 vendethiel well, it was removed back when TimToady++ was implementing his LOLlypop (; as dimensions), and it was used to replace it.
19:01 lizmat otoh, ideally the optimizer should be able to tell it can do a STATEMENT_LIST on any scope
19:01 cognominal joined #perl6-dev
19:01 vendethiel I can see a point to a comma operator, though.
19:01 lizmat vendethiel: ??
19:02 lizmat STATEMENT_LIST was a way to e.g. postfix loop / if on a set of statements without creating a scope
19:05 vendethiel I mean a comma operator in the C-family-of-languages sense
19:05 FROGGS (I still dont get it)
19:05 vendethiel C, Java, JavaScript, C++
19:06 vendethiel well, in all of these, if (true) print("a"), print("b"); will do both prints sequentially in the if. That's what it did before LoL semantics in Rakudo
19:06 nine lizmat: looking at https://travis-ci.org/niner/Inline-Perl5/builds/137321222 it seems like it's impossible to provide an Inline::Perl5 that works with rakudos before and after your removal of BUILDALL's positional :(
19:07 lizmat hmmm... perhaps if add another candidate *with* positionals ?
19:08 FROGGS nine: cant you query BUILDALL.signature.params.elems or so?
19:08 FROGGS I mean, it's horrible, but still
19:08 FROGGS m: if 1 { say(42), say(111) }
19:08 camelia rakudo-moar 6b9359: OUTPUT«42␤111␤»
19:09 FROGGS vendethiel: where is my thinko?
19:09 timotimo the return value of a comma operator is the last value of the "list"
19:09 timotimo in your example the return value would be a list of two True s
19:10 FROGGS m: say do if 1 { say(42), say(111) }
19:10 camelia rakudo-moar 6b9359: OUTPUT«42␤111␤(True True)␤»
19:10 FROGGS yes, that's what I would expect
19:11 nine lizmat: you mean like this? https://gist.github.com/niner/9dcfde064e1914bb36951e013107a69c
19:12 lizmat nine: no, I was thinking to have that candidate in the settings
19:12 lizmat spectesting that now
19:13 nine ok...my patch doesn't work anyway :)
19:16 vendethiel FROGGS: well, that's not a "comma operator" :-)
19:17 vendethiel in the languages I listed above, (1, 2, 3) is 3.
19:18 FROGGS "I see" :P
19:18 hankache joined #perl6-dev
19:22 dalek rakudo/nom: ed510c5 | lizmat++ | src/core/Mu.pm:
19:22 dalek rakudo/nom: Provided a BUILDALL with positionals
19:22 dalek rakudo/nom:
19:22 dalek rakudo/nom: For compatibility with modules such as Inline::Perl5
19:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ed510c5f87
19:22 lizmat nine: ^^^
19:31 brrt joined #perl6-dev
19:47 nine lizmat: great! Then I'll revert your Inline::Perl5 patch
19:48 lizmat okidoki...
19:59 nine Closed 5 Inline::Perl5 issues today. I almost forgot how much fun working on such "little" things can be :)
20:04 jdv79 nice
20:07 jdv79 oh, in installs now.  woohoo.
20:07 jdv79 *it
20:09 lizmat and another Perl 6 Weekly hits the Net: https://p6weekly.wordpress.com/2016/06/13/2016-24-speeding-to-tpc/
20:13 FROGGS \o/
20:27 perlpilot Is YAPC re-branding to TPC, or is that a lizmatism?
20:27 masak yay, `signal(SIGINT)` works just splendid!
20:28 perlpilot I mean, so far the only person I
20:29 perlpilot I mean, so far the only person I've seen call it TPC has been lizmat
20:29 [Coke] perlpilot: that's the old name.
20:29 [Coke] IIRC
20:29 perlpilot no, TPC morphed into OSCON.
20:29 [Coke] also, look at http://www.yapc.org/
20:29 masak perlpilot: so far the only people I've seen call YAPC::NA "YAPC" has been people from the US :P
20:29 lizmat and YAPC is now morphing into The Perl Conference
20:30 lizmat check out http://www.yapcna.org/yn2016/
20:30 perlpilot excellent
20:30 lizmat it says:
20:30 lizmat "The Perl Conference in Orlando"
20:32 perlpilot I've never thought much about it but recently had to explain to a few people what "YAPC" is and then had to explain why it's called YAPC.   Calling it "The Perl Conference" is definitely better.
20:32 perlpilot masak: The US is the most important country on the planet dontcha know!  ;)
20:35 dalek rakudo/nom: 5de2d8b | lizmat++ | docs/ChangeLog:
20:35 dalek rakudo/nom: Add some ChangeLog entries
20:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5de2d8b4bf
20:37 timotimo typo "no longer fail." -> "no longer fails."
20:38 masak perlpilot: I can't think of anything to say in response to that that isn't kicking someone who's already down :P
20:39 jdv79 the next iteration will be to PerlCon and then finally to PCON
20:39 masak perlpilot: I'll give you this: your presidential races are captivating.
20:44 perlpilot masak: hey!  Didn't you see the sign last time you were here?  "USA -- birthplace and current residence of Larry Wall"
20:46 masak you have a point, sir.
21:03 jnthn lizmat++ # p6weekly
21:03 dalek rakudo/nom: 865bf36 | lizmat++ | docs/ChangeLog:
21:03 dalek rakudo/nom: Fix typo, timotimo++
21:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/865bf36be5
21:11 timotimo weekly++ # lizmat
21:21 jnthn icecream has 40% discount..
21:21 jnthn oh
21:22 jnthn Not only wrong window, but wrong app. Good job, jnthn :P
21:22 tadzik :D
21:31 * lizmat screams haz 50%
21:33 AlexDaniel joined #perl6-dev
21:43 jnthn Those I get for free just by reverting the right commit :P
21:49 jnthn 'night, #perl6-dev
21:52 Zoffix night
21:55 lizmat gnight jnthn
21:55 lizmat https://developer.apple.com/library/prerelease/content/documentation/FileManagement/Conceptual/APFS_Guide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40016999
21:55 lizmat AppleFS
22:07 lizmat gnight, perl6-dev!
22:11 Zoffix night
22:18 cognominal joined #perl6-dev
23:21 cognominal joined #perl6-dev

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