01:48 ilbot3 joined 04:47 ggoebel115 joined
dalek arVM/serialization_int: 6e9eef3 | (Jimmy Zhuo)++ | src/6model/ (5 files):
Change the remaining serialization of int to varint.

This reduces rakudo core setting size about 11kb.
07:31
arVM/serialization_int: b996b7b | (Jimmy Zhuo)++ | src/6model/ (15 files):
Rename MVM_serialization_read_varint back to MVM_serialization_read_int

the old MVM_serialization_read_int function will be removed after next nqp bootstrap.
timotimo ELEVEN KILOBYTES 07:32
that's really not a small amount
i've got a few ideas remaining for p6opaque's reprdata, btw 07:33
like, there's a few fields in there that are sometimes just zeroes from start to finish
07:34 domidumont joined
timotimo i wanted to investigate a bit more. there's potentially a win in handling the special case of "there's just a single value in there", or "we can skip the first n values, because they're all zeroes" 07:34
07:34 domidumont joined
dalek arVM/serialization_int: b271075 | (Jimmy Zhuo)++ | src/6model/ (15 files):
Rename MVM_serialization_write_varint back to MVM_serialization_write_int
07:36
07:40 domidumont joined
dalek arVM/serialization_int: 5ef8a54 | (Jimmy Zhuo)++ | src/6model/serialization.c:
removed unused code
07:42
JimmyZ timotimo: looks a good idea, i did see lots of zero in the moarvm code, though most of it is about opcode itself. ;) 07:47
*looks like
08:31 domidumont joined 09:00 domidumont joined 09:34 Ven joined 09:37 Ven joined
nine jnthn: I think, I got the source of the num_temproots underflow: src/core/nativecall_dyncall.c callback_handler before the MVM_gc_root_temp_mark tc->num_temproots is 5, after MVM_gc_root_temp_mark_reset it is 3 09:52
Narrowed it down to the call to MVM_interp_run 09:54
JimmyZ any +1 to merge serialization_int branch? 10:07
nine Btw. in one of Inline::Perl5's tests tc->num_temproots goes up to 709 10:15
lizmat JimmyZ: sorry, but I don't think I'm qualified to give a +1 or -1 or whatever :-(
JimmyZ nine: I guess some where MVMROOT { MVM_interp_run } never return and in MVM_interp_run it calls another MVMROOT { MVM_interp_run } and never return again and continue call another one :P 10:21
nine It does not fail always but when it does, it's missing 2 temproots 10:36
I think it's exceptions. 10:44
The MVM_gc_root_temp_pop_all(tc) call probably screws up num_temproots when (control?) exceptions are thrown inside the callback. 10:45
11:04 Ven joined 12:14 domidumont joined 12:15 domidumont joined 14:02 Ven joined 14:34 Ven joined 15:17 zakharyas joined
nine Aaah, it's so obvious! 15:32
Created a pull request with the fix :) 15:42
jnthn nine: Left a note on the PR; it's not quite complete. Don't have time to address that right now, but will later on today if you don't beat me to it, and merge :) 15:57
nine Note: I don't have a commit bit 15:59
Oh, I should have thought about nativecall_libffi.c, especially since it was the first file I looked at and was confused because it was not even compiled ;) 16:00
Pushed another commit with the ported fix 16:03
dalek arVM: fc63808 | niner++ | src/core/nativecall_dyncall.c:
Fix temp root stack underflow with exceptions in NC callbacks

MVM_gc_root_temp_mark marks the temporary root stack at its current height as the limit for removing all roots. At this point all MVMROOTs have to be in place. Otherwise a MVM_gc_root_temp_pop_all called by MVM_exception_throw_adhoc_free_va will remove not only the temp roots installed by the nested run loop, but also frame roots leading to a possible temp root underflow later on.
17:24
arVM: 686f994 | niner++ | src/core/nativecall_libffi.c:
Port the fix from commit fc63808c9d to nativecall_libffi.c

Change the remaining serialization of int to varint.
This reduces rakudo core setting size about 11kb.
jnthn nine: Thanks! :) In the event you have a golfed test case, feel free to add to Rakudo's nativecall callback tests... 17:25
JimmyZ jnthn: any objectiont to my pr? 17:39
jnthn JimmyZ: Didn't review it yet, but in principle it's a good idea :) 18:15
arVM: b996b7b | (Jimmy Zhuo)++ | src/6model/ (15 files):
Rename MVM_serialization_read_varint back to MVM_serialization_read_int

the old MVM_serialization_read_int function will be removed after next nqp bootstrap.
MoarVM: b271075 | (Jimmy Zhuo)++ | src/6model/ (15 files):
MoarVM: Rename MVM_serialization_write_varint back to MVM_serialization_write_int
19:13 Ven joined 22:43 Ven joined