Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes. Set by lizmat on 24 May 2021. |
|||
00:05
reportable6 left
01:28
linkable6 left,
evalable6 left
|
|||
[Coke] | someone could go through now and find commits like github.com/MoarVM/MoarVM/commit/1003874b2 and start throwing them in the recommended file | 01:29 | |
01:29
evalable6 joined
02:04
frost joined
03:30
linkable6 joined
03:58
frost left
05:06
reportable6 joined
06:06
reportable6 left
06:15
frost joined
07:15
evalable6 left,
linkable6 left
07:17
evalable6 joined
08:14
frost left
09:07
reportable6 joined
|
|||
Geth | MoarVM: 280c709ce0 | (Stefan Seifert)++ | src/spesh/disp.c Fix spesh breaking non-int/long rw args of native calls We only generated code for handling int, long and long long rw args of speshed/jited NativeCalls, not other types, but proceeded with speshing anyway. We really need to abort when encountering unsupported types. Otherwise those rw args won't get updated. Fixes Rakudo issue #4749 |
09:16 | |
lizmat | nine++ | 09:18 | |
worthy of a bump ? | |||
nine | Definitely | 09:19 | |
lizmat | ok, will do | ||
nine | thanks :) | ||
Adding rw support for other integer types is quite trivial. Except for CPointer. We cannot update those via assign_i or assign_u ops as we do for native refs. NativeCall instead calls the set_int box function, but there is no op for doing just that. | 09:31 | ||
Funny that for precicely this oddity there's a PR to docs from just 2 hours ago: github.com/Raku/doc/pull/402 | 09:48 | ||
It explains that for an rw pointer, one needs to pass an existing Pointer object, so it can get updated by NativeCall. Which is really just not how rw args in general work in Raku | |||
lizmat | nine: [Tux] saw a performance drop, not sure it was the latest bump or the commit before | 09:53 | |
11:18
linkable6 joined
12:06
reportable6 left
13:06
sena_kun left,
sena_kun joined
13:08
reportable6 joined
13:49
Altai-man joined
13:52
sena_kun left
14:00
discord-raku-bot left,
discord-raku-bot joined
|
|||
[Coke] | github.com/Raku/doc/pull/4026 #402 is something else | 15:44 | |
nine | [Coke]: oh, thanks! | 16:03 | |
[Coke] | it helpfully directed me to issue 402, where I had made a snarky comment in 2016. :) | 16:39 | |
nine | There is no op for calling a repr's set_int functions. But there is sp_bind_i64 for writing a struct's attribute directly. And quite surprisingly, this seems to have worked on the very first try! | 16:45 | |
With that I've got full spesh coverage of rw args in native calls | |||
Geth | MoarVM/support_all_kinds_of_rw_args_on_native_calls_in_spesh: 311e099d1f | (Stefan Seifert)++ | src/spesh/disp.c Support alll kinds of rw args on native calls in spesh So far, we've only supported the larger integer types for rw args when speshing native calls. Extend this support to all sizes, unsigned integers and pointers. Since CPointer objects get passed as-is, not as native refs, we need to update them in-place via sp_bind_i64 instead of assigning into the ref. |
16:50 | |
16:58
[Coke] left
17:16
[Coke] joined
|
|||
jnthnwrthngtn | nine: Spesh coverage meaning "we can JIT them all"? | 17:18 | |
nine | jnthnwrthngtn: yes | 17:28 | |
Geth | MoarVM/support_all_kinds_of_rw_args_on_native_calls_in_spesh: da649cd208 | (Stefan Seifert)++ | src/spesh/disp.c Support all kinds of rw args on native calls in spesh So far, we've only supported the larger integer types for rw args when speshing native calls. Extend this support to all sizes, unsigned integers and pointers. Since CPointer objects get passed as-is, not as native refs, we need to update them in-place via sp_bind_i64 instead of assigning into the ref. |
||
nine | (just fixed the typo in the commit message) | ||
jnthnwrthngtn | Cool :) | 17:29 | |
nine | Btw. if I can somehow get my uint $t = 0; $t = $t + 2; to perform the same as $t = $t + my uint $ = 2; I can get sieve.raku down to 0.79s which is less than a factor of 2 away from Perl's 0.43s | 17:37 | |
lizmat | perhaps it is time to codegen integer values that are small enough to fit in a native int, as a native int ? | 17:39 | |
and if positive, as a uint even ? | |||
nine | Thing is....I think it already should. Perl6::World.add_numeric_constant creates a QAST::IVal node and QASTCompilerMAST turns that into a const_i64 instruction. So the question is: why doesn't it work out this way in my case? | 17:59 | |
The QAST::Want might get in the way | 18:03 | ||
18:08
reportable6 left
18:09
reportable6 joined
|
|||
[Coke] | looking at the cleanup branches ticket; there are 37 merged branches in Moarvm - anyone mind if I delete those in the next day or so? | 18:31 | |
I can post a list of who last committed to them when, but then include (e.g.) asan_fixes, fix-intern-lookup, etc. | 18:32 | ||
(there are nearly 200 unmerged branches) | 18:37 | ||
oldest of which are 8+ years | 18:39 | ||
is there some standard for what do with old stuff like that we're not ready to delete? move it to origin/archive/ ? | |||
19:31
linkable6 left
19:33
linkable6 joined
19:34
linkable6 left
20:36
linkable6 joined
|
|||
jnthnwrthngtn | I can't imagine anybody objecting to cleaning up merged branches | 20:38 | |
[Coke] | jnthnwrthngtn: danke | 20:39 | |
jnthnwrthngtn: you had one of the oldest unmerged, btw. :) | |||
nine | Well merged branches are not of much use. Unmerged ones however can still be useful. E.e. there's the more_asan_fixes branch which I I do intend to get back to, despite the last commit being over a year old | ||
[Coke] | jnthnwrthngtn: gen2-frames, set-removal are both 8+ years | 20:41 | |
nine | Oh, there's my gc_torture branch which is not meant to be merged ever but still useful :) | 20:48 | |
[Coke] | what about new-disp? | 20:58 | |
it's merged, but is it special enough to save or tag? | |||
cleaned up everything merged except new-disp & ryu, which I can see but cannot delete. | 21:08 | ||
I can't see ryu on the website; weird. | 21:11 | ||
jnthnwrthngtn | [Coke]: I guess I'm the oldest here in moar years :) | 21:15 | |
Anything of mine that's unmerged and older than 4 years can be deleted; it'll have surely bitrotted enormously | 21:16 | ||
[Coke] | ok. I'll get that list and see if any of the names stand out for you, though. | 21:17 | |
/speculative-calls /nine-try-this-fix /deterministic-ucd2c /slower/elim-take-dispatcher /sync-without-uv /wip-mvmarray-refactor /inlining-exception-fix /frame-gc-opts /spesh-value-prop /set-removal /gen2-frames | 21:18 | ||
those are jnthn last commit, > 4 years | 21:19 | ||
nine, did you try that fix? :) | 21:22 | ||
nine | [Coke]: looks like that fix even made it into master :) And has evolved somewhat since | 21:42 | |
[Coke] | ... ok, not exactly as is, I assume, or my merge check is missing stuff? | 21:53 | |
22:08
linkable6 left,
evalable6 left
|
|||
jnthnwrthngtn | [Coke]: Also can be that I rebased the branch and merged it locally, put never pushed the update to the branch itself, in which case --merged won't detect it | 22:08 | |
[Coke] | Oof. | ||
22:09
evalable6 joined
22:10
linkable6 joined
|
|||
jnthnwrthngtn | And then GitHub also has squash merge and rebase merge options even in a PR-based workflow (but mitigates it somewhat with a button to delete the branch, but one has to remember to push it) | 22:10 | |
So there's quite a few paths to "--merged doesn't detect it, but it was", alas. | |||
MasterDuke | i have a FF plugin/extension that automatically clicks that button when i merge my own PRs | 22:13 | |
github.com/refined-github/refined-github | 22:14 | ||
[Coke] | nice | 22:15 | |
nice | 22:16 |