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] |
|
13:10 | |||||||||||||||||||||||||||||||||||||
Still slow :( | |||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 3d6e8d6d7d | (Elizabeth Mattijsen)++ | 4 files Move IO::Path.CHECKSUM to Rakudo::Internals By popular demand. |
13:27 | |||||||||||||||||||||||||||||||||||||
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:48 | |||||||||||||||||||||||||||||||||||||
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. |
20:09 | |||||||||||||||||||||||||||||||||||||
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) |
21:25 | |||||||||||||||||||||||||||||||||||||
[Tux] |
|
21:29 | |||||||||||||||||||||||||||||||||||||
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 |
22:45 | |||||||||||||||||||||||||||||||||||||
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
|