01:47
ilbot3 joined
05:58
TimToady joined
05:59
RabidGravy joined
06:17
sno joined
06:31
lizmat joined
08:16
[TuxCM] joined,
lizmat joined
|
|||
dalek | kudo/nom: 63fd14f | lizmat++ | src/core/Num.pm: Streamline some Num infixes |
08:41 | |
lizmat | ok, I think we need to revisit NaN.Int and NaN.Rat | 08:51 | |
as well as Inf.Int and Inf.Rat | |||
they both now fail | |||
m: NaN.Int | |||
camelia | rakudo-moar 63fd14: OUTPUT«Cannot coerce NaN to an Int in block <unit> at /tmp/14Mto5fMdk line 1Actually thrown at: in block <unit> at /tmp/14Mto5fMdk line 1» | ||
lizmat | m: NaN.Rat | ||
camelia | rakudo-moar 63fd14: OUTPUT«Cannot coerce NaN to a Rat in block <unit> at /tmp/QepqhxrXo3 line 1Actually thrown at: in block <unit> at /tmp/QepqhxrXo3 line 1» | ||
lizmat | m: Inf.Int | 08:52 | |
camelia | rakudo-moar 63fd14: OUTPUT«Cannot coerce Inf to an Int in block <unit> at /tmp/nc9oDyzOT2 line 1Actually thrown at: in block <unit> at /tmp/nc9oDyzOT2 line 1» | ||
lizmat | m: Inf.Rat | ||
camelia | rakudo-moar 63fd14: OUTPUT«Cannot coerce Inf to a Rat in block <unit> at /tmp/309s0PH0QL line 1Actually thrown at: in block <unit> at /tmp/309s0PH0QL line 1» | ||
lizmat | however, spectests indicate the opposite view | ||
S32-num/rat.t, test 749-751 (which now fail) | 08:53 | ||
and S02-types/infinity.t that has 3 todo'd tests | |||
either we should match rakudo with the tests, or vice-versa | |||
fwiw, *I* prefer the current behaviour, meaning tests should be adapted | 08:54 | ||
if in the future, we manage to hack Inf into Int and Rat, we can lift the fail | 08:55 | ||
dalek | kudo/nom: 689d079 | lizmat++ | src/core/Rat.pm: Streamline some Rats - Rat.perl if denominator is 1 - return Failure instead of failing for FatRat.Rat |
08:57 | |
ast: 61e65a4 | lizmat++ | S32-num/rat.t: Todo NaN/Inf/-Inf.Rat tests Since we've todo'd the NaN/Inf/-Inf.Int as well |
09:05 | ||
kudo/nom: 45be4ef | lizmat++ | src/core/Any-iterable-methods.pm: Change some fails into Failure.new Because if it's the value we're about to return anyway, we don't need the fail exception to deliver it |
09:13 | ||
Tux__ | Cannot invoke this object (REPR: Null) | 09:20 | |
t/78_fragment.t ... Dubious, test returned 1 (wstat 256, 0x100) | |||
No subtests run | |||
broken between yesterday and now | |||
p6 t/78_fragment.t | |||
PASS | |||
09:21
[TuxCM] joined
|
|||
Tux__ | consistent fail when invoked as «prove -j4 -e 'perl6 -I. -Ilib' t» | 09:21 | |
lizmat | interesting... | 09:22 | |
does this include any of my patches of this morning ? | |||
aka, what is "now" ? | |||
Tux__ | This is Rakudo version 2016.04-89-gec6c3b8 built on MoarVM version 2016.04 | 09:23 | |
perl6 was built on 10:37 | 09:24 | ||
if a standalone run passes, but prove fails, where shall the cause be found? | 09:25 | ||
lizmat | if you include PERL6LIB=lib in standalone run ? | ||
Tux__ | env PERL6LIB=lib make test => PASS / make test => FAIL | 09:30 | |
This is Rakudo version 2016.04-89-gec6c3b8 built on MoarVM version 2016.04 | |||
test 21.623 | |||
test-t 13.254 | |||
csv-parser 37.589 | |||
p6 t/78_fragment.t => PASS, env PERL6LIB=lib p6 t/78_fragment.t => PASS | 09:31 | ||
prove -j4 -e 'perl6 -I. -Ilib' t/78_fragment.t => PASS, prove -j4 -e 'perl6 -I. -Ilib' t => FAIL | 09:32 | ||
so, parrallel testing conflict? | 09:33 | ||
lizmat | that would be weird ? | 09:36 | |
will look at it in a mo | 09:39 | ||
dalek | kudo/nom: a56d039 | lizmat++ | src/core/Any.pm: Streamline some Any fallbacks - don't fail if we can directly return a Failure - use ternaries where possible - use postfix loops where possible - make smarter use of loop indexes where possible |
09:41 | |
kudo/nom: 6a82e2a | lizmat++ | src/core/Array.pm: Streamline some Array ops - return Failure if we can, instead of fail - use ternaries where possible - don't bother creating local aliases for private attribute |
10:03 | ||
RabidGravy | boom | 10:14 | |
10:46
brrt joined
|
|||
dalek | kudo/nom: 1939405 | lizmat++ | src/core/Buf.pm: Streamline Blob/Buf - don't fail when we can return a Failure - use ternaries where possible |
10:47 | |
kudo/nom: 4e4cac0 | lizmat++ | src/core/Capture.pm: Streamline Capture - return Failure instead of failing |
11:09 | ||
kudo/nom: 480709d | lizmat++ | src/core/Complex.pm: Streamline Complex - use ternary when possible - return Failure rather than failing |
11:37 | ||
11:43
brrt joined
13:08
brrt joined
|
|||
dalek | kudo/nom: 1ee27e6 | jnthn++ | src/core/Promise.pm: Harden Promise.result against spurious wakeups. This prevents it from bogusly returning that a Promise was kept in cases where it was not, in fact, kept, and the OS just signalled the condvar spuriously. |
13:34 | |
rakudo/nom: 475063a | jnthn++ | src/core/Mu.pm: | |||
rakudo/nom: Harden Mu.Str against moving GC. | |||
rakudo/nom: | |||
rakudo/nom: We have various cases of this in tests: | |||
rakudo/nom: | |||
jnthn | lizmat: 1ee27e6 hopefully nails that Promise issue you mentioned being kinda common on OSX | 13:36 | |
[Coke] | 6.c-errata now failing tests: t/spec/S32-num/rat.rakudo.moar | ||
(and t/spec/S17-supply/syntax.t just hung there again on os x) | 13:37 | ||
also 2 passing todo'd tests. | |||
dalek | kudo/moar/reframe: 19e7a1b | jnthn++ | src/vm/moar/ops/perl6_ops.c: Sync with MoarVM API changes. |
13:39 | |
kudo/moar/reframe: df1db5e | jnthn++ | src/vm/moar/ops/perl6_ops.c: Add an MVMROOT on ctx, now frames are GCable. |
|||
jnthn | (just rebased that branch) | 13:42 | |
brrt | you rebased reframe... i'll rebase reframe-jit too, then | 13:45 | |
shall i merge reframe-jit on top of reframe? | 13:46 | ||
jnthn | brrt: no, only the Rakudo moar/reframe branch | ||
brrt | oh, ok | ||
nm :-) | |||
jnthn | Just to ease testing, 'cus otherwise I see failing spectests 'cus I'm missing Rakudo commits | ||
[Coke] | lizmat: I assume the failing 6.c tests are the same as irclog.perlgeek.de/p6dev/2016-05-04#i_12431564 - I'm opening a ticket, making it a blocker for the next release. | 13:54 | |
still no volunteer for the may release for rakudo/nqp | 14:01 | ||
14:25
perlpilot_ joined
14:27
perlpilot joined
14:43
dalek joined
14:44
perlpilot_ joined
14:50
brrt joined
14:52
skids joined
|
|||
Tux__ | This is Rakudo version 2016.04-99-g475063a built on MoarVM version 2016.04 | 14:57 | |
test 21.708 | |||
test-t 13.397 | |||
csv-parser 34.835 | |||
lizmat, na re-make | |||
dus geen FAIL meer | |||
sorry, that was Dutch | |||
MadcapJake | woah that seems to be quite the improvement! | 15:06 | |
jnthn | I thought test-t used to be 12.something? Or did one of the other numbers I watch less get better? :) | 15:07 | |
MadcapJake | jnthn: looks like it was even close to 11 at one point irclog.perlgeek.de/perl6/search/?ni...p;q=test-t | 15:13 | |
Tux__ | tux.nl/Talks/CSV6/speed4.html includes the full history: tux.nl/Talks/CSV6/speed.log | 15:15 | |
dalek | p: 5676e10 | (Pawel Murias)++ | src/vm/js/Compiler.nqp: [js] Support declaring a variable as a static lexical and then using it as a typevar. |
15:18 | |
p: f280dff | (Pawel Murias)++ | src/vm/js/Operations.nqp: [js] Expose the BOOL type when declaring ops from compiled code. |
|||
p: 25600fd | (Pawel Murias)++ | src/vm/js/ (7 files): [js] Keep privates attributes from ancestor classes separate. |
|||
p: 510670b | (Pawel Murias)++ | src/vm/js/RegexCompiler.nqp: [js] Access the attributes of the cursor in regexes properlyy |
|||
p: 0e80681 | (Pawel Murias)++ | src/vm/js/RegexCompiler.nqp: [js] Remove debugging leftover. |
15:21 | ||
p: 3011392 | (Pawel Murias)++ | src/vm/js/nqp-runtime/runtime.js: [js] Remove dead code. |
|||
MadcapJake | Tux__: cool thanks for the link! | 15:22 | |
dalek | p: 116df25 | (Pawel Murias)++ | src/vm/js/nqp-runtime/core.js: [js] Implement nqp::hintfor. |
15:29 | |
p: a69e45c | (Pawel Murias)++ | src/vm/js/nqp-runtime/reprs.js: [js] Fix bug. |
16:28 | ||
p: 10069d7 | (Pawel Murias)++ | src/vm/js/nqp-runtime/core.js: [js] Make nqp::hintfor return -1 when encountering something that's not a P6opaque. |
|||
p: 43fb5d6 | (Pawel Murias)++ | src/vm/js/nqp-runtime/reprs.js: [js] Fix bug. |
|||
MadcapJake | .seen Skarsnik | 17:01 | |
17:54
hankache joined
18:21
dalek joined
18:34
perlpilot joined
|
|||
lizmat | jnthn: re 475063a , shouldn't we harden .WHERE ? | 18:57 | |
jnthn | lizmat: ??? | 18:58 | |
No | |||
The point of .WHERE is "where is the object in memory" | |||
lizmat | ok | ||
jnthn | There's nothing to harden | ||
lizmat | but where it is in memory, is basically volatile info | 18:59 | |
jnthn | Correct :) | ||
Which is why we've nqp::objectid (which .WHICH uses) | |||
lizmat | if an object has moved out of the nursery, can we be sure that it will stay at the same memory address ? | ||
jnthn | Well, the present MoarVM answer is yes, but the Perl 6 answer in general is no | 19:00 | |
lizmat | ah, ok, gotcha... | ||
jnthn | All it'd take for it not to be true on Moar is us stating to compact gen2 also | ||
And the JVM has a range of collectors | 19:01 | ||
lizmat | I wonder whether we should mix in a role in the .WHERE value | ||
that would make it croak when used in a NativeCall related environment ? | |||
because that would be obviously a wrong thing to do ? | |||
jnthn | It'd be a weird thing to do though | ||
I mean, you'd be passing the address of a Perl 6 object, not something that'll make sense in C-land. | 19:02 | ||
lizmat | well, some people might think that | ||
especially coming from p5 land | |||
jnthn | It's still a stretch IMO...you'd have gotten an Int back from WHERE, and so to be able to pass it would have had to purposefully translate the signature of the C function you planned to call in such a way that you wrote Int in the signature in place of something wanting a pointer. | 19:05 | |
sub foo(SomeCStruct $foo) is native(...) {*}; will die if called as foo($something.WHERE) already | 19:06 | ||
bbi10 | |||
lizmat | jnthn: fwiw, 1ee27e660a8dce3ae03177 makes spectest run with HARNESS_TYPE=6 | 19:11 | |
running one now with TEST_JOBS=1 | |||
hmmm... had a test hanging, now ran it with TEST_JOBS=8, and got a segfault | 19:20 | ||
I guess I'm going to try this again when the Moar changes have landed :-) | |||
jnthn | Still, progress... | 19:26 | |
I've still got various smaller ways to trigger problems that I need to hunt down. | 19:27 | ||
(Beyond the ones I already fixed in the reframe branch) | 19:28 | ||
lizmat | yes, definitely progress | ||
jnthn | So I'll chug through those before trying to find 'em from the 6harness :) | ||
lizmat | also, the hang could have been caused by me recompiling rakudo underneath :-) | ||
jnthn | ah | ||
Maybe | |||
lizmat | I'll start another run before going to bed | ||
it's slow with TEST_JOBS=1 :-) | 19:29 | ||
jnthn | lol | ||
No | |||
It's slow with an 11.5KB nursery :P | |||
That run came out really well compared to the one I did a couple of weeks ago, though. | 19:30 | ||
lizmat | m: sub a(--> Nil) { Failure.new("foo") }; a.defined # this feels peculiar | 19:51 | |
camelia | rakudo-moar 475063: OUTPUT«foo in block <unit> at /tmp/CiklublGPh line 1Actually thrown at: in sub a at /tmp/CiklublGPh line 1 in block <unit> at /tmp/CiklublGPh line 1» | ||
lizmat | m: sub a() { Failure.new("foo") }; a.defined # silent without the --> Nil | ||
camelia | ( no output ) | ||
geekosaur | guessing... it's smart enough to not bother trying to sink something that is known at compile time not to produce a result? | 19:54 | |
(thus the a.defined never "happens") | |||
jnthn | I think the --> Nil makes it sink the body and return Nil | 19:56 | |
So the Failure just gets sunk inside the sub | |||
And so what geekosaur said - you never hit defined | |||
lizmat | guess so :-) | ||
jnthn | sub a(--> Nil) { ... } I think compiles into sub a() { ...; Nil } roughly | 19:57 | |
timotimo | hm, is --> Nil for subs/methods that aren't supposed to return anything a good performance optimization already? | ||
jnthn | Not sure it makes a huge difference. With sub calls the static optimizer could spot the sink call ain't needed and throw it out I guess | 19:58 | |
Spesh is making a kinda lame job on the .sink calls at the moment. | 19:59 | ||
timotimo | yeah, i remember something about that | 20:02 | |
20:03
sno joined
|
|||
jnthn | Spesh is also on my list of "things in MoarVM due some good attention soon" :) | 20:03 | |
nine_ | How could this give a "Too many positionals passed; expected 1 argument but got 2"? $precomp-file.print($*REPO.id ~ "\n" ~ $dependencies ~ "\n"); | 20:34 | |
lizmat | are you looking at the right place ?? (--ll-exception maybe?) | 20:37 | |
nine_ | Oh, I did not pass a mode to open(), so $precomp-file may be a Failure and it's Mu's print I'm calling | 20:38 | |
lizmat | there you go :) | ||
those pesky Failures! :-) | |||
nine_ | In this case, getting a Failure really does not help more than Perl 5's silence on open failures :/ | ||
lizmat | well, in newio I once tried to throw the failure immediately | 20:47 | |
and it caused quite some spectest breakage :-( | |||
(at least in my memory) | |||
jnthn | It's more that .print is a method in Mu, so the Failure fallback doesn't apply | 20:49 | |
Method fallback, that is | 20:50 | ||
nine_ | And .print is at the same time something you'd quite often want to do on a file handle | ||
jnthn | Yeah. I agree it's LTA. Too tired to know the right place to fix it. :) | 20:53 | |
nine_ | Well on the up side, my failure case was "file does not exist and stupid programmer forgot to specify write mode on open()", i.e. it's a fail during development, not a case you'd encounter in production | 20:54 | |
[Coke] | xkcd.com/1676/ - mmm, new unicode to look forward to (hover text) | 21:05 | |
nine_ | It's a snake! | 21:12 | |
dalek | kudo/nom: c403742 | lizmat++ | src/core/ (16 files): A lot more streamlining - use ternaries where possible - return Failure rather than failing - boolify reverse logic ternaries |
||
nine_ | Who's idea was it to de-huffmanize ternaries because they are rarely used? | 21:13 | |
lizmat | :-) | ||
fwiw, I like the congruity with && || | 21:14 | ||
timotimo | "boolify reverse logic ternaries"? | 21:15 | |
nine_ | Yep, I actually like their look more in Perl 6. I also seem to use them more in Perl 6 than in other languages... | 21:16 | |
timotimo | i also prefer the way they look in p6, tbh | ||
nine_ | Wow...I'm scared. I actually have a working combined mbc + dependency info precomp file implementation | 21:20 | |
lizmat | timotimo: | 21:22 | |
complication expression ?? False !! True | |||
*complicated | 21:23 | ||
timotimo | oh | 21:29 | |
jnthn | They're flow control, so I think it's kinda nice they stand out :) | 21:36 | |
nine_: ooh, nice :) | 21:37 | ||
lizmat | nine_++ | 21:38 | |
timotimo | whooooaaa | 21:40 | |
good work, nine :) | |||
jnthn hopes he sleeps well enough to night to have the concentration to get his frame refactors mostly finished up tomorrow :) | |||
*tonight | 21:41 | ||
timotimo | \o/ | ||
[Coke] | RT: 1286; GLR: 6; JVM: 60; LHF: 2; LTA: 68; OSX: 3; PATCH: 3; PERF: 16; POD: 3; PRECOMP: 3; SEGV: 22; STAR: 1; TESTNEEDED: 17; UNI: 5; WEIRD: 2 | ||
jnthn | This part is less bad in so far as if I screw it up I can have Moar reliably explode (as in, no stress test required) :) | ||
timotimo | \o/ | 21:42 | |
jnthn | Also I'll do the minimum "make it work" to get to the merge point, but then there'll be further optimizations on top of it afterwards. | 21:43 | |
lizmat | jnthn ++ | 21:50 | |
good night, #perl6! | 22:03 | ||
timotimo | gnite lizmat | ||
lizmat | eh, #p6dev :-) | ||
RabidGravy | harr | ||
jnthn | 'night, lizmat | 22:10 | |
jnthn sleeps also :) 'night | 22:30 |