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 |
---|---|---|
job003499 | critical | The MPS issues list looks scary |
job004165 | critical | MPS is to be BSD 2-clause licenced. |
job000546 | essential | MPS docs say P4DTI instead of MPS |
job000602 | essential | Mac OS X 10.2 build fails because "cabs" is already defined |
job000668 | essential | Build procedure uses p4 counter change which is unsafe |
job000973 | essential | MPS doesn't compile under Mac OS X 10.3.4 |
job001155 | essential | full collects cause gigantic ramps |
job001367 | essential | MPS lacks walkthrough example code (aka "hello-world") for beginners |
job003434 | essential | Incorrect glossary link from "committed" to "mapping" |
job003469 | essential | CET can't safely make use of the top 2GiB of memory on 32-bit Windows |
job003486 | essential | mv2test failure |
job003674 | essential | Hysteresis overwhelmed by allocation |
job004019 | essential | Can't handle access violation if arena is locked |
job004027 | essential | Memory corruption due to multiple arenas in multiple threads |
job004043 | essential | Assertion failure in apss on xci3ll |
job004108 | essential | MPS does not build with Xcode 10.0 |
job004113 | essential | MPS does not compile with GCC 7.3 |
job004156 | essential | MPS does not compile with GCC 8.3 |
job004158 | essential | Register scanning approach is not reliable |
job004162 | essential | MPS does not compile with Clang 6.0.0 |
job004166 | essential | MPS Contributing agreement requires review and update |
job000537 | optional | Many design documents missing |
job000538 | optional | Project documents are poorly formatted |
job000549 | optional | Blackening an AMS segment can break |
job001092 | optional | MPS is not integrated with public cool projects. |
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 |
job001659 | optional | Culprit analysis is too hard. |
job001666 | optional | No guarantee that all weak references to an object die together. |
job001707 | optional | VM Arena never shrinks a generation zone set preferences. |
job003352 | optional | Instruction emulation not supported on OS X or x86-64 |
job003384 | optional | Collector goes mad when low on address space |
job003387 | optional | Multiple arenas can corrupt telemetry stream |
job003388 | optional | telemetry system API can corrupt telemetry stream |
job003439 | optional | MPS is too hard to use |
job003455 | optional | Frequent ramps can mess up the ramping algorithm and cause performance problems |
job003477 | optional | MPS is hard to build and debug on Windows |
job003505 | optional | MPS incurs large overhead on barrier hits |
job003513 | optional | Arena extension callbacks are undocumented |
job003523 | optional | Accessing to weak tables on 64-bit causes them to be scanned. |
job003532 | optional | MPS kit fails to install shared libraries |
job003644 | optional | Reserve/commit protocol does not cope with exceptions |
job003683 | optional | Epoch number can wrap around on 32-bit platforms |
job003755 | optional | Telemetry tools not regularly tested |
job003764 | optional | Scanning rate is way too high |
job003783 | optional | ChainCondemnAuto condemns too many generations |
job003790 | optional | Segment descriptors could be more efficiently managed |
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 |
job003815 | optional | Freeing a page never destroys a chunk |
job003832 | optional | CVM memory debugging may be redundant |
job003841 | optional | Segs are not Exposed when AMSBlacken calls amsIterate |
job003848 | optional | Access violation in gcbench on Windows |
job003921 | optional | Write barrier may be harmful to performance |
job003929 | optional | mps_arena_step uses poor estimate of collection time |
job003932 | optional | Allocation frame documentation is unclear |
job003942 | optional | Possible hang in steptest |
job003944 | optional | Arena allocation policy may allocate in blacklisted zone |
job003953 | optional | Definalization doesn't scale |
job003955 | optional | No regression test for job003898 |
job003960 | optional | No way to get live information about the behaviour of the MPS |
job003963 | optional | Address-based hash table design is not stress-tested |
job003969 | optional | Event clock implementation may not be reliable |
job003970 | optional | The MPS can't scan in parallel with the mutator |
job003974 | optional | StackContext and MutatorContext could be unified |
job003976 | optional | Can't scan parts of segments allocated by buffers |
job003977 | optional | We maintain redundant NMAKE files |
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 |
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 |
job003992 | optional | MAX_SIZE means different things to MV and MVT pools |
job003995 | optional | MPS doesn't support debugging APs |
job003999 | optional | Manually managed address space is only returned to the operating system via a trace |
job004002 | optional | Can't implement incremental condemn |
job004004 | optional | mps_arena_pause_time and mps_arena_pause_time_set are not covered |
job004008 | optional | AMSSegMerge loses buffer on high segment |
job004010 | optional | No check that collecting a generation reduces its "new size" to zero |
job004016 | optional | AMC pool may scan parts buffered segments many times |
job004022 | optional | Mutator is suspended while the foundation is discovered |
job004023 | optional | Summary-based write barrier invariant won't cope with pre-flip scanning |
job004035 | optional | Thread roots not suitable for user-level threads |
job004065 | optional | Scan area functions not flexible enough |
job004082 | optional | ztfm.c does not compile with Microsoft Visual C 2015 |
job004085 | optional | MPS doesn't cooperate well with other SEGV handlers |
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 |
job004102 | optional | arenaFreeLandInsertSteal might pass an empty range to LandInsert |
job004105 | optional | Time and space overheads are high |
job004161 | optional | tagtest fails on lii6gc |
job004163 | optional | Scheme example does not build with Clang 11 |
job000543 | nice | No MPS programmer's guide |
job000548 | nice | AMS grain colour doesn't agree with design doc |
job001357 | nice | Configura cannot use Win32 fibers |
job001369 | nice | MPS proc/release-build omits step: update main MPS index page |
job001384 | nice | MPS unclear constraints on avgSize argument to PoolMV mps_pool_create |
job001571 | nice | MPS multiple traces would not work |
job001676 | nice | AMC does not implement weakness in emergency fixing. |
job001708 | nice | VM Arena's segment placement policy could be improved. |
job001709 | nice | VM Arena uses up zones too quickly. |
job001715 | nice | MPS fails to lower barrier when hit: multiple hits cause slowdown (CONJECTURE) |
job001789 | nice | MPS auto_header format is not tested by main test files |
job003324 | nice | Manual contains little about performance of interface |
job003325 | nice | Purpose of the "class" method of an object format is unclear |
job003328 | nice | Possible improvement to reserve/commit protocol |
job003357 | nice | AWL is awkward to use |
job003374 | nice | No documentation about low memory situations |
job003448 | nice | mps_arena_vm_growth is not documented |
job003482 | nice | Test suite doesn't test error paths |
job003490 | nice | Assertion failure in MRGDescribe |
job003493 | nice | No recovery mode after assertion failure |
job003508 | nice | Little in manual about in-band headers |
job003515 | nice | Can't collect diverse MPS messages in order |
job003632 | nice | Difficult to integrate with application that has non-atomic updates |
job003653 | nice | Scanner makes no use of __builtin_prefetch |
job003660 | nice | Asssertion "ring->next != NULL" in ztfm test |
job003671 | nice | Non-moving pools don't make best use of zones |
job003719 | nice | Hard to test and debug threading behaviour |
job003758 | nice | The MPS does not build with gcc -Wconversion |
job003763 | nice | No easy way to automatically clear freed memory |
job003766 | nice | Splitting and merging complicates writing new seg classes |
job003770 | nice | MPS does not compile from C++ |
job003781 | nice | No automated performance test |
job003786 | nice | No automated test of the event subsystem |
job003789 | nice | MPS does not try collecting when out of memory |
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 |
job003795 | nice | Arena extensions are not adaptive |
job003802 | nice | Manual unclear about exact collection |
job003803 | nice | Hard to discover roots |
job003805 | nice | Bit table scanning is unoptimized |
job003816 | nice | Can't specify generation per allocation point |
job003837 | nice | No control over which objects are "large" |
job003838 | nice | MVT uses segments unnecessarily |
job003839 | nice | No benchmarks for space performance |
job003842 | nice | Missing dependencies in nmake build system |
job003847 | nice | Allocation clock inconsistency in handling of AMC segment padding |
job003852 | nice | No heap consistency checker |
job003859 | nice | Assertion failures in amcssth |
job003864 | nice | Uncollected finalization messages lead to retention |
job003881 | nice | SNC never returns memory to the arena |
job003894 | nice | Intrinsic functions not used on Windows |
job003895 | nice | No interface to logging control |
job003905 | nice | Can't build the MPS in parallel |
job003918 | nice | MVInit can fail without destroying its block pool |
job003919 | nice | No interface for getting bytes allocated |
job003924 | nice | Unnecessary allocation during arena creation |
job003928 | nice | VM arena uses two VMs when one might do |
job003941 | nice | Configuration parameters are uncommented |
job003943 | nice | No consistent way to discover arena configuration |
job003945 | nice | Easy to mistakenly omit to enable finalization messages |
job003947 | nice | Allocation frame protocol not safe for general pools |
job003950 | nice | Manual not compatible with Sphinx 1.3.1 |
job003978 | nice | Too hard to experiment with different MPS parameters |
job003990 | nice | MPS doesn't notice if clients write scanners that don't check error codes |
job003991 | nice | No validation tests for client formats. |
job004005 | nice | Destroying an automatically managed pool does not check that the arena is parked |
job004009 | nice | Can't split a segment if buffer is above the split point |
job004024 | nice | Accounting overheads are too high on mark & sweep pools |
job004025 | nice | Duplicate code between pool classes |
job004057 | nice | Warning pragmas are not localised around the bad cases |
job004066 | nice | Thread-handling functions could do more checking |
job004067 | nice | Telemetry interacts poorly with fork |
job004068 | nice | Duplicate thread-management code |
job004080 | nice | Telemetry output not appropriate for interactive use |
job004081 | nice | Event descriptions are in a mess |
job004087 | nice | GenDescCondemned should check that some bytes were condemned |
job004088 | nice | Can't destroy an allocation point with a reserve |
job004091 | nice | No support for saving and restoring automatically managed memory |
job004095 | nice | No need for two classes of MRG segment |
job004101 | nice | Plain CBS doesn't work |
job004103 | nice | No smoke test coverage of mapping failure in pagesMarkAllocated |
job004104 | nice | fotest fails with "arena commit limit exceeded" |
job004106 | nice | mps_collections doesn't count all collections. |
job004107 | nice | Debugging chapter is out of date |
job004109 | nice | Hash table advice does not mention sets |
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 |
job004164 | nice | Warning from GCC |