dalek | ast: e29b003 | (Zoffix Znet)++ | / (5 files): Remove pointless bitshifting in Test::Util is_run() The sub bitshifts exit code from shell() by 8 and the only reason I can think of for doing that is to emulate Perl 5's system() exit code return mechanism. In the test suite itself, the tests—once again—bitshift the actual value to match what is_run uses. Thus, it seems the entire ordeal with this bitshift offers no value and just requires extra work and adds confusion to people unfamiliar with Perl 5's system. |
00:20 | |
geekosaur | actually it's matching waitpid(2) | 00:31 | |
Zoffix | ¯\_(ツ)_/¯ same difference. It's extra knowledge needed to understand the results. Took me X amount of minutes to figure out why my exit 255 was showing up as 60,000+ | 00:34 | |
dalek | ast: f4e2505 | (Zoffix Znet)++ | S05-grammar/example.t: [TODO FUDGE] <return> in grammar must refer to token not &return RT#127945 |
02:56 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127945 | ||
stmuk_ | I was wondering about a more lightweight star with just a module installer (zef rather than panda?) and p6doc | 07:41 | |
I think the whole R*/R distinction is too confusing for many as well | 07:43 | ||
maybe we should just release a "rakudo" (w/ zef/p6doc) every 3 months and a "rakudo-core" monthly | |||
or even just call it "perl6" | 07:44 | ||
we should probably ship a prove6 as well to remove the perl 5 dependency | 07:45 | ||
psch | java.lang.RuntimeException: java.lang.Exception: Unrecognized instruction #18 | 07:57 | |
wow i missed these kind of error \o/ | |||
hm, # can also sometimes mean hex, can't it..? | 07:58 | ||
ah, no, it's decimal, the # is just confusing | 07:59 | ||
because it's actually just the opcode | |||
and we simply don't have ldc covered yet in jast2bc.JASTCompiler | 08:00 | ||
Woodi | R* started after we have some discusion on topic: ehmm, we have quite mature v6 implementation so why ppls don't use it ??? ah, it all dev-optimised environment... :) | ||
psch | oh boy another cool error | 08:27 | |
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file 90740956CF254C1B76FE4FAF3819510F827DECEF | 08:28 | ||
that luckily went away from a simple git clean -xdf :S | |||
moritz | git++ | 08:32 | |
psch | yeah | 08:33 | |
i'm a bit disgruntled with objectweb.asms (and by extension, the jvms) capacity for meaningful complaints about bad bytecode | 08:34 | ||
there's probably some framework around somewhere for that, i suppose... | |||
moritz | aren't we disabling some bytecode validation in nqp-j? | 08:35 | |
if so, you might re-enable that just for debugging such things | |||
psch | no, perl6-j doesn't verify | 08:36 | |
but nqp verifies | |||
but yeah, i've occassionally removed that switch | |||
the problem is mostly that objectweb.asm itself is really bad about that | |||
like for example i think i've correctly deduced that supplying a not-wide-enough argument to an opcode throws the meaningful "ArrayIndexOutOfBounds" | 08:37 | ||
but i'm really not sure vOv | |||
but the actual element that out of bounds might be -1, or 10, or any other arbitrary int | 08:42 | ||
which is really not that helpful and means walking through the instruction list and emulating the stack, which is kind of ehh :| | 08:43 | ||
heh, NQP_VERBOSE_EXCEPTIONS turns a StackOverflow into a NullPointerException... | 08:59 | ||
that's a thing apparently | |||
jnthn | psch: That probably means something like "the exception handler throws and somehow ends up handling its own throw" | 09:04 | |
And NQP_VERBOSE_EXCEPTIONS means you see it prior to the high level handler getting it. | |||
psch | yeah, running under jdb went StackOverflow again | ||
but the actual problem still seems to bad bytecode, -noverify being harmful | 09:05 | ||
jnthn | noverify is a great production setting due to the startup time improvement, but probably not such a good development setting :) | ||
psch | exactly :) | ||
R[DaneelOlivaw] | " | 12:20 | |
"Unhandled lexical type in lexprimspec for '$i'" | |||
Does that sound like something that's super easy to fix or super hard to fix? :) It's with int8 in REPL | 12:21 | ||
timotimo | ah, the repl ... ;( | 12:22 | |
R[DaneelOlivaw] | Seems to be MoarVM level stuff: github.com/MoarVM/MoarVM/blob/mast...me.c#L1643 | 12:25 | |
R[DaneelOlivaw] puts this into extra super hard bin and moves on | 12:26 | ||
And if anyone is feeling adventurous, it's from this ticket: rt.perl.org/Ticket/Display.html?id...et-history | 12:29 | ||
pmurias | do I have to set any flags to compile nqp-j with extra debugging info? | 12:43 | |
dalek | ast: 5e230b4 | (Zoffix Znet)++ | / (2 files): Use more Perl6-ish interface for is_run_repl() We have named args; no need to pass around hashes. |
13:01 | |
lizmat | .oO( is Frameless an Asimov fan ?) |
13:02 | |
dalek | ast: d78d99a | (Zoffix Znet)++ | S19-command-line/repl.t: Use RT ticket notation format consistent with rest of roast |
13:03 | |
R[DaneelOlivaw] | lizmat: oh yeah :) | ||
lizmat++ # recognizing the reference :) | |||
japhb | pfft. I recognized the reference, I just have no idea what causes you to pick a particular nick at any particular moment. :-) | 13:04 | |
R[DaneelOlivaw] | Just randomness :) | 13:05 | |
lizmat | jnthn: looking at the Str.match / subst / subst-mutate combo | 13:18 | |
am I correct in assuming that the gather/take in Str.match is to make matching lazy | |||
but that we actually do not need that laziness when doing subst/subst-mutate ? | 13:19 | ||
afk& | |||
psch | pmurias: depends on what kind of debugging info you want | 13:23 | |
pmurias: there is e.g. NQP_DEBUG_DUMP_CLASSFILES and NQP_VERBOSE_EXCEPTIONS | 13:24 | ||
pmurias: aside from that you can quite easily rewrite the nqp-j launcher to start a jdb server | |||
jnthn | lizmat: Well, "do not need" I'm not so sure about. If you eagerly evaluate all the matches first then substitute, you have to keep them all around in memory. With lazily producing them they can be thrown away after each substitution is made. | 13:25 | |
dalek | ast: 9937812 | (Zoffix Znet)++ | / (2 files): Make is_run_repl() auto-close STDIN when done Not only requiring sending "exit\n" with code is extra work and noise, some bugs break exit altogether, so it's nice to have a working way to exit. |
13:45 | |
ast: c0504f9 | (Zoffix Znet)++ | S19-command-line/repl.t: [TODO FUDGE] Using native numeric types does not break REPL RT#127933 |
13:48 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127933 | ||
pmurias | psch, jnthn: is it expected that I don't get a line number for java.lang.NullPointerException? | 15:22 | |
psch | usually, yeah. if it doesn't happen during codegen you don't really know where it is | 15:23 | |
because of how we load classes | |||
NQP_VERBOSE_EXCEPTIONS might help | 15:24 | ||
pmurias | psch: it happened in hand written java code (implementation of an op) | 15:30 | |
psch | Ops should show up with NQP_VERBOSE_EXCEPTIONS | 15:31 | |
do you have a gist of the impl? | |||
pmurias | psch: I found the reason for the exception, it's just that I vaguely remember some option to compile things with debugging symbols and such | 15:33 | |
psch | there is -g i think for javac | ||
but i don't think that propagates into objectweb.asm | 15:34 | ||
so it might've helped for you specific problem but still doesn't do any good for the things i've been fighting with today vOv | |||
dalek | p: 67ae0cf | (Pawel Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java: A faster nqp::readchars on the JVM. |
15:58 | |
pmurias | we now have a shiny nqp::readchars on the JVM too so that having a #ifdef jvm in rakudo is no longer needed | 15:59 | |
R[DaneelOlivaw] | \o/ pmurias++ | 16:06 | |
dalek | ast: 72789d0 | (Zoffix Znet)++ | S03-operators/andthen.t: [TODO FUDGE] andthen with two S/// returns correct string RT#127822 |
16:51 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127822 | ||
timotimo | pmurias: oh, "faster", even? | 19:02 | |
dalek | kudo/nom: 59d8080 | (Zoffix Znet)++ | src/core/Exception.pm: Improve EVAL error Clarify that MONKEY-SEE-NO-EVAL is a pragma the user needs to enable. harmil++ |
19:15 | |
___ | Is .EVAL (as a method call) meant to by-pass the MONKEY pragma security feature? | 19:23 | |
m: my $x = 'say "hello"'; EVAL "$x" | 19:25 | ||
camelia | rakudo-moar 58dc8c: OUTPUT«===SORRY!=== Error while compiling <tmp>EVAL is a very dangerous function!!! (use MONKEY-SEE-NO-EVAL to override,but only if you're VERY sure your data contains no injection attacks)at <tmp>:1------> my $x = 'say "hello"'; EVAL "$x"…» | ||
___ | m: my $x = 'say "hello"'; "$x".EVAL | ||
camelia | rakudo-moar 58dc8c: OUTPUT«hello» | ||
mst | lizmat: do you have any idea why we ended up with FOO-BAR instead of FOO_BAR ? I could've sworn we had foo-bar and FOO_BAR at one point and the change seems as gross as foo_bar does now :( | 19:26 | |
___ | RTed the .EVAL bypass, because I think it should not bypass: rt.perl.org/Ticket/Display.html?id=128684 | 19:36 | |
[Coke] | mst: to make them more difficult to type. | 19:41 | |
mst | [Coke]: quite seriously? | 19:42 | |
I thought there were FOO_BAR type things that were *supposed* to get typed quite a bit | 19:43 | ||
[Coke] | I'm trying to dig it up. | ||
my recollection is probably flawed. found someone complaining about it... | |||
mst: irclog.perlgeek.de/perl6/2015-07-17#i_10913089 | 19:44 | ||
that's me recollecting the same thing a year ago | |||
geekosaur | my recollection is that _ is for stuff that is unquestionably internal low level details, not merely stuff user-exposed but dangerous | ||
[Coke] | irclog.perlgeek.de/perl6/2015-03-13#i_10274656 | 19:45 | |
having a hard time finding a reference earlier than that. | 19:47 | ||
ah, google. "Here 3 Monkey See No Evil Now. Find Articles & Shopping Results!" | 19:48 | ||
bartolin | I'm looking at an error we get only with rakudo-j (This Seq has already been iterated) | 19:59 | |
r: my $a = <b b>; $a .= unique; say $a.perl | |||
camelia | rakudo-jvm cd19db: OUTPUT«Seq.new-consumed()» | ||
..rakudo-moar 59d808: OUTPUT«("b",).Seq» | |||
bartolin | the following seems to imply that sink context makes the difference: | 20:00 | |
r: my $a = <b b>; my $b := $a .= unique; say $a.perl | |||
camelia | rakudo-moar 59d808, rakudo-jvm cd19db: OUTPUT«("b",).Seq» | ||
bartolin | is that conclusion sound or does adding 'my $b :=' not avoid sink context? | 20:01 | |
pmurias | timotimo: the first implementation of readcharfh on the jvm was just calling getcfh a bunch of times | 20:25 | |
timotimo | hah, ok | 20:26 | |
is the difference noticable when you're reading in a big file? | 20:27 | ||
potentially not because of all the overhead rakudo puts on top of stuff? :S | |||
pmurias | timotimo: haven't really benchmarked it, I just assumed that allocating a buffer for every character would suck | 20:28 | |
timotimo | right d) | 20:32 | |
lizmat | jnthn: re irclog.perlgeek.de/perl6-dev/2016-0...i_12873670 : but but but, once they are reified, they stick around until the List/Array is GC'd, no? | 21:49 | |
jnthn | Only if you get an array or list involved at some point :) | 21:55 | |
A Seq doesn't remember values. | 21:56 | ||
That's why we have it :) | |||
(I didn't look at the code in question, fwiw. Though kinda assume that the match code is at least typically smart enough to avoid returning a List and can give back a Seq | 21:57 | ||
lizmat | ok, that makes sense then | ||
hmmm.... | |||
timotimo | yeah, man am i glad we have something like Seq that doesn't remember every value forever | 21:58 | |
lizmat | ok, so this stores the Seq: my $matches := gather | 22:00 | |
I guess I'm still not fully grokking the code in Str.match | 22:02 | ||
timotimo | hm, i think it might be enough to my $matches = gather without binding | 22:08 | |
jnthn | Storing it in a Scalar won't make it a list | 22:15 | |
lizmat | looks like I'll be working on Backtrace tomorrow | 22:23 | |
most of the CPU in a statement like $*FOO // 42 is spent there | |||
jnthn | Yeah, we're not being as lazy as we maybe could be | ||
Though needs some care :) | |||
Not quite sure what I'll be doing with my Perl 6 time tomorrow. | 22:24 | ||
I've got all day :) | |||
I should probably hunt le tiresome SEGV I was looking at last time.. | |||
lizmat | and utf8-c8 :-) | 22:25 | |
or is that the same one ? | |||
timotimo read "needs some core" %) | |||
jnthn | No | ||
hoelzro also parsed it that way | |||
jnthn | utf8-c8 needs a re-design | ||
Zoffix | Does anyone have a 32-bit box around and can test whether this works: -> int32 :$x { $x == 1 or die }(:x( 1 )) | 22:26 | |
m: -> int32 :$x { $x == 1 or die }(:x( 1 )) | |||
camelia | rakudo-moar 59d808: OUTPUT«Bytecode validation error at offset 34, instruction 5:operand type 32 does not match register type 24 in block <unit> at <tmp> line 1» | ||
Zoffix | m: -> int64 :$x { $x == 1 or die }(:x( 1 )) | ||
camelia | ( no output ) | ||
Zoffix | (wondering if it works on 32-bit box same way as 64-bit works on 64-bit box) | ||
jnthn | Zoffix: From what I know of the codepaths involved, I'd be surprised if it worked on 2-bit. | 22:28 | |
uh, 32-bit | |||
Zoffix | Cool. thanks | ||
jnthn | m: -> int32 :$x { $x == 1 }(:x( 1 )) | ||
camelia | rakudo-moar 59d808: OUTPUT«Bytecode validation error at offset 34, instruction 5:operand type 32 does not match register type 24 in block <unit> at <tmp> line 1» | ||
jnthn | m: -> int32 :$x { }(:x( 1 )) | ||
camelia | rakudo-moar 59d808: OUTPUT«Bytecode validation error at offset 34, instruction 5:operand type 32 does not match register type 24 in block <unit> at <tmp> line 1» | ||
jnthn | Hmmm | ||
lizmat | good night, #perl6-dev | 22:29 | |
jnthn | Instruction 5 is...pretty early on | ||
Zoffix | night | ||
lizmat | it has been a long, hot day | ||
jnthn | I'd suspect arg handling code somewhere | ||
lizmat: Suspect you've had into the 30s? | |||
Zoffix | It fails with all native numeric types except for 64 ones and happens just with named params | ||
Zoffix is just writing the tests; way over my head to fix this | |||
lizmat | jnthn: we went cycling when it was 35 | ||
jnthn | OK, then I'll bet it's code-gen | ||
lizmat: Ouch. I don't know what my body would do if I attempted that :P | 22:30 | ||
lizmat | and when we came back after 68km, it was still 29 | ||
yeah, it was special... needed to break a few more times than usual | |||
jnthn | I'll bet | ||
I can barely sit and drink a cold beer in 35C :P | 22:31 | ||
lizmat | should have lost some weight tomorrow :-) | ||
jnthn | :) | ||
lizmat | so for now, I'll get some sleep& | ||
jnthn | Yup...rest well, 'night | ||
timotimo | lizmat only says it's been a hot day because she had dinner with me :3 | ||
dalek | ast: a049d32 | (Zoffix Znet)++ | S02-types/native.t: Remove trailing whitespace |
||
jnthn | Zoffix: Dunno...it depends if you're willing to look at how we spit out code-gen for args and params :) | 22:32 | |
lizmat | timotimo: :-) | ||
jnthn | m: -> int32 :$x { } | ||
camelia | ( no output ) | ||
timotimo | lizmat: ;-) | ||
dalek | ast: ea4d11d | (Zoffix Znet)++ | S02-types/native.t: [TODO FUDGE] using native types as named parameters does not crash RT#127813 |
||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127813 | ||
jnthn | And it'll surely be params, thinking about it | ||
Zoffix | jnthn, I'm willing, but I wanna finish going through the RT queue and doing all the easy stuff :) | 22:33 | |
jnthn | Zoffix: It'll be somewhere around here, at a guess: github.com/perl6/nqp/blob/master/s....nqp#L1121 | 22:35 | |
Though I don't spot it right off. But I'm more than a little tired :) | |||
timotimo | have a good rest, jnthn :) | 22:36 | |
jnthn | Hopefully the warm won't keep me awake too long... | ||
'night | |||
Zoffix | night | 22:38 |