Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-12-09

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

All times shown according to UTC.

Time Nick Message
00:10 cognominal joined #perl6-dev
00:21 sortiz joined #perl6-dev
00:35 pyrimidine joined #perl6-dev
01:38 pyrimidine joined #perl6-dev
01:40 MasterDuke in nqp, if i have a bigint type object, how do i get the string 'bigint'?
01:46 timotimo $object.HOW.name($object) usually
02:05 MasterDuke ooh, timotimo++
02:10 MasterDuke babydrop: perl6.wtf hasn't been regenerated since oct 10?
02:26 pyrimidine joined #perl6-dev
02:41 MasterDuke s: help
02:41 SourceBaby MasterDuke, Something's wrong: ␤ERR: [31m===[0mSORRY![31m===[0m Error while compiling -e␤Undeclared routine:␤    help used at line 6␤␤
02:42 MasterDuke s: help?
02:42 SourceBaby MasterDuke, Something's wrong: ␤ERR: [31m===[0mSORRY![31m===[0m Error while compiling -e␤Unable to parse expression in argument list; couldn't find final ')' ␤at -e:6␤------> [32m    put sourcery( help[33m⏏[31m? )[1];[0m␤    expecting any of:␤        infix␤        infix stopper␤
02:47 MasterDuke s: Attribute, 'perl'
02:47 SourceBaby MasterDuke, Sauce is at https://github.com/rakudo/rakudo/blob/345f6a7/src/core/Mu.pm#L527
02:49 ilbot3 joined #perl6-dev
02:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
03:10 seatek joined #perl6-dev
03:59 pyrimidine joined #perl6-dev
06:40 FROGGS joined #perl6-dev
06:52 RabidGravy joined #perl6-dev
09:36 babydrop MasterDuke: yeah, because the update script fails when merging moarvm master onto the branch with coverage support
09:55 babydrop Or at least that was the case last I ran it a month or so ago... Seems to have reached stage parse right now.
10:01 babydrop MasterDuke: oh, it builds the first one just for fun. Still fails the same: https://gist.github.com/zoffixznet/695ee7f9c13ec51f30dffa34ad903068
10:02 babydrop MasterDuke: and this is the point of when, I guess: https://gist.github.com/zoffixznet/642020473b713985dd21dc96cdb6cee1#file-build-coverakudo-sh-L23
10:02 babydrop (that's the script I run to update perl6.wtf)
10:17 dalek rakudo/nom: db9ae22 | (Zoffix Znet)++ | src/core/Str.pm:
10:17 dalek rakudo/nom: Update name of param in a comment
10:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/db9ae22b0f
10:22 [Tux] This is Rakudo version 2016.11-166-g345f6a714 built on MoarVM version 2016.11-44-g8e24145d
10:22 [Tux] csv-ip5xs        3.332
10:22 [Tux] test            14.924
10:22 [Tux] test-t           6.647
10:22 [Tux] csv-parser      14.060
10:55 japhb joined #perl6-dev
11:21 japhb joined #perl6-dev
11:37 dalek rakudo/nom: 8e3cbc6 | (Zoffix Znet)++ | src/core/Str.pm:
11:37 dalek rakudo/nom: Fix a number of issues in parse-base() error reporting
11:37 dalek rakudo/nom:
11:37 dalek rakudo/nom: - Fix missing sign in error message
11:37 dalek rakudo/nom: - Fix incorrect char referenced if invalid char is the first char of
11:37 dalek rakudo/nom:     fractional part of the number
11:37 dalek rakudo/nom: - Fix incorrect char referenced in negative numbers, when the
11:37 dalek rakudo/nom:     invalid char is in fractional portion of the message
11:37 dalek rakudo/nom:
11:37 dalek rakudo/nom: Fixes RT#130298: https://rt.perl.org/Ticket/Display.html?id=130298
11:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8e3cbc67db
11:37 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130298
11:38 * babydrop makes the "Fry" meme with "Not sure whether Awesome Errors cause too much programming bugs or I'm just a crappy programmer"
11:38 dalek roast: 33edc14 | (Zoffix Znet)++ | S32-str/parse-base.t:
11:38 dalek roast: Extra tests for parse-base() errors
11:38 dalek roast:
11:38 dalek roast: - Fix broken tests that checked for signless string for negative numbers
11:38 dalek roast: - Add extra tests to cover the ticket[^1] and fixes[^2]
11:38 dalek roast:
11:38 dalek roast: [1] RT#130298: https://rt.perl.org/Ticket/Display.html?id=130298
11:38 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130298
11:38 dalek roast: [2] https://github.com/rakudo/rakudo/commit/8e3cbc67db
11:38 dalek roast: review: https://github.com/perl6/roast/commit/33edc14e71
11:46 motimoji123 joined #perl6-dev
11:48 AlexDaniel joined #perl6-dev
12:23 dalek rakudo/nom: 3dd2916 | MasterDuke17++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
12:23 dalek rakudo/nom: Add .gist, .perl, and .Str to BOOTSTRAPATTR
12:23 dalek rakudo/nom:
12:23 dalek rakudo/nom: Fixes RT77070, https://rt.perl.org/Ticket/Display.html?id=77070
12:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3dd2916ba9
12:23 dalek rakudo/nom: c4a6011 | lizmat++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
12:23 dalek rakudo/nom: Merge pull request #943 from MasterDuke17/RT77070
12:23 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=77070
12:23 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=77070
12:24 dalek rakudo/nom:
12:26 dalek nqp: af0e5fd | (Pawel Murias)++ | src/vm/js/nqp-runtime/bootstrap.js:
12:26 dalek nqp: [js] Fix stuff found by 'make js-lint'.
12:26 dalek nqp: review: https://github.com/perl6/nqp/commit/af0e5fdb56
12:26 dalek nqp: 3e71bfe | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
12:26 dalek nqp: [js] Use ES6 class syntax when adding internal REPR specific methods.`
12:26 dalek nqp: review: https://github.com/perl6/nqp/commit/3e71bfe853
12:30 nine Results of yesterday's ecosystem smoke test: http://niner.name/perl6/ecosystem/2016-12-08.html
12:30 yoleaux2 8 Dec 2016 17:52Z <pyrimidine> nine: in case you miss this in the backlog: Inline::Perl5 broke with https://github.com/rakudo/rakudo/commit/b2ac4e44d136fb118c395b6649bebc25688487ca
12:31 nine .tell pyrimidine Thanks a lot! Will dig from there.
12:31 yoleaux2 nine: I'll pass your message to pyrimidine.
12:34 babydrop I was gonna say looks pretty green
12:34 babydrop ... until I started scrolling :)
12:36 lucasb joined #perl6-dev
12:48 pyrimidine joined #perl6-dev
12:55 japhb joined #perl6-dev
13:22 japhb joined #perl6-dev
13:28 pyrimidine joined #perl6-dev
13:31 nine Feels like one could fix half the breakage by fixing JSON::Name
13:35 babydrop it passses for me on 2016.11-144-gbc13bb5 :/
13:35 babydrop (installed with zef)
13:35 AlexDaniel joined #perl6-dev
13:36 nine I just see lots of "Could not find JSON::Name at line". The same for Encode
14:11 pyrimidine joined #perl6-dev
14:13 TimToady joined #perl6-dev
15:02 pyrimidine joined #perl6-dev
15:06 nine According to emmentaler only 15 more modules fail their tests with the lexical_module_loading branch. And one even starts passing :)
15:06 nine jnthn: ^^^
15:07 pyrimidine joined #perl6-dev
15:09 pyrimidine joined #perl6-dev
15:21 babydrop I recall there was a gist explaining what that branch was about... does anyone have the URL?
15:24 nine https://gist.github.com/niner/70f7b46eefb7e22af78d896bea11efeb
15:24 babydrop Thanks.
16:24 babydrop We don't have any sort of "data dumper" type of thing to look into QAST generated by a Perl6/Actions method do we? I wanna see what this QAST ends up lookin' like: https://github.com/rakudo/rakudo/blob/c4a60110ef4282096697871c665c6b059d6cdebc/src/Perl6/Actions.nqp#L7843
16:25 babydrop and --target=ast has a ton of stuff, I'm unsure what is what
16:25 timotimo we do have .dump or what's it called
16:26 timotimo that's what gets used to dump --ast
16:26 * babydrop looks into that
16:26 timotimo a big part of the dumped stuff is things like "want"
16:26 timotimo i mean the wantness mechanics in general
16:39 babydrop note($past.dump); did the trick
18:23 lucasb joined #perl6-dev
18:26 AlexDaniel joined #perl6-dev
18:34 committable6 joined #perl6-dev
18:34 benchable6 joined #perl6-dev
18:42 psch huh, so apparently we call Cursor.INTERPOLATE at least three times for /^(@a)*?$/
18:42 psch buuut, @a = <a b bc cd>, so it seems we want to call it four times, because we have to backtrack once..?
18:43 psch which means i need to get one level higher to set the backtracking, which is good because i have no idea how to figure out if we are allowed to backtrack at the spot where my debug-say is sitting... :S
18:48 psch hm, i did try setting .backtrack on the QAST::Regex that calls INTERPOLATE though...
18:55 babydrop What's QAST::Op.new( :op('p6store'), for ?
18:56 psch babydrop: calling nqp::p6store
18:56 babydrop ehehe... well, yeah, I figured as much but is nqp::p6store documented somewhere? I don't see it in https://github.com/perl6/nqp/blob/master/docs/ops.markdown
18:57 psch babydrop: try rakudo/docs/ops.markdown
18:57 babydrop Thanks
18:57 psch babydrop: not all nqp:: ops are defined in nqp
18:58 babydrop well, it's listed... but without description. p6store(Mu $container, Mu $value) I guess that just stores $value in $container
18:58 psch pretty much, it has some more logic like "can we do this on VM-level or do we need to call .STORE" basically
18:59 psch it's in rakudo/src/vm/moar/Perl6/Ops.nqp
18:59 babydrop Thanks.
19:06 babydrop m: dd infix:<,>(42)
19:06 camelia rakudo-moar c4a601: OUTPUT«42␤»
19:07 babydrop What's the purpose of this idiom? https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Actions.nqp#L7768-L7772
19:07 babydrop Why is infix:<,> called?
19:07 dalek rakudo/nom: 524368c | lizmat++ | src/core/Rakudo/Internals/VMBackedDecoder.pm:
19:07 dalek rakudo/nom: Revert "Simplification of LAST block"
19:07 dalek rakudo/nom:
19:07 dalek rakudo/nom: This reverts commit 58cdfd80b30444ba4755bb3fa0992f0f449f8a9e.
19:07 dalek rakudo/nom:
19:07 dalek rakudo/nom: The change was not semantically identical and caused problems in
19:07 dalek rakudo/nom: some situations.
19:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/524368c180
19:09 pyrimidine joined #perl6-dev
19:09 psch babydrop: the comment right above doesn't make sense to you?
19:10 lucasb ($/,) = $result
19:10 lucasb explain like I'm 5, please :)
19:10 lucasb the comment is hard to understand :)
19:11 lizmat m: dd (42,)
19:11 camelia rakudo-moar c4a601: OUTPUT«(42,)␤»
19:11 lizmat in other words: put 42 into a List
19:11 lizmat afk again&
19:11 psch m: my $x = 1, 2; say $x
19:11 camelia rakudo-moar 524368: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant integer 2 in sink context (lines 1, 1)␤1␤»
19:11 psch m: my ($x,) = 1, 2; say $x
19:11 camelia rakudo-moar 524368: OUTPUT«1␤»
19:11 babydrop lizmat: do you recall if .match returning a Slip was done for some good reason?
19:11 babydrop m: dd 'foo'.match: /d/, :g;
19:11 camelia rakudo-moar 524368: OUTPUT«slip()␤»
19:11 babydrop star: dd 'foo'.match: /d/, :g;
19:11 camelia star-m 2016.10: OUTPUT«()␤»
19:12 psch babydrop: :g returns something listy because otherwise we'd need a different approach to truthiness
19:12 lizmat babydrop: no idea, that predates my involvement  :-)
19:12 lizmat afk&
19:12 babydrop OK
19:13 psch babydrop: there was a lot of discussion between me and TimToady somewhere in spring/summer 2015 or so i think..?
19:13 babydrop psch: about what?
19:13 psch babydrop: nested match objects instead of a list of match objects from :g
19:14 babydrop star: (dd 'foo'.match: /d/, :g).^name
19:14 camelia star-m 2016.10: OUTPUT«()␤»
19:14 babydrop star: (dd 'foo'.match: /d/, :g).^name.say
19:14 camelia star-m 2016.10: OUTPUT«()␤Nil␤»
19:14 babydrop star: ('foo'.match: /d/, :g).^name.say
19:14 camelia star-m 2016.10: OUTPUT«List␤»
19:14 psch committable6: 2015.5 ("foo" ~~ m:g/(.)/).^name.say
19:14 committable6 psch, ¦«2015.5»: Cannot find this revision
19:14 babydrop psch: ok, thanks for ($_,) thing. I guess I read that as the op being run first
19:14 psch committable6: 2015.05 ("foo" ~~ m:g/(.)/).^name.say
19:14 committable6 psch, ¦«2015.05»: List
19:14 psch committable6: 2015.01 ("foo" ~~ m:g/(.)/).^name.say
19:14 committable6 psch, ¦«2015.01»: List
19:14 psch well, maybe it's even older
19:15 psch or we had List from the start and didn't change it
19:15 psch i forget
19:15 babydrop psch: but the question is 2016.11 vs 2016.10
19:15 lucasb bisectable6: old=2016.10 new=HEAD die if 'foo'.match(/d/, :g) ~~ Slip
19:15 bisectable6 lucasb, Bisecting by exit code (old=2016.10 new=524368c). Old exit code: 0
19:15 bisectable6 lucasb, bisect log: https://gist.github.com/a7b60bcf6fb4ab9fea6d3c468dc531e6
19:15 bisectable6 lucasb, (2016-10-23) https://github.com/rakudo/rakudo/commit/b7201a8f22338a906f2d8027a21387e8f5c77f41
19:16 psch well, it's Slip since 2016.10 at least
19:16 lucasb since Oct 23 actually
19:16 lucasb after the 2016.10 release
19:16 psch oh, right, there's one inbetween that didn't die
19:16 psch well, a few, scattered
19:16 psch ...oh duh
19:16 psch it's bisect so it's not in chronological order
19:17 lucasb hehe
19:17 * babydrop stops confusing everyone and just changes it back to List in hopes of clean spectest run and fixed bug
19:17 psch babydrop: fwiw, lizmat++ *should* know why it's Slip instead of List now... :)
19:18 * psch keeps getting sidetracked so badly /o\
19:18 psch this regex backtracking/interpolation thing is weird though
19:22 psch as in, i don't get how Cursor.INTERPOLATE gets called multiple times in the first place
19:22 psch and the fact that it gets called as many times as we'd try to match something from the array when we don't backtrack just adds to that
19:22 psch i mean, that might be a coincedence
19:36 psch actually, i think conceptionally the problem with INTERPOLATE is that we're actually doing the match inside of it
19:36 psch which means we move .pos which each submatch, but we don't save a previous-matches stack
19:37 psch ...at least if i am not misreading this, but it seems to fit the observed behavior
19:38 pyrimidine joined #perl6-dev
19:38 psch s/which/with/
19:51 dalek rakudo/nom: 5476d60 | (Zoffix Znet)++ | src/core/Str.pm:
19:51 dalek rakudo/nom: Make .match(:g) return empty List on match failure
19:51 dalek rakudo/nom:
19:51 dalek rakudo/nom: As a side-effect of Great .match Refactor[^1], .match(:g) on failure
19:51 dalek rakudo/nom: to match was changed from returning an empty List to returning
19:51 dalek rakudo/nom: an Empty (which is a slip). As a consequence, the idiom of
19:51 dalek rakudo/nom: nqp::p6store( nqp::call(&infix:<,>, $/), $_) (where $/ is the slip), in
19:51 dalek rakudo/nom: Perl6/Actions that handle S:g/// resulted in an empty list, rather than
19:51 dalek rakudo/nom: the actual original string, which is the cause of the bug in the ticket[^3]
19:51 dalek rakudo/nom:
19:51 dalek rakudo/nom: During the G.mR, the .comb on failure was also changed to return an Empty,
19:51 dalek rakudo/nom: instead of empty Seq. This commit affects that behaviour as well,
19:51 babydrop rakudo/nom: returning an empty List instead.
19:51 babydrop rakudo/nom:
19:51 babydrop rakudo/nom: [1] https://github.com/rakudo/rakudo/commit/b7201a8f223
19:51 babydrop rakudo/nom: [2] https://github.com/rakudo/rakudo/blob/c4a60110ef/src/Perl6/Actions.nqp#L7796-L7803
19:51 babydrop rakudo/nom: [3] https://rt.perl.org/Ticket/Display.html?id=130289
19:51 babydrop https://github.com/rakudo/rakudo/commit/5476d60
19:51 dalek roast: 12b7712 | (Zoffix Znet)++ | S05-substitution/subst.t:
19:51 dalek roast: Test S:g/// returns original string on failure to match
19:51 dalek roast:
19:51 dalek roast: RT#130289: https://rt.perl.org/Ticket/Display.html?id=130289
19:51 dalek roast: Rakudo fix: https://github.com/rakudo/rakudo/commit/5476d60
19:51 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130289
19:51 dalek roast: review: https://github.com/perl6/roast/commit/12b7712f94
19:52 babydrop raaawrr... a successful bug hunt
19:52 * babydrop eats a bug sandwich
19:52 babydrop Yummy
19:59 japhb .oO( "I WILL EAT YOU LIKE A BUG SANDWICH, MAGGOT!" )
19:59 yoleaux2 6 Dec 2016 13:27Z <jnthn> japhb: The current scheduler is decidedly over-simplistic; it's not far off being "the simplest thing that could possibly work". Scalability is also a little bit limited by `await` not yet being non-blocking, which in turn makes us need a lot more real threads than we should.
19:59 yoleaux2 6 Dec 2016 13:34Z <jnthn> japhb: Also, we never actually put stuff on the main application thread; it's not part of the pooling mechanism. Any jank you're seeing is probably due to plain old contention with other threads to get scheduled, or possibly GC stop-the-world leading to long pauses (though profiles I've looked at suggested the world-stopping ain't all that costly).
19:59 yoleaux2 6 Dec 2016 13:35Z <jnthn> japhb: Also be clear, when I say "contention with other threads to get scheduled", these are real kernel threads, so it's the OS scheduler, not something in Rakudo. Rakudo's job is more to pick a smarter number of such threads to do CPU-bound stuff.
19:59 japhb jnthn++  # Clear explanation as usual
20:21 pyrimidine joined #perl6-dev
20:43 babydrop ZOFVM: Files=1204, Tests=130260, 140 wallclock secs (20.58 usr  3.24 sys + 3177.20 cusr 270.29 csys = 3471.31 CPU)
20:44 [Coke] ZOFVM?
20:45 psch some EC2 instance i think?
20:45 [Coke] ah, oh.
20:45 babydrop https://irclog.perlgeek.de/perl6-dev/2016-10-07#i_13352721
20:45 babydrop And you can search the log to get all the values over time: https://irclog.perlgeek.de/perl6-dev/search/?nick=&amp;q=ZOFVM
20:46 babydrop Though I find the variance in them to be quite crazy so the data's quality is prolly sucky
21:03 pyrimidine joined #perl6-dev
21:51 pyrimidine joined #perl6-dev
22:29 tbrowder gfldex: FYI, "zef upgrade Typesafe::XHTML::Writer" shows that the module in the ecosystem is still version 0.1.0. Same with uninstall and install--no change in version detected by zef.  I made my fork current and all is well test-wise.  Maybe the ecosystem hasn't caught up yet.
22:31 ugexe tbrowder: try `zef update` first
22:31 tbrowder aha, will do...
22:33 tbrowder ugexe: that did it, thanks. got to remember to do that--maybe a cron job is better than memory
22:38 ugexe tbrowder: you can also edit the resource/config.json (copy to ~/.zef/config.json) and switch this block (https://github.com/ugexe/zef/blob/master/resources/config.json#L12-L18) with the block under it (#L19-L32)
22:39 ugexe that will let the 2nd block get searched first, which means the auto-update
22:39 tbrowder okay, that's easier! thanks
22:40 ugexe otherwise "Text::XHTML::Writer" gets searched for as "Text::XHTML::Writer:ver<*>", which the cached storage (the first block) fulfills
22:41 ugexe `zef "Text::XHTML::Writer:ver<0.1.1>" --force` would have worked too
22:41 ugexe --force probably not needed actually
22:42 tbrowder doesn't --force result in no tests?
22:43 ugexe but I will skip the cached storage for `zef upgrade XXX`, that is not expected
22:44 ugexe it would run the tests yeah, but it isn't needed there (only with modules you are installing over with version '*')
22:44 ugexe tests run but results ignored^
22:45 tbrowder ok, i've updated my own .zef/config.json as you suggested
23:03 pyrimidine joined #perl6-dev
23:04 psch jnthn: btw, i need a different angle for state vars on nqp-j
23:04 psch jnthn: think is
23:05 psch *thing
23:05 jnthn heh, that's my regular typo :P
23:05 yoleaux2 14:49Z <dogbert17> jnthn: It looks as if https://github.com/rakudo/rakudo/commit/58cdfd80b30444ba4755bb3fa0992f0f449f8a9e breaks t/spec/S17-procasync/no-runaway-file-limit.t. Is it ok with you if we revert that fix?
23:05 jnthn dogbert17_: Think that revert already happened...
23:05 psch jnthn: org.perl6.nqp.runtime.CallFrame copies state vars from the static code info into the coderef
23:05 psch jnthn: or, well, clones them
23:06 psch CallFrame.java:149-157
23:06 psch semantically this looks identical to the corresponding moar code to me
23:06 jnthn Into the coderef?
23:06 psch yeah, cr.oLexState
23:06 jnthn Or into the callframe?
23:06 psch well, both actually
23:06 jnthn Yeah
23:06 jnthn Well...
23:06 jnthn Hm
23:06 jnthn Oh :(
23:07 jnthn I suspect that what you're running up against is that Moar and the JVM have slightly different closure models
23:07 psch jnthn: right, the only thing that kinda looks like the right solution to me gives us a fresh clone *after the first access*
23:07 jnthn Meaning that we don't have clones in all of the same places :(
23:08 psch so i have to dig through the whole closure clone semantics..?
23:08 psch i had tried cloning the static code info, cause that kinda seemed like the right idea at the time
23:08 psch that died with something-or-other being null, i think something in the tc
23:09 jnthn I think the JVM backend still has that priorInvocation thingy
23:09 jnthn At some point, though, the way we deal with closures on Moar and JVM diverged.
23:09 psch yeah, that's still around i think
23:10 jnthn The idea being to figure it out on Moar, then get it ported to the JVM
23:10 psch i'm by far not confident in my understanding there to get that ported
23:10 psch as in, i'm not sure i can understand what we're doing on moar -- mostly because i wouldn't know where to look -- nor where that stuff goes on the jvm
23:10 jnthn Not sure I'm in much of a better place :P
23:10 jnthn Well, I know what goes on on Moar
23:11 jnthn But it was long enough ago I forget what I changed and what the differences are :(
23:11 jnthn I do know Moar has no priorInvocation thingy
23:11 psch hrm :/
23:11 jnthn I'm pretty sure that declaration_static and immediate_static came to exist at the same time I did this work
23:12 jnthn And I think it went something along the lines of, JVM treats them the same as declaration and immediate
23:12 psch okay, so git log around the time of the ref of the blame of the declaration of those two functions..?
23:12 jnthn Well, I think they're branches in the compilation of QAST::Var
23:12 jnthn But yeah
23:12 psch ah, okay
23:13 jnthn My rough memory of it is that
23:13 jnthn The takeclosure op in Moar got thrown out
23:13 psch istr that arnsholt tried removing priorInvocation about a year back or so..?
23:13 psch anyway
23:13 jnthn Or rather
23:13 jnthn The code-gen of it became a noop
23:13 jnthn In favor of us doing something smarter with immediate vs immediate_static
23:14 jnthn As an added incentive, I think we have some thread safety problems on JVM that boil down to insufficient closure cloning that these changes would also fix.
23:14 psch right, so this might be necessary for Proc::Async anyway
23:15 jnthn And various other things, yeah
23:15 jnthn Long story short, if we get that wrong, all kinds of bets are off
23:15 psch yeah, i think we already got it pretty wrong and are wasting a lot of what the jvm could bring in async perf
23:16 AlexDaniel joined #perl6-dev
23:16 psch i mean, the state var bit is just plain wrong, and priorInvocation apparently is a crutch that doesn't work quite right
23:16 psch ...although i don't really get what exactly is going on there sooo
23:17 psch alright, so i'll dig around somewhere in the vicinity of the gitrefs that touch the QAST var_decls you mentioned and see if i can figure out what changed in moar
23:17 psch and how that translates to jvm
23:18 psch can i assume sufficient confidence in the semantics that we don't need more experimentation on moar to figure them out better..? :)
23:18 jnthn Well, we will need further tweaks down the line
23:18 jnthn But they'll build upon what's already there
23:18 jnthn Not go in a different direction
23:19 psch alright, that's good enough for me
23:19 jnthn Essentially, Rakudo's Perl6::Actions inserts a whole load of clone calls today
23:19 jnthn But it'd be nice if they could be inserted by the QAST::Compiler
23:21 psch hm, but that falls out of shifting from nqp::takeclosure to having the right var_decl types?P
23:21 psch -P
23:23 jnthn Yes
23:23 jnthn Or at least, it can do :)
23:23 jnthn It's just that we have code objects at the Perl 6 level that need taking care of
23:25 psch right, i'll try and dig around along these lines :)
23:25 psch not today though heh
23:26 jnthn Yeah, it's late here, I should go rest soon :)
23:26 psch yup, same here, thanks for the pointers
23:32 jnthn Welcome. :)
23:40 MasterDuke jnthn: re method caching with wheres. i looked through src/Perl6/Metamodel/BOOTSTRAP.nqp a bit, but never even figured out where to start experimenting. do you happen to have the next level pointer at hand?
23:41 MasterDuke oops, just saw he left for the night
23:47 MasterDuke .ask jnthn re method caching with wheres. i looked through src/Perl6/Metamodel/BOOTSTRAP.nqp a bit, but couldn't figure out why/where/how where clauses precluded caching. do you happen to have the next level pointer at hand?
23:47 yoleaux2 MasterDuke: I'll pass your message to jnthn.
23:47 AlexDaniel committable6: 2016.10..2016.11 die if 'foo'.match(/d/, :g) ~~ Slip
23:50 committable6 AlexDaniel, https://gist.github.com/b6101e7f79a64123f3f023399023c0d0
23:52 AlexDaniel psch: ↑ that's the best “chronological” order you can get now :)
23:52 AlexDaniel psch: not that the commit hashes are grouped by the output, but inside every group they are kind of left to right
23:53 AlexDaniel you don't really have a chronological order in git history anyway due to merges and stuff…
23:53 AlexDaniel psch: but generally, yea, if you want to run something on a couple of hundreds commits, committable can do it :)
23:54 AlexDaniel there's some reasonable limit but the range between two releases will usually be OK
23:56 AlexDaniel note*
23:56 pyrimidine joined #perl6-dev

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