Perl 6 - the future is here, just unevenly distributed

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

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

All times shown according to UTC.

Time Nick Message
00:23 Zoffix ARRRRGGGGGGGGGDk.sadjsa dcuwae;kl'rwqeURL;WAsdudrvksadryuads.krhsda.rhsad.hrf.asdfdsahjf.hsdaJF.,M HSadf/hADS.,HDSA.HFASD,H.
00:23 Zoffix This bug is getting the best of me :(
00:24 timotimo precompilation related?
00:26 Zoffix https://rt.perl.org/Ticket/Display.html?id=128457
00:26 Zoffix These are print outs generated with my debug statements lol: https://gist.github.com/zoffixznet/2ad0b22592553ba1615898f9dec9cd33
00:26 Zoffix I just don't get why the working version calls some things just twice and not three times (one for each module).
00:27 Zoffix I think I'll call it a day and release my frustration in Far Cry 4 >_<
00:27 Zoffix Just kinda annoying, 'cause tomorrow and the day after I'll be at Damian Conway's talks so I won't be able to return to this bug until Wednesday :/
00:29 * timotimo has to go to bed :\
00:43 timotimo though ... do i really have to?
00:44 Zoffix Well, I'm stumped... Here's a line... literally two say()s in a row: https://github.com/zoffixznet/rakudo/blob/fix-RT128457-use-precomp-bug/src/core/CompUnit/Repository/FileSystem.pm#L75
00:45 Zoffix YET, in the working version, only 2 "WHERE IS THE HANDLE" printed, despite 3 '#### CU::FileSystem: $base = `/home/zoffix/CPANPRC/rakudo/bug-test/' printed https://gist.github.com/zoffixznet/b3ba61a9ecefcf3f44c46dadf1332ecf
00:45 Zoffix I just don't get it :S
00:45 timotimo change the line that does get printed to see if the same code is running in both versions
00:45 timotimo also, strace it to force system calls to behave differently with regards to buffering and such?
00:47 timotimo also, i usually use note instead of say
00:48 timotimo so it goes to stderr, not stdout. though that no longer b0rks precomp, so that's not a/the problem
00:54 Zoffix Using note fixed it thanks...
00:54 timotimo :)
00:54 timotimo jup, IO.
00:54 timotimo we should stop using async i/o for our blocking IO in any case.
00:58 timotimo we've had a branch that started that in the past. it didn't work out so cleanly, so it got postposed
00:59 timotimo postponed*
01:08 Zoffix timotimo++ replacing all my say()s with note()s actually gave me debug output that makes sense :)
01:08 timotimo yays
01:08 timotimo i'm glad
01:08 timotimo and at the same time i'm sad it's necessary
01:33 dalek joined #perl6-dev
01:45 Zoffix m: use nqp; nqp::getcomp('perl6').compile(Q{ run 'ls' })()
01:45 camelia rakudo-moar e071e4: OUTPUT«Perlito␤dalek-queue␤evalbot␤evalbot.log␤foo␤lib␤log␤mbox␤nqp-js␤p1␤p2␤p6eval-token␤perl5␤rakudo-j-1␤rakudo-j-2␤rakudo-j-inst␤rakudo-j-inst-1␤rakudo-j-inst-2␤rakudo-m-1␤rakudo-m-2␤rakudo-m-inst␤rakudo-m-inst-1␤rak…»
01:45 Zoffix tsk tsk :)
01:45 timotimo oh, it's using a different setting?
01:46 Zoffix ¯\_(ツ)_/¯
01:46 timotimo the restricted setting is super weak anyway
01:46 timotimo and as soon as you have nqp, you can do whatever the hell you want anyway
01:46 timotimo and NativeCall, of course
02:07 lizmat joined #perl6-dev
02:11 dalek rakudo/nom: 7489a28 | (Daniel Green)++ | src/core/allomorphs.pm:
02:11 dalek rakudo/nom: Speed up allomorphs.pm's val() by ~5% by converting some statements to their nqp::* equivalents
02:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7489a2826a
02:11 dalek rakudo/nom: 4b257a3 | lizmat++ | src/core/allomorphs.pm:
02:11 dalek rakudo/nom: Merge pull request #804 from MasterDuke17/allomorphs.pm_optimizations
02:11 dalek rakudo/nom:
02:11 dalek rakudo/nom: Speed up allomorphs.pm's val() by ~5% by converting some statements t…
02:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4b257a3f4d
03:22 [Sno] joined #perl6-dev
03:24 tadzik joined #perl6-dev
06:26 sno joined #perl6-dev
06:42 [Tux] This is Rakudo version 2016.06-49-g4b257a3 built on MoarVM version 2016.06
06:42 [Tux] test            16.034
06:42 [Tux] test-t           9.718
06:42 [Tux] csv-parser      21.730
06:50 brrt joined #perl6-dev
07:15 brrt joined #perl6-dev
07:29 RabidGravy joined #perl6-dev
07:54 lizmat joined #perl6-dev
08:22 sno joined #perl6-dev
08:41 cognominal joined #perl6-dev
11:27 psch https://gist.github.com/peschwa/37e480db6fefd24e2fdd4cc0e2e51a8a that's the (bytecode of) the jmeth that gets somehow tossed after we compile the EVAL that gets invoke inside it...
11:28 psch the really, really weird part about this is, that, as mentioned yesterday, we seem to compile (in this case) Foo.pm
11:28 psch which is really just < module Foo { BEGIN EVAL 'say "hi"' } >
11:28 psch and during an apparent first-pass, we get that method for the BEGIN block (i assume, 'cause it has the call to EVAL)
11:29 psch then we compile the nested CU, which apparently is the EVAL itself
11:29 psch and then we start over compiling Foo.pm, which somehow lost that BEGIN block
11:29 psch hence my approach from yesterday, which is literally "keep every compiled or compiling CU around in the compiler and look there for missing methods"
11:30 psch buuut, for some reason, we don't have *any* static info for a thus-recovered CR
11:31 psch the thing is, the method looks pretty great from here
11:31 psch so it's really just down to "how do i get the static info back"
11:31 psch well, and maybe thinking of a way to not have to carry literally everything around while the compiler is alive
11:32 nine I can't imagine us really starting over compilation?
11:32 psch well, that's what it looks like from here
11:32 psch i agree though, it'd be really weird
11:33 psch https://gist.github.com/peschwa/37e480db6fefd24e2fdd4cc0e2e51a8a
11:33 psch second file
11:33 psch the "compiling $sha, $file" is in method jast in JAST::Compiler
11:33 psch err, QAST::Compiler
11:34 psch so, we somehow do reenter that method
11:38 nine Could be due to Perl6::World::finish_code_object first creating a stub that on execution replaced itself with a Perl6::World::compile_in_context dynamically compiled version of the actual code and executes that.
11:43 psch ...there's too many layers involved for me /o\
11:44 nine That's exactly what makes this soooo hard :(
11:46 psch yeah, and it's also really damn opaque :|
11:47 psch like, if it was feasible to step through at least a simple module compilation, *maybe* i'd gain some insight from those 2-3 hours
11:47 psch but the layers make that already nigh-impossible
12:28 skids joined #perl6-dev
12:34 perlpilot joined #perl6-dev
12:59 pmurias joined #perl6-dev
13:02 dalek nqp: 2bd6b44 | (Pawel Murias)++ | src/vm/js/const_map.nqp:
13:02 dalek nqp: [js] Implement nqp::const::CONTROL_RETURN.
13:02 dalek nqp: review: https://github.com/perl6/nqp/commit/2bd6b449b0
13:02 dalek nqp: b9dadd8 | (Pawel Murias)++ | src/vm/js/ (2 files):
13:02 dalek nqp: [js] Implement nqp::handlepayload/nqp::throwpayloadlex/nqp::lastexpayload.
13:02 dalek nqp:
13:02 dalek nqp: Pass all tests again.
13:02 dalek nqp: review: https://github.com/perl6/nqp/commit/b9dadd8026
13:26 jmark joined #perl6-dev
13:46 BrokenRobot joined #perl6-dev
15:00 FROGGS joined #perl6-dev
15:16 pmurias joined #perl6-dev
15:43 pmurias_ joined #perl6-dev
15:43 lizmat and yet another quick one from Orlando: https://p6weekly.wordpress.com/2016/06/27/2016-26-another-quick-one-from-orlando/
16:07 BrokenRobot lizmat++ # Good Weekly
16:35 lizmat joined #perl6-dev
16:36 skids joined #perl6-dev
16:40 * lizmat sits in the lobby of the hotel, spending some hours before really needing to get on the road
16:53 lizmat m: MY::.elems   # jnthn: is this a bug, or a case of DIHWIDT ?
16:53 camelia rakudo-moar 4b257a: OUTPUT«MVMContext representation does not support elems␤  in block <unit> at <tmp> line 1␤␤»
16:54 lizmat m: say MY::.pairs
16:54 camelia rakudo-moar 4b257a: OUTPUT«($=pod => [] !UNIT_MARKER => (!UNIT_MARKER) EXPORT => (EXPORT) $_ => (Any) $! => Nil ::?PACKAGE => (GLOBAL) GLOBALish => (GLOBAL) $¢ => Nil $=finish => (Mu) $/ => Nil $?PACKAGE => (GLOBAL))␤»
17:11 lizmat so I have a nice patch that would re-instate "count-only" and "bool-only" for iterators
17:11 lizmat and it's breaking on this ^^^
17:24 Woodi lizmat: "count" on iterator is strange... IMO, iterators/cursors are interface to walking a struct that allows to hide internals. counting iterators looks to me like special kind of iterators so giving "count" ability to general case is too much...
17:26 lizmat m: my %h = a => 42, b => 666; say %h.elems  # why walk here when you know how many elems there are ?
17:26 camelia rakudo-moar 4b257a: OUTPUT«2␤»
17:29 Woodi when num .elems is known or for traditional structures then using iterators is overkill...
17:32 lizmat indeed...
17:32 lizmat so %h.values.elems currently walks the whole hash, I'd like to prevent that
17:33 lizmat yes, I know it's stupid written like that, but under the hood, these situations may occur more often
17:33 sno joined #perl6-dev
17:34 lizmat especially in code that polymorphically handles both lists and hashes and ranges
17:34 nine Like in sub foo($values) { do-something-with($values.elems) }; foo(%hash.values)
17:38 Woodi maybe here is conflict of abstractions between traditional lists+laziness and OO iterators ?
17:43 lizmat not really a conflict: the count-only/bool-only should *only* be implemented in an Iterator if they can deduce elems/bool *without* producing any values
17:44 lizmat like in a string (.comb), or in a hash
17:48 nine I wonder where exactly I took a wrong turn to end up trying to retroactively fix backwards compatibility of a PR that was clearly neither written to be compatible nor has ever tested.
18:02 jnthn lizmat: (.elems) looks like something we should be able to fix.
18:03 dalek rakudo/ugexe-dist-interface: 13e845a | niner++ | / (7 files):
18:03 dalek rakudo/ugexe-dist-interface: Merge branch 'dist-interface' of https://github.com/ugexe/rakudo into ugexe-dist-interface
18:03 dalek rakudo/ugexe-dist-interface: review: https://github.com/rakudo/rakudo/commit/13e845a896
18:03 dalek rakudo/ugexe-dist-interface: 1256808 | niner++ | / (5 files):
18:03 dalek rakudo/ugexe-dist-interface: Fix backwards compatibility issues with repository versions < 2
18:03 dalek rakudo/ugexe-dist-interface: review: https://github.com/rakudo/rakudo/commit/12568089c2
18:03 dalek rakudo/ugexe-dist-interface: eaaf51d | niner++ | / (34 files):
18:03 dalek rakudo/ugexe-dist-interface: Merge branch 'ugexe-dist-interface' of github.com:rakudo/rakudo into ugexe-dist-interface
18:03 dalek rakudo/ugexe-dist-interface: review: https://github.com/rakudo/rakudo/commit/eaaf51d87a
18:03 dalek rakudo/ugexe-dist-interface: 0a1b86a | niner++ | src/core/CompUnit/Repository/Installation.pm:
18:03 dalek rakudo/ugexe-dist-interface: Fix missing scripts and resources of dists installed using legacy interface
18:03 dalek rakudo/ugexe-dist-interface: review: https://github.com/rakudo/rakudo/commit/0a1b86a769
18:12 lizmat jnthn: fixing nqp::elems on an MVMContext, would be great
18:13 lizmat as I'm banging my head for an hour now to work around it and the solutions keeps getting worse and worse
18:33 dalek rakudo/nom: 5a4963f | lizmat++ | src/core/ (7 files):
18:33 dalek rakudo/nom: Re-instate Iterator.countr|bool-only with a twist
18:33 dalek rakudo/nom:
18:33 dalek rakudo/nom: I too didn't like the removal of .count-only and .bool-only last
18:33 dalek rakudo/nom: week.  Then I realized it could still work *if* the methods would
18:33 dalek rakudo/nom: only be called if they could produce the info *without* generating
18:33 dalek rakudo/nom: any values.  So now, an Iterator *can* provide these methods for
18:33 dalek rakudo/nom: efficiency: if they're not there, then the normal cause of action
18:33 dalek rakudo/nom: (generating the values and cache them, then return its result) will
18:33 dalek rakudo/nom: be used.  If they *do* exist, then they're supposed to return the
18:33 dalek rakudo/nom: info *without* generating any values.
18:33 dalek rakudo/nom:
18:33 dalek rakudo/nom: This breaks one test in t/spec/S02-names/pseudo.t because MVMContext
18:33 dalek rakudo/nom: does not know how to provide nqp::elems.  This should be fixed one
18:39 lizmat commute to MCO&
18:51 brrt joined #perl6-dev
20:58 * [Coke] waves from the highway
21:00 lizmat joined #perl6-dev
21:02 * lizmat waves from MCO
21:08 DrForr_ On the way out finally?
21:10 timotimo o/
21:10 lizmat DrForr_: yup
21:10 lizmat after a nice visit to Kennedy Space Center yesterday
21:11 DrForr_ Looks like you at least had a good time, I saw that.
21:11 lizmat hehe, yeah that picture has been liked a lot  :-)
22:08 tailgate joined #perl6-dev
22:41 ZoffixLappy joined #perl6-dev
23:39 lizmat joined #perl6-dev
23:39 lizmat boarding&

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