00:58
colomon joined
01:53
TimToady joined
05:54
FROGGS joined
|
|||
arnsholt | timotimo: I suspect the static analyzer doesn't cope very well with the expression used to compute alignof. It's a bit hairy | 06:21 | |
And yeah, it doesn't cope terribly well with macros, in general | |||
06:22
JimmyZ_ joined
06:35
JimmyZ_ joined
07:02
Ven joined
07:29
colomon joined
07:33
JimmyZ_ joined
07:40
zakharyas joined,
Ven joined
|
|||
jnthn | moarning o/ | 08:35 | |
timotimo | \o | 08:40 | |
FROGGS | o/ | 08:45 | |
jnthn | We've quite a lot of branches hanging around on GitHub; if folks could take a moment to clear up their unused ones, it'd be nice :) | 08:47 | |
FROGGS | jnthn: I already cleaned up my branches in the last weeks/days | 08:49 | |
and I tend to delete my branches right after merging them | |||
timotimo | ah, a git pull --prune makes my local branch -a output so much smaller | 08:50 | |
the "inline-exception-fix" branch seems to stick around even though it has been cherry-picked or rebased onto master already | 08:51 | ||
JimmyZ_ don't have unused one | |||
timotimo | inlining-exception-fix* | 08:52 | |
jnthn | timotimo: Yes, I already pruned | ||
arnsholt: Patches reviewed and accepted; rebasing onto master and will push :) | 08:53 | ||
timotimo | jnthn: anything we'll do with frame-gc-opts? | 08:54 | |
jnthn | Maybe | ||
Leave that one for now | |||
timotimo | i hoped so :) | ||
jnthn | I'm mostly after "clean up obvious ones you know are dead that are yours" :) | ||
timotimo | mhm | 08:55 | |
maybe i ought to look at merge_facts_at_phi again | |||
dalek | arVM: 7731ead | arnsholt++ | src/core/args.c: Avoid memcpy() into a NULL pointer. |
||
arVM: f08aa2b | arnsholt++ | src/strings/nfg.c: Set a (previously unused) variable correctly, and use it. |
|||
arVM: 3229055 | arnsholt++ | src/core/exceptions.c: Initialize a variable. Previously, if `search` was NULL, f would contain garbage. |
|||
arVM: fe3657c | arnsholt++ | src/core/nativecall.c: Initialize a variable. If `base64_decode()` were to be sent a zero-length string (unlikely, admittedly), the length computation at the end of the function would read garbage data from the `n` array. |
|||
FROGGS | timotimo: or look into udp :o) | ||
FROGGS | (you'll have a user/tester) | ||
timotimo | right | 08:56 | |
jnthn: native-ref seems to be merged, but lingers on github | 08:59 | ||
08:59
kjs_ joined
|
|||
dalek | arVM: 73ef687 | cygx++ | src/core/exceptions. (2 files): provide MVM_exception_throw_adhoc variants that take char pointers to free |
09:05 | |
arVM: b777fee | jnthn++ | src/core/exceptions. (2 files): Merge pull request #219 from cygx/cleanup-adhoc Add mechanism to avoid leaking of C strings in MVM_exception_throw_adhoc |
|||
arnsholt | jnthn: Spiffy! I'll keep digging in the reports when I have some time to spare | 09:06 | |
jnthn | timotimo: I got rid of native-ref just some moments ago | 09:07 | |
Having merged #219, I opened github.com/MoarVM/MoarVM/issues/223 | |||
Which is some LHF for anybody who fancies it | 09:08 | ||
dalek | arVM: 989a8fa | jnthn++ | src/core/frame.c: Avoid an (unlikely) NULL-pointer dereference. Fixes #220. |
09:15 | |
arnsholt | timotimo: I've submitted a clang-analyzer bug for the ALIGNOF() divide by zero false positive (in case you were thinking of doing it too) | 09:52 | |
timotimo | ah, good :) | 09:53 | |
11:33
Ven joined
|
|||
jnthn | Well, that was the dumbest thing I've done this week... | 13:27 | |
ProTip: if you're not meant to free the memory until a safe point, you can't use the memory to chain a linked list through to remember it until said safe point... :P | 13:28 | ||
dalek | arVM: 986a8e3 | jnthn++ | src/ (4 files): Implement "free at next safepoint" mechanism. The fixed size allocator provides a mechanism to free memory, with the caveat that it is only safe to do so at the next "safe point". A safe point in MoarVM is currently defined to be a point at which all threads agree they could now GC, meaning they're certainly not in the middle of reading a block of memory that another thread is going to make unreachable to new readers from this point forward. |
14:13 | |
arVM: 7131eab | jnthn++ | src/core/fixedsizealloc.c: Comment placement tweak. |
14:17 | ||
nwc10 | jnthn: ASAN is still your friend. | 14:43 | |
but hates everyone if I export MVM_SPESH_NODELAY=1 | |||
JimmyZ_ | re 986a8e, looks like line 198 and 230 is the same code? | 14:44 | |
jnthn | JimmyZ_: No | 14:54 | |
198 adds to overflows, 230 to a particular bin | |||
JimmyZ_ | ah, I didn't see the last one in my phone | 14:55 | |
jnthn | You could potentially factor it out a bit further | 14:56 | |
But I can just as easily imagine a future where the two diverge further as where they don't. | 14:57 | ||
And premature re-use is another of those roots of all evil :) | |||
15:05
njmurphy joined
15:17
Ven_ joined
|
|||
jnthn finally digs himself into the long-needed arrays work | 15:21 | ||
(Making MVMArray memory safe so you can't SEGV the VM even if you mis-use it from many threads, fixing various encapsulation breakage, sorting out sub-byte arrays, then adding a REPR for fixed size/multi-dimensional arrays...) | 15:22 | ||
JimmyZ_ | jnthn++ | ||
FROGGS | jnthn: that sounds like fun after all :o) | 15:24 | |
JimmyZ_ | someone wants to do CArray <=> MVMAarray without copy | 15:26 | |
FROGGS | sure, but how shall that work? | 15:27 | |
jnthn | Those are different types, you'll always need a copy there. | ||
We can make the copy cheap (memcpy) | |||
But maybe more deeply we should work out why people want to do said copy | |||
Well, said non-copy... :) | 15:28 | ||
FROGGS | though it would be nice to return an mvmarray from nativecall if a) the array has a certain size and b) the memcpy is done in nativecall code | ||
15:31
FROGGS[mobile] joined
|
|||
JimmyZ_ | well, at least they dont want to copy it in perl6 by loops | 15:31 | |
FROGGS | jnthn: I think they want to easily pun a CArray + length into an Array I think | ||
jnthn | *nod* | ||
FROGGS | JimmyZ: exactly | ||
jnthn | Yeah, I've been pondering some memcpy-ish op | ||
JimmyZ_ | that would be nice. | 15:32 | |
jnthn: the rt you looked the last one is about copy by loops 😊 | 15:36 | ||
japhb | jnthn: While you're thinking about such things, being able to use a block of native mem as directly writeable array memory would be *really* useful. Some APIs want you to request a big buffer space from the OS (or from the API), scribble over it, "hand off" the buffer to the API with no copies, and then later get control of the buffer back to read back results or to do more scribbling for another cycle. | 15:42 | |
One of the key insights of PDL was that once you've separated a matrix into a complex header and a block of RAM, you can interface to native APIs really nicely by just sharing pointer&size with the API. | 15:43 | ||
(Oh, I should note that for the APIs I mentioned earlier, the RAM in question may be on e.g. a GPU card, not system RAM.) | 15:46 | ||
15:49
FROGGS[mobile] joined
|
|||
JimmyZ_ | ...oO(a VM run on GPU) | 15:58 | |
FROGGS[mobile] | I want to dig into libffi :S | 16:06 | |
nebuchadnezzar | hi | 16:15 | |
jnthn | o/ nebuchadnezzar | ||
japhb: Complex header and block of RAM is very much how we've structured things so far | 16:23 | ||
dinner & | |||
17:03
FROGGS joined
|
|||
japhb | jnthn: \o/ | 17:55 | |
18:04
nebuchadnezzar joined
|
|||
dalek | arVM/openpipe3: 12245d5 | FROGGS++ | / (8 files): remove openpipe (this op is no more) |
19:49 | |
arVM: 46e941c | jnthn++ | lib/MAST/Nodes.nqp: Fix precedence fail, so the code is valid Perl 6. Well, valid NQP, in fact. An NQP bug meant we got away with this up until now. |
20:24 | ||
21:11
dalek joined
21:39
vendethiel joined
|
|||
timotimo | how come we have a "void *former_interactive" in our MVMIOOps? because nobody wanted to update "all the" instances where we fill that struct with stuff? | 22:19 | |
because AFAIK we don't have any ABI compatibility constraints | |||
FROGGS | timotimo: it is gone in openpipe3 | 22:28 | |
& | |||
timotimo | OK | 22:30 | |
three branches with different views of what MVMIOOps is supposed to look like %) |