This list may include some issues incorrectly, because "p4 fixes -i" does not report a fix for a version branch if the files changed by the fix were deleted on the masters before the version branch was taken.
| Job | Priority | Title | 
|---|---|---|
| job000415 | essential | several reference manual entries omit arena arguments | 
| job000441 | critical | PoolAMC sometimes fails !arena->insideShield check | 
| job000462 | essential | PoolAWL only works for Dylan objects. | 
| job000502 | essential | PoolAWL doesn't work with auto_header formats | 
| job000506 | essential | PoolAMS doesn't work with auto-header formats | 
| job000531 | essential | MPS doesn't have "incremental step" function for clients | 
| job000534 | essential | No varieties are doing any checking | 
| job000535 | essential | Interior ambiguous pointers can give PoolAMS a headache | 
| job000536 | essential | release readme.txt doesn't have a "what's new" section | 
| job000537 | optional | Many design documents missing | 
| job000538 | optional | Project documents are poorly formatted | 
| job000539 | essential | Some external symbols are missing from the reference manual | 
| job000540 | essential | Reference manual symbol coverage needs reorganizing | 
| job000541 | essential | Reference manual needs subject sections | 
| job000542 | essential | No MPS user manual | 
| job000543 | nice | No MPS programmer's guide | 
| job000544 | essential | Reference manual mentions a number of obsolete symbols | 
| job000545 | optional | mpstd.h defines unused symbol MPS_T_SHORT for some platforms | 
| job000546 | essential | MPS docs say P4DTI instead of MPS | 
| job000547 | essential | Reference manual has lots of missing spaces | 
| job000548 | nice | AMS grain colour doesn't agree with design doc | 
| job000549 | optional | Blackening an AMS segment can break | 
| job000550 | optional | BufferEmpty on AMS in mid-collection can break | 
| job000599 | essential | MPS doesn't build on Mac OS X 10.2 | 
| job000601 | essential | MPS compile fails under Mac OS X 10.2 | 
| job000602 | essential | Mac OS X 10.2 build fails because "cabs" is already defined | 
| job000604 | essential | MPS doesn't work with gcc 2.96 | 
| job000605 | essential | mpmss fails to link on w3i3mv | 
| job000646 | essential | Builds on FreeBSD stopped working | 
| job000647 | essential | mps_arena_step disregards its argument | 
| job000648 | essential | Should make wi variety with the other default varieties | 
| job000649 | essential | No way to just start a world-collection | 
| job000652 | essential | mps_arena_destroy may crash if some objects aren't destroyed | 
| job000666 | essential | Difficult to tell what collections are happening | 
| job000668 | essential | Build procedure uses p4 counter change which is unsafe | 
| job000677 | nice | Insufficient stuff has been converted from MMinfo to Ravenbrook Project repository | 
| job000741 | essential | Should be able to use mps_arena_has_addr from a heap walking function | 
| job000742 | nice | Some niggles annoy DRJ | 
| job000813 | essential | Can't access memory without hitting MPS protection barrier. | 
| job000814 | nice | Configura cannot manage Lightworks objects with the MPS | 
| job000825 | essential | mps_arena_unsafe_expose / restore does not work with finalization | 
| job000973 | essential | MPS doesn't compile under Mac OS X 10.3.4 | 
| job001084 | essential | MPS does not build with "sh configure;make;make install" | 
| job001092 | optional | MPS is not integrated with public cool projects. | 
| job001096 | essential | The MPS is not a Windows DLL | 
| job001105 | essential | MPS doesn't compile on FreeBSD current [fill in version here] | 
| job001144 | nice | Some minor hope dependencies exist in test suite | 
| job001145 | optional | Many (mmqa) tests fail on OS X | 
| job001146 | essential | MPS does not implement a stack scanner for OS X / PowerPC | 
| job001147 | essential | MPS on OS X needs a protection module in order to be faster | 
| job001149 | optional | MPS does not provide sufficient information about addresses | 
| job001150 | optional | MPS doesn't provide enough feedback information about what it is doing or what it has done | 
| job001151 | optional | Format methods can't look at other data | 
| job001152 | optional | The MPS can't be used to simulate a smaller machine | 
| job001153 | essential | The MPS lacks error recovery mechanisms | 
| job001154 | essential | MPS documentation gives no guidance for when client wants foreign code to use mps-allocated memory | 
| job001155 | essential | full collects cause gigantic ramps | 
| job001156 | optional | MPS cannot queue a message when a weak thing goes away | 
| job001158 | essential | variety design does not meet requirements of open-source MPS | 
| job001159 | essential | MPS contains asserts that don't indicate which problem occurred | 
| job001161 | nice | there is no human-helpful map of MPS files | 
| job001248 | nice | (source clarity) Badly named CHECK macros in config.h, check.h are confusing | 
| job001357 | nice | Configura cannot use Win32 fibers | 
| job001360 | nice | Configura cannot efficiently use SEH. | 
| job001365 | essential | build broken on w3 (Windows) with Visual C++ 7.0 | 
| job001366 | essential | default "all" build broken on w3 (Windows) with Visual C++ 6.0 | 
| job001367 | essential | MPS lacks walkthrough example code (aka "hello-world") for beginners | 
| job001369 | nice | MPS proc/release-build omits step: update main MPS index page | 
| job001370 | optional | MPS RefMan is not valid XHTML | 
| job001383 | essential | MPS lacks example GC code - a "hello-world with GC" for beginners | 
| job001384 | nice | MPS unclear constraints on avgSize argument to PoolMV mps_pool_create | 
| job001395 | essential | MPS build failure on Linux with glibc 2.3: wrong defines before system includes | 
| job001421 | optional | MPS default "all" build omits plinth (mpsplan.a/.lib) and (on w3) mps.lib | 
| job001429 | optional | MPS lacks documentation on how to use allocation points | 
| job001455 | essential | MPS LO pool: mps_arena_formatted_objects_walk fails with AVER(i < j) | 
| job001530 | essential | Intel OS X builds are not possible. | 
| job001543 | optional | MPS mpsicv (test) on OS X does not use reg&stack scanner. | 
| job001545 | essential | MPS hot varieties do no AVERs or other checking | 
| job001546 | essential | MPS hot varieties gather tuning statistics | 
| job001547 | essential | Configura builds do not include a hot variety | 
| job001548 | essential | MPS assertion in trace.c: RefSetSub(ss.unfixedSummary, SegSummary(seg)) | 
| job001549 | essential | Assertion failure !AMS_IS_INVALID_COLOUR | 
| job001550 | optional | MPS poolams.c AMSFix omits checks: clientRef is within seg; bit index is valid | 
| job001556 | optional | MPS defect in BS_IS_SINGLE could make some checks ineffective | 
| job001569 | nice | MPS lacks internal documentation for Shield abstraction | 
| job001571 | nice | MPS multiple traces would not work | 
| job001618 | essential | Stack Scanner for Linux and FreeBSD is not shared. | 
| job001619 | essential | OS X Intel needs stack scanner. | 
| job001621 | essential | Can't use threads on OS X. | 
| job001622 | essential | Client can't multithread on OS X. | 
| job001624 | essential | MPS doesn't build on FreeBSD 5.5 | 
| job001634 | optional | MPS fails under Rosetta. | 
| job001635 | essential | On Unix, signal handler is not installed correctly. | 
| job001636 | essential | Too much Unix code is dangerously copied and not shared. | 
| job001637 | essential | Linux build fails. | 
| job001639 | optional | Configura would like "control over finalization promptness" | 
| job001658 | essential | Finalization messages are unnecessarily delayed. | 
| job001659 | optional | Culprit analysis is too hard. | 
| job001665 | essential | Weakness is not well documented. | 
| job001666 | optional | No guarantee that all weak references to an object die together. | 
| job001669 | essential | Developers can't debug MPS on OS X. | 
| job001676 | nice | AMC does not implement weakness in emergency fixing. | 
| job001681 | nice | AMCHeaderFix is an unnecessary copy. | 
| job001682 | nice | AMCWalk does not honour its contract | 
| job001687 | optional | AWL does not recycle memory to the arena. | 
| job001688 | nice | AMC repeatedly allocates and initialises identical SegPrefs | 
| job001706 | essential | MPS PoolAMC could (if no shield cache) assert in LockClaim | 
| job001707 | optional | VM Arena never shrinks a generation zone set preferences. | 
| job001708 | nice | VM Arena's segment placement policy could be improved. | 
| job001709 | nice | VM Arena uses up zones too quickly. | 
| job001714 | optional | MPS xcppgc (Mac OS X PowerPC) is built with outdated compiler flags | 
| job001715 | nice | MPS fails to lower barrier when hit: multiple hits cause slowdown (CONJECTURE) | 
| job001737 | essential | MPS: VMArena growth is brittle, does not fallback to smaller growth increment | 
| job001784 | essential | MPS AMC pool + auto_header format: nailboards leak ControlPool memory | 
| job001785 | essential | Unclear whether base or client pointer passed to pad method of format auto-header | 
| job001789 | nice | MPS auto_header format is not tested by main test files | 
| job001809 | essential | MPS ambiguous internal pointer makes AMC pool retain memory as pads | 
| job001811 | optional | MPS AMC small nailed objects risk big retention by placement after big objects | 
| job001887 | optional | MPS mps_arena_committed() is wrong when using mps_arena_class_cl (client arena) | 
| job001934 | essential | MPS VC9 build failure C4996: getenv considered insecure | 
| job001945 | essential | MPS buildsys CONFIG_PF_* does not select a platform, is not checked by mpstd.h | 
| job001966 | optional | MPS mpsi_check() does not check message type constants | 
| job001968 | essential | MPS clients get no synchronous alert of collection begin/end | 
| job001969 | essential | MPS gc-start and -end messages give no idea of timing | 
| job002175 | optional | MPS unaligned references are not detected by AMC pools | 
| job002205 | essential | MPS collection runs too slow if client allocates big objects | 
| job002206 | nice | MPS some internal tests leave arena parked after mps_arena_collect() | 
| job002209 | essential | MPS client cannot determine pool or format, given object address | 
| job002248 | essential | MPS virtual memory arena class never returns virtual memory | 
| job003301 | essential | Bogus assertion iswrite == 0 || iswrite == 1 on Windows | 
| job003302 | optional | mps_arena_create fails with deep consistency checks | 
| job003315 | nice | mps.h defines the macro MPS_T_WORD | 
| job003316 | optional | User guide doesn't explain how to choose object format alignment | 
| job003317 | optional | Requirements for fixing tagged references are unclear | 
| job003319 | nice | MVT creation takes "integer percentage" argument | 
| job003320 | optional | mps_arena_step unclamps the arena | 
| job003321 | optional | Private symbols in mps.h are missing underscores | 
| job003322 | nice | External interface contains useless "fixed" object format | 
| job003323 | optional | Varargs interfaces are hard to use | 
| job003324 | nice | Manual contains little about performance of interface | 
| job003325 | nice | Purpose of the "class" method of an object format is unclear | 
| job003326 | nice | Purpose of mps_arena_class_vmnz is unclear | 
| job003327 | nice | Purpose of reservoirs is unclear | 
| job003328 | nice | Possible improvement to reserve/commit protocol | 
| job003329 | optional | Purpose of mps_alert_collection_set is unclear | 
| job003330 | optional | Unclear which threads need to call mps_tramp | 
| job003331 | optional | eventcnv appears to hang if you specify a small bucket size | 
| job003332 | optional | eventcnv outputs an empty bucket when you specify a bucket size | 
| job003333 | optional | eventcnv produces bogus output if you pass -b but not -e | 
| job003334 | optional | eventcnv output has bogus timestamp on totals row in CSV format | 
| job003335 | optional | eventcnv's bucket aggregation is broken | 
| job003337 | optional | Example Scheme interpreter crashes in append | 
| job003338 | optional | Example Scheme interpreter does not finalize ports | 
| job003340 | optional | MPS_TELEMETRY_CONTROL=65535 is ugly and not future-proof | 
| job003341 | optional | Unclear how to destroy a pool containing objects registered for finalization | 
| job003342 | nice | mps_arena_unsafe functions are bogus | 
| job003343 | nice | Documentation could say more about meaning of result codes | 
| job003344 | nice | Purpose of allocation frames/SNC pool class are unclear | 
| job003348 | optional | Unclear what happens if a thread dies while registered | 
| job003349 | optional | Unclear what mps_SEH functions are for | 
| job003350 | nice | Purpose of manual pool classes is unclear | 
| job003351 | nice | Debugging pool classes are hard to use | 
| job003352 | optional | Instruction emulation not supported on OS X or x86-64 | 
| job003356 | essential | Assertion in SegSetGrey when using AMCZ | 
| job003357 | nice | AWL is awkward to use | 
| job003359 | essential | Ambiguous interior pointers do not keep objects alive | 
| job003367 | essential | Can't run tests via "make test" | 
| job003368 | optional | MFS has no public interface | 
| job003371 | essential | MPS spends too much time making system calls | 
| job003374 | nice | No documentation about low memory situations | 
| job003384 | optional | Collector goes mad when low on address space | 
| job003385 | essential | Performance is poor in large address space on OS X | 
| job003386 | optional | Telemetry control interface is poorly designed | 
| job003387 | optional | Multiple arenas can corrupt telemetry stream | 
| job003388 | optional | telemetry system API can corrupt telemetry stream | 
| job003411 | nice | MPS doesn't make use of __builtin_readcyclecounter on OS X | 
| job003412 | critical | Assertion failure in TraceScanAreaMasked on Linux | 
| job003413 | nice | Typos in documentation, comments | 
| job003414 | essential | No test case for multi-threaded stack scanning | 
| job003430 | essential | Can't run test suite on OS X | 
| job003431 | optional | Hard to tell which test case failed | 
| job003432 | essential | amcsshe test failure | 
| job003433 | essential | mpsicv test failure | 
| job003434 | essential | Incorrect glossary link from "committed" to "mapping" | 
| job003435 | essential | Rehashing large hash tables breaks nursery collection strategy | 
| job003436 | essential | awlut test failure | 
| job003438 | nice | arena->serial is always 0 | 
| job003439 | optional | MPS is too hard to use | 
| job003440 | essential | amcss test failure | 
| job003443 | optional | No coverage testing | 
| job003448 | nice | mps_arena_vm_growth is not documented | 
| job003454 | optional | Ramp use can break generation chain with bad performance consequences | 
| job003455 | optional | Frequent ramps can mess up the ramping algorithm and cause performance problems | 
| job003469 | essential | CET can't safely make use of the top 2GiB of memory on 32-bit Windows | 
| job003470 | optional | Test program qs.c fails to compile on Ubuntu 10.04 | 
| job003471 | optional | mps_root_create_table is hard to use without punning | 
| job003472 | optional | Test output always goes to mps-XXXXXX.log on some platforms | 
| job003473 | essential | MPS doesn't build on FreeBSD 9.1 | 
| job003474 | essential | amcssth test failure on lii6gc and fri3gc | 
| job003476 | optional | No automated testrun target on Windows | 
| job003477 | optional | MPS is hard to build and debug on Windows | 
| job003479 | optional | Some forward declarations of *ClassGet() functions are wrong | 
| job003481 | nice | Test case seed generation is not random enough | 
| job003482 | nice | Test suite doesn't test error paths | 
| job003483 | nice | mv2test.c contains a redundant random number generator | 
| job003484 | nice | MPS has predictable address space layout | 
| job003485 | optional | Information about cause of errors is lost | 
| job003486 | essential | mv2test failure | 
| job003487 | nice | Pool debug options are awkward to pass | 
| job003489 | optional | Test fail logs are lost forever on build servers | 
| job003490 | nice | Assertion failure in MRGDescribe | 
| job003492 | optional | MFS refuses to handle objects smaller than platform alignment | 
| job003493 | nice | No recovery mode after assertion failure | 
| job003494 | essential | Re-entrancy failure in LDReset | 
| job003495 | optional | Assertion failure if you try to create a small arena | 
| job003496 | essential | Assertion failure in mps_arena_roots_walk | 
| job003497 | essential | Messages from assertions sound like bugs in the MPS | 
| job003498 | essential | Varargs interface to SNC broken | 
| job003499 | critical | The MPS issues list looks scary | 
| job003500 | nice | Format interface is hard to understand | 
| job003502 | nice | Race condition in EventInit() | 
| job003503 | essential | Telemetry system calls mps_io_flush() without mps_io_create() | 
| job003504 | optional | ANSI plinth does not check its arguments | 
| job003505 | optional | MPS incurs large overhead on barrier hits | 
| job003506 | optional | awlutth test case fails on lii6gc | 
| job003507 | optional | mpseventsql -i and -o options cause crash | 
| job003508 | nice | Little in manual about in-band headers | 
| job003509 | nice | MVFF uses segments unnecessarily | 
| job003510 | optional | mps_free doesn't check all addresses in range | 
| job003512 | nice | Can't configure MVT alignment | 
| job003513 | optional | Arena extension callbacks are undocumented | 
| job003515 | nice | Can't collect diverse MPS messages in order | 
| job003519 | essential | Clock values in text telemetry logs on Windows have top 32 bits zero | 
| job003520 | optional | MVT assertion gcseg->buffer == NULL in djbench | 
| job003522 | optional | PoolFix is on the critical path but contains checks | 
| job003523 | optional | Accessing to weak tables on 64-bit causes them to be scanned. | 
| job003524 | nice | Arena states are confusing | 
| job003525 | optional | Pointers from MPS stack pin down user objects | 
| job003532 | optional | MPS kit fails to install shared libraries | 
| job003533 | nice | It's not clear what's the best way to build the MPS | 
| job003535 | nice | Thread suspension interface is hacky, error-prone | 
| job003539 | optional | MPS pause times are not well regulated | 
| job003553 | essential | Several "make test" targets fail on Windows | 
| job003554 | essential | MPS slows down considerably when arena is extended | 
| job003559 | nice | Multiple thread registration does not work on all platforms | 
| job003561 | essential | amcssth fails on lii6gc with RES_COMMIT_LIMIT | 
| job003594 | nice | Makefiles not compatible with --jobs option | 
| job003595 | nice | Unsupported platform Linux+Clang not detected | 
| job003596 | optional | Clang/LLVM not supported on Linux | 
| job003619 | optional | PageOfTract macro doesn't compile in Clang 3.0 | 
| job003628 | nice | MPS produces warnings when compiled with -Wextra | 
| job003629 | nice | MPS produces warnings when compiled with -Wwrite-strings | 
| job003630 | nice | Bad variety not detected | 
| job003631 | nice | User guide doesn't cover stretchy vector problem | 
| job003632 | nice | Difficult to integrate with application that has non-atomic updates | 
| job003633 | essential | AMS requires undocumented AMS_SUPPORT_AMBIGUOUS keyword argument | 
| job003634 | essential | AMS allocation points require undocumented RANK keyword argument | 
| job003635 | nice | Poor error message if you fail to specify a required keyword argument | 
| job003636 | essential | Can't pass debugging options by keyword argument | 
| job003638 | nice | Incorrect accounting in MVT | 
| job003643 | nice | Can't use the MPS with clang -fsanitize=address | 
| job003644 | optional | Reserve/commit protocol does not cope with exceptions | 
| job003653 | nice | Scanner makes no use of __builtin_prefetch | 
| job003654 | essential | Bit table scanning on segment allocation is not scalable | 
| job003657 | optional | ztfm test case does not get run | 
| job003658 | nice | zcoll test case does not get run | 
| job003659 | optional | Too hard to maintain the test suite | 
| job003660 | nice | Asssertion "ring->next != NULL" in ztfm test | 
| job003661 | essential | No procedure for merging custom work | 
| job003662 | nice | spi3.c is mis-named | 
| job003666 | essential | Design documents have formatting errors | 
| job003667 | optional | Locus stress test only gets run on Windows | 
| job003668 | essential | Stack scanner assumes all references are word-aligned | 
| job003670 | optional | Chains not generalized across pools | 
| job003671 | nice | Non-moving pools don't make best use of zones | 
| job003672 | optional | MVT attempts to free a segment with a buffer attached | 
| job003674 | essential | Hysteresis overwhelmed by allocation | 
| job003675 | optional | Can't build manual with Python 3 | 
| job003676 | optional | Scheme example has warnings and errors in Xcode | 
| job003677 | essential | Keyword arguments not robust against user error | 
| job003680 | optional | Can't assert in external interface | 
| job003681 | nice | MPS does not compile with -Wunreachable-code | 
| job003683 | optional | Epoch number can wrap around on 32-bit platforms | 
| job003684 | nice | Too hard to swap out address range managers | 
| job003685 | nice | No encapsulation of CBS-failing-over-to-Freelist pattern | 
| job003691 | nice | CHECKL is used where CHECKD_NOSIG would give more control | 
| job003692 | optional | MPS deep checking fails at bootstrap | 
| job003693 | nice | The "method" suffix on MPS types is applied too widely | 
| job003697 | essential | Incorrect result code sometimes returned when commit limit is hit | 
| job003700 | essential | Memory returned to operating system too eagerly | 
| job003701 | optional | MVSpanAlloc shows up in GC profiles | 
| job003703 | essential | amcssth fails with "unable to obtain resources" | 
| job003704 | optional | No multi-threaded test cases on Windows | 
| job003709 | optional | MPS doesn't compile under Pelles C | 
| job003711 | nice | Compiling windows.h takes a long time | 
| job003712 | nice | No way to compile the MPS one-file-at-a-time on standard OS X | 
| job003713 | nice | Inconvenient to add new parts on Windows | 
| job003714 | nice | ArenaRootsWalk does not check the result of TraceAddWhite | 
| job003715 | nice | Warning pragmas may be unnecessary | 
| job003716 | nice | "ANSI" platform is not regularly tested | 
| job003719 | nice | Hard to test and debug threading behaviour | 
| job003721 | nice | No stack scanning test case | 
| job003722 | nice | awlut fails on w3i6pc | 
| job003724 | nice | qs failure on ANSI platform | 
| job003725 | nice | Classes are not checked | 
| job003737 | nice | Pool class attributes incorrect, unchecked | 
| job003738 | nice | Assertion in mps_arena_formatted_objects_walk if you have an AMS pool | 
| job003739 | essential | Blocks in AWL and AMS pools are not finalized | 
| job003740 | optional | mpswin.h may change the setting of WIN32_LEAN_AND_MEAN | 
| job003741 | nice | mpsw3.h is unnecessary | 
| job003742 | nice | Root modes not in sync | 
| job003745 | essential | AWL alignment is not configurable | 
| job003746 | essential | None of the smoke tests use AMCZ | 
| job003747 | nice | No default value for MPS_KEY_ARENA_SIZE | 
| job003748 | nice | Alignment requirements for manual classes are needlessly strict | 
| job003749 | nice | Hard to write portable debugging pool options | 
| job003750 | nice | No keyword arguments for arena commit limit | 
| job003751 | nice | MVFF debug does not work with large objects | 
| job003753 | essential | nailboardtest failure | 
| job003754 | nice | finaltest failure | 
| job003755 | optional | Telemetry tools not regularly tested | 
| job003756 | essential | eventtxt can't process the telemetry output of amcssth | 
| job003757 | optional | The MPS does not build with clang -Wconversion | 
| job003758 | nice | The MPS does not build with gcc -Wconversion | 
| job003759 | nice | We don't eat our own dog food | 
| job003760 | essential | mpsicv failures | 
| job003761 | nice | airtest failure on lii3gc | 
| job003762 | nice | steptest is too slow for a smoke test | 
| job003763 | nice | No easy way to automatically clear freed memory | 
| job003764 | optional | Scanning rate is way too high | 
| job003765 | nice | MVT uses GCSeg but does not need GC features | 
| job003766 | nice | Splitting and merging complicates writing new seg classes | 
| job003767 | nice | Describe output is hard to read | 
| job003768 | nice | Unclear if lockli is required | 
| job003769 | nice | README out of date wrt WOW64 on Windows 7 | 
| job003770 | nice | MPS does not compile from C++ | 
| job003771 | essential | AMS with default args never gets collected | 
| job003772 | essential | AWL doesn't provoke collections | 
| job003773 | essential | Objects in LO pools are not all finalized | 
| job003774 | critical | The MPS does not build on windows. | 
| job003775 | optional | Creating task branch from custom doesn't work | 
| job003776 | nice | Pool generations don't refer to the generation they belong to | 
| job003778 | nice | SegCheck slow in hot variety | 
| job003779 | essential | RASH variety does not compile | 
| job003780 | optional | No test case for register scanning | 
| job003781 | nice | No automated performance test | 
| job003782 | essential | FALSE is not a safe default value for MPS_KEY_AMS_SUPPORT_AMBIGUOUS | 
| job003783 | optional | ChainCondemnAuto condemns too many generations | 
| job003784 | nice | mps_class_t is mis-named | 
| job003786 | nice | No automated test of the event subsystem | 
| job003787 | nice | No systematic interface to size of pools | 
| job003789 | nice | MPS does not try collecting when out of memory | 
| job003790 | optional | Segment descriptors could be more efficiently managed | 
| job003791 | nice | Can't set the rank on an AMC/AMCZ allocation point | 
| job003792 | nice | AMS and AWL don't update summaries of condemned segments | 
| job003794 | optional | Hard to predict the mortality in a generation | 
| job003795 | nice | Arena extensions are not adaptive | 
| job003796 | optional | White segment lookup is slow | 
| job003797 | optional | AMC space is lost to pinning | 
| job003798 | optional | Tract tables are inflexible | 
| job003799 | optional | Incrementally collecting the nursery may waste time | 
| job003802 | nice | Manual unclear about exact collection | 
| job003803 | nice | Hard to discover roots | 
| job003805 | nice | Bit table scanning is unoptimized | 
| job003811 | essential | Missing dependencies for benchmarks | 
| job003812 | optional | MVAlloc taking significant CPU in profiles | 
| job003813 | optional | TraceReclaim looks at every segment | 
| job003814 | nice | {VM,Client}ArenaReserved iterates over the chunks | 
| job003815 | optional | Freeing a page never destroys a chunk | 
| job003816 | nice | Can't specify generation per allocation point | 
| job003820 | nice | Scheme interpreter table_set is wrong | 
| job003821 | optional | No test for "make install" | 
| job003822 | optional | Emergency garbage collection is untested | 
| job003823 | optional | No control over constant factor in tract management | 
| job003824 | optional | No control over the constant factor in AMC segment overhead | 
| job003825 | nice | Unused closure arguments are unchecked | 
| job003826 | nice | Can't iterate over CBS while deleting some nodes | 
| job003832 | optional | CVM memory debugging may be redundant | 
| job003833 | nice | "Arena alignment" is a misleading name | 
| job003835 | nice | SegPrefs are poorly named | 
| job003836 | nice | PageRetStruct is obsolete | 
| job003837 | nice | No control over which objects are "large" | 
| job003838 | nice | MVT uses segments unnecessarily | 
| job003839 | nice | No benchmarks for space performance | 
| job003841 | optional | Segs are not Exposed when AMSBlacken calls amsIterate | 
| job003842 | nice | Missing dependencies in nmake build system | 
| job003845 | essential | Large arena grain sizes cause massive AMC fragmentation | 
| job003846 | nice | No default find dependent function | 
| job003847 | nice | Allocation clock inconsistency in handling of AMC segment padding | 
| job003848 | optional | Access violation in gcbench on Windows | 
| job003850 | optional | ANSI plinth doesn't flush telemetry on error | 
| job003851 | optional | mpseventtxt drops top word of clock on w3i3mv | 
| job003852 | nice | No heap consistency checker | 
| job003853 | nice | AMCFixForward has useless newRef parameter | 
| job003854 | nice | nmake clean failure | 
| job003855 | nice | Manual not explicit about scanning/skipping forwarding/padding objects | 
| job003856 | nice | amcReclaimNailed creates too many padding objects | 
| job003857 | optional | AMC now slower than 1.113 | 
| job003858 | nice | Allocating segments in control pool has a bad complexity | 
| job003859 | nice | Assertion failures in amcssth | 
| job003863 | nice | mps_io_* functions are misleadingly named | 
| job003864 | nice | Uncollected finalization messages lead to retention | 
| job003865 | nice | Unfinalizable objects can be registered for finalization | 
| job003866 | nice | mps_arena_has_addr fails for address in unsegmented pool classes | 
| job003867 | nice | RankAMBIG is misleadingly used to mean "minimum rank" | 
| job003868 | nice | Test function/228.c doesn't detect assertions | 
| job003869 | nice | Reservoir refuses to supply memory | 
| job003870 | essential | Can't set MPS_KEY_SPARE | 
| job003871 | nice | MMQA test function/165.c failure | 
| job003872 | nice | MMQA test function/167.c failure | 
| job003873 | nice | MMQA test function/136.c failure | 
| job003874 | nice | MMQA test function/214.c failure | 
| job003875 | nice | MMQA test function/45.c failure | 
| job003876 | nice | MMQA test function/170.c failure | 
| job003877 | nice | MMQA test function/148.c failure | 
| job003878 | optional | SNC pool class missing from file-at-a-time builds | 
| job003879 | optional | SNC not tested by main test suite | 
| job003880 | optional | SNC does not implement size interface | 
| job003881 | nice | SNC never returns memory to the arena | 
| job003882 | optional | sncss test failure | 
| job003883 | optional | SNC walks and scans dead objects | 
| job003884 | essential | mps_pool_free_size wrong for AWL, LO in hot variety | 
| job003885 | nice | Unclear when to use AVERT in mpsi.c | 
| job003887 | optional | LD functions don't check their arena argument | 
| job003889 | nice | No error if you destroy a format that's still in use by a pool | 
| job003890 | nice | No error if you create a pool using a format from another arena | 
| job003892 | nice | Pool statistics are not used | 
| job003893 | essential | Arena contracted callback gets called with invalid arena | 
| job003894 | nice | Intrinsic functions not used on Windows | 
| job003895 | nice | No interface to logging control | 
| job003898 | optional | Spare committed memory in the wrong zones prevents allocation | 
| job003899 | optional | VMArenaGrow can return RESOURCE instead of COMMIT_LIMIT | 
| job003900 | nice | Can't run tests with ASLR turned off | 
| job003901 | nice | Can't run a single test under the test runner | 
| job003902 | nice | commpre/commpost distinction is unnecessary | 
| job003905 | nice | Can't build the MPS in parallel | 
| job003906 | nice | Not clear whether pointers should be stored in client or base form | 
| job003908 | optional | Not clear that an assertion handler must not call the MPS | 
| job003911 | essential | Can't dump stack from assertion handler | 
| job003915 | nice | Manual in master sources offers download for nonexistent release | 
| job003917 | optional | Clear x86 direction flag in exception handler | 
| job003918 | nice | MVInit can fail without destroying its block pool | 
| job003919 | nice | No interface for getting bytes allocated | 
| job003921 | optional | Write barrier may be harmful to performance | 
| job003922 | optional | Failed arena creation is not correctly unwound | 
| job003923 | optional | Client arena fails to detect too-small size | 
| job003924 | nice | Unnecessary allocation during arena creation | 
| job003925 | nice | No test case for removing chunks from the arena | 
| job003926 | optional | Policy is hard to work on | 
| job003927 | nice | No bootstrap design | 
| job003928 | nice | VM arena uses two VMs when one might do | 
| job003929 | optional | mps_arena_step uses poor estimate of collection time | 
| job003930 | nice | Unnamed constants in arenaShouldCollectWorld | 
| job003931 | nice | Manual claims SNC allocation point requires MPS_KEY_RANK | 
| job003932 | optional | Allocation frame documentation is unclear | 
| job003933 | nice | ArenaPark does not accumulate trace metrics | 
| job003934 | nice | mps_arena_step may fail to collect world even if it had time | 
| job003935 | nice | ArenaAvail fails to check its result | 
| job003936 | nice | Type confusion in work computation | 
| job003937 | essential | MRG pool does not update scannedSize | 
| job003938 | optional | Useless traces are started and progressed | 
| job003939 | nice | No AccessSetCheck | 
| job003941 | nice | Configuration parameters are uncommented | 
| job003942 | optional | Possible hang in steptest | 
| job003943 | nice | No consistent way to discover arena configuration | 
| job003944 | optional | Arena allocation policy may allocate in blacklisted zone | 
| job003945 | nice | Easy to mistakenly omit to enable finalization messages | 
| job003946 | nice | Assertions missing from the manual | 
| job003947 | nice | Allocation frame protocol not safe for general pools | 
| job003949 | nice | No glossary entry for telemetry system | 
| job003950 | nice | Manual not compatible with Sphinx 1.3.1 | 
| job003951 | essential | clean-up after assertion failure may fail re-entering the MPS | 
| job003953 | optional | Definalization doesn't scale | 
| job003954 | optional | Arena allocation policy does not interact intelligently with the reserve pool | 
| job003955 | optional | No regression test for job003898 | 
| job003956 | essential | MPS doesn't build on FreeBSD 10 | 
| job003957 | optional | MutatorFaultContext interface is inconsistent and incomplete | 
| job003960 | optional | No way to get live information about the behaviour of the MPS | 
| job003961 | optional | Regular testing omits the Scheme example | 
| job003962 | optional | Regular testing omits the MMQA test suite | 
| job003963 | optional | Address-based hash table design is not stress-tested | 
| job003964 | nice | lo.h is misnamed | 
| job003965 | nice | AMS has extra implementation poolamsi.c | 
| job003966 | nice | No design for clock.h | 
| job003967 | nice | chain.h and locus.c have mis-matching names | 
| job003968 | nice | Warnings when building manual with Sphinx 1.3.5 | 
| job003969 | optional | Event clock implementation may not be reliable | 
| job003970 | optional | The MPS can't scan in parallel with the mutator | 
| job003971 | essential | No automatic feedback about overheads of "hot" versus "rash" MPS | 
| job003972 | nice | MMQA function/226.c gets stuck in the hot variety | 
| job003973 | nice | rootCreate doesn't check its mode argument | 
| job003974 | optional | StackContext and MutatorContext could be unified | 
| job003975 | essential | Poor performance due to imbalance between protection and scanning costs | 
| job003976 | optional | Can't scan parts of segments allocated by buffers | 
| job003977 | optional | We maintain redundant NMAKE files | 
| job003978 | nice | Too hard to experiment with different MPS parameters | 
| job003979 | optional | Forwarding unnecessarily lowers the read barrier | 
| job003980 | optional | Branching tool does not distinguish between private and public Git mappings | 
| job003981 | optional | MPS does not benefit from huge TLB entries | 
| job003984 | optional | Calling mps_clock frequently is bad for performance | 
| job003985 | optional | The reservoir pool is entirely bogus | 
| job003986 | optional | STATISTIC_DECL has rotted | 
| job003987 | optional | Emergency collection is not documented | 
| job003988 | optional | No continuous integration test for 32-bit MPS on Linux and OS X | 
| job003989 | optional | On Windows, pause times are measured using clock(), which is wall-clock time | 
| job003990 | nice | MPS doesn't notice if clients write scanners that don't check error codes | 
| job003991 | nice | No validation tests for client formats. | 
| job003992 | optional | MAX_SIZE means different things to MV and MVT pools | 
| job003993 | optional | Restrictions on maximum pool alignment are not checked or documented | 
| job003994 | essential | MPS_TELEMETRY_CONTROL may introduce security risks | 
| job003995 | optional | MPS doesn't support debugging APs | 
| job003997 | optional | Can't run MMQA test suite on Windows | 
| job003998 | essential | Growing an arena can allocate a chunk with no memory | 
| job003999 | optional | Manually managed address space is only returned to the operating system via a trace | 
| job004000 | optional | MPS condemns too many segments and takes too long to find them | 
| job004001 | optional | No representation of the set of generations condemned by a trace | 
| job004002 | optional | Can't implement incremental condemn | 
| job004004 | optional | mps_arena_pause_time and mps_arena_pause_time_set are not covered | 
| job004005 | nice | Destroying an automatically managed pool does not check that the arena is parked | 
| job004006 | essential | CVM postmortem debugging support is not properly integrated into the MPS | 
| job004007 | essential | Policy gets stuck when buffers exceed capacity of generation | 
| job004008 | optional | AMSSegMerge loses buffer on high segment | 
| job004009 | nice | Can't split a segment if buffer is above the split point | 
| job004010 | optional | No check that collecting a generation reduces its "new size" to zero | 
| job004011 | essential | Policy gets stuck when the live set triggers the dynamic criterion | 
| job004012 | nice | No function SegHasBuffer | 
| job004016 | optional | AMC pool may scan parts buffered segments many times | 
| job004017 | optional | MVFF is slow in the hot variety | 
| job004018 | essential | Documentation (and test cases) are wrong about mps_collections | 
| job004019 | essential | Can't handle access violation if arena is locked | 
| job004020 | nice | Running and debugging MMQA test cases is laborious | 
| job004021 | essential | Computed chunk size assertion may fail | 
| job004022 | optional | Mutator is suspended while the foundation is discovered | 
| job004023 | optional | Summary-based write barrier invariant won't cope with pre-flip scanning | 
| job004024 | nice | Accounting overheads are too high on mark & sweep pools | 
| job004025 | nice | Duplicate code between pool classes | 
| job004026 | essential | Failed shield assertions with DEEP checking | 
| job004027 | essential | Memory corruption due to multiple arenas in multiple threads | 
| job004028 | optional | fotest fails with DEEP checking | 
| job004029 | essential | mpsicv fails with DEEP checking | 
| job004030 | optional | Failed shield assertion in finalization tests with deep checking | 
| job004035 | optional | Thread roots not suitable for user-level threads | 
| job004036 | essential | Assertion failure in RootCheck with root of type RootTHREAD | 
| job004037 | essential | Compilation of apss.c fails with GCC 6.1 | 
| job004038 | nice | Hard to keep "Common assertions" up to date | 
| job004039 | nice | Mistakes and omissions in the manual | 
| job004040 | essential | Use of uninitialized variable in ProtThreadRegister on XC | 
| job004041 | essential | Assertion failure in fotest on ananll | 
| job004042 | essential | Assertion failure in apss on w3i3mv | 
| job004043 | essential | Assertion failure in apss on xci3ll | 
| job004044 | essential | MMQA function/150.c fails in hot variety on lii6ll | 
| job004045 | optional | MMQA test suite fails on FreeBSD | 
| job004046 | optional | Assertion failure in ananmv | 
| job004047 | nice | Inconvenient to run multiple MMQA testsets | 
| job004048 | optional | MMQA test cases fail on w3i6mv | 
| job004049 | essential | Allocation between whiten and reclaim/detach is not accounted as condemned | 
| job004055 | optional | Documentation for mps_root_create_area_tagged is incorrect | 
| job004056 | optional | lockEnsureGlobalLock is not thread-safe on Windows | 
| job004057 | nice | Warning pragmas are not localised around the bad cases | 
| job004061 | essential | Manual does not build with Sphinx 1.6 | 
| job004062 | optional | fork() unsupported on FreeBSD, Linux and macOS | 
| job004063 | nice | Easy to miss mps_addr_pool | 
| job004065 | optional | Scan area functions not flexible enough | 
| job004066 | nice | Thread-handling functions could do more checking | 
| job004067 | nice | Telemetry interacts poorly with fork | 
| job004068 | nice | Duplicate thread-management code | 
| job004069 | nice | macOS thread registration guard is ineffective and unnecessary | 
| job004070 | optional | LO and AWL pools fail to detect invalid exact references | 
| job004072 | optional | MRG segments needlessly set the write barrier | 
| job004073 | nice | wasMarked protocol is unnecessarily complex | 
| job004074 | optional | mps_definalize might not work | 
| job004076 | essential | MPS does not compile with GCC 7 | 
| job004077 | nice | No test cases for bogus arguments to mps_finalize | 
| job004078 | nice | Typedefs use int when unsigned would be better | 
| job004080 | nice | Telemetry output not appropriate for interactive use | 
| job004081 | nice | Event descriptions are in a mess | 
| job004082 | optional | ztfm.c does not compile with Microsoft Visual C 2015 | 
| job004083 | nice | ChainCreate calls ControlAlloc twice | 
| job004084 | optional | MMQA test function/232.c crashes | 
| job004085 | optional | MPS doesn't cooperate well with other SEGV handlers | 
| job004086 | essential | Assertion failure in amssshe | 
| job004087 | nice | GenDescCondemned should check that some bytes were condemned | 
| job004088 | nice | Can't destroy an allocation point with a reserve | 
| job004089 | nice | No smoke test coverage of mps_arena_roots_walk | 
| job004090 | optional | Walking the roots means you can't walk the formatted objects | 
| job004091 | nice | No support for saving and restoring automatically managed memory | 
| job004092 | nice | MMQA test cases fail on 32-bit platforms | 
| job004093 | optional | Predicted mortality is bogus for collection of the world | 
| job004094 | optional | Trace mortality prediction is bogus | 
| job004095 | nice | No need for two classes of MRG segment | 
| job004096 | optional | MMQA fails to handle assertion failures | 
| job004097 | optional | MMQA ignores assertions in tests with OUTPUT_SPEC | 
| job004098 | optional | Use of clock() is not fork-safe | 
| job004099 | optional | Monitor not usable for long-running processes | 
| job004100 | optional | Inconsistent linearization of event times | 
| job004101 | nice | Plain CBS doesn't work | 
| job004102 | optional | arenaFreeLandInsertSteal might pass an empty range to LandInsert | 
| job004103 | nice | No smoke test coverage of mapping failure in pagesMarkAllocated | 
| job004104 | nice | fotest fails with "arena commit limit exceeded" | 
| job004105 | optional | Time and space overheads are high | 
| job004106 | nice | mps_collections doesn't count all collections. | 
| job004107 | nice | Debugging chapter is out of date | 
| job004108 | essential | MPS does not build with Xcode 10.0 | 
| job004109 | nice | Hash table advice does not mention sets | 
| job004113 | essential | MPS does not compile with GCC 7.3 | 
| job004142 | nice | MPS sources contain links to private documents | 
| job004147 | nice | MMQA test function/167.c fails on w3i6mv | 
| job004148 | nice | MMQA relies on deprecated API mps_tramp | 
| job004149 | nice | MMQA tests conerr/60.c to conerr/68.c fail on w3i6mv | 
| job004156 | essential | MPS does not compile with GCC 8.3 | 
| job004158 | essential | Register scanning approach is not reliable | 
| job004161 | optional | tagtest fails on lii6gc | 
| job004162 | essential | MPS does not compile with Clang 6.0.0 | 
| job004163 | optional | Scheme example does not build with Clang 11 | 
| job004164 | nice | Warning from GCC | 
| job004165 | critical | MPS is to be BSD 2-clause licenced. | 
| job004166 | essential | MPS Contributing agreement requires review and update |