Zoffix | Any idea what $time_before and $time_after in Test.pm6 are all about? Specifically, why the hell are they backwards? github.com/rakudo/rakudo/blob/nom/...st.pm6#L93 | 02:11 | |
timotimo | they are supposed to measure what's between "ok" calls and such | 02:16 | |
you can set PERL6_TEST_TIMES | |||
Zoffix | Seems broken. I get negative and NaN times | 02:17 | |
Why are they used in a backwards manner? $time_after is assigned at the start of the test and $time_before at the end? Any idea? | |||
(negative and NaN tests output: gist.github.com/zoffixznet/89a9f07...216d9b5104 ) | 02:18 | ||
timotimo | it probably hasn't been tried for a few months :P | ||
at least the way it interacts with subtests | |||
Zoffix | jnthn, which behaviour preferred? That it uses relative tolerance by default? irclog.perlgeek.de/perl6/2015-12-15#i_11719919 | 02:25 | |
Now this Sam person is commenting on my is-approx tickets saying the new relative tolerance should stay and the spec and docs that say it should be absolute are wrong. | |||
And then I see people in the logs wanting is-approx to use ≅ altogether, which has tolerance ten orders of magnitude different. | 02:26 | ||
Too many damn opinions | 02:27 | ||
jnthn | morning, #perl6-dev | 09:21 | |
lizmat: No, a slurpy array is very decidedly an *array*. :) Its mutability is a feature. If you want a List instead (and so the original containers of anything passed) then use `*@a is raw`. | 09:22 | ||
lizmat: Just looked at List and its various from-slurpy methods (inherited by Array and used in that case too). We could tweak the various from-slurpy methods to fill out the reified part of a list up until they hit something iterable. | 09:28 | ||
lizmat | ok, that sounds like a plan :-) | 09:29 | |
jnthn | Zoffix: On the tolerance thing, think you'll have to try and get an answer from TimToady on that one. :) | 09:33 | |
|Tux| | This is Rakudo version 2016.05-32-g33ab868 built on MoarVM version 2016.05 | 10:10 | |
test 19.667 | |||
test-t 12.510 | |||
csv-parser 33.775 | |||
Zoffix | .ask TimToady would you have time to offer a ruling on what the default tolerance to is-approx in Test.pm6 should be? Is it relative or absolute, and what value? My ideal choice would be absolute with $*TOLERANCE to match ≅. The specs/docs use absolute at 1e-5. And current impl uses relative at 1e-6. My more detailed plan for rewrite of is-approx: github.com/zoffixznet/debug/blob/m...-rework.md | 10:20 | |
no robot? :/ | 10:21 | ||
oh, ≅ doesn't use absolute | 10:31 | ||
stmuk | maybe if it's approx it should use a random tolerance? :) | 10:46 | |
jnthn | bah, no wonder spectest in my VM is slow...I only gave it a core or two... | 10:48 | |
Zoffix | stmuk, Congrats! You did it! I didn't think it was possible to add any more posibilities to bikeshed from, but you've done it :P | ||
jnthn, the other day I spent 20 minutes debugging async code, wondering why it wasn't giving any speed up over non-async, until I reliazed my VM was set to use a single core :P | 10:49 | ||
jnthn | heh, that's ones of the easier reasons for it not to, yes ;) | 10:50 | |
This is sufficiently slow I think it might actually have been faster to shut down the VM, tweak the core count, then start it up, then spectest :P | 10:51 | ||
nine | jnthn: can't you up the core count on line? | 11:05 | |
jnthn | nine: Apparently not. | ||
I did try :) | |||
dalek | p: 89345b4 | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION. For performance improvements, spesh fixes. |
11:11 | |
kudo/nom: 3cb602d | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for an improved MoarVM. Various performance improvements, and a couple of spesh fixes. |
11:12 | ||
kudo/nom: 7250543 | jnthn++ | src/ (2 files): Eliminate &EXHAUST and the use of it. We used to use it to replace the RETURN lexical, used for implementing (lexotic) return. At one point, it would also give an improved error for the case of returning from an already returned routine. However, at this point it did not do so, and there are better ways to make that happen. It did, however, carry a high cost, and frustrated inlining. Its removal made one simple loop/methodcall/increment benchmark run in 63% of the CPU cycles it previously did, which is a nice win. |
11:16 | ||
RabidGravy | looks good | 11:28 | |
jnthn | That MoarVM bump includes a change that should give rather faster Rakudo builds too | 11:52 | |
travis-ci | Rakudo build failed. Jonathan Worthington 'Bump NQP_REVISION for an improved MoarVM. | 12:15 | |
travis-ci.org/rakudo/rakudo/builds/134417129 github.com/rakudo/rakudo/compare/3...b602d2ce51 | |||
perlpilot | heh | 12:33 | |
"faster builds" ... "build failed" That *is* fast :) | |||
jnthn | That's the already-busted "make install" on JVM rather than a regression | 12:37 | |
Or at least, the mail I got said "still failing" | |||
dalek | kudo/nom: ef376d1 | peschwa++ | .travis.yml: Ignore JVM on all platforms again. ...because it's apparently too hard to fix and thus just noisy. |
13:00 | |
psch | ...i give up :P | ||
well, at least with maintaining my position re "that should be reported", for now | |||
dalek | ast: 5dcca8c | (Tom Browder)++ | S26-documentation/07-tables.t: comment out the test because it causes an exception even with the 'todo' function |
13:09 | |
ast: c2e994d | (Tom Browder)++ | S26-documentation/07-tables.t: Merge pull request #122 from tbrowder/mod-roast-table-test comment out the test because it causes an exception even with the 'to… |
|||
psch | shouldn't that be a 'skip' instead of commented? | ||
dalek | kudo/rt128156_fix_precomp_deps_validation: ab446d6 | niner++ | src/core/CompUnit/Precompilation (3 files): Fix precomp dependency checks on file systems with coarse timestamps. Replace fragile timestamp check by checksums for deciding whether a precompiled dependency is still the same. Many thanks to pmurias++ for suggesting using a hash! |
||
travis-ci | Rakudo build failed. Jonathan Worthington 'Eliminate &EXHAUST and the use of it. | 13:10 | |
travis-ci.org/rakudo/rakudo/builds/134417965 github.com/rakudo/rakudo/compare/3...5054360efa | |||
Rakudo build failed. Pepe Schwarz 'Ignore JVM on all platforms again. | 14:03 | ||
travis-ci.org/rakudo/rakudo/builds/134440810 github.com/rakudo/rakudo/compare/7...376d197ab3 | |||
[Coke] | is t/fudgeandrun failing for other folks? | 14:49 | |
I used to be able to use that to run & fudge multiple t/spec tests, now it's complaining about missing Test | 14:50 | ||
psch | oh, of course i mess up the travis.yml /o\ | 14:54 | |
dalek | p: a9ec466 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Improve code-gen by avoiding redundant deconts. Sometimes, we can cheaply figure out we don't need to insert them into the code at all. Do so. Shaves 3.6KB off NQP build size, 16.2KB off Rakudo compiler build size, and 55.8KB off CORE.setting bytecode size. A loop/method call/increment benchmark runs 0.3% less CPU instructions thanks to this change also. |
||
japhb | jnthn: Pretty please add said benchmark to perl6-bench. :-) | 14:58 | |
dalek | kudo/nom: 4a2929c | peschwa++ | .travis.yml: Fix allow_failures, hopefully. |
||
psch | kind of weird that the previous attempt doesn't work, but then i don't really know YAML either vOv | ||
RabidGravy | anyway, all my modules are good with the "Rakudo version 2016.05-35-gef376d1 built on MoarVM version 2016.05-17-g6075599" | 15:27 | |
travis-ci | Rakudo build passed. Pepe Schwarz 'Fix allow_failures, hopefully.' | 16:17 | |
travis-ci.org/rakudo/rakudo/builds/134472643 github.com/rakudo/rakudo/compare/e...2929cf864a | |||
nine | psch: have you made any progress at all on the EVAL issue? | 18:29 | |
psch | nine: no, none at all. hence the change to .travis.yml | 18:30 | |
nine | Do you at least have an idea which direction may be worth looking into? | 18:31 | |
psch | my last idea was trying to look into the generated .class file and see what's up with the setcodeobj calls, but that didn't really get going, because i didn't really find out *which* class file i'd have to examine... | 18:32 | |
aside from that, i think we agreed that writing the coderef probably works, but somewhere between deserialization and loading it breaks? | |||
nine | Yes, when I prevent it from serializing the EVAL's code objects I get an NPE in SerializationReader::deserialize because it expects a larger number of code refs than stored. | 18:39 | |
psch | iirc not calling deserialize_code if the current CU is_nested did compile, but broke later in rakudo during make | 18:40 | |
in case that's any kind of hint | 18:41 | ||
i really didn't get far into understanding all of this :/ | |||
nine | # Add code object fixups. | ||
if !$is_nested && $cu.code_ref_blocks() { | |||
psch | i mean in vm/jvm/QAST/Compiler.nqp:3370 or thereabout | 18:42 | |
i'm not sure i don't have any changes left locally that might change the line number :) | |||
nine | # If we need to do deserialization, emit code for that. | ||
if $*COMP_MODE && !$is_nested { | |||
is what I currently have there | |||
psch | right, that's what i was working with too | 18:43 | |
nine | Well to me the $is_nested check I posted first would make sense. It's just that we use the $cu.code_ref_blocks() array as is for determining how many code blocks we have to deserialize even though with this check we store less of them. | 18:44 | |
So I now give simply adding a null check a try and see how far I come. | |||
Well.... Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Pod.nqp' | |||
psch | yeah, that one's horribly annoying as well :/ | 18:45 | |
i usually git clean -xdf in rakudo, make install in nqp, and then Configure.pl --backends=jvm --make-install | |||
nine | Because a 3 minute compile cycle is not horrible enough | ||
psch | heh | 18:46 | |
nine | rm blib/Perl6/* install/share/nqp/lib/Perl6/* seems to do the trick | ||
psch | on hack moar with a clean prefix is over 3 minutes :P | ||
nine | This is...difficult. On the one hand the compiler seems to need code_ref_blocks to contain the EVAL's code refs, too. On the other hand, it may not serialize those code refs. | 19:08 | |
I wonder why the JVM needs this setcodeobj call and Moar doesn't | 19:19 | ||
geekosaur | you can't add features to the jvm the way you can to moar | 19:20 | |
you have to come up with ways to work with what it has | |||
nine | I don't get that when I add the !$is_nested condition, the code objects seem to be missing from the serialization file. The condition only prevents the code from running during the EVAL's compilation, but it should still be done during the outer comp unit's. | 19:53 | |
But it clearly isn't. Otherwise those code objects shoud appear twice in the debug output | 20:07 | ||
Oh...we simply don't make it that far! | 20:24 | ||
The setcodeobj error occurs during compilation of the EVAL | 20:25 | ||
So I'm back to thinking that the !$is_nested check is actually correct | 20:27 | ||
dalek | kudo/nom: 99dfd47 | lizmat++ | src/core/List.pm: Streamline List.reifiers a bit (gives a few %) |
21:52 | |
kudo/nom: 069b789 | lizmat++ | src/core/Array.pm: Streamline Array.iterator, fix handling of holes - gives about 10% improvement in iterating over Arrays - separate iterator for reifying/non-reifying case - make sure a fully reified Array resets the todo list - don't check for elems, handle null as a sign for something special - create a vivifying container for holes in the Array |
|||
jnthn is glad the GLR lists impl has ended up with a decent bus number :) | 21:58 | ||
lizmat++ # optimizing | |||
lizmat | :-) | 21:59 | |
next step: sequential-map's sink-all implementation | |||
jnthn: can we actually shift something non-concrete from a nqp::list ? | 22:01 | ||
jnthn | Certainly | ||
m: say [Any, Any].shift | |||
camelia | rakudo-moar 4a2929: OUTPUT«(Any)» | ||
jnthn | For example :) | ||
lizmat | hmmm... | 22:02 | |
I guess I still don't fully grok the difference between .DEFINITE and nqp::isconcrete | |||
good night, #perl6-dev! | 22:08 | ||
timotimo | i think the only difference is that .DEFINITE maps to p6definite | 22:14 | |
jnthn | x.DEFINITE is just nqp::p6bool(nqp::isconcrete(x)) | 22:16 | |
timotimo | oh | 22:28 | |
jnthn | sleep & | 22:37 | |
tomboy64 | nine: may i inquire about the progress of your jvm work? | 22:38 |