00:07 sena_kun joined 00:09 Altai-man_ left 00:27 vrurg_ joined 00:28 nebuchad` joined 00:29 bartolin_ joined 00:30 timo joined 00:31 klapperl left, timo is now known as Guest88981 00:32 klapperl joined 00:34 [Coke] left, vrurg left, bartolin left, nebuchadnezzar left, timotimo left, jdv79 left, [Coke] joined, [Coke] left, [Coke] joined 00:37 jdv79 joined 01:21 Xliff joined 01:58 Xliff left 02:06 dogbert11 left, Altai-man_ joined 02:08 sena_kun left 03:23 klapperl_ joined, jdv79_ joined 03:28 jdv79 left, klapperl left, TreyHarris left, kubrat left 03:31 kubrat joined 03:34 TreyHarris joined 04:07 sena_kun joined 04:08 Altai-man_ left 06:06 Altai-man_ joined 06:09 sena_kun left 06:10 MasterDuke left 06:16 MasterDuke joined 07:56 domidumont joined 08:07 sena_kun joined 08:08 Altai-man_ left 08:59 nebuchad` is now known as nebuchadnezzar 10:06 Altai-man_ joined 10:09 sena_kun left
MasterDuke why do we only have `set(meth|type)cache` and not `update(meth|type)cache`? 10:29
lizmat Files=1305, Tests=111189, 206 wallclock secs (28.40 usr 7.98 sys + 2889.52 cusr 268.01 csys = 3193.91 CPU) 11:00
11:35 domidumont left 12:07 sena_kun joined 12:08 Altai-man_ left
MasterDuke oh interesting, the method_cache is a BOOTHash, but the type_check_cache is just a list 12:25
[Tux] Rakudo version 2020.02.1-179-g2a58eb398 - MoarVM version 2020.02.1-44-g04005cf43
csv-ip5xs0.712 - 0.718
csv-ip5xs-206.486 - 6.705
csv-parser26.260 - 27.639
csv-test-xs-200.371 - 0.373
test8.585 - 9.266
test-t1.943 - 2.025
test-t --race0.851 - 0.981
test-t-2032.767 - 33.354
test-t-20 --race9.838 - 10.404
Still slow :(
Geth rakudo: 3d6e8d6d7d | (Elizabeth Mattijsen)++ | 4 files
Move IO::Path.CHECKSUM to Rakudo::Internals

By popular demand.
14:00 Kaiepi left, Kaiepi joined 14:02 japhb left 14:06 Altai-man_ joined 14:09 sena_kun left 14:17 Kaiepi left
MasterDuke huh. 60k calls to `type_check` and 31k calls to `find_method` when building rakudo. most common method is is_generic in Parameter, most common type is Routine in Method 14:18
14:18 Kaiepi joined
MasterDuke but is that expected? because stuff won't have been composed until the end of the setting? 14:18
14:19 Kaiepi left 14:20 Kaiepi joined 14:21 Kaiepi left 14:24 Kaiepi joined
nine MasterDuke: I wonder if we could compose those earlier? 14:25
MasterDuke how? move them earlier in the build order? 14:26
lizmat has bad memories trying to move stuff around in the core setting, especially in the early parts 14:27
things may break and the error messages are generally awful (or compilation just hangs) 14:28
MasterDuke: but please, be my guest :-)
MasterDuke where is that list? 14:29
lizmat tools/templates/6.*/core_sources 14:30
MasterDuke thanks
lizmat afk& 14:35
MasterDuke nine: heh, moving Method before Routine caused 17 fewer 'looking for type Routine in Method' 14:39
6207 instead of 6224 14:40
14:44 titsuki joined
MasterDuke nine: but given the problem with shaped native arrays, it seems like there's a more general fix to be had 14:46
nine MasterDuke: I can tell you that Int.pm6 definitely must come before Parameter.pm6 14:47
MasterDuke nine: one thing i don't understand, what does it mean for there to be method calls to a non-composed class? 14:51
jnthn MasterDuke: Please don't move Method before Routine. Method inherits from Routine. I'd be surprised if that didn't have very bad consequences at some point. 14:56
Like any methods defined in Routine in the setting not being in the cache or some such
A method call on a non-composed class just means it looks at the set of methods it knows about so far, without consulting the cache. The caches are *authoritative*, which is an important optimization (sometimes knowing a method does not exist is significant). 14:57
So you can't publish those until you know the full set of methods. 14:58
That said, there are protections against this to a degree (I think add_method invalidates the cache, just in case)
(But that's a local invalidation, so won't impact subclasses, which is why order matters.) 14:59
MasterDuke add_fallback does invalidate it
jnthn Yup, makes sense, 'cus in that case the cache *can't* be authoritative, iirc
Because we don't want to say "no" based on lack of cache entry when there's a fallback.
MasterDuke moving things hasn't had any noticeable effect, so i'm not planning to do any more experimenting that way 15:00
but i haven't yet been able to find a better place to (re)publish the caches 15:01
jnthn Yeah, I was gonna look into that yesterday, but ended up getting distracted on another shiny thing I wanted to hack on :) 15:02
MasterDuke heh. and i got distracted trying to figure out why --profile-stage silently dies/doesn't work when trying to profile the rakudo build (but does work on something smaller) 15:04
but no success 15:08
well, re-applying my reverted PR does also dramatically reduce the 'looking for type' logging messages i added when building rakudo. i.e., not just in that sample code with the native shaped arrays 15:14
so it looks like a good fix will have some more general benefit as well 15:17
16:07 sena_kun joined 16:09 Altai-man_ left 16:11 [Tux] left 16:20 [Tux] joined 16:34 titsuki left 18:06 Altai-man_ joined 18:08 sena_kun left 18:52 ufobat_ joined 18:55 ufobat__ left 19:16 sena_kun joined 19:17 Altai-man_ left
Geth nqp: usev6++ created pull request #605:
Introduce VMNull on JVM backend
19:52 Guest88981 is now known as timotimo
bartolin_ ^^ I've opened this PR and am looking for comments. It would be very nice to get a short evaluation whether the basic implementation (not all details) make sense. Don't know whom to ask about that -- except for jnthn and pmurias. 20:07
Geth rakudo: af594925fe | (Ben Davies)++ | src/core.c/traits.pm6
Make method lookup with the handles trait 13% faster in certain cases

By using nqp::can instead of Mu.can, method lookups deferred to an attribute with the handles trait can be optimized when used with Whatever or a type object.
lizmat Kaiepi++ 20:10
20:37 leont joined
Kaiepi so i saw someone had fixed Routine.wrap for stuff like multi methods and checked to see if it works with Trait::Traced or not 20:42
it mostly does, but there are a couple tests that are failing
m: sub trait_mod:<is>(Method:D $m is raw, :$foo!) { $m.wrap: my method (|) { say "ok" } }; class Foo { method ^meta(Mu) is foo { } }; Foo.^foo 20:43
camelia No such method 'foo' for invocant of type 'Perl6::Metamodel::ClassHOW+{<anon>}'
in block <unit> at <tmp> line 1
Kaiepi m: sub trait_mod:<is>(Method:D $m is raw, :$foo!) { $m.wrap: my method (|) { say "ok" } }; class Foo { method ^meta(Mu) is foo { } }; Foo.^meta
camelia ( no output )
Kaiepi this is one
haven't golfed the other one yet
21:05 pmurias joined
pmurias bartolin_: re isnull branch, thanks for that it's something that was a major pain for a long time 21:10
21:15 Altai-man_ joined 21:17 sena_kun left
Geth rakudo: 3017cfea50 | (Elizabeth Mattijsen)++ | 2 files
Make Date/DateTime.yyyy-mm-dd about 250x as fast

Also allow a separator to be specified, so that you can now say:
   Date.yyyy-mm-dd("/") to get "2020/03/14" for today.
The default separator being "-", to remain compatible with earlier ... (5 more lines)
[Tux] Rakudo version 2020.02.1-181-gaf594925f - MoarVM version 2020.02.1-45-g2252a95df
csv-ip5xs0.718 - 0.778
csv-ip5xs-206.369 - 6.602
csv-parser26.504 - 26.662
csv-test-xs-200.370 - 0.394
test8.056 - 8.434
test-t1.928 - 2.110
test-t --race0.992 - 1.013
test-t-2034.249 - 34.254
test-t-20 --race9.799 - 11.389
after a reboot, machine not really in use
lizmat I guess that's still the next-dispatcher stuff acting up 21:32
21:32 jdv79_ is now known as jdv79 22:03 ufobat_ left
MasterDuke [Tux]: how many lines are in the csv file you test with? 22:19
Geth rakudo: 70ac9b72ef | (Elizabeth Mattijsen)++ | src/core.c/Dateish.pm6
Add Date/DateTime.dd-mm-yyyy / mm-dd-yyyy methods

Seeing the code from covid.observer made me realize that most uses of the formatter for Date/DateTime is to create the mm-dd-yyyy and dd-mm-yyyy alternatives for dates. Since these methods would be 250x faster than using a sprintf and the formatter, it seems like a good thing to add, especially since these methods allow for a different separator so today would can show up for our American friends as:
   say Date.today.mm-dd-yyyy("/"); # 03/14/2020
MasterDuke heh, we just realized now that we're here in the uk there won't be any pi(e) day 22:50
lizmat those bloody colonials ! :-)
[Coke] US pi day fun: www.youtube.com/watch?v=N41yZsxIsK8 23:08
23:16 sena_kun joined 23:18 Altai-man_ left
lizmat calls it a sad day& 23:22
[Coke] agreed. ~~ 23:25
23:25 leont left