Perl 6 - the future is here, just unevenly distributed

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

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

All times shown according to UTC.

Time Nick Message
00:25 dalek roast: cef40ed | LLFourn++ | / (4 files):
00:25 dalek roast: RT #128156 changing of file content
00:25 dalek roast:
00:25 dalek roast: Changing a precompiled dependency's content would break it further
00:25 dalek roast: re-precompilations. This seems to be caused by a mistake wrt to
00:25 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128156
00:25 dalek roast: appending the SHA of the file to the filename.
00:25 dalek roast:
00:25 dalek roast: Fixed in d0a00164e of rakudo
00:25 dalek roast: review: https://github.com/perl6/roast/commit/cef40ed6be
00:38 vendethiel joined #perl6-dev
00:51 b2gills joined #perl6-dev
01:02 vendethiel joined #perl6-dev
01:20 Zoffix joined #perl6-dev
01:21 Zoffix Have anyone tried to make the Rakudo release process more... automatic?
01:23 Zoffix As in... will I be reinventing some wheel if I try to? :)
01:32 Zoffix The cli rt keeps telling me incorrect login/pass  :S
01:35 Zoffix nm (you have to set up a pass separately)
01:46 Zoffix that program would be a 1000% more helpful if it didn't chop off the subject line after like 10 characters... Srsly, lots of screen! http://i.imgur.com/kk4qkxS.png
01:49 ilbot3 joined #perl6-dev
01:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
01:49 timotimo urgh, that's terrible
01:53 Zoffix Getting rid of substr here fixed it: https://github.com/bestpractical/rt-client-cli/blob/c1e6871c327a0794f77ae8a9b8bb5cb997663bc7/script/rt#L1809
01:54 Zoffix (knowing how to program)++
01:54 jdv79 my $subject = substr($k->{Subject}, 0, 30);
01:54 jdv79 that's rather boring and heavy handed:(
01:57 jdv79 its probably best to detect the term width and adapt but who uses rt'
01:57 jdv79 s cli anyway
01:57 vendethiel joined #perl6-dev
02:12 sortiz That is the "prettylist" :-)
02:12 [Coke] Zoffix: no one is pursuing automated releases atm, i think
02:52 vendethiel joined #perl6-dev
03:01 Zoffix m: sub foo ( Str:D :$a ) {}; foo
03:02 camelia rakudo-moar ac0dcd: OUTPUT«Parameter '$a' requires an instance of type Str, but a type object was passed.  Did you forget a .new?␤  in sub foo at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
03:02 Zoffix m: method foo ( Str:D :$a ) {};
03:02 camelia rakudo-moar ac0dcd: OUTPUT«Potential difficulties:␤    Useless declaration of a has-scoped method in mainline (did you mean 'my method foo'?)␤    at <tmp>:1␤    ------> method⏏ foo ( Str:D :$a ) {};␤»
03:03 Zoffix m: class { method foo (Str:D :$a) {} }.new.foo
03:03 camelia rakudo-moar ac0dcd: OUTPUT«Parameter '$a' requires an instance of type Str, but a type object was passed.  Did you forget a .new?␤  in method foo at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
03:04 Zoffix m: my Str:D $a = Str:D;
03:04 camelia rakudo-moar ac0dcd: OUTPUT«Type check failed in assignment to $a; expected Str:D but got Str:D␤  in block <unit> at <tmp> line 1␤␤»
03:22 Zoffix m: say Int(Int(3434))
03:22 camelia rakudo-moar ac0dcd: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Unable to parse expression in typename; couldn't find final ')' ␤at <tmp>:1␤------> say Int(Int(⏏3434))␤»
03:22 Zoffix m: say Int(+Int(3434))
03:22 camelia rakudo-moar ac0dcd: OUTPUT«3434␤»
03:23 Zoffix m: say Int({Int(3434)})
03:23 camelia rakudo-moar ac0dcd: OUTPUT«Cannot find method 'Int' on object of type Block␤  in block <unit> at <tmp> line 1␤␤»
03:23 Zoffix ... do I even want to know...
03:23 Zoffix m: say name({Int(3434)})
03:23 camelia rakudo-moar ac0dcd: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Undeclared routine:␤    name used at line 1␤␤»
03:23 Zoffix hmm
03:23 Zoffix m: say Int({name(3434)})
03:23 camelia rakudo-moar ac0dcd: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Undeclared routine:␤    name used at line 1␤␤»
03:24 Zoffix m: {}.name.say
03:24 camelia rakudo-moar ac0dcd: OUTPUT«%␤»
03:24 Zoffix m: {;}.name.say
03:24 camelia rakudo-moar ac0dcd: OUTPUT«␤»
03:27 Zoffix bisectable, sub foo() { return 42 }; for ^158 { foo }
03:27 Zoffix bisect: sub foo() { return 42 }; for ^158 { foo }
03:27 bisectable Zoffix: (2016-06-01) https://github.com/rakudo/rakudo/commit/7250543
03:27 Zoffix bisectable, help
03:27 bisectable Zoffix: Like this: bisect: good=2015.12 bad=HEAD exit 1 if (^∞).grep({ last })[5] // 0 == 4 # RT 128181
03:29 Zoffix Would this be a release-stopping issue? https://rt.perl.org/Ticket/Display.html?id=128368
03:29 Zoffix m: sub foo() { return 42 }; for ^158 { foo }
03:29 camelia rakudo-moar ac0dcd: OUTPUT«Attempt to return outside of any Routine␤  in block <unit> at <tmp> line 1␤␤»
03:29 Zoffix ^ that specifically
03:32 jdv79 [Coke]: i thought there were parts that were difficult to automate and that's why.  i think i asked you about that once.
03:41 Zoffix I went through tickets since last release. There's just one (the one I show above) that IMO needs to be fixed before release. I also marked down a few that have a reasonable chance of affecting a number of users: https://gist.github.com/zoffixznet/25a3d15db1de88f948230e3f2c6aa0ba
03:51 jdv79 the utf8-c8 one looks fun
03:51 jrusso joined #perl6-dev
04:24 lizmat I'm not sure the ^158 bug will be fixable before release with jnthn's availability
04:25 lizmat otoh, I *would* give that greater importance than the named param cache issue we talked about yesterday
04:34 lizmat commute to FRA&
04:37 vendethiel joined #perl6-dev
05:50 vendethiel joined #perl6-dev
05:55 [Tux] This is Rakudo version 2016.05-145-gac0dcdd built on MoarVM version 2016.05-18-g1339332
05:55 [Tux] test            17.474
05:55 [Tux] test-t           9.763
05:55 [Tux] csv-parser      22.109
06:06 sno joined #perl6-dev
06:20 vendethiel joined #perl6-dev
06:36 jdv79 it has something to do with that fixup clause after the decode for loop but my C skills can't penetrate the issue.  oh well.
07:02 Ulti joined #perl6-dev
07:02 Ulti jnthn would your multi dispatch caching changes include this sort of use case? https://github.com/MattOates/BioInfo/blob/master/t/sequences.t#L30
07:03 Ulti because I have that sort of stuff in tight loops all over my code because I liked the interface style :S
07:12 RabidGravy joined #perl6-dev
07:16 * masak really likes seeing that "9" next to "test-t"
07:23 nine Ulti: AFAIK it should
07:43 vendethiel joined #perl6-dev
07:44 [Tux] masak, /me really hopes for a 5 when "next" is optimized
07:45 masak hope springs eternal :)
08:26 brrt joined #perl6-dev
08:40 jnthn Ulti: Quite possibly
08:40 vendethiel joined #perl6-dev
08:41 jnthn Ulti: Don't see why not, at least
09:01 Ulti then I'll bump up my anticipation accordingly >:3
09:21 dalek nqp/return-without-lexotic: 4bddc57 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
09:21 dalek nqp/return-without-lexotic: Map throw-by-exception-category op.
09:21 dalek nqp/return-without-lexotic:
09:21 dalek nqp/return-without-lexotic: So we will be able to use it in Rakudo for next/last/redo speedup.
09:21 dalek nqp/return-without-lexotic: review: https://github.com/perl6/nqp/commit/4bddc57118
09:27 psch so, the difference between moar and jvm in how we have to handle mast_frames is probably also why moar doesn't get any hiccup with getting a Hash instead of a BOOTHash in %*COMPILING<%?OPTIONS><mast_frames>
09:27 psch as in, moar only ever gets an nqp::hash from HLL::Backend, fills that itself when it needs to, and afterwards it gets added to the CU
09:28 psch while on jvm we need information from the outer CU inside the nested CU
09:28 psch and that information comes HLLized
09:29 psch 'cause we can't just say "here, these methods also go into the class", because we have more to add than just methods
09:30 psch like, the J::Class that represents the outer CU has to know that it has a nested CU, so we can visit the nested class that represents the nested CU during codegen
09:30 psch and of course the nested class also has to visit its containing class during codegen
09:33 psch and we also kind of have to carry the whole JCLASS from inside the nested CU with us to the outer CU, so we can figure out which method to call as mainline of the nested CU in the outer CU
09:33 lizmat joined #perl6-dev
09:34 * lizmat waves from FRA
09:35 * moritz waves to FRA
09:37 * lizmat sees moritz waving
09:40 DrForr On your way to MCO?
09:40 * masak waves to all the TLA
09:40 masak or TLAs
09:41 DrForr TDM TLA.
09:44 lizmat DrForr: yup
09:45 DrForr I'll be in on Saturday. Reminds me that I need to book my airport shuttle...
09:54 M-tadzik joined #perl6-dev
09:56 jnthn There actually is a TLA airport: https://en.wikipedia.org/wiki/Teller_Airport
09:59 lizmat joined #perl6-dev
09:59 vendethiel joined #perl6-dev
10:06 dalek rakudo/return-without-lexotic: 76afba8 | jnthn++ | src/core/control.pm:
10:06 dalek rakudo/return-without-lexotic: Use new throwextype to cheapen next/last/redo.
10:06 dalek rakudo/return-without-lexotic:
10:06 dalek rakudo/return-without-lexotic: Cuts ~12% of CPU instructions off 'my $i = 0; for ^500000 { next if $_
10:06 dalek rakudo/return-without-lexotic: >= 50000; $i++ }; say $i'.
10:06 dalek rakudo/return-without-lexotic: review: https://github.com/rakudo/rakudo/commit/76afba86d9
10:07 nine psch: sounds like you at least have a pretty good picture of what's going on and what's needed now :)
10:08 psch nine: yeah, i largely think so.  figuring out how to implement the codegen bits is gonna be lots of fun, though
10:08 psch well, and also figuring out how i can get the necessary information from the outer JAST::Compiler instance to the inner also still is some challenge
10:11 dalek nqp/return-without-lexotic: 412d997 | jnthn++ | src/vm/jvm/ (2 files):
10:11 dalek nqp/return-without-lexotic: Add RETURN exception category to JVM backend.
10:11 dalek nqp/return-without-lexotic: review: https://github.com/perl6/nqp/commit/412d9975ef
10:12 dalek rakudo/nom: 781c6cd | lizmat++ | src/core/Version.pm:
10:12 dalek rakudo/nom: Fix for RT #128408, Zefram++ for spotting
10:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/781c6cd8f3
10:12 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128408
10:17 dalek rakudo/nom: e423a0a | lizmat++ | src/core/Version.pm:
10:17 dalek rakudo/nom: Fix incorrect use of the word sentinel
10:17 dalek rakudo/nom:
10:17 dalek rakudo/nom: When highlander (there can only be one) was intended
10:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e423a0aedc
10:19 dalek rakudo/nom: b3e9f5d | lizmat++ | docs/ChangeLog:
10:19 dalek rakudo/nom: Mention Version fix in ChangeLog
10:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b3e9f5d24a
10:37 tadzik joined #perl6-dev
10:40 jnthn Gee, working on JVM stuff is slow going....
10:42 * psch sighs
10:42 Zoffix Is avoiding the ^158 bug in the release more involved than simply omitting this commit? https://github.com/rakudo/rakudo/commit/7250543
10:42 Zoffix It looks scary enough that I'd say its presence is a legitimate reason to delay the release.
10:43 Zoffix m: sub foo() { return 42 }; for ^158 { foo } # I mean this one
10:43 camelia rakudo-moar b3e9f5: OUTPUT«Attempt to return outside of any Routine␤  in block <unit> at <tmp> line 1␤␤»
10:43 psch star-m: sub foo() { return 42 }; for ^158 { foo }
10:43 camelia star-m 2016.04: ( no output )
10:44 lizmat Zoffix: I think it will just revert a performance gain
10:44 lizmat spectesting it now
10:44 Zoffix oh :(
10:45 AlexDaniel joined #perl6-dev
10:56 lizmat Zoffix: spectests clean, with even 1 todo passing  :-)
10:57 lizmat commute to MCO&
10:57 lizmat catch ya on the flip side!
10:57 Zoffix nice. Thanks, lizmat++
11:01 nine Zoffix: the commit in question does not cause the bug but just unhides it.
11:02 Zoffix :(
11:02 Zoffix star-m: sub foo() { return $++ }; my $x; for ^200 { $x = foo }; say $x
11:02 camelia star-m 2016.04: OUTPUT«199␤»
11:02 Zoffix m: sub foo() { return $++ }; my $x; for ^200 { $x = foo }; say $x
11:02 camelia rakudo-moar b3e9f5: OUTPUT«Cannot resolve caller postfix:<++>(); none of these signatures match:␤    (Mu:D $a is rw)␤    (Mu:U $a is rw)␤    (Int:D $a is rw)␤    (int $a is rw)␤    (Bool:U $a is rw)␤    (Bool:D $a is rw)␤    (Num:D $a is rw)␤    (Num:U $a is rw)␤  …»
11:03 Zoffix :S
11:04 psch that doesn't help with deciding if it's fixed or hidden
11:04 psch i mean, the bug itself isn't with &EXHAUST, but somewhere in (i think) inlining in moar
11:04 Zoffix m: sub foo() { state $x = 0; return $x++ }; my $x; for ^200 { $x = foo }; say $x
11:04 camelia rakudo-moar b3e9f5: OUTPUT«199␤»
11:04 psch so if we prevent that case of inlining, we don't exercise the bug
11:04 jnthn Yeah, that's where I tracked it down to
11:05 psch jnthn: right, i'm mostly defering to what i think i remember you writing might cause it :)
11:06 psch also i'm reminded of the 'sub { sub { 1 } }' bug on jvm
11:06 Zoffix So &EXHAUST stuff prevents inlining?
11:06 psch which is also gonna be lots of fun
11:06 psch Zoffix: afaiu it's something about lexical resolution that makes it too complicated for inlining.  the clog or jnthn++ probably have a better explanation :)
11:07 jnthn Zoffix: Yes, pretty much
11:34 vendethiel joined #perl6-dev
11:43 dalek nqp/return-without-lexotic: 5e5d1c6 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
11:43 dalek nqp/return-without-lexotic: Map some new (currently NYI) ops on JVM.
11:43 dalek nqp/return-without-lexotic: review: https://github.com/perl6/nqp/commit/5e5d1c6597
11:43 dalek nqp/return-without-lexotic: ba99288 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (3 files):
11:43 dalek nqp/return-without-lexotic: Implement new lexical handling related ops.
11:43 dalek nqp/return-without-lexotic: review: https://github.com/perl6/nqp/commit/ba99288a8a
11:44 dalek nqp/return-without-lexotic: 8b55ed4 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
11:44 dalek nqp/return-without-lexotic: Implement handlepayload on JVM.
11:44 dalek nqp/return-without-lexotic: review: https://github.com/perl6/nqp/commit/8b55ed4b8c
11:48 jnthn Phew, I think I got it working...
11:48 jnthn oh wow, no wonder I'm hungry, it's nearly 2pm!
11:48 brrt joined #perl6-dev
11:51 |Tux| 12% off. Wonderful. jnthn++
11:51 brrt stuff well jnthn
11:52 |Tux| eager to test once integrated
11:54 psch hrm
11:54 psch so, trying to fiddle with a named parameter in QAST::Compiler.jast somehow breaks stuff in CodeRefBuilder.jastify
11:55 psch probably something about binding..? vOv
11:55 jnthn |Tux|: Well, that branch merge blocks on me getting the JVM backend updated with the other stuff I was donig in there. I just got NQP working again though (I think)...then will see if Rakudo Just Works :)
11:55 jnthn *doing
11:55 psch jnthn: as long as you don't need to install any CUR for your r-j testing... :S
12:00 dalek nqp/return-without-lexotic: afd690d | jnthn++ | src/NQP/Actions.nqp:
12:00 dalek nqp/return-without-lexotic: Workaround for until after re-bootstrap.
12:00 dalek nqp/return-without-lexotic: review: https://github.com/perl6/nqp/commit/afd690d4a0
12:01 jnthn psch: No...I changed the way return works, so a "make test" in reasonable shape should be fairly sufficient given how common return is :)
12:01 psch jnthn: does 'make test' work without 'make install'?
12:02 psch jnthn: 'cause 'make install' is what we're broken in on r-j atm
12:02 jnthn It should. I mean, it does on Moar.
12:02 jnthn And it did on JVM back when I originally ported it ;)
12:03 psch alright :)
12:03 psch i mean, yeah, semantically it definitely should, i just don't know if install-core-dist.pl really sits behind 'make install' or not, although i do assume so...
12:04 nine It should work, yes.
12:05 nine And it does on rakudo-m
12:08 jnthn Hm, oddly one continuation test is a bit unhappy in NQP's make test on JVM. Building r-j now.
12:09 jnthn Really lunch, while it works at that :) &
12:24 vendethiel joined #perl6-dev
12:38 jnthn mmm....gorgonzola :)
12:38 jnthn Stage parse      : Killed
12:38 jnthn make: *** [CORE.setting.jar] Error 137
12:38 jnthn gee, that's helpful...
12:39 jnthn ah, OOM killer :/
12:40 dalek nqp/return-without-lexotic: d6bb499 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
12:40 dalek nqp/return-without-lexotic: Add another missing constant.
12:40 dalek nqp/return-without-lexotic: review: https://github.com/perl6/nqp/commit/d6bb499997
12:50 |Tux| one should not mix program code with gorgonzola. Both are awesome, but mixing them is heading for (sticky and smelly) trouble
12:52 * psch imagines platters covered in gorgonzola
12:57 dalek nqp/return-without-lexotic: 891e760 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
12:57 dalek nqp/return-without-lexotic: Add some missing :!inlinable markers.
12:57 dalek nqp/return-without-lexotic: review: https://github.com/perl6/nqp/commit/891e760802
12:58 vendethiel joined #perl6-dev
13:29 skids joined #perl6-dev
13:37 vendethiel joined #perl6-dev
13:52 jnthn grr, the nqp-j install is messed up on Windows. It emits an nqp-j.bat that mentions 3rdparty/thing/thing.jar but the things are really installed to just thing.jar
13:52 jnthn And that files generated by a Perl script that in turn is generated... :/
13:53 nine oh my
13:55 jnthn The reason I discovered this is 'cus I'm seeing if the rakudo-j build works outside of my VM
13:56 jnthn Because the reboot after trying to disable the OOM detection gave me an ubuntu that hangs on login
13:56 jnthn (Graphical, that is)
13:57 jnthn And of course reverting what I tweaked didn't help, but I know it installed a bunch of updates too and it was the first reboot since those also :/
14:07 jnthn Anyway, turns out that Rakudo runs into the same error that the NQP continuations test fails with over on Windows, rather than hitting the OOM killer
14:07 jnthn So it may just be my VM had too little memory allocated to it
14:24 jnthn Hm, seems some desktop config got corrupted or something...rescused the VM now too :)
14:26 mst joined #perl6-dev
14:40 mst joined #perl6-dev
14:41 mst joined #perl6-dev
14:49 sexy-coder-girl bisect: my @list = 1; say @list.permutations
14:49 bisectable sexy-coder-girl: exit code on a “good” revision is 1 (which is bad), bisecting with inverted logic
14:49 bisectable sexy-coder-girl: (2016-04-03) https://github.com/rakudo/rakudo/commit/0fafd86
14:49 sexy-coder-girl star: my @list = 1; say @list.permutations
14:49 camelia star-m 2016.04: OUTPUT«((1))␤»
15:05 hoelzro Zoffix: it was a *really* out of date rakudo (on my laptop)
15:07 sno joined #perl6-dev
15:22 vendethiel joined #perl6-dev
15:44 cognominal joined #perl6-dev
15:45 dalek nqp/return-without-lexotic: 3bd1bdb | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ResumeStatus.java:
15:45 dalek nqp/return-without-lexotic: Fix return/continuation interaction.
15:45 dalek nqp/return-without-lexotic:
15:45 dalek nqp/return-without-lexotic: All NQP tests now pass on JVM again.
15:45 dalek nqp/return-without-lexotic: review: https://github.com/perl6/nqp/commit/3bd1bdbd31
15:59 sno joined #perl6-dev
16:16 vendethiel joined #perl6-dev
16:40 FROGGS[mobile] joined #perl6-dev
16:40 FROGGS[mobile] o/
16:50 TimToady joined #perl6-dev
17:03 vendethiel joined #perl6-dev
17:04 FROGGS joined #perl6-dev
17:29 vendethiel joined #perl6-dev
17:41 dalek rakudo/nom: 66ebd86 | niner++ | src/core/CompUnit/PrecompilationRepository.pm:
17:41 dalek rakudo/nom: Remove obsolete argument of PrecompilationRepository::precompile
17:41 dalek rakudo/nom:
17:41 dalek rakudo/nom: The :since argument has not been used anymore since commit
17:41 dalek rakudo/nom: c59e4dc44772cb09edeb8aa7f0ce0385f951cf5d and is superseeded by better
17:41 dalek rakudo/nom: use of the :force argument.
17:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/66ebd86857
17:54 vendethiel joined #perl6-dev
18:01 nine Do we have access to something like http://pubs.opengroup.org/onlinepubs/9699919799/functions/mkdtemp.html in the core?
18:01 nine i.e. a temporary directory?
18:03 nine actually mkstemp would be just as fine
18:07 [Coke] m: IO::Spec::Unix.can('tmpdir').say
18:07 camelia rakudo-moar 66ebd8: OUTPUT«(tmpdir)␤»
18:09 nine m: m: m: say $*TMPDIR
18:09 camelia rakudo-moar 66ebd8: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Bogus statement␤at <tmp>:1␤------> m:⏏ m: say $*TMPDIR␤    expecting any of:␤        prefix␤        term␤»
18:10 nine m: say $*TMPDIR
18:10 camelia rakudo-moar 66ebd8: OUTPUT«"/tmp".IO␤»
18:10 nine That's just the place for temporary files but not the name of a temporary file
18:11 BrokenRobot There's File::Temp in ecosystem, so I'm guessing there's no core way to do it
18:12 geekosaur there's differences between platforms. like, on unix you often want to get a temporary file handle with no file associated; you can't do that on Windows, or at least not in anything like the same way
18:15 nine Just to be sure: there are PIDs on Windows, are there?
18:16 geekosaur there are process handles. they are not pids in the unix sense (at some level, they're pointers)
18:17 nine But $PID still gives a unique process identifier that I can use to generate a unique file name?
18:18 FROGGS nine: if you, say, work in a directory exclusively, yes
18:19 nine If I work in a directory exclusively I don't need a unique file name anymore :) I'm thinking about something like my $io = $*TMPDIR.child($*PID ~ '-' ~ $precomp-id);
18:21 FROGGS well, it is unlikely that such a file exists already, but it is technically not impossible
18:23 nine Darn....there's still those .rev-deps files in the way anyway
18:27 vendethiel joined #perl6-dev
18:30 nine I wonder whether I should just go forward with https://gist.github.com/niner/4910787a3b7799e47c6a5bbd401362b8
18:30 nine Anyone up for discussion?
18:31 FROGGS I am if I can be of help
18:37 nine Those .rev-deps files were a good idea at the time for tracking which reverse-dependencies we have to recompile after updating a module. But that was when we only ever used a single precomp store at a time, so everything of interest would be found in the same store.
18:37 nine Now a reverse dependency may be in a store further up the chain and .rev-deps files are possibly incomplete.
18:38 nine Considering that everything still seems to work, I wonder if we should remove tham alltogether. If not, they have to be integrated better into the PrecompilationStore abstraction which right now is leaky as hell.
18:42 nine They are also a problem for packaging modules as they are changed on installation of other modules.
18:48 FROGGS hmmm
18:49 FROGGS but if we would remove them right now, wont we introduce the bug again that I fixed the other day?
18:50 nine FROGGS: indeed!
18:52 nine All the more reason for finding a good alternative. Because if we depend on .rev-deps files to get this right, the bug should still be present if the files in question are in different repos.
18:54 FROGGS hmmm
18:55 FROGGS is there something in the git architecture that is similar to our problem?
18:55 nine I wouldn't think so. git objects are immutable.
18:56 FROGGS no, I mean searching for reverse dependencies
18:57 nine I don't think this would be enough. The precomp file we need to outdate can be in a repo that's not even in the repo-chain right now.
18:58 vendethiel joined #perl6-dev
18:58 FROGGS what if we do it the other way around?
18:59 FROGGS not trying to recompile the revdeps but to recompile a branch when we see that a depdepdep got changed
18:59 nine The bug is in that we do not correctly detect that a dependency has changed or do not act accordingly and has just been hidden by removing reverse dependencies on precompilation
19:01 FROGGS we need an op similar to leadbytecode that reads in a .moarvm, and checks its deps for modified files, recursively
19:01 FROGGS probably as one op
19:01 FROGGS than you can invalidate an entire branch at once, and can start recompiling
19:02 nine It's not only the precompiled dependencies themselves but also their source files
19:02 FROGGS that also solves the case when a repo change is not yet in use, but will be later
19:02 FROGGS yes, that op has to check both
19:03 FROGGS but I believe this is the only robust solution
19:03 nine I think I know what's going wrong in !load-dependencies.
19:03 nine It's quite simple actually.
19:03 nine Given A.pm: use C; use B;
19:04 nine B.pm: use C;
19:04 nine C.pm: use D;
19:04 FROGGS aye, I know that example very vell
19:05 nine We try to load A and get the following dependencies: C, B, C, D
19:06 nine Sorry: D, C, B, D, C
19:06 FROGGS not DCDCB?
19:07 FROGGS I'm confused
19:07 nine just a sec
19:07 nine Damn I sometimes have huge input lag and no idea where it's coming from.
19:08 FROGGS on which side of the keyboard?
19:08 nine the digital one
19:09 FROGGS k
19:09 nine Ok, maybe I'm wrong after all. Klling the stderr buffering in .precompile to make the order less confusing
19:17 cognominal joined #perl6-dev
19:29 hankache joined #perl6-dev
19:30 nine Oooook, without completely understanding what's going wrong I have a fix that should make sense.
19:31 nine Instead of checking each dependency and immediately loading it if it checks out, I now first check all dependencies and load nothing iv f any of them is outdated.
19:31 FROGGS yes, that sounds sane
19:32 nine Sucks that I can't seem to be able to figure out why this fixes this specific bug.
19:32 FROGGS you basically have to check the entire tree, and then load the tree if all is fine
19:34 nine I'm still not sure why it's needed though. Since dependencies are checked bottom up, they really should not change anymore once we checked them out
20:26 MasterDuke joined #perl6-dev
20:30 MasterDuke .tell Zoffix i've tried replying to your question on RT #128280 twice, but nothing is showing up. short answer, on arch linux and kubuntu 16.04, both x64 with an up to date rakudo, i get the same seg fault
20:30 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128280
20:30 yoleaux2 MasterDuke: I'll pass your message to Zoffix.
20:30 nine Of course!
20:31 nine We just don't check dependencies that are already loaded. That's why we don't recognize that B has to be recompiled as well and just try to load it.
20:31 nine FROGGS: ^^^
20:33 FROGGS ohh!
20:33 nine And that's why my check-dependencies-first patch fixes the issue because it unconditionally checks dependencies and only puts the actual loading of the dependency inside the "unless %!loaded{$dependency.id}:exists {"
20:37 FROGGS nine: does that mean you can remove the .rev-deps already?
20:40 dalek rakudo/nom: c7cd003 | niner++ | src/core/CompUnit/PrecompilationRepository.pm:
20:40 dalek rakudo/nom: Real fix for RT #128156
20:40 dalek rakudo/nom:
20:40 dalek rakudo/nom: Check all dependencies first before starting to load any of them.
20:40 dalek rakudo/nom: More importantly: unconditionally check all dependencies before trying
20:40 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128156
20:40 dalek rakudo/nom: to load a precomp file. Previously we did not check a dependency if it
20:40 dalek rakudo/nom: has already been loaded.
20:40 dalek rakudo/nom:
20:40 dalek rakudo/nom: Consider: A depending on C and B. B depending on C.  If C is outdated,
20:40 dalek rakudo/nom: we already notice that trying to load A. We recompile C and load it.
20:40 dalek rakudo/nom: Then when it's time to check B's dependencies, we don't check C because
20:40 dalek rakudo/nom: it's already been loaded and therefore not notice that B is outdated, too.
20:40 dalek rakudo/nom:
20:40 nine FROGGS: testing now
20:42 [Coke] nine++
20:43 FROGGS yeah, nine++
20:46 FROGGS gnight
20:53 Zoffix MasterDuke, I'm guessing by up-to-date you mean brewed freshly from source?
20:53 yoleaux2 20:30Z <MasterDuke> Zoffix: i've tried replying to your question on RT #128280 twice, but nothing is showing up. short answer, on arch linux and kubuntu 16.04, both x64 with an up to date rakudo, i get the same seg fault
20:53 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128280
20:53 nine All tests successful. ==> Successfully installed Task::Star
20:53 Zoffix Weird that it works on my box.
20:53 nine Looks really good :)
20:53 Zoffix nine++
20:57 MasterDuke This is Rakudo version 2016.05-145-gac0dcdd built on MoarVM version 2016.05-34-gfbe9e24 implementing Perl 6.c.
20:57 MasterDuke This is Rakudo version 2016.05-145-gac0dcdd built on MoarVM version 2016.05-17-g6075599 implementing Perl 6.c.
20:57 Zoffix m: say 'test'
20:57 camelia rakudo-moar c7cd00: OUTPUT«test␤»
20:58 MasterDuke no crashes after 30+ runs without --profile
20:59 MasterDuke about 1 in 5 crashes with --profile
21:01 * Zoffix starts 100 runs
21:08 MasterDuke Zoffix: https://gist.github.com/MasterDuke17/4c7bb572e917e8e3996c49113be72156
21:08 MasterDuke from the kubuntu system
21:24 dalek rakudo/fix_precompilationstore_abstraction: 07c8267 | niner++ | src/core/CompUnit/ (2 files):
21:24 dalek rakudo/fix_precompilationstore_abstraction: Remove .rev-deps cache
21:24 dalek rakudo/fix_precompilationstore_abstraction:
21:24 dalek rakudo/fix_precompilationstore_abstraction: .rev-deps files were a good idea at the time for tracking which reverse-
21:24 dalek rakudo/fix_precompilationstore_abstraction: dependencies we have to recompile after updating a module. But that was when
21:24 dalek rakudo/fix_precompilationstore_abstraction: we only ever used a single precomp store at a time, so everything of interest
21:24 dalek rakudo/fix_precompilationstore_abstraction: would be found in the same store.
21:24 dalek rakudo/fix_precompilationstore_abstraction:
21:24 dalek rakudo/fix_precompilationstore_abstraction: Now a reverse dependency may be in a store further up the chain and .rev-deps
21:24 dalek rakudo/fix_precompilationstore_abstraction: files are possibly incomplete. They are also a problem for packaging modules
21:24 dalek rakudo/fix_precompilationstore_abstraction: as they are changed on installation of other modules. Removing them also clears
21:24 dalek rakudo/fix_precompilationstore_abstraction: the way for fixing the PrecompilationStore abstraction.
21:24 dalek rakudo/fix_precompilationstore_abstraction: review: https://github.com/rakudo/rakudo/commit/07c8267d3b
21:24 dalek rakudo/fix_precompilationstore_abstraction: 7da09ea | niner++ | src/core/ (4 files):
21:24 cognominal joined #perl6-dev
21:25 Zoffix Nothing in 100 runs: https://gist.github.com/zoffixznet/2611df329fd233001181afdfac525e8f
21:28 MasterDuke arch linux: https://gist.github.com/MasterDuke17/ac18f05a27bfd37ebf22e766dad3034b
21:31 MasterDuke kubuntu: https://gist.github.com/MasterDuke17/657a2a8ffdda8c195900e7264ea70c93
21:45 vendethiel joined #perl6-dev
22:39 Zoffix m: use Test; subtest 'foo', { ok 1 };
22:39 camelia rakudo-moar c7cd00: OUTPUT«    ok 1 - ␤    1..1␤ok 1 - foo␤»
22:41 Zoffix m: use Test; subtest 'foo'
22:41 camelia rakudo-moar c7cd00: OUTPUT«Type check failed in assignment to &subtests; expected Callable but got Str ("foo")␤  in sub subtest at /home/camelia/rakudo-m-inst-1/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E (Test) line 330␤  in block <unit> at <tmp> line 1␤␤»
22:42 Zoffix This should be reverted. The issue is in the roast test itself. It assumes too much about implementation of throws-like. https://github.com/rakudo/rakudo/commit/9e4760256647336d8e5b2a3dc71d01c0f0485a3e
22:43 * Zoffix is unfamiliar with how such stuff is handled with respect to the roast
22:44 Zoffix (and the test is fixed in latest and greatest roast)
22:50 Zoffix bisect: Inf.Rat == 1/0 or die
22:50 bisectable Zoffix: (2016-05-02) https://github.com/rakudo/rakudo/commit/e2f1fa7
22:54 Zoffix m: use Test; subtest { ok 1; }, 'foo1'; subtest { ok 1; }, 'foo2'; subtest { ok 1; }, 'foo3';
22:54 camelia rakudo-moar c7cd00: OUTPUT«    ok 1 - ␤    1..1␤ok 1 - foo1␤    ok 1 - ␤    1..1␤ok 2 - foo2␤    ok 1 - ␤    1..1␤ok 3 - foo3␤»
22:54 vendethiel joined #perl6-dev
23:07 masak_ joined #perl6-dev
23:07 moritz_ joined #perl6-dev
23:08 [Coke]_ joined #perl6-dev
23:08 lucs_ joined #perl6-dev
23:08 jnthn_ joined #perl6-dev
23:08 Ulti_ joined #perl6-dev
23:08 jdv79_ joined #perl6-dev
23:08 btyler_ joined #perl6-dev
23:08 Woodi_ joined #perl6-dev
23:15 MadcapJake left #perl6-dev
23:19 jsimonet joined #perl6-dev
23:21 tomboy64 joined #perl6-dev
23:45 Zoffix m: for ^1000000 { class Foo {}.new }; say now - INIT now
23:45 camelia rakudo-moar c7cd00: OUTPUT«2.0058901␤»
23:45 Zoffix star: for ^1000000 { class Foo {}.new }; say now - INIT now
23:45 camelia star-m 2016.04: OUTPUT«5.6419404␤»
23:45 Zoffix m: say 5.64 / 2
23:45 camelia rakudo-moar c7cd00: OUTPUT«2.82␤»
23:46 Zoffix .oO( seems much faster than the 1.8x the commit indicates... lizmat++ )
23:53 timotimo try adding some more attributes, that'll probably get you closer to the 1.8x
23:55 Zoffix There's actually another later commit with "another 1.8x" :)
23:56 pochi joined #perl6-dev
23:59 timotimo oh

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