1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-27 09:11:48 -07:00
Commit graph

5488 commits

Author SHA1 Message Date
Gareth Rees
ff29aac90b When pushing a stack frame, the frame pointer should be buffergetinit, not bufferscanlimit. spotted by rb in review <https://info.ravenbrook.com/mail/2015/09/21/14-13-55/0/>.
Copied from Perforce
 Change: 188351
 ServerID: perforce.ravenbrook.com
2015-09-22 21:24:50 +01:00
Gareth Rees
2da2650d9e New function segbufferscanlimit replaces sncscanlimit and can also be used in amc. suggested by rb in review <https://info.ravenbrook.com/mail/2015/09/21/14-13-55/0/>
Copied from Perforce
 Change: 188350
 ServerID: perforce.ravenbrook.com
2015-09-22 21:11:58 +01:00
Gareth Rees
ad18e7dc1d Remove fixme, reviewed by rb <https://info.ravenbrook.com/mail/2015/09/21/14-13-55/0/>
Copied from Perforce
 Change: 188348
 ServerID: perforce.ravenbrook.com
2015-09-22 19:52:42 +01:00
Gareth Rees
b4955a5c9a "supports allocation frames?" is a useless property to include in the table, since it doesn't mean they do anything. replace with "manages memory using allocation frames?"
Copied from Perforce
 Change: 188337
 ServerID: perforce.ravenbrook.com
2015-09-16 20:02:23 +01:00
Gareth Rees
0eaa42ef7a Demote fixme to todo with reference to job003947.
Copied from Perforce
 Change: 188336
 ServerID: perforce.ravenbrook.com
2015-09-16 20:01:22 +01:00
Gareth Rees
9e293fa1f9 Fix typo.
Copied from Perforce
 Change: 188122
 ServerID: perforce.ravenbrook.com
2015-08-11 08:34:50 +01:00
Gareth Rees
ac8f9c6fb9 Now that all the private members of mps_ap_s are gone, there are no more "derived types" in the mps interface.
Copied from Perforce
 Change: 187680
 ServerID: perforce.ravenbrook.com
2015-02-05 23:07:35 +00:00
Gareth Rees
d701aaab91 Allocation points no longer have private fields.
Copied from Perforce
 Change: 187478
 ServerID: perforce.ravenbrook.com
2014-11-06 22:53:52 +00:00
Gareth Rees
085310c68b Documentation improvements after review.
Copied from Perforce
 Change: 187447
 ServerID: perforce.ravenbrook.com
2014-11-01 11:07:55 +00:00
Gareth Rees
b151173b07 Release notes for job003880, job003883, and job003884.
Copied from Perforce
 Change: 187310
 ServerID: perforce.ravenbrook.com
2014-10-21 10:38:36 +01:00
Gareth Rees
bf6b84879f Expose the segment being padded.
Copied from Perforce
 Change: 187237
 ServerID: perforce.ravenbrook.com
2014-10-13 13:57:02 +01:00
Gareth Rees
850c88c152 Remove framestate type.
Copied from Perforce
 Change: 187234
 ServerID: perforce.ravenbrook.com
2014-10-13 13:40:11 +01:00
Gareth Rees
da626d1bc6 Because of the requirement to make popped objects dead in a timely fashion, 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
2014-10-13 12:46:28 +01:00
Gareth Rees
f99f963e81 It's neater to pad out free segments instead of adding a field to the segment structure.
Copied from Perforce
 Change: 187231
 ServerID: perforce.ravenbrook.com
2014-10-13 11:07:16 +01:00
Gareth Rees
d06cf2cb13 Make finaltest more strict so that it catches job003884.
Fix mps_pool_free_size for AWL and LO in the hot variety.

Copied from Perforce
 Change: 187230
 ServerID: perforce.ravenbrook.com
2014-10-13 11:04:30 +01:00
Gareth Rees
021dc7b98f Update the design of the frame pop algorithm, with justification.
Copied from Perforce
 Change: 187225
 ServerID: perforce.ravenbrook.com
2014-10-12 15:24:53 +01:00
Gareth Rees
b06795251e Fix scanning/walking for snc:
Record which segments are free and don't walk them (objects in these segments are dead).
If a buffered segment has a pending pop, don't scan or walk objects beyond the address that's going to be popped to (these objects are also dead).
Don't try to do a lightweight pop to an address that's not in the segment attached to the buffer -- the segment being popped to (and any other segments on the stack in between) are now dead, and the only way to mark them as being dead is to do a heavyweight pop.

Copied from Perforce
 Change: 187224
 ServerID: perforce.ravenbrook.com
2014-10-12 15:20:57 +01:00
Gareth Rees
7622475a16 Add sncss test case to xcode project.
Copied from Perforce
 Change: 187222
 ServerID: perforce.ravenbrook.com
2014-10-12 13:58:26 +01:00
Gareth Rees
49341c0ad5 Don't set a frame pointer at the limit of a segment, as this is ambiguous: is it at the limit of the segment, or at the base of the segment that's adjacent in memory?
Copied from Perforce
 Change: 187220
 ServerID: perforce.ravenbrook.com
2014-10-12 11:58:13 +01:00
Gareth Rees
531e7cf14d Check that the found segment belongs to the right pool.
Copied from Perforce
 Change: 187219
 ServerID: perforce.ravenbrook.com
2014-10-12 11:20:55 +01:00
Gareth Rees
8bffa21ca9 New test case sncss.
Copied from Perforce
 Change: 187217
 ServerID: perforce.ravenbrook.com
2014-10-11 21:07:29 +01:00
Gareth Rees
cbdf8cc7b7 Make walkt0 test case much more stringent: it now checks the size and count of the objects found in the walk.
Add SNC to the walkt0 test case.

Copied from Perforce
 Change: 187216
 ServerID: perforce.ravenbrook.com
2014-10-11 18:06:05 +01:00
Gareth Rees
77fc63dea3 Add totalsize and freesize methods for snc.
Copied from Perforce
 Change: 187215
 ServerID: perforce.ravenbrook.com
2014-10-11 18:04:05 +01:00
Gareth Rees
1c04adf17b New function dylan_ispad determines if an object is a padding object. (this is for use by test cases, to check that pools have accounted correctly for padding objects.)
Copied from Perforce
 Change: 187214
 ServerID: perforce.ravenbrook.com
2014-10-11 17:56:27 +01:00
Gareth Rees
a40ab9cb59 Branching master to branch/2014-10-11/snc.
Copied from Perforce
 Change: 187210
 ServerID: perforce.ravenbrook.com
2014-10-11 13:38:51 +01:00
Gareth Rees
c76b658f04 Link snc in the file-at-a-time builds, so that they match the mps.c builds.
Copied from Perforce
 Change: 187208
 ServerID: perforce.ravenbrook.com
2014-10-11 12:08:24 +01:00
Gareth Rees
d2b4f1992f Turn off the spare memory on the mvff pool so that it returns freed memory to the arena immediately.
Free the initial allocations so that the result determination is accurate.

Copied from Perforce
 Change: 187206
 ServerID: perforce.ravenbrook.com
2014-10-11 00:57:28 +01:00
Gareth Rees
4b52294773 Specifying assertcond rather than assertline is likely to be more robust against code changes.
Copied from Perforce
 Change: 187203
 ServerID: perforce.ravenbrook.com
2014-10-10 22:55:48 +01:00
Gareth Rees
fbf748a1b7 Need to take spare committed memory into account when checking that memory usage hasn't gone up after a collection.
Copied from Perforce
 Change: 187202
 ServerID: perforce.ravenbrook.com
2014-10-10 22:43:07 +01:00
Gareth Rees
5029137077 In function/45.c, read from ambig[i] to prevent the compiler from optimizing away the array and so allowing p[i] to die.
In function/12.c, add a garbage collection to check that the allocation point protocol is being followed. Ensure there's an ambiguous reference to reserved objects before committin them.

Copied from Perforce
 Change: 187200
 ServerID: perforce.ravenbrook.com
2014-10-10 22:14:22 +01:00
Gareth Rees
4d06bd8f4c Use .function for the tag here, because docutils doesn't turn .f into a link.
Copied from Perforce
 Change: 187198
 ServerID: perforce.ravenbrook.com
2014-10-10 19:37:35 +01:00
Gareth Rees
e3d0ea57cc Job003495 is fixed, so mmqa test function/171.c now passes.
Reduce workload in function/171.c by a factor of 10 so that it completes in a reasonable amount of time.

Copied from Perforce
 Change: 187194
 ServerID: perforce.ravenbrook.com
2014-10-10 17:35:59 +01:00
Gareth Rees
3618ba4856 Job003739 is fixed, so mmqa test function/51.c passes.
Copied from Perforce
 Change: 187192
 ServerID: perforce.ravenbrook.com
2014-10-10 17:21:36 +01:00
Gareth Rees
bff6ac8fea There's no such type as mps_count_t, so don't refer to it in the documentation!
Copied from Perforce
 Change: 187191
 ServerID: perforce.ravenbrook.com
2014-10-10 17:17:38 +01:00
Gareth Rees
2803e7fbe9 Cast arguments to the correct type to avoid them being decoded incorrectly by the varargs interface.
Copied from Perforce
 Change: 187190
 ServerID: perforce.ravenbrook.com
2014-10-10 17:14:09 +01:00
Gareth Rees
608d46f90d Make mmqa test suite compile and run on linux (specifically lii6ll).
Avoid compiler warnings about unused variables and bad casts.

Copied from Perforce
 Change: 187188
 ServerID: perforce.ravenbrook.com
2014-10-10 16:58:01 +01:00
Gareth Rees
00cd44935e It's better to run from test directory -- otherwise testsets will have to be rewritten.
Copied from Perforce
 Change: 187187
 ServerID: perforce.ravenbrook.com
2014-10-10 16:56:34 +01:00
Gareth Rees
3430fc8e10 Explain how to run the mmqa test suite on any unix.
Remove unused variables and avoid pointer->int conversions, so that the MMQA tests will run on platform lii6gc.

Copied from Perforce
 Change: 187185
 ServerID: perforce.ravenbrook.com
2014-10-10 15:32:30 +01:00
Gareth Rees
d1d3b81d2b Update the record of passing test cases.
Copied from Perforce
 Change: 187183
 ServerID: perforce.ravenbrook.com
2014-10-10 14:07:13 +01:00
Gareth Rees
8f1fc676d4 Fix mmqa test function/136.c:
* Turn off the spare memory on the MVFF pool so that it returns freed memory to the arena immediately.
* Allocate something in the MV pool initially so that the span and block pools have some capacity.
* Stop the test if there isn't room in the MVFF to allocate 2 big blocks.
* Change the test success criterion so that it passes on 64-bit.

Copied from Perforce
 Change: 187182
 ServerID: perforce.ravenbrook.com
2014-10-10 14:04:41 +01:00
Gareth Rees
5ef6fc2ea4 It's now safe to allocate large objects in mvff pools.
Copied from Perforce
 Change: 187180
 ServerID: perforce.ravenbrook.com
2014-10-10 12:43:20 +01:00
Gareth Rees
665ab2f848 Don't talk about "segments" in the pool documentation (this is a detail of the implementation, and may change).
The restriction that "buffered allocation can't allocate across segment boundaries" no longer affects MVFF as the pool no longer uses segments.

Copied from Perforce
 Change: 187179
 ServerID: perforce.ravenbrook.com
2014-10-10 12:42:29 +01:00
Gareth Rees
872169b031 Turn off the spare memory on the mvff pool so that it returns freed memory to the arena immediately.
Copied from Perforce
 Change: 187177
 ServerID: perforce.ravenbrook.com
2014-10-10 12:30:17 +01:00
Gareth Rees
fa19712098 Turn off the hysteresis on the mvff pool so that we are testing the arena hysteresis only.
Copied from Perforce
 Change: 187175
 ServerID: perforce.ravenbrook.com
2014-10-10 12:08:12 +01:00
Gareth Rees
3516d037b1 Fix the definition of mps_key_spare_field so that you can set this keyword argument when creating an mvff pool. add test cases that use this feature.
Copied from Perforce
 Change: 187174
 ServerID: perforce.ravenbrook.com
2014-10-10 12:05:23 +01:00
Gareth Rees
cbe81bf0de Remove call to deprecated macro mps_args_done.
Copied from Perforce
 Change: 187171
 ServerID: perforce.ravenbrook.com
2014-10-10 11:21:22 +01:00
Gareth Rees
e08c40c014 Add note that the mps does not throw or catch exceptions, as suggested by rb <https://info.ravenbrook.com/mail/2014/10/09/15-07-32/0/>. gloss "freestanding" and "hosted" to help explain why.
Copied from Perforce
 Change: 187169
 ServerID: perforce.ravenbrook.com
2014-10-10 10:52:44 +01:00
Gareth Rees
f7f4e4a7f0 If you try to create a client arena that's too small for the full complement of zones, return mps_res_memory instead of asserting.
If you try to create a virtual memory arena that's too small for the full complement of zones, round up the size to the minimum instead of asserting.

Copied from Perforce
 Change: 187164
 ServerID: perforce.ravenbrook.com
2014-10-08 22:16:56 +01:00
Gareth Rees
fa29a3a5e0 Amc now asserts that references (unless ambiguous) are aligned to the pool alignment.
Copied from Perforce
 Change: 187162
 ServerID: perforce.ravenbrook.com
2014-10-08 21:13:34 +01:00
Gareth Rees
5f35b7f792 Use the method suffix only for methods in classes; use visitor or function for other kinds of functions.
New document guide.impl.c.naming sets out the rules for naming.

Copied from Perforce
 Change: 187159
 ServerID: perforce.ravenbrook.com
2014-10-07 23:48:55 +01:00