Sunday, July 23, 2006
STM Progress Report (6)
Done since last report:
- Support using loaded dynpmcs/dynoplibs in new interpreters
- Improve performance by not freezing simple PMCs (e.g. Integers) and by avoiding creating metadata hashes when all the metadata can be inferred otherwise.
- Fixed a waitlist-related deadlock (hopefully).
- Add support for extracting the log of the current transaction enough to run
stm_wait. This is sufficient to implement things like Haskell STM's
- Write (in PIR) a runtime library to avoid code replication and provide a place to place exception handling code when the PDD is implemented
VTABLE_clone(..., sub_pmc)do the Right Thing for copying subroutines into a new interpreter. [Specifically, the first doesn't copy segment information and the second copy-on-write shares strings and doesn't switch the namespace_stash pointer.] Worked around for subroutines stored in globals and arguments to the thread-starting function; not worked around for subroutines stored more deeply nested (at least not yet).
- Cleanup for pending merge.
- More tests of runtime library, including tests for TODO features (e.g. exceptions).
- Good examples of things that make good benchmarks (possible inspiration includes this).
- Performance issues?
- Ponder solutions to the cloning issue and (related) ways to avoid unneeded copying.