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:16
lizmat_ joined
00:20
lizmat left
00:54
lizmat joined
00:58
lizmat_ left
01:54
guifa left
|
|||
Geth | MoarVM/main: 2ceba5c87b | (Will Coleda)++ | docs/ChangeLog Fix Changelog formatting |
01:57 | |
[Coke] | nine, timo: ok to redo that merge (though I think it might have to be manual, github says that branch is already in main) | 03:06 | |
09:31
sena_kun joined
12:25
lizmat_ joined
12:29
lizmat left
12:57
lizmat_ left,
lizmat joined
15:42
guifa joined
|
|||
[Coke] | moarvm.org's "fork me" icon is broken. Any thoughts on tholman.com/github-corners/ ? | 17:07 | |
(I have a PR in progress for the site if anyone likes) | |||
github.com/MoarVM/moarvm.org/pull/19 | 17:13 | ||
Geth | MoarVM/rakperl: 2744dcc71d | (Will Coleda)++ | 9 files Update many Perl 6 -> Rakudo Leaving things that are exact quotes or from historical docs |
17:21 | |
MoarVM: coke++ created pull request #1901: Update many Perl 6 -> Rakudo |
|||
MoarVM/rakperl: a0118445e5 | (Will Coleda)++ | docs/release_guide.md Note convention found during 2025.01 release |
17:54 | ||
[Coke] | ... crap, that was supposed to go to main. | 17:56 | |
timo | tbh it's fine to force-push over or delete branches, if you're quick about it :P | 18:02 | |
but that's just my opinion | |||
jdv | i'd guess that trailing zero is some fix or bandaid for the "ambiguous refspec" issue cause the tag and branch are the same... | 18:03 | |
which also happens to allow for "point releases" but i've never had to do one. | 18:04 | ||
[Coke] | we should be using the "release-2025.01" format to avoid the ambiguous issue, then we're also matching rakudo | 18:07 | |
(crap) eh - both small changes, they can go in a single release-related PR | |||
ok. I think that's all the tickets (across the websites, moarvm, and rakudo), along with a bunch of small updates to release guides | 18:11 | ||
releasable6: status | |||
releasable6 | [Coke], Next release will happen when it's ready. There are no known blockers. 49 out of 53 commits logged | ||
[Coke], Details: gist.github.com/d1103a3ea6c6e72ca9...3b7544d5eb | |||
18:37
MasterDuke joined
|
|||
MasterDuke | any objections to merging github.com/MoarVM/MoarVM/pull/1896 and/or github.com/MoarVM/MoarVM/pull/1897 ? | 18:38 | |
anybody taken a look at them? | |||
lizmat | no objections, but I'd like to have separate NQP bumps / rakudo bumps for each of them | 18:44 | |
I'll merge and bump them shortly, ok? | |||
Geth | MoarVM/main: 627650543f | MasterDuke17++ (committed using GitHub Web editor) | 11 files Use rapidhash instead of siphash for string hashes It's currently the fastest recommended hash function according to SMHasher. |
18:45 | |
MasterDuke | sure, np | 18:46 | |
lizmat: fyi, the nqp bump message is backwards, now it's using rapidhash instead of siphash | 18:51 | ||
lizmat | argh | ||
will do correctly for the Rakudo bump, thanks for the headsup | 18:52 | ||
MasterDuke | np | 18:53 | |
Geth | MoarVM/main: a0b7091877 | MasterDuke17++ (committed using GitHub Web editor) | src/strings/ops.c Speedup MVM_string_find_cclass by adding cases... for different string storage_types It duplicates a bunch of code, but ends up being faster in a bunch of commonly occuring cases. |
18:59 | |
MoarVM/main: 6f19ada9cb | (Timo Paulssen)++ (committed by Elizabeth Mattijsen) | src/6model/reprs/CPointer.c Optimize passing CPointer to nativecall ever so slightly We emit an unbox_i operation in a compiled nativecall body in order to get the pointer value to pass to the native function. Without a spesh method on the CPointer repr, this would interpret as, and jit into, a call to CPointer's get_int. Instead of a call, we just emit a spesh op to do the memory offset and read for us, which the JIT also likes very much. |
19:14 | ||
MoarVM/main: 05cc853ee1 | MasterDuke17++ (committed using GitHub Web editor) | 2 files Turn off vla errors and bump libuv Don't make VLAs an error any more. This was added when we didn't have working Windows CI (which doesn't support VLAs) and needed the early heads-up from Linux. We need to do this because libuv 1.50 uses VLAs in the Unix code. Bump libuv to v1.50.0 |
19:27 | ||
MoarVM/main: 8bc35a9d90 | timo++ (committed using GitHub Web editor) | src/io/timers.c Counteract drift in timers with repeat With regular repeating timers in libuv, we accumulate a small but significant amount of extra time with every tick. We only get to supply millisecond precision values for the timeout and repeat values, so we can only correct the ticks by one millisecond or more, and we only notice when the difference is above that same amount as well. |
19:46 | ||
MasterDuke | what a bumpy afternoon | 19:53 | |
lizmat | evening even over here :-) | 19:54 | |
MasterDuke | hopefully it doesn't effect your sleep | 19:57 | |
speaking of bumpy...is there any policy about adding c++ libraries? | 19:59 | ||
Geth | MoarVM/main: 7ff15b3eea | (Nick Logan)++ (committed using GitHub Web editor) | Configure.pl Enable experimental c11 atomics on MSVC MSVC requires the /experimental:c11atomics flag to work with c11 atomics. Conditionally add this flag since it would cause an unrecognized option error on older MSVCs. |
20:00 | |
lizmat | MasterDuke: ok as long as it doesn't inhibit platforms, I guess ? | ||
MasterDuke | oh, i guess mimalloc is already c++ | ||
lizmat | which lib are you thinking about ? | 20:04 | |
MasterDuke | simdutf | 20:05 | |
it doesn't currently do any normalization, but maybe we can use it's fast validators to add a fast path to our current decoding functions | 20:06 | ||
lizmat | right, looks cool | ||
Latin1 to UTF-32 transcoding could be useful as is ? with :encoding<latin1> ? | 20:07 | ||
or is that already optimized? | |||
MasterDuke | dunno if/how optimized it is. but i doubt many people are using utf-32 | 20:08 | |
Geth | MoarVM/main: fc2d31f32f | timo++ (committed using GitHub Web editor) | 3 files Debugserver loaded file notifications (#1865) add LoadedFilesRequest / FileLoadedNotification allows you to get all filenames moar already knows about, and to be notified when new filenames are encountered. Optionally, you can ask the thread that encounters a new filename suspends itself so you can set up breakpoints ASAP. You can also get a stack trace immediately in the notification. Document new parts of debug protocol, bump version in docs |
20:10 | |
MasterDuke | timo: did you see my question on github.com/MoarVM/MoarVM/pull/1713 ? | 20:20 | |
timo | oh, i did not | 20:21 | |
i can try rebasing and then have a look if it's good | |||
MasterDuke | cool, looked pretty straightforward | ||
timo | i'd love someone™ to check how best to bring generalized integer division optimizations into rakudo | 20:22 | |
MasterDuke | like libdivide does? | 20:23 | |
timo | that's right | 20:25 | |
divide by power of two is already nice and simple, but i assume there's more real-world cases where the other kinds of division crop up | 20:27 | ||
but we can of course only use the improved division after precomputing the details | |||
MasterDuke | i guess spesh could use libdivide to generate a division function if it notices a hot division with a constant divisor? | 20:28 | |
timo | yes, that is one possible spot where that can go | 20:29 | |
i'm also thinking it could be something we try to do in rakudo's static optimizer | |||
MasterDuke | huh. implement/port libdivide in/to raku or nqp? | 20:30 | |
lizmat | please don't invest any work in the static optimizer anymore... it's going to be moot in RakuAST | ||
timo | if we want to use libdivide directly, it can become a syscall inside moarvm so nqp and rakudo can use it too | ||
MasterDuke | hm. to return a callable? or to somehow get the values it uses in its generated function? | 20:32 | |
timo | without good example code that actually uses division in a "realistic" setting, it will be very difficult to balance all the possible trade-offs we could do | ||
i'd ask it to fill the details into a little array or something | |||
which algo to use, and the constant that goes along with it | |||
and then there'd be an op or syscall that divides a number using the algo in question | |||
if the algo is constant at jit-time, we can directly emit the correct ops immediately | 20:33 | ||
though with raku code, it's quite likely that much of the time, it's going to be _I division rather than _i. on the other hand, we have the special mode where 32bit numbers can directly be in an Int | |||
MasterDuke | it looks like it generates a struct with the necessary information, though it would require some interpreting | 20:35 | |
Geth | MoarVM: timo++ created pull request #1903: Make accesses to spesh arg guard atomic |
20:39 | |
timo | we can be silly and put the struct into a buf8 | 20:40 | |
MasterDuke | timo: two comments on #1903 | 20:44 | |
timo | the comment about atomically exchanging is mostly that we don't have to make sure load and store can't be "interrupted" | 20:51 | |
MasterDuke | ah | ||
timo | it looks like the discard function for spesh guards is only used when we toss a whole spesh candidate | 20:53 | |
MasterDuke | one more question | 20:55 | |
timo | same reason as the one just above it | 20:58 | |
the stuff stored at the "other end" of that pointer has to be visible to other cores first | |||
MasterDuke | ? | ||
timo | it's not important whether we replace the null pointer by a new pointer, or replace the old pointer with a new pointer | 21:08 | |
not sure i'm understanding the question correctly though | 21:11 | ||
MasterDuke | i thought the barrier on the one branch of the if/else was needed because there was both a load and a store | 21:15 | |
but since the other branch only has a store, i wasn't sure why the barrier is needed? | |||
timo | the stores that we are worried about are all the stores to the tree->nodes[i] further above | 21:16 | |
MasterDuke | ah | ||
huh, lots of fails on that pr | 21:17 | ||
looks like all in t/02-rakudo/99-misc.t and t/09-moar/01-profilers.t | 21:18 | ||
timo | is it all the fails caused by bumps? | ||
oh | |||
MasterDuke | but one success | 21:19 | |
Geth | MoarVM/atomic_accesses_to_spesh_arg_guard: e410e191fd | (Timo Paulssen)++ | 8 files Make accesses to spesh arg guard atomic On ARM and other platforms with less strict memory ordering guarantees than x86, the step that spesh does to switch the pointer around to the newly created spesh arg guard can be seen by another thread before the contents of the arg guard are seen, causing the thread to jump into uninitialised "code". Until recently, this just caused freezing or ... (10 more lines) |
21:21 | |
timo | i removed the comment in the discard function because it's probably more confusing than helpful | ||
finished the comment that was cut off in the middle | |||
MasterDuke | nice, and that'll let us see how flappy those fails are | 21:22 | |
timo | with the finished comment, is it clearer? | ||
MasterDuke | yep | 21:23 | |
looks like they're failing again | 21:30 | ||
timo | huh | ||
not ok 2 - profiler does not crash | 21:33 | ||
oh, huh. | 21:38 | ||
but it kinda does look like the profiler crashes now, yeah | 21:40 | ||
i blame having had to make all my pointers into AO_t | 21:41 | ||
i might have turned something into one dereference too many or too few | |||
hmpf, does that mean that my debian package of moarvm with those changes also b0rken >_> | 21:44 | ||
Geth | MoarVM/atomic_accesses_to_spesh_arg_guard: 2f1f74890c | (Timo Paulssen)++ | src/spesh/arg_guard.c Fix incorrect write to spesh_arg_guard pointer |
21:47 | |
timo | that should be better | ||
i'm not 100% sure if it worked or not but i clicked "re-run" on the azure ci improvements pull request | 21:54 | ||
maybe it needs more than just a click on the re-run button | 21:55 | ||
Geth | MoarVM/faster_dev_powershell_in_azure_pipelines: 23 commits pushed by (Timo Paulssen)++ review: github.com/MoarVM/MoarVM/compare/5...fc9b1d36f7 |
22:00 | |
timo | let's see if this rebase helps | ||
MasterDuke | the re-run button only works for a couple days after the pr is created/updated | 22:05 | |
timo | and after that it just says "successfully requested a re-run"? lmao | 22:06 | |
MasterDuke | you successfully requested the re-run. they choose not to honor the request | ||
afk for a while | 22:07 | ||
timo | thanks | ||
22:11
MasterDuke left
23:09
sena_kun left
23:31
coleman left
|