Created
September 8, 2011 03:46
-
-
Save kstephens/1202555 to your computer and use it in GitHub Desktop.
GC Plan
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
== Complete basic mem_sys API == | |
* Fix finalizers. | |
** Abstract Ruby finalizer API and their state mgmt from mem_sys API. | |
** Implement dummy finalizers in malloc allocator. | |
== Create basic performance test tools/framework == | |
* Time | |
* Space | |
* Pathological cases | |
* Fork/COW cases | |
* Native .vs. green threads? | |
== Support sized allocations == | |
* Provide ruby_value_type and size-specific version of rb_newobj(): rb_newobj_(enum ruby_value_type type, size_t size). | |
* Use rb_newobj_(type, size) in MRI *.c files. | |
* Reimplement rb_newobj_core() as rb_newobj_core_(type, size). | |
== Interface SMAL to mem_sys == | |
* Create mark/free funcs for each ruby_value_type. | |
* Implement SMAL rb_newobj_smal_(type, size). | |
* Connect smal_finalizers to mem_sys. | |
== Floats and other boxed Numerics are highly likely to be transient and unchanging == | |
* Add mem_sys api for floats. | |
* Use mem_sys api method for rb_float_new(double d). | |
* Connect SMAL to rb_float_new(double d). | |
* Consider Float instance caching? Do we need GC phase callbacks? | |
== Add GC phase callbacks to core allocator? == | |
* Add smal_weak_reference interface to mem_sys API. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment