Zoffix buggable, tags 00:07
buggable Zoffix, Total: 1363; [BUG]: 483; BUG: 457; UNTAGGED: 273; [LTA]: 115; [NYI]: 91; [JVM]: 64; [RFC]: 59; [CONC]: 53; [SEGV]: 38; [REGEX]: 35; [UNI]: 31; [PERF]: 27; [@LARRY]: 21; [IO]: 18; [POD]: 17; [NATIVECALL]: 15; [BUILD]: 11; [PRECOMP]: 11; TESTCOMMITTED: 10; [TODO]: 10; [OO]: 8; TODO: 7; [MATH]: 7; [STAR]: 6; [BOOTSTRAP]: 5; [GLR]: 5; [OSX]: 4; POD: 3; [REPL]: 3; [WEIRD]: 3; TESTNEEDED: 2; [DOCS]: 2; [REGRESSION]:
Zoffix buggable, tags 00:10
buggable Zoffix, Total: 1363; BUG: 939; UNTAGGED: 273; LTA: 115; NYI: 91; JVM: 64; RFC: 59; CONC: 53; SEGV: 38; REGEX: 36; UNI: 31; PERF: 27; @LARRY: 21; IO: 18; POD: 17; TODO: 17; NATIVECALL: 15; BUILD: 11; PRECOMP: 11; TESTCOMMITTED: 10; OO: 8; MATH: 7; STAR: 6; BOOTSTRAP: 5; GLR: 5; OSX: 4; DOCS: 3; REPL: 3; WEIRD: 3; REGRESSION: 2; TESTNEEDED: 2; CONFIGURE: 1; LIBRARY: 1; OPTIMIZER: 1; RT: 1; SITE: 1; SPEC: 1; SPESH:
Zoffix Fixed… I think
m: dd 42.nl-out 00:12
camelia rakudo-moar 8be36b: OUTPUT«"\n"␤»
Zoffix Interesingmethod :P
m: 42.print-nl
camelia rakudo-moar 8be36b: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in block <unit> at <tmp> line 1␤␤»
Zoffix huh 00:13
s: 42, 'print-nl', \()
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/8be3...ny.pm#L401
Zoffix m: 42.print(self.nl-out)
camelia rakudo-moar 8be36b: OUTPUT«===SORRY!=== Error while compiling <tmp>␤'self' used where no object is available␤at <tmp>:1␤------> 42.print(⏏self.nl-out)␤ expecting any of:␤ argument list␤ term␤»
Zoffix m: 42.print(42.nl-out)
camelia rakudo-moar 8be36b: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in block <unit> at <tmp> line 1␤␤»
Zoffix Just a dead method :/
committable6, 2015.07 42.print-nl 00:14
committable6 Zoffix, ¦«2015.07»: Too many positionals passed; expected 1 argument but got 2␤ in block <unit> at /tmp/ZGih_ikYdH:1␤ «exit code = 1»
Zoffix .ask TimToady would you remember what this commit was meant to be for? method form .print doesn't take any args so this method never worked: github.com/rakudo/rakudo/commit/2c...68e34cdf01 00:20
yoleaux2 Zoffix: I'll pass your message to TimToady.
Zoffix (FWIW the .nl-out is there for say() concatenation) 00:21
dalek ast: 99d4556 | (Zoffix Znet)++ | S29-any/deg-trans.t:
[coverage] Covers all uncovered subs in Any.pm
00:52
TimToady Zoffix: that's presumably there so other types can pretend to be an IO::Handle; you'll note that IO::Handle's .print does take more arguments 01:03
yoleaux2 00:20Z <Zoffix> TimToady: would you remember what this commit was meant to be for? method form .print doesn't take any args so this method never worked: github.com/rakudo/rakudo/commit/2c...68e34cdf01
TimToady but I have no recollection, so merely deduce that from how it would work :) 01:04
Zoffix m: sub print-nl (\SELF) { print SELF, "\n" }(42) 01:05
camelia rakudo-moar 8be36b: OUTPUT«42␤»
Zoffix I'll change it to that, so at least it works
TimToady well, maybe add a nl-out method defaulting to "\n" 01:06
dalek ast: 2ef68fe | (Zoffix Znet)++ | S (3 files):
Remove trailing whitespace
Zoffix Oh yeah, I meant self.nl-out instead of "\n"
(it's already there)
dalek ast: 8627ef3 | (Zoffix Znet)++ | S (5 files):
Spread out tests added in 99d45565bc to more appropriate files

Where possible.
01:09
TimToady well, we should probably have a Handley role or some such eventually 01:10
Zoffix hmmm 01:32
s: IO::Handle, 'print'
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/8be3...le.pm#L660
Zoffix s: Any, 'print' 01:33
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/8be3...Mu.pm#L461
Zoffix m: class { method print (*@a) { say "`@a[]`" } }.print-nl 01:34
camelia rakudo-moar 8be36b: OUTPUT«`␤`␤»
Zoffix I'll just leave it as is for now. Because my fix would break the above. As you've said we need something better or something 01:35
dalek ast: 19c5ef1 | (Zoffix Znet)++ | S29-any/deg-trans.t:
[coverage] Add tests for Any.[nl-out|print-nl]
01:43
MasteDuke s: Any, 'uniprop' 01:55
SourceBaby MasteDuke, Something's wrong: ␤ERR: Type check failed in binding to &code; expected Callable but got Nil (Nil)␤ in sub do-sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 42␤ in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 33␤ in block <unit> at -e line 6␤␤
Zoffix s: &uniprop
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/8be3...r.pm#L2373
MasteDuke thanks 01:56
Zoffix: were you Ivanushka on #perl6 earlier today? 02:06
[Tux] This is Rakudo version 2016.09-19-g8be36b1 built on MoarVM version 2016.09 05:57
csv-ip5xs 9.255
test 16.942
test-t 7.330
csv-parser 18.294
dalek p: 9251b1c | brrt++ | t/moar/50-jit-register-alloc.t:
Enable register allocator test by default

This is pointless on the regular MoarVM branch, but serves as a canary for the even-moar-jit branch.
07:09
travis-ci NQP build failed. Bart Wiegmans 'Enable register allocator test by default 07:13
travis-ci.org/perl6/nqp/builds/161248509 github.com/perl6/nqp/compare/a984c...51b1cf3756
dalek p: 2830058 | timotimo++ | t/moar/50-jit-register-alloc.t:
fix TAP output of the register alloc test
08:31
nine .botsnack 08:35
synopsebot6 om nom nom
yoleaux2 01:46Z <Zoffix> nine: do you think this might be a precomp bug? If I run that test file with `prove` I never have any issues. If *after running with prove* I run it with `make`, it fails the first time, but following times works fine. And this happens only if I have `use Test::Util`; in there: gist.github.com/zoffixznet/1a7534d...c62b31542e
:D
nine Zoffix: is this reproducible? It looks like the one off failure I had after my last work on module loading. 08:36
travis-ci NQP build passed. Timo Paulssen 'fix TAP output of the register alloc test' 08:38
travis-ci.org/perl6/nqp/builds/161262509 github.com/perl6/nqp/compare/9251b...300582a5be
dalek p: d33a7e9 | brrt++ | t/moar/50-jit-register-alloc.t:
Register allocator test is more fragile than it may seem

Taking arguments (currently) disables the expr jit, which means the test doesn't work as a expr jit canary anymore. This moves the incrementing OK to the outer loop.
08:40
Zoffix nine, yeah, I can reproduce it each time, every time. The first `make t/spec/foo.t` after using `prove -e './perl6' -vlr t/spec/foo.t` always dies 10:05
Managed to get it to produce debug output: "P6M Merging GLOBAL symbols failed: duplicate definition of symbol Test" 10:09
nine, here's (1) successful run with `prove`; (2) the first run with t/harness5 that fails; (3) the second run with t/harness5 that succeeds: gist.github.com/zoffixznet/32e0889...c059140354 10:11
MasterDuke, I am many things 10:13
nine Zoffix: that's exactly the message I've seen exactly once 10:25
Zoffix: the difference is the PERL6LIB the harness sets. I can also reproduce it by alternating between prove -e './perl6' and prove -e './perl6 -Ilib' 10:31
Which also explains, why I haven't seen it since the first time. My prove6 alias is prove -e 'perl6 -Ilib'
So it does the same as the spectest harness
Zoffix: oooh... I think, I know what happens 10:53
Zoffix \o/
nine We detect a change in the repo chain since we precompiled a module, so we re-resolve the dependency specification. This causes it to print the dependency to STDOUT, as we are currently precompiling. But this refers to the source file, not the precomp file. 10:55
Do we have the rakudo logo in a higher resolution or as vector graphic? 11:59
moritz nine: I can check my old PC at home, I think I have something 12:11
tonight
feel free to remind me if I forget
nine moritz: ok :) 12:18
lizmat isn't the logo an svg originally? 12:42
nine Considering it's really a bunch of characters, I'd be highly surprised if it didn't originate as vector graphic 12:58
dalek Heuristic branch merge: pushed 20 commits to nqp by pmurias 14:56
p: 73eefb7 | (Pawel Murias)++ | t/moar/02-qast-references.t:
Test attributref and lexicalref QAST::Var scopes.
14:59
p: 09422b8 | (Pawel Murias)++ | src/vm/js/ (3 files):
[js] Make an missing attribute exception catchable as Rakudo depends on it.
15:03
TestNinja_ Cannot find method 'has_compile_time_value' on object of type NQPMu :/ 15:25
timotimo oh, that's bad 15:27
TestNinja_ oh, nm, I was running unfudged file
timotimo ah
TestNinja_ (S32-list/first.t fwiw)
dalek ast: 7cdeab4 | (Zoffix Znet)++ | S32-list/first.t:
Junctions work correctly as a matcher in .first

RT#129304: rt.perl.org/Ticket/Display.html?id=129304
15:32
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129304
dalek ast: 92e0197 | (Zoffix Znet)++ | S32-str/comb.t:
.comb(/:m <[o]>/) construct does not die

RT#127215: rt.perl.org/Ticket/Display.html?id=127215
15:38
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127215
dalek p: bd4c830 | (Pawel Murias)++ | src/vm/js/nqp-runtime/deserialization.js:
[js] Deserialize the outer in contexts more correctly.
16:00
p: 12c9855 | (Pawel Murias)++ | src/vm/js/ (2 files):
[js] Stub nqp::settypecheckmode.
p: a98cad3 | (Pawel Murias)++ | t/docs/opcodes.t:
catch more JS ops.
p: b253419 | (Pawel Murias)++ | src/vm/js/Operations.nqp:
[js] Refactor to define ops more regularly so that t/docs/opcodes.t can find ops.
psch hi #perl6-dev o/ 17:19
does anyone have an idea how to distinguish containered Positionals from non-containered Positionals on the nqp level?
e.g. List vs. Array
or am i stuck with "is it reified and are all positions containers?"
timotimo oh hey psch \o/ 17:20
we definitely have something for that
maybe it's nqp::iscont? 17:21
yes, look at List's method perl 17:24
it uses nqp::iscont(self) to decide whether it should put a $ at the beginning or not
psch m: use nqp; my \list = (1, 2, 3); say nqp::iscont(list); my \array = [1,2,3]; say nqp::iscont(array) 17:26
camelia rakudo-moar 8be36b: OUTPUT«0␤0␤»
psch m: use nqp; sub is-cont-pos(\a) { return 1 if [*] (do nqp::iscont($_) for @(a)); return 0 }; my \list = (1,2,3); my \array = [1,2,3]; say is-cont-pos(list); say is-cont-pos(array) 17:28
camelia rakudo-moar 8be36b: OUTPUT«0␤1␤»
psch timotimo: hi :)
timotimo: the latter is what i want
timotimo: i'm mostly hoping i'm missing something about how ContainerSpecs apply to Positional types
timotimo ah, good question
psch ...also sorry for the somewhat convoluted is-cont-pos impl 17:29
(i wasn't sure if nqp::op(Junction) DTRT, soo...)
timotimo junction multithreading is implemented as a special handling of dispatch errors 17:30
psch right, i'll assume i have to iterate then for now 17:31
can always rewrite if we have something smarter
timotimo since nqp ops don't have dispatching in them (except maybe a few that are implemented as code-gen for calls, like maybe nqp::sort?) it'll just give the junction as a parameter
psch i was at first considering just to istype(..., Array), but that's not sufficiently wide, while Positional isn't narrow enough because of List 17:32
so iscont for all positions in the Positional it is :)
timotimo i don't know what the exact usecase is, so *shrug*
psch oh, jvminterop outmarshalling 17:33
timotimo ah
jvminterop is scary magic
psch 'cause, well, we can (and maybe even want to) new List if we actually have a p6 List
as the target type
yeah, says one of the moar bytecode optimizer devs 17:34
:P
timotimo oh, i only touch the bits of spesh that are simple
inlining sends me away screaming, for example :P
psch still 17:35
jvminterop is a bit of indy hacking -- which is mostly done -- and a lot of lets-hope-i-don't-overlook-a-case type wrangling
well, until someone wants to tackle how we wanna do implementing a Java interface in a Perl 6 class 17:36
that's gonna be a bag of... something
probably unpleasant
timotimo most likely 17:39
though i think that feature already exists for a very limited set of interfaces?
psch it does? 17:40
timotimo i think so
it's been a while since i looked at jvminterop, or at examples using it
psch j: use java::util::List:from<JavaRuntime>; List.new 17:41
camelia rakudo-jvm cd19db: OUTPUT«Method 'new' not found for invocant of class 'java.util.List'␤ in block <unit> at <tmp> line 1␤␤»
psch j: use java::util::List:from<JavaRuntime>; List[Int].new
camelia rakudo-jvm cd19db: OUTPUT«===SORRY!=== Error while compiling <tmp>␤java.util.List cannot be parameterized␤at <tmp>:1␤------> :util::List:from<JavaRuntime>; List[Int]⏏.new␤»
psch uh, actually
that's bogus examples
j: use java::util::List:from<JavaRuntime>; class JList is List { }
camelia rakudo-jvm cd19db: OUTPUT«Unhandled exception: Method 'item' not found for invocant of class 'java.util.List'␤ in print_exception (gen/jvm/CORE.setting:22948)␤ in <anon> (gen/jvm/CORE.setting:22999)␤ in command_eval (gen/jvm/stage2/NQPHLL.nqp:1329)␤ in command_eval (src/…»
psch hm, maybe that should need 'does' anyway
timotimo AFKBBIAB
psch yeah, there's a few things i really haven't thought about at all, honestly
afaik it never worked for *any* interface type -- we don't even generate anything useful for interfaces i think 17:42
j: use java::util::List:from<JavaRuntime>; List.^methods.say 17:43
camelia rakudo-jvm cd19db: OUTPUT«(callout java.util.List method/containsAll/(Ljava/util/Collection;)Z callout java.util.List method/hashCode/()I callout java.util.List method/contains/(Ljava/lang/Object;)Z callout java.util.List method/indexOf/(Ljava/lang/Object;)I callout java.util.List m…» 17:44
psch j: use java::util::List:from<JavaRuntime>; List.contains("foo")
camelia rakudo-jvm cd19db: OUTPUT«java.lang.IncompatibleClassChangeError: Found interface java.util.List, but class was expected␤ in block <unit> at <tmp> line 1␤␤»
psch there
timotimo what is going on there? 17:53
psch well, List is an interface 17:56
and the invocation of a method on an interface doesn't work in Java 17:59
because they're not classes
geekosaur and it can't compose them into anonymous classes like would happen with a perl6 interface, because java 18:00
(although possibly in theory it could be done)
s/perl6 interface/perl6 role/
psch yeah, but i'm pretty sure the language designers want that distinction
timotimo mhm 18:01
psch as for "we can cheat that on the Perl 6 side", i'd assume that falls out of making interfaces implementable
as in, "just pretend you got it as Any does $interface" or something
as i said, i haven't really thought about any of that at all
("implementable" here means "useable as per the 'implements' keyword in Java, not "have someone implement them")
s/,/",/ 18:02
timotimo OK
geekosaur ah, right, forgot that java interfaces just say what is required by an implementation, it doesn't provide an implementation 18:03
so, that's not really doable
psch right, we could only cheat around it on the interop path
arnsholt Java 8 lets you have default implementations, doesn't it? 18:04
psch i can only find default methods inside of interfaces 18:06
TimToady p6 roles are perhaps a little more like generics than interfaces 18:12
psch m: role R[Mu $x] { method foo { say "of " ~ $x.WHAT } }; say R.new 18:15
camelia rakudo-moar 8be36b: OUTPUT«No appropriate parametric role variant available for 'R'␤ in any specialize at gen/moar/m-Metamodel.nqp line 2649␤ in any compose at gen/moar/m-Metamodel.nqp line 3028␤ in any make_pun at gen/moar/m-Metamodel.nqp line 1717␤ in any find_method a…»
psch ^^^ that makes me think we shouldn't actually cheat interfaces in the "pretend it was Any does $interface" way
because if we don't specialize Roles on Any in lieu of an actual parametric type we probably shouldn't do the same with Java interfaces 18:16
i mean, yeah, roles are closer to generics than to interfaces, but they share bits with interfaces too, like the ability to prescribe methods that have to be implemented
although i guess that's a thing classes do as well on our side 18:17
m: class A { method foo { ... } }; class B is A { }; B.foo.say # as here
camelia rakudo-moar 8be36b: OUTPUT«Stub code executed␤ in method foo at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
TimToady well, only at runtime, I was gonna say 18:18
sounds more like we need a pun at the appropriate moment
psch in jvminterop for interfaces? 18:19
TimToady presuming the moment doens't involve time travel
like my spelling deos...
I dunno, I'm just dropping random smart-sounding words in the hopes that they trigger an idea in someone who is less ignorant. 18:20
psch well, it's a thing for the future, in any case 18:23
first i wanna figure out marshalling of aggregate types in a post-GLR world :) 18:24
TimToady psch++
psch gist.github.com/peschwa/837f82061c...12374805ce 19:01
with that, g'night o/
bartolin oh hai, psch -- and \o 19:04
timotimo d'oh 19:28
TimToady nine: currently failing t/spec/S01-perl-5-integration/hash.t for some reason 19:44
timotimo could be you need a newer Inline::Perl5 commti? 19:45
commit*
MetaZoffix Yeah 19:46
TimToady just force installed 19:47
timotimo nine is pretty good about bumping the version so you don't need to force-install, i thought 19:48
nine thought so too 19:49
TimToady fails: is(%hash{9}, 'e', 'store result');
MetaZoffix Running stresstest on a starved box is a rather sad sight. ~500 tests failing, with some test runs seemingly exiting in mid-way through the test too gist.github.com/zoffixznet/39b53b5...74b5b584e4
TimToady and that was right after a pull/config/make
(on rakudo)
timotimo TimToady: github.com/timo/cellular-automata-tests - would be interested to know what you think of this, given you made the original Forest Fire CA, iirc 19:50
MetaZoffix And it seems one is_run test is freaking out. It's still running and consuming all my RAM even though the spectest exited 19:51
m: { say @_.gist }(1..Inf)
nine Indeed the fix is in Inline::Perl5 0.13
camelia rakudo-moar 8be36b: OUTPUT«(timeout)»
TimToady timotimo: I usually try not to recalculate my neighbors each time through the loop 19:52
looks like zef isn't actually upgrading my Inline::Perl5; it's at 0.9 19:55
maybe I need a newer zef?
huh, did a zef update, and now a force install tries to install 0.7 instead of 0.9! 19:59
sump'n's really scwewy
no, newest zef still installs only 0.7, huh... 20:05
nine TimToady: aybe you can findvsomeone at #perl6 who can help you with Perl 6. People there arevusually friendly :) 20:06
TimToady :D 20:07
okay, it works if I specifically say: zef install "Inline::Perl5:ver('0.13')"
so something's not wildcarding to the latest version
or it's using string comparison rather than version comparison, but that wouldn't explain picking 0.7 over 0.9 20:09
timotimo TimToady: the rendering stuff is what eats most of the run time, though ;( 20:10
TimToady (and 0.13 fixes the test error) 20:11
nine ugexe: ^^^ 20:14
ugexe hmm, I think its from asking for :max-results<1> from the local cache before it sorts by max version instead of the other way around 20:45
japhb That would probably do it, yes. :-) 20:48
timotimo: Are you planning to add github.com/timo/cellular-automata-tests to perl6-bench? Because I'd love that. 20:49
japhb dearly wishes he had time to be collecting more stuff into perl6-bench on a daily basis
timotimo well, i can turn SDL2 to use a software renderer instead of poping up a window
that'd make it more legit compared to just ripping out the whole graphics part 20:50
japhb timotimo: nodnod 20:51
... although having a version with graphics ripped completely out would still be useful info.
timotimo i want to do more tweaking to make the code better, though 20:52
so if i'm still gonna change the code, i might change the code inside perl6-bench, too. and that would be bad :)
japhb Hmmm. Seems that perl6-bench might benefit from branching. That function had been served mostly be people doing forks, and merging when they were ready, but it might be nice if people can collaborate on improvements to the test suite together in the main repo without messing with normal users until we're ready to merge (or in some sense "release" a new version of the suite). 20:55
timotimo japhb: looking at my code, can you think of alleys of improvement? 21:38
Zoffix is preparing a small patch to parse_coverage_report.p6 21:39
timotimo cool 21:40
Zoffix grrr (╯°□°)╯︵ ┻━┻ 21:51
Never mind.
Too much C accent in that code for me :(
But I wanted to make it skip first 2 lines, because they aren't in the separate code files and add line ID numbers. 21:52
s: &say
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/8be3...ors.pm#L20
Zoffix so ^ that line number matches the one in coverage report and can be linked to
SourceBaby, source 21:59
SourceBaby Zoffix, See: github.com/zoffixznet/perl6-sourceable
Zoffix s: REPL, 'history-file' 22:04
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/8be3...PL.pm#L408
Zoffix Sent github.com/MoarVM/MoarVM/pull/409 22:14