01:02 lizmat left 03:10 apogee_ntv left 03:12 apogee_ntv joined 07:13 lizmat_ left 07:14 lizmat joined 10:13 librasteve_ joined 12:22 librasteve_ left
Geth DBIish: gdonald++ created pull request #247:
Replace deprecated BPointer with pointer-to in DBDish::mysql
21:42
NativeHelpers-Blob/ugexe/gc-safe-body-access: a46bdf8764 | (Nick Logan)++ | lib/MoarVM/Guts/REPRs.pm6
Make Offset detection and BODY_OF safe against GC moving the object

Previously the body offset was computed by scanning the memory at a Pointer's .WHERE for its known value, and BODY_OF returned a struct view over the object's current address. The GC can move an object at any allocation, so both read stale memory whenever a collection landed between taking .WHERE and reading through it. Under the RakuAST frontend ... (10 more lines)
22:39
NativeHelpers-Blob/ugexe/gc-safe-body-access: e5be13cac1 | (Nick Logan)++ | lib/MoarVM/Guts/REPRs.rakumod
Make Offset detection and BODY_OF safe against GC moving the object

Previously the body offset was computed by scanning the memory at a Pointer's .WHERE for its known value, and BODY_OF returned a struct view over the object's current address. The GC can move an object at any allocation, so both read stale memory whenever a collection landed between taking .WHERE and reading through it. Under the RakuAST frontend ... (10 more lines)
22:50
23:01 apogee_ntv left 23:02 apogee_ntv joined
Geth NativeHelpers-Blob/ugexe/gc-safe-body-access: 7150400267 | (Nick Logan)++ | lib/MoarVM/Guts/REPRs.rakumod
Snapshot REPR bodies into plain objects so BODY_OF does not leak

Previously BODY_OF copied the body into a fresh CStruct with type.new and memcpy. A .new on a CStruct type mallocs a native buffer that is never freed when the object is collected, so every BODY_OF call leaked one body-sized buffer. carray-from-blob, pointer-to and the CStruct accessors all call BODY_OF, so a loop over any of them grew without bound. ... (7 more lines)
23:43