Ravenbrook / Projects / Memory Pool System

Memory Pool System Project


Task branches

Nick Levine, Ravenbrook Limited, 2001-08-17

Contents

  1. Introduction
  2. Active branches
  3. Branches that are ready for review
  4. Dormant branches
  5. Historical branches
  1. References
  2. Document history
  3. Copyright and licence

1. Introduction

This document lists the task branches for the Memory Pool System project. Task branches are used to carry out a specific body of work. See [RB 2000-09-05] for the decision on the location and naming of these branches for the P4DTI project, which has been followed here.)

This document will be modified when task branches are created or change their status.

Readership of this document is anyone interested in the project.

This document is not confidential. However, some of the branches referenced from this document are Ravenbrook company confidential and these cannot be accessed from outside the Ravenbrook domain.

2. Active branches

The following table lists the branches which are currently active (under development).

Branch Changes Purpose Diffs
2014-02-28/white-cuckoo Changes Experimenting with a cuckoo hash table of white segments. (job003796) Diffs
2014-03-05/instrument-event Changes Attempting to make events instrumentable. Diffs
2014-04-14/remember-time-2 Changes Second attempt at remembered set improvements (job003764) Diffs
2014-04-15/shared Changes Building a shared library (job003532) Diffs
2014-07-25/condemn-gens Changes Only condemn gens over capacity. (job003783) Diffs
2014-08-18/non-incremental Changes Prototype performance changes to support Clasp. Diffs
2015-09-27/logging Changes Interface to buffer logging (job003895). Diffs
2016-02-14/clang-cl Changes Experimental clang-cl support to support future Open Dylan. Diffs
2016-03-08/automake Changes Migrate developer build system to Automake (job003977). Diffs
2016-03-08/keyword-introspection Changes Adding keyword introspection to make it easier to pass around MPS parameters (job003978). Diffs
2016-03-13/tradeoff-3 Changes Trade-off between responsiveness and throughput (job003539). Diffs
2016-03-15/sunrise Changes Rearchitect to abstract whiteness (job003796) and remove tracts (job003798) and pages. Diffs
2016-03-22/remember-time-3 Changes Extending reference sets to include time intervals to improve barrier accuracy and reduce scanning. Diffs
2016-03-31/tract-pool-elim Changes Eliminating the tract pool pointer (work towards job003798). Diffs
2016-04-14/no-condemn-suspend Changes Avoid suspending the mutator between condemn and flip (job004002). Diffs
2016-05-03/clock Changes High-performance clock (job003969, job003984, job003989). Diffs
2018-08-08/refset-struct Changes Converting the RefSet value type into a structure type, so that we can store more information about references and improve the remembered set. Diffs
2018-08-17/exp-strategy Changes Implementing exponential generation strategy to fix job004105. Diffs
2018-08-18/exp-strategy-2 Changes Exponential generation strategy to fix job004105. Diffs
2019-06-04/regscan Changes Reliably scan the registers (job004158). Diffs
2020-01-15/strategy Changes New strategy to replace temporary code Diffs
2023-03-21/merge-custom-cet-main Changes Merge Configura extensions from custom/cet/main to master at version 1.115 (changelevel 191208) in order to develop an mps-preview patch for GitHub current master. Diffs

3. Branches that are ready for review

These branches are listed in rough priority order (most important first).

Branch Changes Purpose Diffs Reviews
2018-07-29/page-sparering-elim Changes Replace the spare page ring with a spare memory land (work towards job003798). Details. Diffs RB
2016-04-04/unprotect-white Changes Avoid protection cost for maintaining remembered set on condemned segments. Details. Diffs GDR

4. Dormant branches

The following table lists task branches which are not currently active.

Branch Changes Purpose Status
2001-09-24/MMconfigura-no-dongle Changes Removing dongle dependency for release to Configura. Merged into the master sources in change 28248.
2001-09-24/freebsd-port Changes Port to FreeBSD. Merged into the master sources in change 23681.
2001-11-23/MMconfigura-in-arena Changes Configura request for mps_arena_has_addr(); Port to FreeBSD. Merged into the master sources in change 24163.
2001-12-17/MMconfigura-shield-fix Changes Fix for job000441. Merged into the master sources in change 25379.
2002-02-15/MMconfigura-awl Changes Fix for job000462. Merged into the master sources in changes 26536 and 28247.
2002-04-11/MMconfigura-awl-auto Changes Fix for job000502. Merged into the master sources in changes 28076 and 28082.
2002-04-15/MMconfigura-ams-auto Changes Fix for job000506. Merged into the master sources in change 29147.
2002-05-14/MMconfigura-incremental-step Changes Fix for job000531. Merged into the master sources in changes 29464 and 29465.
2002-05-22/open-source-prep Changes Preparing the master sources for open source release. Merged into the master sources in change 30256.
2002-12-30/opportunism Changes Configura opportunistic GC improvements (job000649). Merged into the master sources in change 39673.
2003-02-17/gcgenmsg Changes Per generation GC message to say what each one is doing. Fix for job000666. Merged into the master sources in change 161204.
2003-11-04/noprotect Changes Implementing mps_arena_expose (job000813). Merged into the master sources in change 62987.
2004-12-15/dll Changes Making the MPS into a Windows DLL (job001096). Merged into the master sources in change 144824.
2005-02-22/sc-integration Changes Integrating the MPS with the SC scheme compiler. Abandoned.
2005-03-01/sspp Changes Implementing stack scanner for xcppgc (job001146). Merged into the master sources in change 147226.
2005-03-02/osx-faster Changes Implementing protection for xcppgc (job001147). Merged into the master sources in change 147642.
2005-03-10/splintify Changes Experimenting with splint static code analyzer. Abandoned.
2005-09-29/split-asserts Changes Split up combined assertions (job001159). Merged into the master sources in change 155171.
2006-05-11/autotools Changes Experimenting with GNU autotools configuration and build system. Abandoned.
2006-05-14/jam-build Changes Experimenting with Jam/MR-based configuration and build system. Abandoned.
2006-05-31/feedback Changes More feedback on what the MPS is doing and has done. Fix for job001150. Abandoned. Contains unfinished example/hw-gc (example code for formats and GC).
2006-12-15/unfixed-summary Changes MPS development branch to investigate job001548 and generally improve AVERs etc to ensure accuracy of summaries. Merged into the master sources in change 162150.
2007-02-22/cmucl Changes Integrating the MPS with CMUCL. Abandoned.
2007-04-11/lua Changes Integrating the MPS with Lua. Abandoned.
2007-04-16/lua-gc Changes Integrating the MPS with Lua. Abandoned.
2007-04-18/diag Changes Diagnostic output. Merged into the master sources in change 162839.
2007-06-26/style Changes Improving C style. Merged into the master sources in change 162873.
2007-07-02/band Changes Trace bands to improve delivery of finalization messages (job001658). Merged into the master sources in change 162787.
2007-07-12/ramprel Changes Using a relational macro to improve ramping diagnostics. Merged into the master sources in change 162941.
2007-07-19/gcdiag Changes Improved garbage collection diagnostics. Merged into the master sources in change 163046.
2007-08-07/diagtag Changes Tagged diagnostics. Merged into the master sources in changes 163124 and 163127.
2007-09-18/findref Changes New function mps_arena_find_heap_ref(), to locate objects that contain a reference to an object of interest. Abandoned.
2007-09-27/awldiag Changes MPS development branch: Investigating poolawl.c, improving diagnostic output. Abandoned.
2007-12-19/vmarenagrow Changes Better VM arena growth, feedback. Gangsets. Abandoned. Gangset (and other) work to be completed and merged.
2008-03-11/auto_header Changes Fix AMC pool + auto_header format nailboard leak. Fix pad retention. Merged into the master sources in changes 164508 and 164885.
2008-08-14/vc9 Changes New clone platform for VC9; fix omitted mps_arena_vm_growth DLL export; provide mps-fns.def. Merged into the master sources in several changes (latest @166536).
2008-10-30/timing Changes Messages, notably mps-message_clock() (job001969); MessageType now fn of MessageClass; correct _gc_start & _gc message lifecycle (job001989). Synchronous collection alerts (job001968). Better randomize() and rnd() for internal tests. Some investigation of ambiguous interior pointers. Merged into the master sources in changes 166590, 166675, 166815, 167392, and 167402.
2009-02-17/movalot Changes Frequent extra collections for debugging. Abandoned.
2009-03-31/padding Changes Padding of large objects (job002205). Merged into the master sources in changes 169907, 169904, 169900, and 169899.
2009-05-18/vc9exit Changes Supporting Microsoft Visual C/C++ 9. Abandoned.
2010-03-11/vmem Changes MPS development branch for work on vmem. Abandoned.
2010-11-06/transform Changes MPS development branch for mps_arena_transfrom_objects et al. Re-branched into 2012-07-23/cet-transform.
2012-03-26/build-w3i6 Changes Build with Microsoft C on 64-bit Windows. Mostly API updates, since the MPS was already prepared for 64-bit since the DEC Alpha. Merged into the master sources in change 178525.
2012-03-27/longest Changes Removing test program assumption that "unsigned long" is the longest integer type, unfortunately violated by Microsoft C on x86_64. Merged into the master sources in changes 178072, 178078, and 178096.
2012-05-21/build-xci6ll Changes Build with Clang on 64-bit Mac OS X. Essentially a re-port of the MPS to modern Mac OS X. Easy. Merged into the master sources in change 178560.
2012-07-23/cet-transform Changes Refactoring and productizing of Transforms for long term support for Configura, and on 64-bit platforms. Reviewed by NB (1), (2). General improvements merged into the master sources in change 179309. Transforms merged to CET custom mainline in change 179472.
2012-07-26/linux-catchup Changes Bring up to date with Linux. Essentially this is a re-port of the MPS to Linux, developing against Ubuntu 11 and 12 as references. Merged into the master sources in changes 178816 and 178913.
2012-08-15/variety-reform Changes Reducing the number of varieties back to the original design of two (ish) with a hot variety that is fast with some checking and a cool variety that runs in reasonable time with plenty of checking. Merged into the master sources in changes 179279 and 179288.
2012-08-21/diagnostic-telemetry Changes Reforming the way telemetry events are defined, generated, logged, and output, in order to make them easier to use for both developers and users. Merged into the master sources in change 179289.
2012-09-08/doxygen Changes Evaluating doxygen for maintaining the MPS reference manual and possibly other documentation. Abandoned.
2012-09-10/scheme-example Changes Integrating Richard Brooksby's simple scheme interpreter with the MPS to provide a better example of use than the previous "Hello world" program. Merged into the master sources in changes 179429 and 179430.
2012-09-13/compat-c++ Changes Investigating whether the MPS can be build as C++. Abandoned.
2012-09-26/single-unit Changes Optimizing the compilation of the MPS as a single translation unit. Abandoned.
2012-10-09/user-guide Changes Writing a user guide and improving the existing documentation. Merged into the master sources in change 180943.
2012-10-10/measurement Changes Working on better MPS measurement. Merged into the master sources in change 180943.
2013-05-01/keyword-arguments Changes Replacing varargs interfaces with keyword interfaces. Details. Reviewed by DL, GDR, NB. Merged into the master sources in change 181994 and change 182562.
2013-05-17/emergency Changes Fixing the MVT pool class (job003486) by moving the “emergency” allocation strategy out of the CBS module into its own module. Details. Reviewed by RB (1), (2), DL. Merged into the master sources in change 182614 and change 183935.
2013-05-21/final-destroy Changes Fixing job003341 by making it possible to destroy a pool containing objects registered for finalization. Merged into the master sources in change 182578.
2013-06-05/diag Changes Replacing DIAG system with EVENTs. Merged into the master sources in change 182575.
2013-06-08/benchmarks Changes Adapt various benchmarks used to measure other memory allocators and apply them to the MPS in order to get a comparison and set targets for improvement. Merged into the master sources in change 184106.
2013-06-13/cet-performance Changes Improve analytical tools for performance and strategy in large (> 1 GiB) heaps (job003539). Merged into 2013-07-02/cet-ap-key in change 182889.
2013-06-18/macosx-threads Changes Supporting threads on OS X (job001621). Reviewed by GDR (1), (2). Merged into the master sources in change 183002.
2013-06-21/raspberry-pi Changes Porting the MPS to the Raspberry Pi. Abandoned pending requirement for support.
2013-07-02/cet-ap-key Changes Adding a key to allocation point creation for location-dependent objects, to avoid bad strategy feedback behaviour (job003536). Merged to CET custom mainline in change 183116.
2013-08-21/lii6ll Changes New supported platform lii6ll (job003596). Details. Reviewed by RB. Merged into the master sources in change 183503.
2013-10-21/cet-addr-to-obj Changes Adding an addr to obj function mapping interior pointers to objects to aid stack unwinding (job003589). Details. Reviewed by GDR (1), (2), (3), (4), RB. Merged to CET custom mainline in change 183907.
2013-11-04/cet-i6-stack-probe Changes Adding a stack probe for i6 to avoid a stack overflow exception in an inconsistent state. (job003640). Reviewed by GDR. Merged to CET custom mainline in change 183921.
2014-01-15/nailboard Changes New nailboard implementation to support ambiguous interior pointers (job003359). Reviewed by RB, DL. Merged into the master sources in change 185285).
2014-01-17/cbs-tract-alloc Changes Tract allocation using CBS (job003554). Reviewed by DL, GDR. Merged into the master sources in change 184783.
2014-01-22/chunk-rtree Changes Replace the arena chunk ring with a binary splay tree (job003554). Abandoned: superseded by 2014-02-22/splay-tune and 2014-05-17/chunk-tree.
2014-01-29/mps-chain-zones Changes Clean up the way chains allocate in zones (job003670). Reviewed by DL. Merged into the master sources in change 184342.
2014-01-25/spare-ring Changes Improve scalability (job003654) and hysteresis (job003674) in VM arena. Details. Reviewed by GDR, DL (1), (2). Merged into the master sources in change 184359.
2014-02-19/remember-time Changes Remember time with scanned segments for improved scalability (job003654). Merged into 2014-04-14/remember-time-2 in change 185605.
2014-02-22/splay-tune Changes Improving the splay tree implementation. Reviewed by DL, GDR (1), (2). Merged into the master sources in change 184745.
2014-02-23/mvff-tune Changes Improving the MVFF pool so that it is good enough to replace the old MV pool. Merged into 2014-04-15/mvffnoseg in change 186079.
2014-02-26/args-done Changes Obsoleting MPS_ARGS_DONE (job003677). Details. Reviewed by RB, DL. Merged into the master sources in change 184554.
2014-03-03/cet-perf-test Changes Performance testing with CET. Abandoned: was a test branch only.
2014-03-21/chunk-tree Changes Storing chunks in a tree rather than a ring to improve lookup scalability (job003554). Abandoned: superseded by 2014-05-17/chunk-tree.
2014-03-21/pellesc Changes Supporting Pelles C (job003709). Details. Reviewed by DL, RB. Merged into the master sources in change 185075.
2014-03-25/ansi Changes Adding ANSI platform configuration (job003716). Details. Reviewed by DL, NB. Merged into the master sources in change 186045.
2014-03-25/emscripten Changes Experimenting with emscripten as a target platform Abandoned pending requirement for support.
2014-03-30/addrset Changes Encapsulating set-of-addresses pattern (job003684). Details. Reviewed by DL, RB (1), (2), NB. Merged into the master sources in change 186350.
2014-04-08/align Changes Alignment reform (job003748). Details. Reviewed by DL, RB. Merged into the master sources in change 186481.
2014-04-09/coverity Changes Coverity scan (NOT FOR MERGE). Abandoned: nothing significant found.
2014-04-15/mvffnoseg Changes Speeding up MVFF by removing segments (job003509) and adding hysteresis. Details. Reviewed by DL, RB, NB. Merged into the master sources in change 186536.
2014-04-16/segs Changes Remove segment splitting and merging (job003766). Details. Abandoned: we have a use case for segment splitting.
2014-04-17/describe Changes Describe indentation (job003767). Details. Reviewed by DL, RB. Merged into the master sources in change 186528.
2014-04-21/cpp Changes Compilation with C++ (job003770) Abandoned.
2014-04-22/condemn Changes Ensure segments get condemned (job003771). Reviewed by NB. Merged into the master sources in change 185812.
2014-04-23/awl Changes Ensuring that AWL allocations provoke collections (job003772). Details. Reviewed by RB (1), DL, RB (2). Merged into the master sources in change 186409.
2014-04-28/cet-catchup-tryout Changes Try out a merge of master into cet/main for testing. Abandoned: was a test branch.
2014-04-30/poolgen Changes Pool generation data structure simplification (job003776). Details. Reviewed by DL, NB. Merged into the master sources in change 186190.
2014-05-15/size Changes Pool size methods (job003787). Details. Reviewed by RB, DL. Merged into the master sources in change 186540.
2014-05-17/chunk-tree Changes Replacing the chunk ring with a tree (job003554). Details. Reviewed by DL, RB (1), (2). Merged into the master sources in change 186564.
2014-05-28/align Changes Make the arena alignment configurable (job003823). Details. Reviewed by DL, RB. Merged into the master sources in change 186672.
2014-06-10/amc-extend-by Changes Add control for AMC extension size (job003824). Details. Reviewed by GDR, RB. Merged into the master sources in change 186584.
2014-06-11/grain Changes Renaming “arena alignment” as “arena grain size” (job003833). Details. Reviewed by DL, RB. Merged into the master sources in change 186573.
2014-06-13/control Changes Speeding up the control pool (job003701 and job003812) Abandoned: superseded by 2016-03-01/mvff-control.
2014-06-14/vm Changes Storing the VM structure in the vmChunk. Details. Reviewed by RB and DL. Merged into the master sources in change 186678.
2014-06-19/cet-merge Changes Merging master sources and custom/cet/main Merged into custom/cet/main in change 186861.
2014-09-29/reserved Changes Avoiding iteration over the chunks (job003814) and fixing accounting for the client arena (job001887). Details. Reviewed by RB (1), (2). Merged into the master sources in change 188090.
2014-10-01/finalize Changes Preventing unfinalizable objects being registered for finalization (job003865) and fixing address introspection (job003866). Details. Reviewed by RB. Merged into the master sources in change 188932.
2014-10-02/mvtnoseg Changes Removing segments from MVT (job003838). Abandoned.
2014-10-11/snc Changes SNC fixes: timely death (job003883), size accounting (job003880), test cases (job003879). Details. Reviewed by NB, RB, NB. Merged into the master sources in change 191102.
2014-10-13/format Changes Asserting if you destroy a format that's still in use by a pool (job003889). Details. Reviewed by RB. Merged into the master sources in change 190097.
2014-10-25/thread Changes Handling dead threads (job003348). Details. Reviewed by RB. Merged into the master sources in change 188923.
2014-10-26/sc Changes Stack context at ArenaEnter (job003525). Details. RB (1), (2), (3), GDR (1), (2), (3), (4), (5). Merged into the master sources in change 194595.
2014-11-07/policy Changes Improving allocation policy in the presence of a commit limit (job003898). Abandoned.
2015-08-06/config Changes Arena configuration improvement (job003750). Details. Reviewed by NB, RB. Merged into the master sources in change 189148.
2015-08-10/arena-create Changes Fix unwinding of failed arena create (job003922); fix early detection of too-small arena creation (job003923). Details. Reviewed by NB (1), (2). Merged into the master sources in change 188144.
2015-08-11/compact Changes Testing that chunks are removed from the arena (job003925). Details. Reviewed by RB, NB. Merged into the master sources in change 191113.
2015-08-11/policy Changes Collecting policy decisions (job003926). Details. Reviewed by NB, NB, RB. Merged into the master sources in change 189330.
2015-08-25/tradeoff Changes Miscellaneous policy fixes (job003933, job003934, job003935, job003936, job003937, job003938). Details. RB (1), (2). Merged into the master sources in change 190039.
2015-09-04/stack Changes Supporting tagged references on the stack (job003668). Details. Reviewed by NB (1), GDR (1), RB (1), (2), GDR (2), NB (2), GDR (3). Merged into the master sources in change 189541.
2015-09-07/tradeoff-2 Changes Trade-off between responsiveness and throughput (job003539). Abandoned: superseded by 2016-03-13/tradeoff-3.
2016-02-26/job003898 Changes Improving allocation policy in the presence of a commit limit (job003898). Reviewed by GDR. Merged into the master sources in change 189397.
2016-03-01/closure-size Changes Removing the mostly unused size component of the closure passing convention. Details. Reviewed by NB. Merged into the master sources in change 189880.
2016-03-01/mvff-control Changes Replace MV with MVFF as the arena control pool, as a step in eliminating the tract utility pointer (job003798). Details (1), (2). Reviewed by GDR (1), (2), (3). Merged into the master sources in change 194442.
2016-03-12/pause Changes Pause control (job003539). Details. Reviewed by RB. Merged into the master sources in change 190053.
2016-03-04/spare-fraction Changes Expressing the arena spare commit limit as a fraction, not an absolute size (job003674). Details. Reviewed by GDR. Merged into the master sources in change 194962.
2016-03-13/without-reservation Changes Remove the reservoir pool (job003985). Reviewed by DL. Merged into the master sources in change 190106.
2016-03-11/shield-coalesce Changes Experimental branch for coalescing protects in shield Reviewed by GDR, NB, NB (2). Merged into the master sources in change 190376.
2016-03-13/defer-write-barrier Changes Defer write barrier to reduce protection overhead (job003975). Reviewed by NB, GDR. Merged into the master sources in change 190380.
2016-03-27/cbs-tidy Changes Extract address-ordered tree logic from CBS (work towards job003798). Details. Reviewed by GDR, DL. Merged into the master sources in change 194572.
2016-03-30/tract-p-elim Changes Eliminate the pool utility pointer from the tract table (work towards job003798). Details. Reviewed by GDR, DL. Merged into the master sources in change 194716.
2016-03-30/tract-white-elim Changes Eliminate the duplicate white set from tracts (work towards job003798). Details. Reviewed by GDR, DL. Merged into the master sources in change 194638.
2016-03-31/page-sparering-elim Changes Eliminate the spare ring from the page table (work towards job003798). Details. Reviewed by GDR (1), DL, GDR (2). Abandoned: superseded by 2018-07-29/page-sparering-elim.
2016-04-06/classig Changes Experimental class system to subsume signatures and protocol. Abandoned: superseded by 2016-04-08/protidying.
2016-04-08/protidying Changes Reworking the inheritance protocol. Details. Reviewed by GDR (1), (2), (3), (4), (5). Merged into the master sources in change 191498.
2016-04-11/job003998 Changes Avoid allocating empty chunks (job003998). Details. Reviewed by RB, DL. Merged into the master sources in change 191388.
2016-04-12/job004000 Changes Condemn generations rather than zones (job004000). Details. Reviewed by RB, DL (1), (2). Merged into the master sources in change 192191.
2016-04-13/mortality Changes Measurement of mortality (job003794). Details. Reviewed by RB. Merged into the master sources in change 192195.
2016-04-16/statistic Changes Fixing the STATISTIC mechanism (job003986). Details. Reviewed by RB. Merged into the master sources in change 191281.
2016-04-16/trace-gens Changes Representing the set of generations condemned by a trace (job004001, job004093). Details. Reviewed by DL. Merged into the master sources in change 194685.
2016-04-19/job004007 Changes Avoiding buffers contributing to a generation's new size (job004007). Details. Reviewed by RB. Merged into the master sources in change 191371.
2016-04-19/job004011 Changes Avoiding multiple collections of the world in a single poll (job004011). Details. Reviewed by RB. Merged into the master sources in change 191374.
2016-04-20/seghasbuffer Changes Adding SegHasBuffer (job004012). Details. Reviewed by RB, GDR. Merged into the master sources in change 192173.
2016-04-21/amswalk Changes AMSWalk (job003738). Details. Reviewed by RB. Merged into the master sources in change 192184.
2016-04-21/ld-history Changes Moving LD history into its own structure to reduce arena bloat. Details Reviewed by GDR. Merged into the master sources in change 191447.
2016-04-22/access Changes Handling access violations when an arena is locked (job004019). Abandoned: superseded by 2016-05-02/job004019.
2016-04-23/inst-methods Changes Converting some universally used functions to methods on Inst. Details. Reviewed by GDR. Merged into the master sources in change 192180.
2016-05-02/job004019 Changes Handling access violations when an arena is locked (job004019) Abandoned: behaviour is as designed.
2016-09-12/job004020 Changes Simplifying the building and debugging of MMQA tests (job004020, job004045). Details. Merged into the master sources in change 192325.
2016-09-06/job004006 Changes Post-mortem debugging support (job003911, job003951, job004006). Details. Reviewed by NB, GDR. Merged into the master sources in change 192365.
2017-03-04/seg-methods Changes Refactor methods from pools to segments (work towards job004025). Details. Reviewed by DL. Merged into the master sources in change 194268.
2018-06-13/fork Changes Support fork() on platforms fr, li, and xc, to fix job004062. Details. Reviewed by NB, DL, APT. Merged into the master sources in change 193816.
2018-06-18/mrgseg Changes Avoiding the write barrier for MRG segments (job004072). Details. Reviewed by DL. Merged into the master sources in change 194453.
2018-06-18/job004070 Changes Make LO and AWL assert on invalid exact references (job004070). Details. Reviewed by DL. Merged into the master sources in change 194284.
2018-06-18/was-marked Changes Simplifying the was-marked protocol (job004073). Details. Reviewed by DL. Merged into the master sources in change 193940.
2018-06-20/monitor Changes Monitoring of telemetry (job001150). Details. Reviewed by GDR (1), (2), DL (1), (2), GDR (3). Merged into the master sources in change 195235.
2018-06-27/job004056 Changes Avoiding lock initialization race on Windows (job004056). Details. Reviewed by DL. Merged into the master sources in change 194409.
2018-07-03/mfs-tractp Changes Eliminating the tract utility pointer from MFS (work towards job003798). Details. Reviewed by GDR, DL. Merged into the master sources in change 194414.
2018-07-04/mvff-perf Changes Improving performance of MVFF so that it is suitable for use as the control pool (work towards job003798). Details. Reviewed by DL. Merged into the master sources in change 194439.
2018-07-07/roots-walk Changes Fixing roots walking so that it does not break formatted objects walking (job004090). Details. Reviewed by DL. Merged into the master sources in change 194642.
2018-07-09/seg-alloc Changes Adding allocation methods to segments (work towards job004025). Details. Reviewed by DL. Merged into the master sources in change 194690.
2018-07-19/mark-sweep Changes Sharing code for mark-and-sweep pools (job004025) Abandoned: superseded by 2020-08-28/mark-sweep.
2018-08-01/land-insert-steal Changes New Land method LandInsertSteal (job004102). Details. Reviewed by RB. Merged into the master sources in change 194968.
2018-08-01/rm-mv Changes Removing MV pool class following deprecation. Details. Reviewed by DL. Merged into the master sources in change 194869.
2018-10-08/fotest-flag Changes Add a flag to fotest.c so that oomAlloc knows when to return error codes (job004104). Reviewed by GDR (1), (2). Merged into the master sources in change 195974.
2020-05-21/licence Changes Change to a BSD 2-clause licence (job004165). Merged into the master sources.

5. Historical branches

The branches listed in this section predate our acquisition of the MPS on 2001-08-13. They were derived from the HOPE/RCS hierarchy by the procedure described in [NDL 2001-08-15].

The trunk branch was integrated into the master sources on 2001-10-31 by change 23678.

See section 3 for development branches which postdate our acquisition of the MPS.

Branch Changes
1995-11-09/MMdevel_dsm_0 Changes
1995-12-11/MMdevel_protoposm_0 Changes
1996-01-22/MMdevel_protoposm_1 Changes
1996-03-01/MM_dylan_incremental Changes
1996-03-12/MMdevel_restr Changes
1996-04-12/MMdevel_restr2 Changes
1996-04-15/MMdevel_drjweak Changes
1996-04-16/MMdevel_remem Changes
1996-04-29/MMdevel_trace Changes
1996-05-14/MMdevel_drj_swint Changes
1996-07-05/MM_epcore_eval Changes
1996-08-08/MMdevel_lclint Changes
1996-09-03/MMdevel_lib Changes
1996-09-10/MMdevel_event Changes
1996-11-01/MMdevel_trace2 Changes
1996-12-02/MMdevel_sw_eq Changes
1997-02-10/MMdevel_action Changes
1997-02-12/MMepcore_keyarg_test Changes
1997-02-13/MMdevel_amcsimp Changes
1997-02-25/MMdevel_bitset Changes
1997-02-27/MMdevel_drjfinal Changes
1997-02-28/MMdevel_config Changes
1997-03-03/MMdevel_action2 Changes
1997-03-04/MMdevel_drj_bt Changes
1997-03-12/MM_dylan_buffalo Changes
1997-04-11/MMdevel_lint Changes
1997-04-18/MMdevel_gens Changes
1997-04-24/MMdevel_arenaclass Changes
1997-04-28/MMdevel_bufferscan Changes
1997-04-28/MMdevel_event2 Changes
1997-05-06/MMdevel_remem2 Changes
1997-05-13/MMdevel_gens2 Changes
1997-05-29/MMdevel_assertid Changes
1997-06-10/MMdevel_segiter Changes
1997-06-16/MMdevel_gens3 Changes
1997-06-18/MMdevel_segabs Changes
1997-06-25/MM_dylan_sunflower Changes
1997-07-03/MMdevel_dropin Changes
1997-07-07/MMdevel_event_format Changes
1997-07-10/MMdevel_control Changes
1997-07-10/MMdevel_event_string Changes
1997-07-16/MMdevel_drj_message Changes
1997-07-18/MMdevel_control2 Changes
1997-07-18/MMdevel_partial_page Changes
1997-07-24/MMdevel_control3 Changes
1997-07-30/MMdevel_config_thread Changes
1997-08-02/MMdevel_remem_root Changes
1997-08-05/MMdevel_annotation Changes
1997-08-12/MMdevel_greylist Changes
1997-08-13/MMdevel_poolams Changes
1997-08-21/MMdevel_clamp Changes
1997-08-29/MMdevel_shieldclass Changes
1997-09-01/MMdevel_gens4 Changes
1997-09-02/MMdevel_gens5 Changes
1997-09-04/MMdevel_lclint_23h Changes
1997-09-05/MMdevel_irix_vm Changes
1997-09-08/MM_dylan_sunflower_patch_10a Changes
1997-09-17/MMdevel_collect Changes
1997-09-19/MM_dylan_honeybee Changes
1997-10-07/MMdevel_anal_cotton Changes
1997-10-21/MMdevel_drj_fmtdy_speed Changes
1997-10-23/MMdevel_drj_root_node Changes
1997-10-24/MMdevel_metrics Changes
1997-10-30/MMdevel_fixfast Changes
1997-10-31/MMdevel_metrics_fix Changes
1997-11-04/MMdevel_progress Changes
1997-11-14/MMdevel_honeybee_ambig Changes
1997-11-14/MMdevel_honeybee_ambig2 Changes
1997-12-09/MM_dylan_cottonwood Changes
1997-12-19/MMdevel_gavinm_bt Changes
1997-12-28/MMepcore_pilchard Changes
1998-01-06/MMdevel_telemetry Changes
1998-01-09/MMdevel_drj_action_hack Changes
1998-01-12/MMdevel_drj_trace_abort Changes
1998-01-19/MMdevel_telemetry_intern Changes
1998-01-20/MMdevel_telemetry_intern2 Changes
1998-01-26/MMdevel_telemetry_fmt Changes
1998-02-16/MMdevel_drj_gensize Changes
1998-02-18/MM_dylan_meadowlark Changes
1998-02-28/MMdevel_gavinm_zone Changes
1998-03-10/MMdevel_drj_amcz Changes
1998-03-13/MM_dylan_boxturtle Changes
1998-03-30/MM_dylan_salamander Changes
1998-04-06/MMdevel_drj_buffer_logging Changes
1998-04-24/MM_epcore_sardine Changes
1998-04-30/MMdevel_gavinm_splay Changes
1998-05-26/MMdevel_pekka_rate Changes
1998-06-08/MMdevel_drj_commit_limit Changes
1998-06-10/MMdevel_drj_vmli Changes
1998-06-12/MM_epcore_minnow Changes
1998-06-25/MM_dylan_blackbird Changes
1998-06-26/MMdevel_tony_lifetime Changes
1998-07-08/MMdevel_ramp_alloc Changes
1998-07-10/MMdevel_drj_coop_arena Changes
1998-07-21/MM_dylan_crow Changes
1998-07-22/MMdevel_mv2_rework Changes
1998-07-29/MMdevel_reservoir Changes
1998-08-04/MM_dylan_dove Changes
1998-08-26/MMdevel_gavinm_160033 Changes
1998-08-28/MMdevel_fencepost Changes
1998-09-03/MMdevel_gavinm_mvff Changes
1998-09-03/MMdevel_ptw_pseudoloci Changes
1998-09-14/MM_epcore_anchovy Changes
1998-09-23/MMdevel_gavinm_cbs Changes
1998-09-24/MMdevel_tony_inheritance Changes
1998-10-19/MM_dylan_jackdaw Changes
1998-12-11/MMdevel_tony_segments Changes
1998-12-18/MMdevel_drj_arena_hysteresis Changes
1998-12-21/MMdevel_color_pool Changes
1999-01-03/MMdevel_pekka_mvbt Changes
1999-01-19/MM_epcore_brisling Changes
1999-02-23/MMdevel_tony_sunset Changes
1999-05-07/MMdevel_alloc_replay Changes
1999-05-18/MMQA_harness_dev Changes
1999-08-17/MMdevel_martin_simplemov Changes
1999-08-19/MMdevel_tony_lock Changes
2000-02-04/MMdevel_pekka_locus Changes
2000-05-16/MM_dylan_kinglet Changes
2000-06-07/MMdevel_configura Changes
2000-09-22/MMconfigura_eval_fast Changes
2001-05-24/MMdevel_pekka_locus2 Changes
2001-08-13/trunk Changes

A. References

[NDL 2001-08-15] "MPS/MMREF import procedures"; Nick Levine; Ravenbrook Limited; 2001-08-15.
[RB 2000-09-05] "Re: Location for development branches" (e-mail message); Richard Brooksby; Ravenbrook Limited; 2000-09-05 11:41:30 GMT.

B. Document History

2001-08-17 NDL Created.
2001-09-13 NDL Updated in the light of revisions to the RCS import.
2001-10-31 NDL Add MMConfigura-no-dongle and 2001-09-24/freebsd-port branches.
2001-12-17 NB Add MMconfigura-in-arena and MMconfigura-shield-fix branches.
2002-02-15 NB Add MMconfigura-awl branch, and note on merge of MMconfigura-shield-fix branch.
2002-04-15 NB Add MMconfigura-awl-auto and MMconfigura-ams-auto branches, and note on merge of MMconfigura-shield-fix and MMconfigura-awl-auto branches.
2002-05-14 NB Add MMconfigura-incremental-step branch.
2002-05-24 NB Added merge note for MMconfigura-incremental-step branch.
2002-05-24 RB Added 2002-05-22/open-source-prep branch.
2002-06-20 NDL Removed confidentiality notice, explained that almost all development branches are confidential, and updated the copyright / license.
2003-02-13 DRJ Added 2002-12-30/opportunism branch.
2006-06-02 RHSK Fixed duplicate html anchor ids/names, by adding suffix "b" to get eg. id="ref-GlobalGraphics-1997-04-28b".
2006-06-02 RHSK Added 2006-05-31/feedback.
2006-12-15 RHSK Merged 2003-02-17/gcgenmsg. Noted that 2002-05-22/open-source-prep has been merged too.
2006-12-15 RHSK Added 2006-12-15/unfixed-summary.
2006-12-15 RHSK 2006-05-31/feedback contains documentation only; code is no longer live.
2006-12-29 RHSK integrate documentation from 2006-05-31/feedback to master: it now contains unfinished example/hw-gc only; code is no longer live.
2007-09-27 RHSK 2007-09-27/awldiag: Investigating poolawl.c, improving diagnostic output.
2008-10-23 RHSK 2007-12-19/vmarenagrow, 2008-03-11/auto_header, and 2008-08-14/vc9 branches
2009-02-17 RHSK 2008-10-30/timing branch
2010-03-15 RHSK 2010-03-11/vmem branch
2010-11-06 RHSK 2010-11-06/transform branch
2011-08-16 PNJ Altered the document style to make it more readable and practical. Provided a contents list and re ordered the sections so that the most current information is at the top. Removed the section numbering.
2011-08-17 PNJ Added a list of recent branches that don't seem to have been documented.
2012-10-09 GDR Added 2012-10-09/user-guide.
2013-02-08 GDR The 2012-10-09/user-guide and 2012-10-10/measurement branches were merged into the master sources.
2013-05-20 GDR New branches 2013-05-01/keyword-arguments and 2013-05-17/emergency. Update status of many branches.
2013-05-21 GDR New branch 2013-05-21/final-destroy.
2013-06-05 GDR New branch 2013-06-05/diag.
2013-06-06 GDR Branches 2013-05-01/keyword-arguments, 2013-05-21/final-destroy and 2013-06-05/diag merged and moved to “dormant”.
2013-06-08 RB New branch 2013-06-08/benchmarks.
2013-06-09 GDR Merged 2013-05-17/emergency.
2013-07-10 GDR New branches 2013-06-18/macosx-threads, 2013-06-21/raspberry-pi, and 2013-07-02/cet-ap-key.
2013-08-21 GDR New branch 2013-08-21/lii6ll.
2013-10-24 DL New branch 2013-10-21/cet-addr-to-obj.
2013-11-04 DL New branch 2013-11-04/cet-i6-stack-probe.
2013-12-20 GDR Branch 2013-07-02/cet-ap-key was merged.
2014-01-06 GDR Branch 2013-06-18/macosx-threads was merged.
2014-01-09 GDR Merged 2013-10-21/cet-addr-to-obj into custom/cet/main.
2014-01-10 GDR Merged 2013-11-03/cet-i6-stack-probe into custom/cet/main and 2013-05-17/emergency into the master sources.
2014-01-12 GDR Added many missing branches.
2014-01-15 GDR New branch 2014-01-15/nailboard.
2014-01-31 GDR New branches 2014-01-17/cbs-tract-alloc, 2014-01-22/chunk-rtree, 2014-01-25/spare-ring, 2014-01-29/mps-chain-zones.
2014-02-17 GDR Merged 2014-01-25/spare-ring and 2014-01-29/mps-chain-zones into the master sources.
2014-02-26 DL New branches 2014-02-19/remember-time, 2014-02-22/splay-tune, 2014-02-23/mvff-tune and 2014-02-26/args-done.
2014-03-07 GDR New branches 2014-02-28/white-cuckoo, 2014-03-03/cet-perf-test and 2014-03-05/instrument-event. Update status and diffs for 2014-01-15/nailboard.
2014-03-12 RB Updating status for 2014-02-22/splay-tune.
2014-03-13 RB Updating status for 2014-01-17/cbs-tract-alloc.
2014-05-01 GDR Added new section contianing branches that are ready for review.
2014-05-26 GDR Add change links for historical branches.

C. Copyright and License

This document is copyright © 2001-2014 Ravenbrook Limited. All rights reserved. This is an open source license. Contact Ravenbrook for commercial licensing options.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Redistributions in any form must be accompanied by information on how to obtain complete source code for this software and any accompanying software that uses this software. The source code must either be included in the distribution or be available for no more than the cost of distribution plus a nominal fee, and must be freely redistributable under reasonable conditions. For an executable file, complete source code means the source code for all modules it contains. It does not include source code for modules or files that typically accompany the major components of the operating system on which the executable file runs.

This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement, are disclaimed. In no event shall the copyright holders and contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.


$Id: //info.ravenbrook.com/project/mps/branch/index.html#498 $

Ravenbrook / Projects / Memory Pool System