aboutsummaryrefslogtreecommitdiffstats
path: root/mps/code/pool.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Fix typos.Bruce Mitchener2024-11-261-1/+1
|
* Generalising mps_addr_object, arenaaddrobject, pooladdrobject for pools that ↵Richard Brooksby2023-06-071-7/+11
| | | | do not use segments.
* Checkl of addrobject method should not be commented outJonathan Holburn2023-05-161-1/+1
|
* Add implementation of mps_addr_object as implemented by jph on top of branch ↵Jonathan Holburn2023-05-161-0/+12
| | | | cet-merge-2 and subsequently became mps-2022. directly fix some whitespace according to c syntax conventions and remove boolean operation on a pointer
* Ensure that the mps builds with clang 10.Gareth Rees2021-01-101-1/+1
| | | | | | | | | | | | | | | | Clang 10 turns on -Wimplicit-int-float-conversion, and on 64-bit platforms this issues a warning that implicit conversions to double from Size and unsigned long "may lose precision". This commit adds casts to (double) for all such conversions. The loss of precision is either impossible in practice (because a double can represent all integers up to 2**53, which is about 9 petabytes, well beyond the addressing capabilities for current CPUs), or else acceptable, because we are accumulating an approximate quantity like "collection work" or "fill size" (that has to cope with loss of precision due in any case), or computing a threshold like the spare commit limit where it is acceptable for it to be somewhat approximate.
* Fix indentation of second clause of license.Gareth Rees2020-08-301-3/+3
|
* Use https: instead of http: when linking to the ravenbrook web site.Gareth Rees2020-08-301-1/+1
|
* Publish licence updates in code directory.Peter Jackson2020-06-111-39/+27
| | | | | | | | | Publish minor changes to readme and configure files in main directory. Main directory and code directory licence texts are now fully updated. Copied from Perforce Change: 196994
* Use tags with dots; regularize design references from code.Gareth Rees2018-11-291-2/+2
| | | | | | Copied from Perforce Change: 195761
* Improve handling of telemetry events on the critical path:Gareth Rees2018-10-151-3/+3
| | | | | | | | | | | 1. Being on the critical path is a property of the code location where the event is emitted, not of the event type, so indicate this using EVENT_CRITICAL macros rather than a field in the event table. 2. Compile out events on the critical path in hot varieties. 3. Remove TraceFixWhite event (redundant with TraceFixSeg). 4. No need for special handling of PoolFree event -- this are already skipped in hot varieties by dispatching directly to the pool class via PoolFreeMacro. Copied from Perforce Change: 195261
* Catch-up merge from master sources at changelevel 194022 to ↵Gareth Rees2018-09-151-169/+18
|\ | | | | | | | | | | | | | | branch/2018-06-20/monitor. Copied from Perforce Change: 195071
| * Function implementations call the macro implementations, to reduce the ↵Gareth Rees2018-07-051-1/+1
| | | | | | | | | | | | | | | | burden of keeping the functions and macros consistent. Copied from Perforce Change: 194418
| * Improve performance of mvff in hot builds by:Gareth Rees2018-07-041-12/+8
| | | | | | | | | | | | | | | | | | | | 1. Using macros to bypass PoolFree and Land* generic functions. 2. Compiling out assertions on functions on the critical paths for manual allocation and freeing. 3. Taking advantage of the fact that splay->updateNode does not change during a splay operation. Copied from Perforce Change: 194397
| * New pool method poolsegpoolgen gets the pool generation for a segment. (this ↵Gareth Rees2017-03-311-0/+12
| | | | | | | | | | | | | | | | | | allows the segment whiten and reclaim methods not to need to know the pool class.) Copied from Perforce Change: 193084 ServerID: perforce.ravenbrook.com
| * Avoid "result of 32-bit shift implicitly converted to 64 bits" warning from ↵Gareth Rees2017-03-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | visual c. Check AWL pool generation. Update design. Copied from Perforce Change: 193076 ServerID: perforce.ravenbrook.com
| * Move alignshift to pool structure allows us to eliminate duplicate code ↵Gareth Rees2017-03-311-1/+4
| | | | | | | | | | | | | | | | | | between awl and lo. Copied from Perforce Change: 193071 ServerID: perforce.ravenbrook.com
| * Check that segment classes override sets of related methods.Gareth Rees2017-03-301-7/+0
| | | | | | | | | | | | | | | | | | | | Add missing finish functions amcSegFinish, mrgLinkSegFinish, mrgRefSegFinish, sncSegFinish. Check all class constructor results. Copied from Perforce Change: 193055 ServerID: perforce.ravenbrook.com
| * Changing segnowalk to segtrivwalk avoids the need for attrfmt (now we can ↵Gareth Rees2017-03-301-4/+1
| | | | | | | | | | | | | | | | | | walk all segments). Copied from Perforce Change: 193044 ServerID: perforce.ravenbrook.com
| * Move access method from pool class to segment class.Gareth Rees2017-03-301-15/+0
| | | | | | | | | | | | | | Copied from Perforce Change: 193039 ServerID: perforce.ravenbrook.com
| * Move walk method from pool class to segment class.Gareth Rees2017-03-301-16/+3
| | | | | | | | | | | | | | Copied from Perforce Change: 193028 ServerID: perforce.ravenbrook.com
| * Move fix and fixemergency methods from pool class to segment class.Gareth Rees2017-03-301-43/+1
| | | | | | | | | | | | | | Copied from Perforce Change: 193023 ServerID: perforce.ravenbrook.com
| * Move scan method from pool class to segment class.Gareth Rees2017-03-291-27/+0
| | | | | | | | | | | | | | Copied from Perforce Change: 193012 ServerID: perforce.ravenbrook.com
| * Move reclaim method from pool class to segment class.Gareth Rees2017-03-291-21/+1
| | | | | | | | | | | | | | Copied from Perforce Change: 193007 ServerID: perforce.ravenbrook.com
| * Move whiten method from pool class to segment class.Gareth Rees2017-03-291-14/+0
| | | | | | | | | | | | | | Copied from Perforce Change: 193002 ServerID: perforce.ravenbrook.com
| * Move greyen method from pool class to segment class.Gareth Rees2017-03-291-12/+1
| | | | | | | | | | | | | | Copied from Perforce Change: 192997 ServerID: perforce.ravenbrook.com
| * Move the blacken method from the pool class to the segment class.Gareth Rees2017-03-291-11/+1
| | | | | | | | | | | | | | Copied from Perforce Change: 192994 ServerID: perforce.ravenbrook.com
* | Label the time series in the monitor.Gareth Rees2018-06-221-1/+2
|/ | | | | | | | | | In telemetry output, distinguish between labelling of (client) addresses and (MPS-internal) pointers, to avoid transgressing the distinction. Add arena grain size, class, and serial number to ArenaCreate* events. Add pool class and serial number to PoolInit event. Copied from Perforce Change: 194086
* Merge design.mps.class-interface into design.mps.pool (as suggested by pekka ↵Gareth Rees2016-10-191-1/+1
| | | | | | | | | | | | | p. pirinen on 1999-07-20). Bring pool class method descriptions up to date. Document bufferClass, bufferFill, bufferEmpty, totalSize, freeSize methods. Document generic instance methods at design.mps.protocol.method. Copied from Perforce Change: 192642 ServerID: perforce.ravenbrook.com
* Cherry-pick change 192595 from custom/cet/main, removing mps_addr_object. ↵Gareth Rees2016-10-191-19/+0
| | | | | | | | | this function failed to solve the problem of decoding the stack on 64-bit windows, because the stack may need to be decoded after an mps assertion failure, in which case the arena lock is held and mps_addr_object cannot be called. we eventually solved the problem in a different way (using mps_arena_postmortem) and mps_addr_object is no longer used. Copied from Perforce Change: 192637 ServerID: perforce.ravenbrook.com
* Remove unused pool class methods tracebegin and traceend.Gareth Rees2016-10-191-18/+0
| | | | | | | | | | Remove unused event AMCTraceEnd. The fixEmergency method must have the same type as the fix method because of how they are used. Copied from Perforce Change: 192636 ServerID: perforce.ravenbrook.com
* New modulefile prmcw3.c avoids duplication of code between prmcw3i3.c and ↵Gareth Rees2016-10-141-1/+1
| | | | | | | | | | | | | prmcw3i6.c. Implement MutatorContextCheck on Windows. Add AVERT(MutatorContext, context) in PoolAccess and other functions. Document initialization functions MutatorContextInitFault and MutatorContextInitThread and implement them on Windows. Add a union discriminator to MutatorContextStruct on Windows so that we don't accidentally try to get the stack pointer from a fault context, or the exception address from a thread context. Copied from Perforce Change: 192567 ServerID: perforce.ravenbrook.com
* Rename mutatorfaultcontext to mutatorcontext because this data structure is ↵Gareth Rees2016-10-131-2/+2
| | | | | | | | | not only used to store the context of a fault, but also to store the context of a thread that has been suspended. Copied from Perforce Change: 192523 ServerID: perforce.ravenbrook.com
* Catch-up merge from master sources to branch/2016-04-21/amswalk.Gareth Rees2016-09-051-64/+25
|\ | | | | | | | | | | | | Copied from Perforce Change: 192181 ServerID: perforce.ravenbrook.com
| * Catch-up merge from the master sources to branch/2016-04-23/inst-methods.Gareth Rees2016-09-051-14/+20
| |\ | | | | | | | | | | | | | | | | | | Copied from Perforce Change: 192176 ServerID: perforce.ravenbrook.com
| | * Add _critical to assertions on the critical path for manual-allocation-bound ↵Gareth Rees2016-09-041-14/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | programs using mvff. this brings the hot/rash ratio for "djbench mvff" down from over 150% to about 130%. Copied from Perforce Change: 192148 ServerID: perforce.ravenbrook.com
| * | Renaming class fields called "protocol" to "instclassstruct" in line with ↵Richard Brooksby2016-04-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | usual mps convention. Copied from Perforce Change: 191685 ServerID: perforce.ravenbrook.com
| * | Converting pool finish methods to specialize instfinish, and fixing up quite ↵Richard Brooksby2016-04-231-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | a few calls to use nextmethod. Copied from Perforce Change: 191605 ServerID: perforce.ravenbrook.com
| * | Converting pool describe methods to specialise instdescribe.Richard Brooksby2016-04-231-2/+1
| |/ | | | | | | | | | | | | Copied from Perforce Change: 191604 ServerID: perforce.ravenbrook.com
| * Turning pool describe methods the right way in, so that they call next-method.Richard Brooksby2016-04-231-45/+1
| | | | | | | | | | | | | | Copied from Perforce Change: 191587 ServerID: perforce.ravenbrook.com
* | Catch-up merge from master sources to branch/2016-04-21/amswalk.Gareth Rees2016-04-211-7/+6
|\ \ | |/ | | | | | | | | | | Copied from Perforce Change: 191531 ServerID: perforce.ravenbrook.com
| * Untabify.Gareth Rees2016-04-211-5/+5
|/ | | | | | | Copied from Perforce Change: 191528 ServerID: perforce.ravenbrook.com
* Catch-up merge from master sources to branch/2016-04-08/protidying.Richard Brooksby2016-04-211-3/+3
|\ | | | | | | | | | | | | Copied from Perforce Change: 191471 ServerID: perforce.ravenbrook.com
| * Removing unused (and useless) poolfix macro.Richard Brooksby2016-04-211-3/+3
| | | | | | | | | | | | | | Copied from Perforce Change: 191407 ServerID: perforce.ravenbrook.com
* | Enforcing rules about class overrides that were dropped in changelist 190837.Richard Brooksby2016-04-211-0/+20
| | | | | | | | | | | | | | Copied from Perforce Change: 191453 ServerID: perforce.ravenbrook.com
* | Avoid using "class" as an identifier, since tools like lldb parse ↵Richard Brooksby2016-04-191-48/+48
| | | | | | | | | | | | | | | | | | expressions as c++, and it can't be named. Copied from Perforce Change: 191304 ServerID: perforce.ravenbrook.com
* | Catch-up merge from master sources to branch/2016-04-08/protidying.Richard Brooksby2016-04-191-1/+0
|\ \ | |/ | | | | | | | | | | Copied from Perforce Change: 191251 ServerID: perforce.ravenbrook.com
| * Catch-up merge from master sources to branch/2014-10-11/snc.Gareth Rees2016-04-131-43/+29
| |\ | | | | | | | | | | | | | | | | | | Copied from Perforce Change: 191065 ServerID: perforce.ravenbrook.com
| * | Because of the requirement to make popped objects dead in a timely fashion, ↵Gareth Rees2014-10-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | we can only implement lightweight pops to an address in the buffer. in particular we can't support pending pops, which means that there's no need for the fields in the allocation point that support pending pops. Copied from Perforce Change: 187232 ServerID: perforce.ravenbrook.com
* | | Moving pool format argument picking into abstract pool initialization, so ↵Richard Brooksby2016-04-121-16/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | that code is shared. Copied from Perforce Change: 191004 ServerID: perforce.ravenbrook.com
* | | Automatically setting pool->fix on first fix, to avoid tricky initialization.Richard Brooksby2016-04-121-4/+0
| | | | | | | | | | | | | | | | | | | | | Copied from Perforce Change: 190986 ServerID: perforce.ravenbrook.com