1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-24 22:40:51 -08:00
Commit graph

202 commits

Author SHA1 Message Date
Richard Brooksby
07a1290f3e Eliminating closure_size from area scanners and root registration functions, as it isn't all that useful.
Copied from Perforce
 Change: 189491
 ServerID: perforce.ravenbrook.com
2016-03-01 15:59:06 +00:00
Richard Brooksby
998a11b45a Catch-up merge from master sources to branch/2015-09-04/stack.
Copied from Perforce
 Change: 189370
 ServerID: perforce.ravenbrook.com
2016-02-27 00:54:00 +00:00
Richard Brooksby
6a15535df6 Removing unused function arenascannable.
Reinstate when needed. See <https://info.ravenbrook.com/mail/2016/02/17/13-05-54/0/>.

Copied from Perforce
 Change: 189292
 ServerID: perforce.ravenbrook.com
2016-02-25 17:09:09 +00:00
Richard Brooksby
8a4e5ab290 Moving scanning accounting to tracescanarea and creating analogous formatscan.
Copied from Perforce
 Change: 189325
 ServerID: perforce.ravenbrook.com
2016-02-19 12:11:50 +00:00
Richard Brooksby
266228be7c Renaming "bottom" and "top" of stack to "cold" and "hot" end, to prevent confusion about descending stacks.
Correcting design documentation relating to stacks.
Referencing hot and cold end concepts from glossary entry for control stacks.

Copied from Perforce
 Change: 189320
 ServerID: perforce.ravenbrook.com
2016-02-18 23:49:58 +00:00
Richard Brooksby
0f8bee3762 Detabifying code and restructuredtext files.
Copied from Perforce
 Change: 189309
 ServerID: perforce.ravenbrook.com
2016-02-18 19:58:13 +00:00
Richard Brooksby
c015827c36 Catch-up merge from master sources.
Copied from Perforce
 Change: 189265
 ServerID: perforce.ravenbrook.com
2016-02-17 11:04:51 +00:00
Richard Brooksby
8140fab4dd Creating general mps_root_create_thread and renaming mps_root_create_stack as a specialised version of it, mps_root_create_thread_tagged.
Copied from Perforce
 Change: 189198
 ServerID: perforce.ravenbrook.com
2016-02-15 19:12:59 +00:00
Richard Brooksby
a759889048 Reimplementing mps_root_create_reg in terms of rootcreatethreadtagged and abolishing rootreg. yay!
Copied from Perforce
 Change: 189197
 ServerID: perforce.ravenbrook.com
2016-02-15 18:19:30 +00:00
Richard Brooksby
53ce574bfe Renaming rootreg_masked to rootthread_tagged with corresponding changes to other identifiers.
Copied from Perforce
 Change: 189196
 ServerID: perforce.ravenbrook.com
2016-02-15 17:57:06 +00:00
Richard Brooksby
2ad27f73b1 Lifting stack and register area scanner into mps interface to allow generalisation of stack format.
Copied from Perforce
 Change: 189195
 ServerID: perforce.ravenbrook.com
2016-02-15 17:46:45 +00:00
Richard Brooksby
b04dbd8677 Generalising roottable to rootarea and using it to implement mps_root_create_table_* and mps_root_create_area.
Copied from Perforce
 Change: 189193
 ServerID: perforce.ravenbrook.com
2016-02-15 17:30:45 +00:00
Richard Brooksby
3b33c0808b Generalising roottable_masked to rootarea_tagged and lifting scanner assumption.
Copied from Perforce
 Change: 189192
 ServerID: perforce.ravenbrook.com
2016-02-15 16:56:42 +00:00
Richard Brooksby
16bde84a68 Generalising tracescanarea to be a checking wrapper for all area scanners.
Copied from Perforce
 Change: 189190
 ServerID: perforce.ravenbrook.com
2016-02-15 15:44:57 +00:00
Richard Brooksby
c8fed5bb8d Renaming tracescanareamasked to tracescanareatagged
Copied from Perforce
 Change: 189133
 ServerID: perforce.ravenbrook.com
2016-02-11 20:39:57 +00:00
Richard Brooksby
9c0c184728 Adding mps_root_create_table_tagged as an interface to more generally tagged roots.
Deprecating the less general mps_root_create_table_masked.

Copied from Perforce
 Change: 189131
 ServerID: perforce.ravenbrook.com
2016-02-11 20:28:39 +00:00
Richard Brooksby
a0e001c000 Catch up merge from master sources.
Copied from Perforce
 Change: 189130
 ServerID: perforce.ravenbrook.com
2016-02-10 21:10:25 +00:00
Richard Brooksby
eac348d664 Catch-up merge from masters.
Copied from Perforce
 Change: 188921
 ServerID: perforce.ravenbrook.com
2016-01-19 16:22:39 +00:00
Gareth Rees
0a927608dc Policycollectiontime is now local to policy.c.
Improve comment for policyCondemnChain (document the mortalityReturn parameter to; fix design reference).

Copied from Perforce
 Change: 188240
 ServerID: perforce.ravenbrook.com
2015-09-04 16:02:46 +01:00
Gareth Rees
2514663693 Move policy for mps_arena_step to policy module.
Copied from Perforce
 Change: 188238
 ServerID: perforce.ravenbrook.com
2015-09-04 15:25:37 +01:00
Gareth Rees
881c594458 Correct type for rootcreateregmasked.
Copied from Perforce
 Change: 188233
 ServerID: perforce.ravenbrook.com
2015-09-04 12:28:49 +01:00
Gareth Rees
edf30c06b4 New function mps_root_create_reg_masked applies a mask and pattern test to all words in registers and on the stack when scanning them. this supports tagged references in these locations.
Consistently use the type "Word *" for pointers into the stack or into saved registers.
Remove TraceScanAreaTagged.

Copied from Perforce
 Change: 188231
 ServerID: perforce.ravenbrook.com
2015-09-04 12:22:03 +01:00
Gareth Rees
9a303f6935 Refactor tracequantum into tracepoll and traceadvance. (tracequantum was formerly called from arenapark, but that doesn't care about the quantum size.)
Copied from Perforce
 Change: 188198
 ServerID: perforce.ravenbrook.com
2015-09-02 10:50:00 +01:00
Gareth Rees
9dd49aa48e New functions policypoll and policypollagain.
Update design.strategy.

Copied from Perforce
 Change: 188165
 ServerID: perforce.ravenbrook.com
2015-08-25 13:27:17 +01:00
Gareth Rees
d506458eea New function policycollectiontime estimates the time needed to collect the arena. mysterious constants are given names and moved to config.h.
Copied from Perforce
 Change: 188160
 ServerID: perforce.ravenbrook.com
2015-08-21 15:27:14 +01:00
Gareth Rees
eee7ccb60c New function policystarttrace decides whether to start a trace.
Copied from Perforce
 Change: 188154
 ServerID: perforce.ravenbrook.com
2015-08-20 16:57:33 +01:00
Gareth Rees
b3056139c8 New module policy.c.
Copied from Perforce
 Change: 188152
 ServerID: perforce.ravenbrook.com
2015-08-19 15:03:47 +01:00
Gareth Rees
6359b0ed98 Merge branch/2014-09-29/reserved into the master sources.
Copied from Perforce
 Change: 188090
 ServerID: perforce.ravenbrook.com
2015-08-07 16:33:43 +01:00
Gareth Rees
5315baa846 The "remember" parameters to arenaexposeremember is a boolean, not an integer.
Copied from Perforce
 Change: 187467
 ServerID: perforce.ravenbrook.com
2014-11-06 12:03:18 +00:00
Gareth Rees
abbdcfc59f Assert if a thread dies while registered, but make a best effort to continue working after the assertion, by marking the thread as dead and moving it to a ring of dead threads.
Copied from Perforce
 Change: 187393
 ServerID: perforce.ravenbrook.com
2014-10-25 17:41:42 +01:00
Gareth Rees
d5ea0fb20b Put the protection interface in prot.h, and the stack probe interface into sp.h, to make it easier to write the "porting" chapter of the manual.
Copied from Perforce
 Change: 187316
 ServerID: perforce.ravenbrook.com
2014-10-21 16:44:19 +01:00
Gareth Rees
00229b0479 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
Gareth Rees
53c5301a9e Instead of iterating over the chunks to compute the total reserved address space, maintain a running total in arenachunkinsert and (new function) arenachunkremoved.
New arena class method chunkReserved handles the class-specific computation of the reserved size of a chunk.

Copied from Perforce
 Change: 187089
 ServerID: perforce.ravenbrook.com
2014-09-29 22:50:46 +01:00
Gareth Rees
1f517274f3 Cast all arguments to the writef function to make it easy to check that none of the necessary casts have been omitted.
New macro WriteFYesNo makes it easy to describe a Boolean.
Describe more structure elements for ABQ, Arena, Buffer, Format, MFS, Root, Seg.

Copied from Perforce
 Change: 187063
 ServerID: perforce.ravenbrook.com
2014-09-27 12:49:30 +01:00
Gareth Rees
7c2e271e60 Rename segpref to locuspref -- this structure describes preferences for the placement of any kind of address, not just segments.
Add LocusPrefDescribe and use it in MVFFDescribe.

Copied from Perforce
 Change: 187061
 ServerID: perforce.ravenbrook.com
2014-09-27 11:27:00 +01:00
Gareth Rees
b1b8c84c0a Store the vm descriptor in the vmarena and vmchunk structures.
Copied from Perforce
 Change: 186624
 ServerID: perforce.ravenbrook.com
2014-06-14 15:12:26 +01:00
Gareth Rees
c975f64296 Improve the diff and make the vm implementations more closely parallel.
Copied from Perforce
 Change: 186591
 ServerID: perforce.ravenbrook.com
2014-06-13 17:59:37 +01:00
Gareth Rees
831f551eec Now that we can call vmpagesize without having a vm to hand, the implementation of vmcreate can be simpler: in particular, the grain size can already be correctly rounded up.
Copied from Perforce
 Change: 186590
 ServerID: perforce.ravenbrook.com
2014-06-13 17:39:58 +01:00
Gareth Rees
88c85abc0e Vmpagesize now takes no arguments -- this avoids suggesting (incorrectly) that it might return a different value for each vm.
New function ProtGranularity returns the protection granularity of the operating system. (On all currently supported operating systems this is the same as the granularity of memory mapping returned by VMPageSuze, but it's important to separate these concepts.) MPMCheck asserts that the granularity of memory mapping is a multiple of the granularity of protection.
Client arena supports MPS_KEY_ARENA_GRAIN_SIZE.
Some of the test cases set the arena grain size.

Copied from Perforce
 Change: 186588
 ServerID: perforce.ravenbrook.com
2014-06-13 17:19:23 +01:00
Gareth Rees
a7c6cd3600 Catch-up merge from master sources @186573 to branch/2014-05-28/align.
Copied from Perforce
 Change: 186574
 ServerID: perforce.ravenbrook.com
2014-06-13 15:37:20 +01:00
Gareth Rees
a13a1aa1df Catch-up merge from master sources @186564 to branch/2014-06-11/grain.
Copied from Perforce
 Change: 186572
 ServerID: perforce.ravenbrook.com
2014-06-13 15:30:46 +01:00
Gareth Rees
1dd8a0fa26 Merge branch/2014-06-11/grain into branch/2014-05-28/align.
Copied from Perforce
 Change: 186561
 ServerID: perforce.ravenbrook.com
2014-06-13 13:35:14 +01:00
Gareth Rees
100405cac2 Restore the chunk ring.
Copied from Perforce
 Change: 186558
 ServerID: perforce.ravenbrook.com
2014-06-13 12:31:47 +01:00
Gareth Rees
8c9de5f775 New function arenachunktreetraverse ensures that calls to chunkofaddr are reliably detected.
Copied from Perforce
 Change: 186550
 ServerID: perforce.ravenbrook.com
2014-06-12 20:28:50 +01:00
Gareth Rees
08f341fcc9 Catch-up merge from master sources @186540 to branch/2014-05-17/chunk-tree.
Copied from Perforce
 Change: 186546
 ServerID: perforce.ravenbrook.com
2014-06-12 17:55:16 +01:00
Gareth Rees
5aba28db8d Rename vmgrainsize to vmpagesize (because it is in fact the operating system page size) and to avoid confusion with the arena grain size.
Copied from Perforce
 Change: 186543
 ServerID: perforce.ravenbrook.com
2014-06-12 17:18:50 +01:00
Gareth Rees
5e11b7034a Catch-up merge from master sources @186536 to branch/2014-05-15/size.
Copied from Perforce
 Change: 186539
 ServerID: perforce.ravenbrook.com
2014-06-12 16:46:36 +01:00
Gareth Rees
9268a0adc8 Catch-up merge from master sources @186528 to branch/2014-04-15/mvffnoseg.
Copied from Perforce
 Change: 186534
 ServerID: perforce.ravenbrook.com
2014-06-12 15:59:39 +01:00
Gareth Rees
cb629746ea Catch-up merge from masters sources @186519 to branch/2014-04-17/describe.
Copied from Perforce
 Change: 186526
 ServerID: perforce.ravenbrook.com
2014-06-12 13:45:22 +01:00
Gareth Rees
d897119121 Rename grainsizecheck as arenagrainsizecheck.
Copied from Perforce
 Change: 186506
 ServerID: perforce.ravenbrook.com
2014-06-11 17:33:10 +01:00