1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-24 07:41:54 -07:00
Commit graph

2436 commits

Author SHA1 Message Date
Gareth Rees
00a4ade456 Move scan method from pool class to segment class.
Copied from Perforce
 Change: 193012
 ServerID: perforce.ravenbrook.com
2017-03-29 19:17:17 +01:00
Gareth Rees
db5db0a9f3 Move reclaim method from pool class to segment class.
Copied from Perforce
 Change: 193007
 ServerID: perforce.ravenbrook.com
2017-03-29 17:13:45 +01:00
Gareth Rees
07adf64ebb Move whiten method from pool class to segment class.
Copied from Perforce
 Change: 193002
 ServerID: perforce.ravenbrook.com
2017-03-29 16:22:14 +01:00
Gareth Rees
47a1715c2d Move greyen method from pool class to segment class.
Copied from Perforce
 Change: 192997
 ServerID: perforce.ravenbrook.com
2017-03-29 15:58:32 +01:00
Gareth Rees
1dc5ac742a Move the blacken method from the pool class to the segment class.
Copied from Perforce
 Change: 192994
 ServerID: perforce.ravenbrook.com
2017-03-29 15:32:17 +01:00
Gareth Rees
7c159fd2f8 Remove undocumented plinth function mps_lib_assert_fail_expr and rewrite assertp macro to call documented plinth function mps_lib_assert_fail instead.
Copied from Perforce
 Change: 192941
 ServerID: perforce.ravenbrook.com
2017-03-04 11:17:11 +00:00
Gareth Rees
f6356fc2ef Remove used epvmdefaultsubsequentsegsize.
Copied from Perforce
 Change: 192938
 ServerID: perforce.ravenbrook.com
2017-03-04 11:02:31 +00:00
Gareth Rees
38dae4d616 Documentation improvements.
Copied from Perforce
 Change: 192905
 ServerID: perforce.ravenbrook.com
2017-02-18 09:38:15 +00:00
Gareth Rees
1c5e8269a8 Fix typos.
Copied from Perforce
 Change: 192890
 ServerID: perforce.ravenbrook.com
2017-02-11 11:30:15 +00:00
Gareth Rees
cb23106273 Add "cold end" and "hot end" to the glossary index.
Copied from Perforce
 Change: 192660
 ServerID: perforce.ravenbrook.com
2016-10-20 13:52:30 +01:00
Gareth Rees
148f538510 Merge design.mps.class-interface into design.mps.pool (as suggested by pekka 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
2016-10-19 15:34:35 +01:00
Gareth Rees
79d301f528 Cherry-pick change 192595 from custom/cet/main, removing mps_addr_object. 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
2016-10-19 14:13:38 +01:00
Gareth Rees
587a3efb20 Remove unused pool class methods tracebegin and traceend.
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
2016-10-19 14:07:20 +01:00
Gareth Rees
7f18fa9802 Use nextmethod to call the superclass init method, instead of calling poolabsinit directly. regularize the error handling.
Copied from Perforce
 Change: 192631
 ServerID: perforce.ravenbrook.com
2016-10-19 11:34:04 +01:00
Gareth Rees
4a5bfd071a Bring design.mps.message up to date and move it from old to current.
Copied from Perforce
 Change: 192625
 ServerID: perforce.ravenbrook.com
2016-10-18 22:35:13 +01:00
Gareth Rees
1b6774b850 Regularize the signature comments, for the benefit of design.mps.sig.test.uniq.
Copied from Perforce
 Change: 192620
 ServerID: perforce.ravenbrook.com
2016-10-18 18:30:50 +01:00
Gareth Rees
c5869484e5 Remove design documents for unsupported operating systems sunos, solaris and osf/1 (protsu, sso1al, vmo1, and vmso).
Update thread-safety and version-library design documents and move them from old to current.

Copied from Perforce
 Change: 192617
 ServerID: perforce.ravenbrook.com
2016-10-18 18:30:09 +01:00
Gareth Rees
c6a0bd0f34 Remove unused functions landcreate and landdestroy.
Copied from Perforce
 Change: 192603
 ServerID: perforce.ravenbrook.com
2016-10-14 22:30:11 +01:00
Gareth Rees
0c2db358de Split generic mutator context module into two parts: one for generic operating system (prmcan.c) and one for generic architecture (prmcanan.c).
Copied from Perforce
 Change: 192583
 ServerID: perforce.ravenbrook.com
2016-10-14 13:25:14 +01:00
Gareth Rees
2b4ae16b87 Add discriminator to mutatorcontextstruct and implement mutatorcontextinitfault and mutatorcontextinitthread on posix/linux.
Copied from Perforce
 Change: 192577
 ServerID: perforce.ravenbrook.com
2016-10-14 12:39:50 +01:00
Gareth Rees
bcd592b96b Add discriminator to mutatorcontextstruct and implement mutatorcontextinitfault and mutatorcontextinitthread on os x.
Copied from Perforce
 Change: 192572
 ServerID: perforce.ravenbrook.com
2016-10-14 12:04:01 +01:00
Gareth Rees
d38c74a0b2 New modulefile prmcw3.c avoids duplication of code between prmcw3i3.c and 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
2016-10-14 11:53:26 +01:00
Gareth Rees
bcfbaaf3e4 Initialization and checking of mutatorcontext data structures.
New files prmcix.c and prmcxc.c avoid duplicated code.

Copied from Perforce
 Change: 192562
 ServerID: perforce.ravenbrook.com
2016-10-13 23:13:40 +01:00
Gareth Rees
d82fc68bde Use protsgix.c on linux and delete protli.c.
Copied from Perforce
 Change: 192556
 ServerID: perforce.ravenbrook.com
2016-10-13 21:24:04 +01:00
Gareth Rees
1d65260d5b In protsgix.c, construct a mutatorcontext object and pass it to arenaaccess.
Copied from Perforce
 Change: 192550
 ServerID: perforce.ravenbrook.com
2016-10-13 20:12:32 +01:00
Gareth Rees
6903784501 Fix "make testmmqa" on freebsd (the shell doesn't do {a,b,c} expansion).
Copied from Perforce
 Change: 192545
 ServerID: perforce.ravenbrook.com
2016-10-13 19:31:25 +01:00
Gareth Rees
626f880a7e Fix comment: ll = clang/llvm, not gcc.
Copied from Perforce
 Change: 192540
 ServerID: perforce.ravenbrook.com
2016-10-13 19:15:27 +01:00
Gareth Rees
fe1f07321b Fix makefile, accidentally broken by change 192512.
Copied from Perforce
 Change: 192539
 ServerID: perforce.ravenbrook.com
2016-10-13 19:13:31 +01:00
Gareth Rees
d31012f13a Implement mutatorcontextsp and mutatorcontextscan for platforms w3i3 and w3i6.
This means that ThreadScan becomes identical on these two platforms and can be moved to thw3.c.
This means that thw3.h, thw3i3.c and thw3i6.c become redundant and can be deleted.

Copied from Perforce
 Change: 192534
 ServerID: perforce.ravenbrook.com
2016-10-13 16:28:50 +01:00
Gareth Rees
91551170b1 Remove return statements that have no effect.
Copied from Perforce
 Change: 192529
 ServerID: perforce.ravenbrook.com
2016-10-13 15:17:50 +01:00
Gareth Rees
5c31ca3cab Rename the "protection mutator context" module to "mutator context" (this module handles mutator context decoding for both the protection module and the thread module).
Rename functions Prot{Can,}StepInstruction to MutatorContext{Can,}StepInstruction so that they follow the naming convention in guide.implc.naming.prefix.program.
Move mutator context declarations out of prot.h into new header prmc.h.
Correct .assume.null in a couple of places -- it's not safe for MutatorContextStepInstruction to return ResUNIMPL, instead MutatorContextCanStepInstruction should return FALSE.

Copied from Perforce
 Change: 192528
 ServerID: perforce.ravenbrook.com
2016-10-13 15:06:14 +01:00
Gareth Rees
c35e544d73 Rename mutatorfaultcontext to mutatorcontext because this data structure is 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
2016-10-13 14:23:39 +01:00
Gareth Rees
5a580660f6 Remove undocumented global mps_exception_info. now that the mps is open source, there is no difficulty in debugging the mutator context.
Copied from Perforce
 Change: 192518
 ServerID: perforce.ravenbrook.com
2016-10-13 13:45:31 +01:00
Gareth Rees
8b002dc4d5 Fix testmmqa target in the hot variety.
Copied from Perforce
 Change: 192515
 ServerID: perforce.ravenbrook.com
2016-10-13 13:31:58 +01:00
Gareth Rees
3dbe56a8b7 Rename prot{i3,i6}.c to prmc{i3,i6}.c because these files are part of the protection mutator context module.
Rename prmc{i3,i6}{fr,li,w3,xc}.c to prmc{fr,li,w3,xc}{i3,i6}.c for consistency of ordering of platform codes (OS before AR before CT).

Copied from Perforce
 Change: 192512
 ServerID: perforce.ravenbrook.com
2016-10-13 13:24:47 +01:00
Gareth Rees
904ac5beb6 Revert incorrect change to globalspreparetodestroy (see change 192365) that made the mps assert when destroying an arena with uncollected finalization messages.
Copied from Perforce
 Change: 192473
 ServerID: perforce.ravenbrook.com
2016-09-27 11:57:19 +01:00
Gareth Rees
d44d50dfd0 The mmqa runset command now takes multiple test-sets.
Copied from Perforce
 Change: 192418
 ServerID: perforce.ravenbrook.com
2016-09-14 16:24:34 +01:00
Gareth Rees
2b3d00c1ee Update following release 1.116.0.
Copied from Perforce
 Change: 192406
 ServerID: perforce.ravenbrook.com
2016-09-14 14:18:17 +01:00
Gareth Rees
4d5ae93957 Don't set stackprobedepth to 500 if config_pf_ansi is defined -- this leads to an assertion failure in span.c.
Copied from Perforce
 Change: 192393
 ServerID: perforce.ravenbrook.com
2016-09-14 13:03:27 +01:00
Gareth Rees
3b03393381 Account allocations in amc segments between whiten and reclaim as condemned, improving the accuracy of the mortality calculation and avoiding assertion failure.
Copied from Perforce
 Change: 192387
 ServerID: perforce.ravenbrook.com
2016-09-14 12:49:51 +01:00
Gareth Rees
5f86690a08 Update mps_release in preparation for forthcoming release 1.116.0.
Copied from Perforce
 Change: 192370
 ServerID: perforce.ravenbrook.com
2016-09-13 17:43:39 +01:00
Gareth Rees
4cc81bb371 Merge branch/2016-09-06/job004006.
Copied from Perforce
 Change: 192365
 ServerID: perforce.ravenbrook.com
2016-09-13 17:32:07 +01:00
Gareth Rees
63a44e3a91 Fix problems noted in review.
Copied from Perforce
 Change: 192357
 ServerID: perforce.ravenbrook.com
2016-09-13 17:19:07 +01:00
Gareth Rees
3cd7835844 Catch-up merge from custom/cet/branch/2016-09-13/job004006 to branch/2016-09-06/job004006.
Copied from Perforce
 Change: 192351
 ServerID: perforce.ravenbrook.com
2016-09-13 15:33:31 +01:00
Gareth Rees
3f13486e08 Usability improvements for mmqa:
* -i option (MPS_INCLUDE_DIR) now defaults to the code directory relative to the test harness location.
* -p option (PLATFORM) is now a six-character platform code for consistency with the rest of the MPS.
* New -v option (VARIETY) for specifying cool/hot/rash.
* -l option (MPS_LINK_OBJ) now defaults to the appropriate object file for the platform and variety.
* The object file is built automatically.
* If $Id$ of a test file is longer than 70 characters, cut characters out of the middle rather than off the end.
* Eliminate obsolete option -prod (MPS_PRODUCT).
* Support for FreeBSD.

Copied from Perforce
 Change: 192285
 ServerID: perforce.ravenbrook.com
2016-09-12 11:55:36 +01:00
Gareth Rees
8340e390a5 In order to be able to test mps_arena_busy in all build configurations, we must always take and release the arena lock, even in the single-threaded case. we gain some additional checking by doing this, at low cost (since in this build configuration the locks are generic and so just increment/decrement a count of claims).
In the CONFIG_POLL_NONE we configuration, we would still like to check that no traces are busy when leaving the arena, but since we now call ArenaLeave in this configurations, move the assertion to ShieldLeave.
In ArenaDestroy, call ArenaLeave, don't just release the lock.

Copied from Perforce
 Change: 192267
 ServerID: perforce.ravenbrook.com
2016-09-09 13:01:25 +01:00
Gareth Rees
7869db227e Improve documentation.
Copied from Perforce
 Change: 192258
 ServerID: perforce.ravenbrook.com
2016-09-09 11:18:12 +01:00
Gareth Rees
cf6c484a89 Lockisheld implementation for generic ("ansi") locks.
When CONFIG_THREAD_SINGLE is defined, use the generic lock module rather than compiling out all lock calls via lock.h. (Otherwise test cases that check LockIsHeld will fail.)

Copied from Perforce
 Change: 192254
 ServerID: perforce.ravenbrook.com
2016-09-09 11:01:04 +01:00
Gareth Rees
d8c32f0d3f New functions mps_arena_busy and mps_arena_postmortem, plus test coverage.
Copied from Perforce
 Change: 192247
 ServerID: perforce.ravenbrook.com
2016-09-08 13:55:43 +01:00
Gareth Rees
8523b6f666 Remove support for linux 2.4 and 2.5 (these versions used linuxthreads). linux is now supported from version 2.6 onwards (these versions use posix threads).
Copied from Perforce
 Change: 192240
 ServerID: perforce.ravenbrook.com
2016-09-08 11:36:02 +01:00