Gareth Rees
e88bcc5184
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
Richard Brooksby
56645cdc0c
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
509ebcb215
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
982dc78f06
Merging branch/2013-06-05/diag to eliminate the "diag" system. hurrah!
...
Copied from Perforce
Change: 182575
ServerID: perforce.ravenbrook.com
2013-06-06 14:56:47 +01:00
Gareth Rees
1c4ff669ac
Remove diag facility.
...
Copied from Perforce
Change: 182553
ServerID: perforce.ravenbrook.com
2013-06-05 18:35:40 +01:00
Gareth Rees
934ae05ca3
Rename the enumeration cbsfinddelete to finddelete in anticipation of it being shared between cbs and new freelist module.
...
Since ABQDisposition enumeration only has two values, it's better to use Bool.
Copied from Perforce
Change: 182347
ServerID: perforce.ravenbrook.com
2013-05-31 00:09:33 +01:00
Gareth Rees
aaf6e8b13b
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
Richard Brooksby
818a65f36f
Replacing duplicate *trivvarargs methods with a single implementation in args.c.
...
Copied from Perforce
Change: 181851
ServerID: perforce.ravenbrook.com
2013-05-16 13:10:01 +01:00
Richard Brooksby
bb02f55b62
Making clear the size of the array of args passed to varargs conversion methods.
...
Copied from Perforce
Change: 181845
ServerID: perforce.ravenbrook.com
2013-05-16 03:12:11 +01:00
Richard Brooksby
93fee75c50
Eliminating unnecessary use of varargs in segment split and merge functions.
...
Copied from Perforce
Change: 181842
ServerID: perforce.ravenbrook.com
2013-05-16 03:02:20 +01:00
Richard Brooksby
688b5bf73d
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
af44d1241f
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
13095f52bf
Moving keyword argument declarations to their own header, since they're largely separable from the mps.
...
Copied from Perforce
Change: 181646
ServerID: perforce.ravenbrook.com
2013-05-08 23:09:35 +01:00
Richard Brooksby
71b7e4f70a
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
c781e594a8
Adding keyword argument checking for format and chain.
...
Copied from Perforce
Change: 181637
ServerID: perforce.ravenbrook.com
2013-05-08 16:29:12 +01:00
Richard Brooksby
07f446a450
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
c0a8608bf7
Basically working keyword arguments, though vmparam is unsatisfactory.
...
Copied from Perforce
Change: 181545
ServerID: perforce.ravenbrook.com
2013-05-03 17:20:35 +01:00
Richard Brooksby
1bc62b27ef
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
Richard Brooksby
513aabb046
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
9248316fb6
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
75837d8376
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
5a604a2f51
Fixing bugs introduced by type puns passed through scanning methods, discovered by offsetting mps_ss_s from the beginning of scanstatestruct.
...
Adding a pseudo-target "find-puns" which, on FreeBSD mostly, prints useful warnings about strict aliasing rule violations.
Fixing more strict aliasing rule violations found by the above.
Copied from Perforce
Change: 179358
ServerID: perforce.ravenbrook.com
2012-09-07 23:48:14 +01:00
Richard Brooksby
78d5f049f0
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
858e4ac0ac
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
27c6706791
Merging branch/2012-08-21/diagnostic-telemetry.
...
Copied from Perforce
Change: 179289
ServerID: perforce.ravenbrook.com
2012-09-05 23:45:31 +01:00
David Lovemore
886e96ba8e
Fix weak band assert. we now trace weak segments as weak on a fault if we are in the weak band.
...
Copied from Perforce
Change: 179210
ServerID: perforce.ravenbrook.com
2012-09-03 17:05:51 +01:00
Richard Brooksby
c4c3595fb8
Now there is no measurable performance penalty for events, they're on in all varieties (except we).
...
Copied from Perforce
Change: 179137
ServerID: perforce.ravenbrook.com
2012-08-31 16:42:17 +01:00
David Lovemore
ed8cd9432d
In tracescanareatagged use the alignments of pools in the condemned set to determine mask.
...
Copied from Perforce
Change: 179117
ServerID: perforce.ravenbrook.com
2012-08-30 13:48:41 +01:00
Richard Brooksby
15de8407ce
Moving linux-specific parts out of thli.c in order to unify with freebsd.
...
Copied from Perforce
Change: 178925
ServerID: perforce.ravenbrook.com
2012-08-14 17:05:11 +01:00
Richard Brooksby
3893cede56
Catching up with masters, to bring in work from branch/2012-03-27/longest.
...
Copied from Perforce
Change: 178073
ServerID: perforce.ravenbrook.com
2012-05-01 16:29:25 +01:00
Richard Brooksby
80fe60df02
Added w3i6mv platform and fixed types of arguments to windows api functions for 64-bit.
...
Copied from Perforce
Change: 178063
ServerID: perforce.ravenbrook.com
2012-04-30 14:33:00 +01:00
Richard Brooksby
ecb147b98f
Consistently passing closure sizes as size_t and not casting back and forth to size or anything else.
...
Copied from Perforce
Change: 177817
ServerID: perforce.ravenbrook.com
2012-03-27 18:12:52 +01:00
Richard Kistruck
0e6aecdbb8
mps br/vmem: simple-chunk-return:
...
arenavm.c -- move chunk-return into new function "VMCompact".
(also, in VMArenaFinish, null out arena->primary in VMArenaFinish, so it is not left dangling).
arena.c, arenavm.c, mpm.h, mpmst.h, mpmtypes.h:
arena->class->compact: ArenaCompact, ArenaTrivCompact, VMCompact
trace.c -- traceReclaim calls ArenaCompact!
Copied from Perforce
Change: 170095
ServerID: perforce.ravenbrook.com
2010-03-23 01:49:17 +00:00
Richard Kistruck
bf80a3a11d
Mps br/padding: new pooltraceendmethod: do end-of-trace work
...
Tracer calls PoolTraceEnd() when the trace is TraceFINISHED.
AbstractPoolClass uses PoolTrivTraceEnd -- a NOOP. [mpm.h, mpmst.h, mpmtypes.h, pool.c, poolabs.c]
AMC overrides with AMCTraceEnd, to emit diagnostic on how well the trace went! [poolamc.c]
Copied from Perforce
Change: 168478
ServerID: perforce.ravenbrook.com
2009-08-20 17:44:16 +01:00
Richard Kistruck
ac7a39432c
Mps br/timing traceidmessages: create them at mps_arena_create time,
...
re-create them immediately after a trace sends its last message.
Store them, one per TraceId, in ArenaStruct. Cope correctly if they
cannot be created (ControlAlloc fails). Destroy them correctly on
mps_arena_destroy. See job001989 and design/message-gc#lifecycle
(not yet written).
Copied from Perforce
Change: 166918
ServerID: perforce.ravenbrook.com
2008-12-11 16:06:14 +00:00
Richard Kistruck
f5e8b732ad
mps br/timing traceanc: (tidying only) improve comments and variable
...
names.
Copied from Perforce
Change: 166915
ServerID: perforce.ravenbrook.com
2008-12-10 10:32:29 +00:00
Richard Kistruck
72dae9faed
Mps br/timing traceanc: trace.c needs tracestartwhytostring
...
(for .variety.di only, as it happens)
Copied from Perforce
Change: 166912
ServerID: perforce.ravenbrook.com
2008-12-09 17:18:09 +00:00
Richard Kistruck
77ea63625a
Mps br/timing: traceanc.c -- all this ancillary stuff was making
...
trace.c very cluttered. Put it here instead.
Copied from Perforce
Change: 166911
ServerID: perforce.ravenbrook.com
2008-12-09 16:55:22 +00:00
Richard Kistruck
c2d5420ea6
Mps br/timing: new clocknow() wrapper for mps_clock(), clockspersec();
...
use Clock in arena step (not Word).
Copied from Perforce
Change: 166701
ServerID: perforce.ravenbrook.com
2008-11-12 09:26:48 +00:00
Richard Kistruck
38d28de534
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
4e270b68fa
mps br/timing: tabs in header files. (p4 diff -db -- confirms whitespace changes only).
...
Copied from Perforce
Change: 166674
ServerID: perforce.ravenbrook.com
2008-11-07 13:58:56 +00:00
Richard Kistruck
62fb0f32ae
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
f5c3940658
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
2b645131f2
Mps br/auto_header: rename controlpooldescribe as controldescribe; aaagh tabs
...
Copied from Perforce
Change: 164504
ServerID: perforce.ravenbrook.com
2008-03-26 16:53:34 +00:00
Richard Kistruck
0a986fc206
Mps br/auto_header: add arenadestroy diag: calls controlpooldescribe
...
just before finishing the control pool. This clearly shows the
job001784 leak, and allows some checking for other such leaks.
Copied from Perforce
Change: 164385
ServerID: perforce.ravenbrook.com
2008-03-12 08:29:46 +00:00
Richard Kistruck
598dc971a0
Mps br/auto_header:
...
Add diagnostics to show ControlPool leak when deallocating nailboards with auto_header format.
See logfiles added in this changelist.
Copied from Perforce
Change: 164383
ServerID: perforce.ravenbrook.com
2008-03-11 19:53:05 +00:00
Richard Kistruck
d9d4f267df
Mps br/diagtag: give helpful message if diag_end tag does not match.
...
(tidyup) Move RulesGlobal to head of file; write instructions.
(tidyup) Move StringEqual into mpm.c (with StringLength); add AVER.
(cosmetic) Correct case of names: module-interface names begin
uppercase; local names begin lowercase. Tags should be C identifiers.
Copied from Perforce
Change: 163112
ServerID: perforce.ravenbrook.com
2007-08-13 16:54:40 +01:00
Richard Kistruck
55b74f2590
Mps br/diagtag: writef (mpm.c) uses new stream_fputc/s(), but still use mps_lib_file*
...
and mps_lib_EOF.
diag.c:
Diag is a buffer capable of holding a diagnostic.
FilterStream can buffer and filter diagnostics.
Rule is a selection rule for filtering diagnostics.
FilterOutput does output (but does not apply the rules yet).
DiagStream can be switched to either FilterStream() or mps_lib_stdout().
Copied from Perforce
Change: 163067
ServerID: perforce.ravenbrook.com
2007-08-09 12:11:29 +01:00
Richard Kistruck
5cbd84f9b4
Mps br/diagtag:
...
diag.c: support tagging of diagnostics, and avoid having to
say DIAG_STREAM every time, with new macros:
DIAG_SINGLEF, DIAG_FIRSTF, DIAG_MOREF, DIAG_END.
mpm.c: new WriteF_firstformat_v required by DIAG_MOREF.
Copied from Perforce
Change: 163059
ServerID: perforce.ravenbrook.com
2007-08-07 19:09:43 +01:00
Richard Kistruck
5a478d9a7d
Mps br/diagtag: new writef_v takes a va_started va_list.
...
WriteF calls WriteF_v.
Copied from Perforce
Change: 163057
ServerID: perforce.ravenbrook.com
2007-08-07 17:22:12 +01:00