Zoffix | ARRRRGGGGGGGGGDk.sadjsa dcuwae;kl'rwqeURL;WAsdudrvksadryuads.krhsda.rhsad.hrf.asdfdsahjf.hsdaJF.,M HSadf/hADS.,HDSA.HFASD,H. | 00:23 | |
This bug is getting the best of me :( | |||
timotimo | precompilation related? | 00:24 | |
Zoffix | rt.perl.org/Ticket/Display.html?id=128457 | 00:26 | |
These are print outs generated with my debug statements lol: gist.github.com/zoffixznet/2ad0b22...f9dec9cd33 | |||
I just don't get why the working version calls some things just twice and not three times (one for each module). | |||
I think I'll call it a day and release my frustration in Far Cry 4 >_< | 00:27 | ||
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 :/ | |||
timotimo has to go to bed :\ | 00:29 | ||
though ... do i really have to? | 00:43 | ||
Zoffix | Well, I'm stumped... Here's a line... literally two say()s in a row: github.com/zoffixznet/rakudo/blob/...tem.pm#L75 | 00:44 | |
YET, in the working version, only 2 "WHERE IS THE HANDLE" printed, despite 3 '#### CU::FileSystem: $base = `/home/zoffix/CPANPRC/rakudo/bug-test/' printed gist.github.com/zoffixznet/b3ba61a...adf1332ecf | 00:45 | ||
I just don't get it :S | |||
timotimo | change the line that does get printed to see if the same code is running in both versions | ||
also, strace it to force system calls to behave differently with regards to buffering and such? | |||
also, i usually use note instead of say | 00:47 | ||
so it goes to stderr, not stdout. though that no longer b0rks precomp, so that's not a/the problem | 00:48 | ||
Zoffix | Using note fixed it thanks... | 00:54 | |
timotimo | :) | ||
jup, IO. | |||
we should stop using async i/o for our blocking IO in any case. | |||
we've had a branch that started that in the past. it didn't work out so cleanly, so it got postposed | 00:58 | ||
postponed* | 00:59 | ||
Zoffix | timotimo++ replacing all my say()s with note()s actually gave me debug output that makes sense :) | 01:08 | |
timotimo | yays | ||
i'm glad | |||
and at the same time i'm sad it's necessary | |||
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ā¦Ā» | ||
Zoffix | tsk tsk :) | ||
timotimo | oh, it's using a different setting? | ||
Zoffix | ĀÆ\_(ć)_/ĀÆ | 01:46 | |
timotimo | the restricted setting is super weak anyway | ||
and as soon as you have nqp, you can do whatever the hell you want anyway | |||
and NativeCall, of course | |||
dalek | kudo/nom: 7489a28 | (Daniel Green)++ | src/core/allomorphs.pm: Speed up allomorphs.pm's val() by ~5% by converting some statements to their nqp::* equivalents |
02:11 | |
kudo/nom: 4b257a3 | lizmat++ | src/core/allomorphs.pm: Merge pull request #804 from MasterDuke17/allomorphs.pm_optimizations Speed up allomorphs.pm's val() by ~5% by converting some statements tā¦ |
|||
[Tux] | This is Rakudo version 2016.06-49-g4b257a3 built on MoarVM version 2016.06 | 06:42 | |
test 16.034 | |||
test-t 9.718 | |||
csv-parser 21.730 | |||
psch | gist.github.com/peschwa/37e480db6f...c0e2e51a8a that's the (bytecode of) the jmeth that gets somehow tossed after we compile the EVAL that gets invoke inside it... | 11:27 | |
the really, really weird part about this is, that, as mentioned yesterday, we seem to compile (in this case) Foo.pm | 11:28 | ||
which is really just < module Foo { BEGIN EVAL 'say "hi"' } > | |||
and during an apparent first-pass, we get that method for the BEGIN block (i assume, 'cause it has the call to EVAL) | |||
then we compile the nested CU, which apparently is the EVAL itself | 11:29 | ||
and then we start over compiling Foo.pm, which somehow lost that BEGIN block | |||
hence my approach from yesterday, which is literally "keep every compiled or compiling CU around in the compiler and look there for missing methods" | |||
buuut, for some reason, we don't have *any* static info for a thus-recovered CR | 11:30 | ||
the thing is, the method looks pretty great from here | 11:31 | ||
so it's really just down to "how do i get the static info back" | |||
well, and maybe thinking of a way to not have to carry literally everything around while the compiler is alive | |||
nine | I can't imagine us really starting over compilation? | 11:32 | |
psch | well, that's what it looks like from here | ||
i agree though, it'd be really weird | |||
gist.github.com/peschwa/37e480db6f...c0e2e51a8a | 11:33 | ||
second file | |||
the "compiling $sha, $file" is in method jast in JAST::Compiler | |||
err, QAST::Compiler | |||
so, we somehow do reenter that method | 11:34 | ||
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:38 | |
psch | ...there's too many layers involved for me /o\ | 11:43 | |
nine | That's exactly what makes this soooo hard :( | 11:44 | |
psch | yeah, and it's also really damn opaque :| | 11:46 | |
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 | ||
but the layers make that already nigh-impossible | |||
dalek | p: 2bd6b44 | (Pawel Murias)++ | src/vm/js/const_map.nqp: [js] Implement nqp::const::CONTROL_RETURN. |
13:02 | |
p: b9dadd8 | (Pawel Murias)++ | src/vm/js/ (2 files): [js] Implement nqp::handlepayload/nqp::throwpayloadlex/nqp::lastexpayload. Pass all tests again. |
|||
lizmat | and yet another quick one from Orlando: p6weekly.wordpress.com/2016/06/27/...m-orlando/ | 15:43 | |
BrokenRobot | lizmat++ # Good Weekly | 16:07 | |
lizmat sits in the lobby of the hotel, spending some hours before really needing to get on the road | 16:40 | ||
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ā¤ā¤Ā» | ||
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))ā¤Ā» | ||
lizmat | so I have a nice patch that would re-instate "count-only" and "bool-only" for iterators | 17:11 | |
and it's breaking on this ^^^ | |||
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:24 | |
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ā¤Ā» | ||
Woodi | when num .elems is known or for traditional structures then using iterators is overkill... | 17:29 | |
lizmat | indeed... | 17:32 | |
so %h.values.elems currently walks the whole hash, I'd like to prevent that | |||
yes, I know it's stupid written like that, but under the hood, these situations may occur more often | 17:33 | ||
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) | ||
Woodi | maybe here is conflict of abstractions between traditional lists+laziness and OO iterators ? | 17:38 | |
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:43 | |
like in a string (.comb), or in a hash | 17:44 | ||
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. | 17:48 | |
jnthn | lizmat: (.elems) looks like something we should be able to fix. | 18:02 | |
dalek | kudo/ugexe-dist-interface: 13e845a | niner++ | / (7 files): Merge branch 'dist-interface' of github.com/ugexe/rakudo into ugexe-dist-interface |
18:03 | |
kudo/ugexe-dist-interface: 1256808 | niner++ | / (5 files): Fix backwards compatibility issues with repository versions < 2 |
|||
kudo/ugexe-dist-interface: eaaf51d | niner++ | / (34 files): Merge branch 'ugexe-dist-interface' of github.com:rakudo/rakudo into ugexe-dist-interface |
|||
kudo/ugexe-dist-interface: 0a1b86a | niner++ | src/core/CompUnit/Repository/Installation.pm: Fix missing scripts and resources of dists installed using legacy interface |
|||
lizmat | jnthn: fixing nqp::elems on an MVMContext, would be great | 18:12 | |
as I'm banging my head for an hour now to work around it and the solutions keeps getting worse and worse | 18:13 | ||
dalek | rakudo/nom: 5a4963f | lizmat++ | src/core/ (7 files): | 18:33 | |
rakudo/nom: Re-instate Iterator.countr|bool-only with a twist | |||
rakudo/nom: | |||
rakudo/nom: I too didn't like the removal of .count-only and .bool-only last | |||
rakudo/nom: week. Then I realized it could still work *if* the methods would | |||
rakudo/nom: only be called if they could produce the info *without* generating | |||
rakudo/nom: any values. So now, an Iterator *can* provide these methods for | |||
rakudo/nom: efficiency: if they're not there, then the normal cause of action | |||
rakudo/nom: (generating the values and cache them, then return its result) will | |||
rakudo/nom: be used. If they *do* exist, then they're supposed to return the | |||
rakudo/nom: info *without* generating any values. | |||
rakudo/nom: | |||
rakudo/nom: This breaks one test in t/spec/S02-names/pseudo.t because MVMContext | |||
rakudo/nom: does not know how to provide nqp::elems. This should be fixed one | |||
lizmat | commute to MCO& | 18:39 | |
[Coke] waves from the highway | 20:58 | ||
lizmat waves from MCO | 21:02 | ||
DrForr_ | On the way out finally? | 21:08 | |
timotimo | o/ | 21:10 | |
lizmat | DrForr_: yup | ||
after a nice visit to Kennedy Space Center yesterday | |||
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 :-) | ||
boarding& | 23:39 |