1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-25 08:12:11 -07:00
Commit graph

74 commits

Author SHA1 Message Date
Gareth Rees
09d0dfc481 Document the intention behind mps_ld_isstale rather than the implementation: it captures the intention of testing whether a particular dependency is stale (even though the implementation in fact tests whether any dependency is stale). add new function mps_ls_isstale_any for expressing the intention of testing whether any dependencey is stale. the two functions have the same implementation at present, but the separation gives us the freedom to return a more precise result from mps_ld_isstale in future.
Copied from Perforce
 Change: 182816
 ServerID: perforce.ravenbrook.com
2013-06-20 16:25:08 +01:00
Gareth Rees
dbdf90119d Move the poolhasrange test to pool.c so that all frees (including internal ones) get the check.
Copied from Perforce
 Change: 182783
 ServerID: perforce.ravenbrook.com
2013-06-17 17:52:25 +01:00
Richard Brooksby
ac1e57c0ac Merging branch/2013-05-17/emergency with major rework of mvt, mvff, and cbs.
Some parts of this are still ragged, and would not normally pass review, but this is a massive improvement to the existing code.

Copied from Perforce
 Change: 182614
 ServerID: perforce.ravenbrook.com
2013-06-08 10:57:57 +01:00
Gareth Rees
c44b1e0e31 Check that all addresses in the freed range belong to the pool, not just the base of the range.
Copied from Perforce
 Change: 182602
 ServerID: perforce.ravenbrook.com
2013-06-07 13:20:20 +01:00
Richard Brooksby
e181376dd0 Merging branch/2013-05-01/keyword-arguments to pick up keyword arguments for object formats.
Copied from Perforce
 Change: 182562
 ServerID: perforce.ravenbrook.com
2013-06-06 12:55:04 +01:00
Gareth Rees
fa63d63b23 New public function mps_fmt_create_k creates an object format using the keyword argument interface.
Deprecate the format variant structures (mps_fmt_A_s, mps_fmt_B_s, mps_fmt_auto_header_s, mps_fmt_fixed_s) and the old interface (mps_fmt_create_A, mps_fmt_create_B, mps_fmt_create_auto_header, mps_fmt_create_fixed).

Copied from Perforce
 Change: 182277
 ServerID: perforce.ravenbrook.com
2013-05-28 16:10:08 +01:00
Gareth Rees
61743c36b4 On platform lii6gc, the mps needs a bunch of symbols which are not defined if the -ansi option is given to gcc. these can be enabled by defining features like _gnu_source, but all headers share a common set of features (via <feature.h>) and so all sources in the same compilation unit must turn on the same set of features. make sure this happens by turning on the features in config.h (not mpstd.h).
Remove <string.h> from mpsi.h (not needed).

Copied from Perforce
 Change: 182124
 ServerID: perforce.ravenbrook.com
2013-05-23 19:35:47 +01:00
Gareth Rees
a7c70df226 Ensure the emergency branch compiles and runs on lii6gc:
No need for <string.h> in mpsi.c (this defines a function "index" on Linux).
Need more headers in range.c so that it will compile on its own.
Need UNUSED() declarations for some variables in cbstest.c.

Copied from Perforce
 Change: 182113
 ServerID: perforce.ravenbrook.com
2013-05-23 13:42:08 +01:00
Richard Brooksby
d28c3acbea Quietly eliminating varargs to mps_alloc. they were never documented.
Copied from Perforce
 Change: 181843
 ServerID: perforce.ravenbrook.com
2013-05-16 03:07:50 +01:00
Gareth Rees
025845b4a7 Rename mps_arena_create_args to mps_arena_create_k to match the documentation, and for consistency with mps_pool_create_k and mps_ap_create_k.
Copied from Perforce
 Change: 181722
 ServerID: perforce.ravenbrook.com
2013-05-11 19:17:06 +01:00
Richard Brooksby
a9ed62e39a Converting varags on buffer and ap creation into keyword argument lists.
Copied from Perforce
 Change: 181680
 ServerID: perforce.ravenbrook.com
2013-05-09 18:25:53 +01:00
Richard Brooksby
8b430778b6 Replacing varargs passed to seginit with keyword argument list.
Copied from Perforce
 Change: 181679
 ServerID: perforce.ravenbrook.com
2013-05-09 17:34:01 +01:00
Richard Brooksby
0206eb695b Implementing configurable maximum argument list length.
Copied from Perforce
 Change: 181648
 ServerID: perforce.ravenbrook.com
2013-05-08 23:47:38 +01:00
Richard Brooksby
5751150183 Moving arena varags parsing into arena class method, similar to pools. much simpler. all tests pass.
Copied from Perforce
 Change: 181643
 ServerID: perforce.ravenbrook.com
2013-05-08 23:00:00 +01:00
Richard Brooksby
e67939cabb Pushing varargs decoding into a pool class method. much simpler.
Copied from Perforce
 Change: 181642
 ServerID: perforce.ravenbrook.com
2013-05-08 22:43:51 +01:00
Richard Brooksby
0943d80157 Adding decoding of vararg debug options to debug pool classes.
Copied from Perforce
 Change: 181639
 ServerID: perforce.ravenbrook.com
2013-05-08 17:43:01 +01:00
Richard Brooksby
fcef8c8a63 Eliminating mps_key_varargs and instead decoding deprecated varargs in one place in mpsi.c, so that each pool or other class doesn't have to deal with them.
Copied from Perforce
 Change: 181638
 ServerID: perforce.ravenbrook.com
2013-05-08 17:24:11 +01:00
Richard Brooksby
a8afd8e6f4 Converting pools to use keyword arguments, mostly, and so far inconsistently, but at least it compiles.
Copied from Perforce
 Change: 181635
 ServerID: perforce.ravenbrook.com
2013-05-08 16:21:12 +01:00
Richard Brooksby
098bf44a5e First draft of keyword arguments. mainly checking in in order to try working with git fusion on this branch.
Copied from Perforce
 Change: 181538
 ServerID: perforce.ravenbrook.com
2013-05-02 17:55:07 +01:00
Gareth Rees
8d6d8e7023 Remove "mps_alert_collection_set" from public interface and remove its implementation and test case. client programs should use the messages interface to find out what the mps is doing.
Copied from Perforce
 Change: 181119
 ServerID: perforce.ravenbrook.com
2013-03-12 14:33:27 +00:00
Gareth Rees
bfb81e3e9c New type mps_label_t for telemetry labels.
Deprecate "candy machine" interface to telemetry control.
Implement and document straightforward get/set/reset interface.
Put a TODO referencing job003387 and job003388.

Copied from Perforce
 Change: 180495
 ServerID: perforce.ravenbrook.com
2012-11-16 16:42:41 +00:00
Gareth Rees
aaa0f6c7d9 No need to include "mpsavm.h". the comment justifying it was bogus: "only for mps_space_create".
Copied from Perforce
 Change: 180093
 ServerID: perforce.ravenbrook.com
2012-10-26 09:51:12 +01:00
Gareth Rees
50acfc78fd Based on discussion with rb, reverse the sense of the comments on mps_ap_fill and mps_ap_trip.
Copied from Perforce
 Change: 179971
 ServerID: perforce.ravenbrook.com
2012-10-19 16:47:49 +01:00
Richard Brooksby
eeef8ade97 Eliminating interface puns that break the strict aliasing rule. the last of the structure puns and casts, i think.
Copied from Perforce
 Change: 179453
 ServerID: perforce.ravenbrook.com
2012-09-12 20:00:04 +01:00
Richard Brooksby
9f3c6c49bb Further elimination of type puns that violate the strict aliasing rule. this change eliminates puns on the format methods.
Copied from Perforce
 Change: 179452
 ServerID: perforce.ravenbrook.com
2012-09-12 19:45:27 +01:00
Richard Brooksby
1a103e0a5a Further reduction of interface puns that violate the strict aliasing rule, this time in thread function types and the corresponding threadstruct.
Copied from Perforce
 Change: 179451
 ServerID: perforce.ravenbrook.com
2012-09-12 19:32:37 +01:00
Richard Brooksby
c2cd61b47c Cleaning up obsolete references to mps_space_t.
Copied from Perforce
 Change: 179446
 ServerID: perforce.ravenbrook.com
2012-09-12 18:26:06 +01:00
Richard Brooksby
c88a95c2b9 Removing enternal/external type puns from segregated allocation caches.
Copied from Perforce
 Change: 179383
 ServerID: perforce.ravenbrook.com
2012-09-10 11:12:28 +01:00
Richard Brooksby
f699efff8b Fixing type puns around arenapeek and arenapoke by allowing them to take a ref * to get a ref, rather than an addr.
Copied from Perforce
 Change: 179382
 ServerID: perforce.ravenbrook.com
2012-09-10 10:33:22 +01:00
Richard Brooksby
f748ad2b28 Eliminating type puns on scan states, location dependencies, and allocation points through the mps interface.
Now that we're recommending inlining with client code and optimising with -O2 or -O3, we can't afford any bug introduced by the strict aliasing rule.

Copied from Perforce
 Change: 179322
 ServerID: perforce.ravenbrook.com
2012-09-07 12:58:57 +01:00
Richard Brooksby
4c51d72b56 Partial merge of branch/2012-07-23/cet-transform, excluding cet-specific parts.
Copied from Perforce
 Change: 179309
 ServerID: perforce.ravenbrook.com
2012-09-06 17:17:18 +01:00
Richard Brooksby
e6e620f76c Merging branch/2012-08-21/diagnostic-telemetry.
Copied from Perforce
 Change: 179289
 ServerID: perforce.ravenbrook.com
2012-09-05 23:45:31 +01:00
Richard Brooksby
f050f661f1 Checking and suppressing warnings revealed by higher level of optimisation and building from mps.c on freebsd.
Copied from Perforce
 Change: 179195
 ServerID: perforce.ravenbrook.com
2012-09-03 13:42:08 +01:00
Richard Brooksby
0070b005a1 Removing product-specific configuration, including dylan- and scriptworks-specific targets and config_prod configurations. we should support any necessary requirements generically.
It's now possible to write "cc -c mps.c" and get a sensible result.

Copied from Perforce
 Change: 179169
 ServerID: perforce.ravenbrook.com
2012-09-02 10:39:42 +01:00
Richard Brooksby
bb747e8e33 Renaming some check* macros with more accurate names, making remaining check* macros similar in function.
Copied from Perforce
 Change: 179155
 ServerID: perforce.ravenbrook.com
2012-09-01 10:18:08 +01:00
Richard Brooksby
f8cad3754b Writing events into separate buffers by kind.
Always recording events into buffers, but only writing them to the telemetry stream if they're enabled.

Copied from Perforce
 Change: 179136
 ServerID: perforce.ravenbrook.com
2012-08-31 16:09:07 +01:00
Richard Kistruck
a457f5297b Mps br/padding (fix w3i3m9 build) mpsi.c: help compiler see format is never uninitialised
Copied from Perforce
 Change: 169862
 ServerID: perforce.ravenbrook.com
2010-02-26 16:56:05 +00:00
Richard Kistruck
6a7bc18e83 mps br/padding: mps_addr_pool(), mps_addr_fmt() -- new mps functions
mps.h, mpsicv.c: implementation
 mpsicv.c: new addr_pool_test(), to test them
 w3gen.def: export them
 walkt0.c: test them within mps_arena_formatted_objects_walk().  (Also checks against values passed to stepper function, and against what we expect).
 tool/test-runner.py: add walkt0

Copied from Perforce
 Change: 169861
 ServerID: perforce.ravenbrook.com
2010-02-26 16:33:49 +00:00
Richard Kistruck
cd17a5f411 Mps br/timing: mps_alert_collection_set() -- client sets a callback
function; MPS calls it synchronously on collection start/stop 
(immediately after posting start/stop message).  The callback 
receives two ints: alertcode (start|stop; see mps.h), and whycode 
(trace->why).  Note: callback is also called for heap walk 
start/stop.
amcss.c: show start/stop alerts.

Copied from Perforce
 Change: 166703
 ServerID: perforce.ravenbrook.com
2008-11-12 15:07:04 +00:00
Richard Kistruck
2b4cf6ca29 Mps br/timing: new type "clock", internal equivalent of mps_clock_t.
Used for a field in messages.  (More uses to follow).

Copied from Perforce
 Change: 166697
 ServerID: perforce.ravenbrook.com
2008-11-11 16:57:30 +00:00
Richard Kistruck
ea707da154 Mps br/timing: mpsi_check(): check that external and internal messsage types match.
Copied from Perforce
 Change: 166696
 ServerID: perforce.ravenbrook.com
2008-11-11 16:22:26 +00:00
Richard Kistruck
63d30f9160 Mps br/timing: hack in mps_clock_t
(Should go via new Clock type in mpmtypes, mpsi_check(), etc).

Copied from Perforce
 Change: 166591
 ServerID: perforce.ravenbrook.com
2008-10-31 17:14:37 +00:00
Richard Kistruck
49d7318def Mps br/timing: (re-order file contents) arrange message functions
into a consistent order: 
 - internal (MPM) interface -- functions for message originator;
 - delivery (client) interface -- functions for recipient;
 - message methods.

Copied from Perforce
 Change: 166589
 ServerID: perforce.ravenbrook.com
2008-10-31 12:23:24 +00:00
Richard Kistruck
c67ab90237 mps br/timing: back out broken message.c & mpsi.c
Copied from Perforce
 Change: 166586
 ServerID: perforce.ravenbrook.com
2008-10-31 10:16:57 +00:00
Richard Kistruck
d1a3bc7f29 Mps br/timing: (broken) snapshot; i want to back these out and rearrange
functions into a consistent order first

Copied from Perforce
 Change: 166585
 ServerID: perforce.ravenbrook.com
2008-10-31 10:10:19 +00:00
Richard Kistruck
6e7b73614b Mps integrate gcgenmsg into master:
- new mps_message_type_gc_start() explains what triggered a collection;
  - design/message: add guide.

Copied from Perforce
 Change: 161204
 ServerID: perforce.ravenbrook.com
2006-12-12 09:56:09 +00:00
Richard Kistruck
1999a785c5 Mps gcgenmsg: 2006 copyrights
Copied from Perforce
 Change: 161202
 ServerID: perforce.ravenbrook.com
2006-12-12 08:47:10 +00:00
Richard Kistruck
908c81804f Mps _gc_start: make tracestartmessage reasons specific trigger names, not broad categories.
Make _why text more explanatory.

Copied from Perforce
 Change: 161196
 ServerID: perforce.ravenbrook.com
2006-12-11 16:17:31 +00:00
David Jones
4ddc4af6d4 Mps: adjusting list of exported functions.
Copied from Perforce
 Change: 134028
 ServerID: perforce.ravenbrook.com
2004-12-16 16:58:49 +00:00
David Jones
82d6b83ad3 Mps: implementing remember / restore protection for real.
Copied from Perforce
 Change: 64140
 ServerID: perforce.ravenbrook.com
2003-11-13 17:07:13 +00:00