Mal Graty
407f3ad859
cslots: Maintain experiment while in development
2025-01-04 11:00:32 +00:00
Tom Rothamel
a794ee3b00
cslots: Merge with Ren'Py.
2024-12-28 13:06:35 -05:00
Tom Rothamel
07b9a6da78
cslots: Pickle support.
...
Also some performance optimizations.
2024-12-28 00:57:41 -05:00
Tom Rothamel
a77170508e
cslots: Add IntegerSlot
...
This is a slot that's optimized to contain an integer, storing it
without needing to create a separate object.
2024-12-27 19:10:16 -05:00
Tom Rothamel
03cdfd091d
cslots: Add the decompress method.
2024-12-27 17:06:19 -05:00
Tom Rothamel
2caf0adabb
cslots: Fix and test getsizeof.
2024-12-27 15:18:07 -05:00
Tom Rothamel
423f544dc9
cslots: Objects with the metaclass also do not particpate in cyclic gc.
2024-12-27 15:16:53 -05:00
Tom Rothamel
e207fdc435
cslots: Remove cyclic GC, replace with a ._kill() method.
...
Cyclic GC imposes a 16 byte overhead on each object. Instead of
cyclic GC, we have a ._kill() method that clears the references
from each object, and rely on Ren'Py to call it to break cycles
when it's time for the Script to be deallocated.
2024-12-27 14:45:15 -05:00
Tom Rothamel
bfbc9b8b1f
cslots: Use pymalloc.
2024-12-27 14:13:03 -05:00
Tom Rothamel
ae04573e90
cslots: Add object compression.
2024-12-27 13:22:04 -05:00
Tom Rothamel
6c2baa1474
cslots: Allow slots to contain integers.
...
For now, just allow it the IntegerSlot class will come later.
2024-12-27 11:31:05 -05:00
Tom Rothamel
ceb7dea7cc
cslots: Renamings, error handing, compressed flag.
2024-12-27 01:10:07 -05:00
Tom Rothamel
2da5f4ae6a
Support cyclic garbage collection.
2024-12-26 23:56:41 -05:00
Tom Rothamel
a535365da0
cslots: Uncompressed objects.
2024-12-26 00:21:22 -05:00
Tom Rothamel
2450dcbfa8
Remove align function.
...
It's not needed.
2024-12-26 00:21:22 -05:00
Tom Rothamel
439921baea
cslots: Initial setup.
...
Cslots - short for compressed slots, will be an attempt to reduce
AST memory consumption by only including non-default slots in
objects.
2024-12-26 00:21:22 -05:00