Kaiepi bah, the case with IO::Handle.lines wound up being slower instead 00:23
01:19 Altai-man_ joined 01:21 sena_kun left
japhb Time for an nqp bump to pick up today's many changes? 02:36
03:00 tinmarino left 03:20 sena_kun joined 03:21 Altai-man_ left
Geth rakudo: tinmarino++ created pull request #3558:
Better error message when calling a star proto without declared multi
05:19 Altai-man_ joined 05:22 sena_kun left
Geth nqp: 831266288f | (Christian Bartolomäus)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java
[JVM] Always provide file and line in backtrace

This helps with a couple of spectests that die in core.c/Backtrace.pm6, in
The code tries to mimic the behaviour of MoarVM, esp.
nqp: d86a2e7cda | (Christian Bartolomäus)++ (committed using GitHub Web editor) | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java
Merge pull request #606 from usev6/jvm_backtrace

  [JVM] Always provide file and line in backtrace
06:27 hungrydonkey joined 07:20 sena_kun joined 07:21 Altai-man_ left 07:30 AlexDaniel` joined 08:01 sena_kun1 joined, sena_kun left 08:08 sena_kun1 left
Geth rakudo: 82b3249839 | (Daniel Green)++ | tools/templates/NQP_REVISION
NQP bump to pick up optimizer and JVM improvements
MasterDuke jnthn: should i change all cases of $ actually being an @ in NQP? or just the cases where +$ is being used to mean nqp::elems? 09:30
09:39 sena_kun joined, sena_kun left
jnthn Probably just those where there's some benefit 09:39
MasterDuke heh, that's what i was hoping, there are a lot of places to change otherwise 09:40
i added a call to MVM_dump_backtrace in MVM_coerce_smrt_intify at the array case and then redirected all the output to a file and searched for all the 'at ' lines, so i could count the unique locations 09:44
however, a bunch of them pointed to places that weren't actually a `+$`. is there a better way to do that? 09:45
jnthn: oh, btw, did you see that question i asked timotimo in #raku last night? i was seeming some odd behavior with rbt's patch to String::CRC32 09:47
lizmat Files=1305, Tests=111216, 206 wallclock secs (28.64 usr 8.31 sys + 2897.45 cusr 267.17 csys = 3201.57 CPU) 09:51
09:53 travis-ci joined
travis-ci Rakudo build errored. Daniel Green 'NQP bump to pick up optimizer and JVM improvements' 09:53
travis-ci.org/rakudo/rakudo/builds/664752860 github.com/rakudo/rakudo/compare/9...b324983982
09:53 travis-ci left
Geth rakudo: 38a0eb8291 | (Elizabeth Mattijsen)++ | src/core.c/Rakudo/Internals/JSON.pm6
Make the internal JSONifier unpretty by default

There's no reason to create pretty JSON, it's for internal use only.
rakudo: 35a827af36 | (Elizabeth Mattijsen)++ | src/core.c/Pair.pm6
Remove unnecessary parens in Pair.raku

Fixes R#3555. The parens are needed only if the key is a Pair also.
linkable6 R#3555 [open]: github.com/rakudo/rakudo/issues/3555 [LTA][regression] Pair.raku adds unnecessary parens
11:03 Ven`` joined
Geth roast: 94a78e6bab | (Elizabeth Mattijsen)++ | S02-types/pair.t
Add tests for R#3555
linkable6 R#3555 [open]: github.com/rakudo/rakudo/issues/3555 [LTA][regression] Pair.raku adds unnecessary parens
Kaiepi jnthn can you take a look at github.com/rakudo/rakudo/pull/3491 and github.com/rakudo/rakudo/pull/3451 ? 11:09
the one you commented on is one i plan on revising at some point later on
11:16 travis-ci joined
travis-ci Rakudo build errored. Elizabeth Mattijsen 'Make the internal JSONifier unpretty by default 11:16
travis-ci.org/rakudo/rakudo/builds/664775267 github.com/rakudo/rakudo/compare/8...a0eb829106
11:16 travis-ci left
lizmat restarted one failing job 11:17
11:42 travis-ci joined
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make the internal JSONifier unpretty by default 11:42
travis-ci.org/rakudo/rakudo/builds/664775267 github.com/rakudo/rakudo/compare/8...a0eb829106
11:42 travis-ci left 11:52 hungryd87 joined 11:54 hungrydonkey left
Geth rakudo: 291aa580ac | (Elizabeth Mattijsen)++ | src/core.c/Buf.pm6
Give Buf.list the same treatment as Blob.list

As there is little point in being lazy when you're returning a cache.
12:38 hungrydonkey joined 12:40 hungryd87 left
Geth rakudo: 80f2aebff4 | (Elizabeth Mattijsen)++ | src/core.c/native_array.pm6
Fix performance issue on native shaped arrays

It appeared that the created type wasn't actually composed yet, so it would keep looking up and typechecking stuff, which caused the big slowdown (by a factor of 15x or so).
Not 100% this is the best solution, but it fixes the performance issue and is spectest clean. Fixes R#3532
linkable6 R#3532 [open]: github.com/rakudo/rakudo/issues/3532 [native types][performance][shaped] Looping sized native typed array is slow
[Coke] lizmat++ 13:17
13:29 sena_kun joined, sena_kun left 13:41 sena_kun joined
sena_kun lizmat++ # nice fixes 14:04
lizmat yeah, you gotta do something.. :-)
might as well be something useful :-) 14:05
MasterDuke lizmat++ 14:20
Geth rakudo/master: 5 commits pushed by (Elizabeth Mattijsen)++ 14:22
15:18 tinmarino joined 15:19 Altai-man_ joined 15:21 pmurias joined 15:22 sena_kun left
tinmarino Hi all, 15:23
Geth rakudo: 509a7f6eca | (Elizabeth Mattijsen)++ | 10 files
Remove unnecessary implementation detail

  &SEQUENCE somehow lived in the CORE:: but didn't need to. Move
it into Rakudo::SEQUENCE and rename the sub to "iterator", as that is the most logical thing to be returned from a SEQUENCE generator. Adapt the code and the keys tests accordingly.
lizmat afk&
tinmarino (no newline ...) I'd like to work on Rakudo these days. Spotting easy issues led me to Error messages. What do you think of this one (dynamic type check Vs static) github.com/rakudo/rakudo/issues/3364 15:25
Also not sure how to fix this one github.com/rakudo/rakudo/issues/1746 (Error missing declared signature if `where` clause is used in proto) 15:28
Also: a novice question: can you trace nqp call stack in Rakudo interpreter to prevent recompiling to indentify the source of the bug ? Some flag ? 15:45
jnthn Maybe the --ll-exception option to Rakudo, which leaves a lot more detail in? 15:48
Geth nqp: 75735628a1 | (Daniel Green)++ | 15 files
Get rid of a lot of `nqp::intify` calls

When it's known to be called on a list (e.g., `+@foo`) it's usually optimized into `nqp::elems`, but not always. I'm not sure why, maybe it's too early in the build process for the NQP optimizer to kick in, so manually optimize the most frequent cases.
[Coke] to prevent recompilation, 'no precompilation;' works in rakudo source.
tinmarino @jnthn that's exactely what I was looking for. Thanks
16:07 Ven`` left 16:50 travis-ci joined
travis-ci Rakudo build errored. Elizabeth Mattijsen 'Remove unnecessary implementation detail 16:50
travis-ci.org/rakudo/rakudo/builds/664892761 github.com/rakudo/rakudo/compare/f...9a7f6ecab1
16:50 travis-ci left
[Coke] nqp: say(1) 16:54
camelia 1
[Coke] nqp: writeint
camelia ( no output )
[Coke] nqp: writeintasdfasdf 16:55
camelia ( no output )
[Coke] lizmat: when you added the docs for writeint, you have the entry as "nqp::writeint" instead of "writeint" - is it required on use, do you recall or was that just stylistic? 16:56
lizmat ah, good point... 16:58
all those ops need the nqp:: prefix to be used...
but none are shown there, so yes, it's inconsistent 16:59
[Coke] ok. the check for docs doesn't know how to deal with a prefix'd nqp:: there, so we get more fails. I'll update the test to not ignore that.
lizmat: it's shown for writeint.
missing on others?
lizmat yeah, fixing it now :-)
When invoking them directly, you'll need to prefix them with nqp::, e.g. 17:00
is what it says in the docs
[Coke] +1 17:01
Geth nqp: a4658a5496 | (Elizabeth Mattijsen)++ | docs/ops.markdown
Remove nqp:: prefix for consistency

It's not used anywhere else in that context. Coke++ for spotting
lizmat restarted the failing Travis job 17:04
17:09 TreyHarris joined
[Coke] lizmat: heh. I had a commit going the other way, assuming it'd get added in. :) 17:13
(to update the doc test). 17:14
lizmat ok, fine by me as well... maybe we should document it that if you're writing QAST, you can drop the nqp::
as that nowadays is the less frequent use, I'd say
[Coke] nono, this is fine
I'm just trying to reduce the error count in t/docs/opcode.t 17:15
17:20 sena_kun joined 17:22 Altai-man_ left
Geth nqp: 70905445ba | Coke++ | docs/ops.markdown
Document tclc opcode
[Coke] github.com/Raku/nqp/blob/master/do...pushcompsc - where is this opcode defined? 17:31
(or declared?)
looks like it was added by cognomial 17:34
(in the docs)
MasterDuke [Coke]: src/vm/moar/QAST/QASTOperationsMAST.nqp:2584: 17:37
Geth nqp: ec31f5d0fd | Coke++ | docs/ops.markdown
mark some ops as backend specific
nqp: c454df1e8f | Coke++ | docs/ops.markdown
fix typo
[Coke] under 400 failures, whee. 17:50
18:03 hungrydonkey left
Geth nqp: 26182419e5 | (Daniel Green)++ | 2 files
Convert more `nqp::intify` into `nqp::elems`

Most of these were found when doing a Rakudo build.
roast: b0eda67335 | (Christian Bartolomäus)++ | S02-names/is_default.t
[JVM] Unfudge passing test
rakudo: 776ef80028 | (Daniel Green)++ | 5 files
Convert `nqp::intify` calls into `nqp::elems`

See github.com/Raku/nqp/commit/7573562...f99c86e8bd for context.
MasterDuke with the previous nqp commits and ^^^, the number of MVM_coerce_smrt_intify calls when building rakudo is reduced by a little over 1 million 18:44
[Coke] wow 18:53
19:01 patrickb joined 19:19 Altai-man_ joined 19:21 sena_kun left 19:24 maggotbrain joined 21:20 sena_kun joined 21:22 Altai-man_ left 21:41 tinmarino left 22:07 hungrydonkey joined
Kaiepi m: say sub foo is nodal { } ~~ Callable 22:37
camelia False
Kaiepi m: say Metamodel::Primitives.is_type: sub foo is nodal { }, Callable
camelia False
Kaiepi bisectable6, say sub foo is nodal { } ~~ Callable 22:38
bisectable6 Kaiepi, Bisecting by output (old=2015.12 new=776ef80) because on both starting points the exit code is 0
Kaiepi, bisect log: gist.github.com/80f873894f1c8691b8...9f2d8f8c86
Kaiepi, (2020-03-10) github.com/rakudo/rakudo/commit/77...9f000c0569
Kaiepi hm 22:39
AlexDaniel` not the first time we see this commit :) 22:40
MasterDuke Kaiepi: feel free to re-revert that, but could you add a spectest? 22:46
Kaiepi m: BEGIN Sub.^setup_mixin_cache; say sub foo is nodal { } ~~ Callable 22:48
camelia True
Kaiepi sure
Geth rakudo: a381202881 | (Ben Davies)++ | src/Perl6/Metamodel/Mixins.nqp
Revert "Revert "Work around existing bug exposed by mixin caching.""

This breaks typechecking for some types of mixins, such as `sub () is nodal { }`.
This reverts commit 771b95438e4059e50fd1153e4e611e9f000c0569.
Kaiepi m: say sub { } does role { } ~~ Callable 23:00
camelia True
Kaiepi ERROR: Permission to Raku/roast.git denied to Kaiepi. 23:06
AlexDaniel`? 23:07
23:10 tinmarino joined
tinmarino Do you know how I can call some object parent routine on itself ? 23:16
class Parent { method frob { say "the parent class frobs" } }class Child is Parent { method frob { say "the child's somewhat more fancy frob is called" } }my $c = Child.new; 23:17
I would like to call Parent.frob on $c 23:18
23:19 Altai-man_ joined
Altai-man_ m: class Parent { method frob { say $?CLASS.^name; } }; class Child is Parent {}; my $c = Child.new; $c.frob; Parent.new.frob; 23:19
camelia Parent
Altai-man_ hmmm
oh, even easier 23:20
timotimo you can $c.Parent::frob
Altai-man_ m: 'class Parent { method frob { say self.^name; } }; class Child is Parent {}; my $c = Child.new; $c.frob; Parent.new.frob;
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in single quotes; couldn't find final "'" (corresponding starter was at line 1)
at <tmp>:1
------> 3c = Child.new; $c.frob; Parent.new.frob;7⏏5<EOL>
expecting …
Altai-man_ tinmarino, ^
m: class Parent { method frob { say self.^name; } }; class Child is Parent {}; my $c = Child.new; $c.frob; Parent.new.frob;
camelia Child
23:20 Altai-man_ left, Altai-man_ joined 23:21 sena_kun left
tinmarino OUch that was fast. Thanks guys !!! $c.Parent::frob is the solution I was looking for. 23:22
23:23 [Coke]_ joined
tinmarino Humm I understand that "Parent::frob" is the indivisible name of the routine. Glad to hav easked (tk @timotimo) 23:24
timotimo :)
this also works with roles i believe
23:25 [Coke] left
tinmarino A (self proclamed) good newbie, I'll make a PR on the doc lol 23:26