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

3263 commits

Author SHA1 Message Date
David Lovemore
64192bbfa6 Adding casts to varargs in diagnostic output
Copied from Perforce
 Change: 178092
 ServerID: perforce.ravenbrook.com
2012-05-03 15:17:04 +01:00
David Lovemore
f7364dfe5e Fixed some places where casts are missing in vararg arguments.
Copied from Perforce
 Change: 178074
 ServerID: perforce.ravenbrook.com
2012-05-01 16:58:22 +01:00
Richard Brooksby
5c31bf667a Fixing unsigned longs in eventcnv but not column widths.
Copied from Perforce
 Change: 178026
 ServerID: perforce.ravenbrook.com
2012-04-23 17:13:41 +01:00
Richard Brooksby
82c29cfd3e Fixing up occurences of "unsigned long" in the main mps and test code so that we no longer assume that "unsigned long" is large enough for a pointer or size, or that it's the longest available integer type, since these are not true on 64-bit windows.
Copied from Perforce
 Change: 178021
 ServerID: perforce.ravenbrook.com
2012-04-23 16:20:40 +01:00
Richard Brooksby
bf40f3a230 Merging clang/gcc build fix from master.
Copied from Perforce
 Change: 177908
 ServerID: perforce.ravenbrook.com
2012-04-05 17:04:41 +01:00
Richard Brooksby
86671772e7 In xcode 4.3.2, the cc command runs clang not gcc. changed make to explicitly run gcc.
Copied from Perforce
 Change: 177907
 ServerID: perforce.ravenbrook.com
2012-04-05 17:01:24 +01:00
Richard Brooksby
acbc270f66 Adding indirection between mps_word_t and unsigned long that will get more elaborate when we merge the w3i6mv port.
Copied from Perforce
 Change: 177848
 ServerID: perforce.ravenbrook.com
2012-03-29 14:52:45 +01:00
Richard Brooksby
98f3e3bdd2 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 Brooksby
a12e94fe41 Cbs and splay now pass size through as closure parameters, rather than messing with unsigned long.
Copied from Perforce
 Change: 177816
 ServerID: perforce.ravenbrook.com
2012-03-27 17:15:25 +01:00
Richard Brooksby
49c6d6b2f9 Introducing ulongest type. see design/types/#ulongest.
Fixing WriteF to take ULongest rather than unsigned long, and fixing intrnal assumption that Word was as big as unsigned long.

Copied from Perforce
 Change: 177814
 ServerID: perforce.ravenbrook.com
2012-03-27 16:55:31 +01:00
Richard Brooksby
5a00062ed8 Fixing bt to use count for bit table length (and size for sizes throughout), rather than unsigned long.
Copied from Perforce
 Change: 177813
 ServerID: perforce.ravenbrook.com
2012-03-27 16:30:33 +01:00
Richard Brooksby
9a7688084e Branching to remove assumption that "long" is the longest type, violated by windows 64.
Copied from Perforce
 Change: 177811
 ServerID: perforce.ravenbrook.com
2012-03-27 15:50:44 +01:00
Richard Brooksby
69b15daa68 Fixing printf(var) to printf("%s", var) to suppress warnings (and improve code).
Copied from Perforce
 Change: 177792
 ServerID: perforce.ravenbrook.com
2012-03-26 14:21:40 +01:00
Peter Jackson
87f664da11 Remove remnant diagnostic write.
Copied from Perforce
 Change: 175967
 ServerID: perforce.ravenbrook.com
2011-08-29 13:29:59 +01:00
Peter Jackson
36dd1ada0f Mainline changes to make a standard nt build environment based on nt6.1
(Windows7) and its SDK.  The w3i3m9 pseudo platform has been removed and
w3i3mv adjusted for this framework.

Copied from Perforce
 Change: 175966
 ServerID: perforce.ravenbrook.com
2011-08-29 13:09:37 +01:00
Peter Jackson
b153ddbb83 Convert the build notes to html.
Copied from Perforce
 Change: 175905
 ServerID: perforce.ravenbrook.com
2011-08-18 20:43:12 +01:00
Richard Kistruck
e854ff1d18 Mps master: arenavm.c: (diagnostic variety only; integ from br/vmem) fix floating point exception when a collection condemns 0 bytes.
(The VMCompact diag was calculating the live percentage by dividing by condemned size.  Don't do this if condemned is zero.)

Copied from Perforce
 Change: 172778
 ServerID: perforce.ravenbrook.com
2010-11-06 21:11:14 +00:00
Richard Kistruck
16b40c8b36 Mps master (empty integrate) ignore "master -> new-branch" changes in br/transform's index.html page.
Copied from Perforce
 Change: 172772
 ServerID: perforce.ravenbrook.com
2010-11-06 14:28:04 +00:00
Richard Kistruck
4a1c5a5d7b Mps br/transform: "master" -> "br/vmem"; register at branch/index
Copied from Perforce
 Change: 172771
 ServerID: perforce.ravenbrook.com
2010-11-06 14:24:44 +00:00
Richard Kistruck
b59e6c4406 Mps br/vmem arenavm.c: (diagnostic variety only) fix floating point exception after a collection with 0 bytes condemned
The VMCompact diag was calculating the live percentage by dividing by condemned size.  Don't do this if condemned is zero.

Copied from Perforce
 Change: 170441
 ServerID: perforce.ravenbrook.com
2010-04-26 16:06:36 +01:00
Richard Kistruck
4d5de96b9d Mps master (integ from br/vmem) diag.c: version_diag() emits mpsversion in a diag
Copied from Perforce
 Change: 170258
 ServerID: perforce.ravenbrook.com
2010-03-30 10:10:56 +01:00
Richard Kistruck
41f839aec6 Mps br/vmem diag.c: version_diag() emits mpsversion in a diag
Copied from Perforce
 Change: 170229
 ServerID: perforce.ravenbrook.com
2010-03-29 16:37:49 +01:00
Richard Kistruck
0d50eab390 Mps master readme.txt: date for 1.109.1
Copied from Perforce
 Change: 170103
 ServerID: perforce.ravenbrook.com
2010-03-23 08:33:54 +00:00
Richard Kistruck
378a439104 mps master (integ from br/vmem): simple-chunk-return:
New method arena->class->compact: ArenaCompact, ArenaTrivCompact, VMCompact [arena.c, arenavm.c, mpm.h, mpmst.h, mpmtypes.h]
   trace.c, arenavm.c:
   - call ArenaCompact() at traceReclaim;
   - also record trace->preTraceArenaReserved, to show pre- and peak-vmem during a collection
   arenavm.c:
   - on VMCompact(), destroy any empty chunks (except the primary);
   - emit VMCompact diag for all client-requested collections, plus any others where chunks were gained or lost during the collection;
   - VMCompact diag shows vmem: pre-collection, peak, amount returned, and final
   - VMCompact diag also shows trace stats: cond, live / % / stuck(pip), notCond
   - M_whole, M_frac: print counts of bytes as Megabytes and thousandths
   (also, in VMArenaFinish, null out arena->primary in VMArenaFinish, so it is not left dangling).
   mpm.c: new "$3" format for 0-padding 3-char-wide field, for thousandths of a MB

   tract.c -- fix ChunkCache defects:
   - previously, if cache is empty (chunkCache->chunk == NULL) then other fields are *undefined*; but code looks at them anyway (!) without first checking chunkCache->chunk;
   - change it (.chunk.empty.fields) so that, if cache is empty, other fields have defined values: cache-using code may look at them, and they are chosen so that no cache hit will occur.
   --> this fixes crashing defect shown by changelist 170072
   - AVERT(ChunkCache) in the many places it should be checked;
   - use AVERT_CRITICAL in ChunkEncache, because it is called by ChunkOfAddr;
   - drop never-read chunkCache->pageTableBase and pageTableLimit fields: they were used for ChunkOfSeg(), back when each SegStruct was actually a PageStruct is some chunk's PageStructTable; see VMArenaChunkOfSeg() in //info.ravenbrook.com/project/mps/branch/2001-08-13/trunk/src/arenavm.chttps://github.com/Ravenbrook/mps/issues/46
   - there's no need for arena to initialise the chunk cache; this allows en/decache functions to be local to tract.c (ie. declared static)

   zcoll.c:
   How to get rid of all the objects, so full collect really collects all automatic objects:
   - Rootdrop() helps, but we can still retain a 1.2MB object;
   - stackwipe() does not help much -- these unwanted ambig refs are being left on the stack by MPS code that runs between mps_arena_collect and the flip!
   - therefore StackScan(0/1) to destroy stack+reg root before full collect: it's the only way to be sure.
   Reproducibility:
   - give Make() a random? switch, acted on by df() = diversity function, to allow bypass of rnd();
   - ZRndStateSet, to set the seed for rnd()
   Unpark:
   - release after mps_arena_collect (job002206)
   Output:
   - print_M: Megabytes more useful than Mebibytes
   - move printf announcing Destroying arena etc to just before, not just after, we do it.

   testlib.c/h -- Reproducibility:
   - fix rnd_state so a rnd_state getter is possible;
   - testlib.h += rnd_state_t, rnd_state(), rnd_state_set(), rnd_state_set_v2()

   vmix.c: add VM_ix_Create_ok/VM_ix_Destroy diags (note: not in vmw3.c yet)
   trace.c: no newline on "traceFindGrey" diag please
   locus.c: no newline on "condemn gens" diag please
   diag.c: just VMCompact diag
   readme.txt -- update for release.

Copied from Perforce
 Change: 170102
 ServerID: perforce.ravenbrook.com
2010-03-23 08:31:39 +00:00
Richard Kistruck
85926245f7 mps br/vmem: simple-chunk-return:
arenavm.c VMCompact diag: also emit where chunks were gained but not lost during collection -- that is: collections where there was a vmem increase, and ArenaCompact was *not* able to return any chunks.

Copied from Perforce
 Change: 170101
 ServerID: perforce.ravenbrook.com
2010-03-23 08:11:20 +00:00
Richard Kistruck
b948b4b86d mps br/vmem: simple-chunk-return:
zcoll.c -- re-enable message timestamp reporting, and BigDropSmall tests (remove ifdefs)

Copied from Perforce
 Change: 170100
 ServerID: perforce.ravenbrook.com
2010-03-23 07:03:38 +00:00
Richard Kistruck
87daf1111d mps br/vmem: simple-chunk-return:
readme.txt -- update.
 arenavm.c -- (cosmetic) don't count chunks freed

Copied from Perforce
 Change: 170099
 ServerID: perforce.ravenbrook.com
2010-03-23 06:06:11 +00:00
Richard Kistruck
fd5cd6d4fc mps br/vmem: simple-chunk-return:
arenavm.c, trace.c, mpmst.h -- trace->preTraceArenaReserved, to show pre- and peak-vmem during collection

Copied from Perforce
 Change: 170098
 ServerID: perforce.ravenbrook.com
2010-03-23 04:07:43 +00:00
Richard Kistruck
a85ba61324 mps br/vmem: simple-chunk-return:
arenavm.c:
   - M_whole, M_frac: print count of bytes as Megabytes
   - diag on VMCompact after all client-requested traces, plus any others where we returned a chunk.
   - show vmem change, and also trace cond, live / % / stuck(pip), notCond

 mpm.c -- new "$3" format for 0-padding 3-char-wide field, for thousandths of a MB

 zcoll.c -- try some new parameters for tests

 diag.c -- just VMCompact diag

Copied from Perforce
 Change: 170097
 ServerID: perforce.ravenbrook.com
2010-03-23 03:52:41 +00:00
Richard Kistruck
9666a17134 Mps br/vmem: arena.c: arenaclasscheck(): funcheck class->compact
Copied from Perforce
 Change: 170096
 ServerID: perforce.ravenbrook.com
2010-03-23 03:24:18 +00:00
Richard Kistruck
33d05b4195 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
f3009b7b8a mps br/vmem: simple-chunk-return:
testlib.c (comments only) record dates of changes from v1 -> v2 -> v3 rnd_states.

Copied from Perforce
 Change: 170094
 ServerID: perforce.ravenbrook.com
2010-03-23 00:30:34 +00:00
Richard Kistruck
1360bb58b3 mps br/vmem: simple-chunk-return:
zcoll.c:
 How to get rid of all the objects, so full collect really collects all automatic objects:
   - Rootdrop() helps, but we can still retain a 1.2MB object;
   - stackwipe() does not help much -- these unwanted ambig refs are being left on the stack by MPS code that runs between mps_arena_collect and the flip!
   - therefore StackScan(0/1) to destroy stack+reg root before full collect: it's the only way to be sure.

 Reproducibility:
   - give Make() a random? switch, acted on by df() = diversity function, to allow bypass of rnd();
   - ZRndStateSet, to set the seed for rnd()

 Output:
   - print_M: switchable Mebibytes or Megabytes (more useful, to be honest);
   - get(): don't report message times, it messes up diffs.

 testlib.c/h:
 Reproducibility:
   - fix rnd_state so a rnd_state getter is possible;
   - testlib.h += rnd_state_t, rnd_state(), rnd_state_set(), rnd_state_set_v2()

 trace.c: traceFindGrey diag: no newline please

Copied from Perforce
 Change: 170093
 ServerID: perforce.ravenbrook.com
2010-03-22 23:00:42 +00:00
Richard Kistruck
7ac6dbdf45 Mps br/vmem zcoll.c: (tidy) make "make()" a proper function, not inline in the script-decoding switch statement
Copied from Perforce
 Change: 170087
 ServerID: perforce.ravenbrook.com
2010-03-22 14:59:36 +00:00
Richard Kistruck
1730650997 mps br/vmem: simple-chunk-return (fix broken compile):
Ooops, remove ALL references to pageTableBase and pageTableLimit fields.

Copied from Perforce
 Change: 170085
 ServerID: perforce.ravenbrook.com
2010-03-22 14:49:11 +00:00
Richard Kistruck
6879abe05d mps br/vmem: simple-chunk-return:
tract.c -- fix more ChunkCache defects:
  - drop never-read chunkCache->pageTableBase and pageTableLimit fields: they were used for ChunkOfSeg(), back when each SegStruct was actually a PageStruct is some chunk's PageStructTable; see VMArenaChunkOfSeg() in //info.ravenbrook.com/project/mps/branch/2001-08-13/trunk/src/arenavm.chttps://github.com/Ravenbrook/mps/issues/46
  - there's no need for arena to initialise the chunk cache; this allows en/decache functions to be local to tract.c (ie. declared static)

Copied from Perforce
 Change: 170083
 ServerID: perforce.ravenbrook.com
2010-03-22 13:39:36 +00:00
Richard Kistruck
67ddf0c121 mps br/vmem: simple-chunk-return:
arenavm.c --  on VMFree(), destroy any empty chunks (except the primary).  (VMFree is not the ideal place to do it, but works for proof of concept).
 tract.c -- fix ChunkCache defects:
  - previously, if cache is empty (chunkCache->chunk == NULL) then other fields are *undefined*; but code looks at them anyway (!) without first checking chunkCache->chunk;
  - change it (.chunk.empty.fields) so that, if cache is empty, other fields have defined values: cache-using code may look at them, and they are chosen so that no cache hit will occur.
  --> this fixes crashing defect shown by changelist 170072
  - AVERT(ChunkCache) in the many places it should be checked;
  - use AVERT_CRITICAL in ChunkEncache, because it is called by ChunkOfAddr;

 Also:
 plan.txt -- notes on use of primary chunk.
 config.h -- DIAG also in ci, please [Do not integ to master]
 diag.c -- skip ChainCondemnAuto diag thanks
 zcoll.c -- move printf announcing Destroying arena etc to just before, not just after, we do it.

Copied from Perforce
 Change: 170082
 ServerID: perforce.ravenbrook.com
2010-03-22 13:24:49 +00:00
Richard Kistruck
89bcad0dfd Mps br/vmem: (broken: assert tract.c line 327) run this at variety=ci (ie. where aver_critical works), to show how broken the chunk cache logic is.
Copied from Perforce
 Change: 170072
 ServerID: perforce.ravenbrook.com
2010-03-20 14:05:32 +00:00
Richard Kistruck
6ccac1bd84 Mps br/vmem: prepare for simple-chunk-return:
arenavm.c: VMFree is okay for testing chunk-ret; though just sparePagesPurge() for now;
  diag.c: show what we want for using zcoll to show chunk-ret:
    VM_ix_Create/Destroy
    TraceStart, excpet only briefly for dyn-crit (why=2) and not at all for minor
  locus.c: no newline on "condemn gens" diag please
  tract.c: ChunkDecache is BROKEN; just add AVER to catch this for now
  vmix.c: VM_ix_Create_ok/VM_ix_Destroy (vmw3.c needs similar)
  zcoll.c:
    release after mps_arena_collect!!!
    make, collect, make, collect, to show chunk-ret
    10MB arena means many chunks
None of this is releaseable quality of course.

Copied from Perforce
 Change: 170071
 ServerID: perforce.ravenbrook.com
2010-03-20 13:51:23 +00:00
Richard Kistruck
e8873cadf3 Mps master (empty integ from br/vmem of "master" -> "br/vmem" in index)
Copied from Perforce
 Change: 170013
 ServerID: perforce.ravenbrook.com
2010-03-15 10:14:27 +00:00
Richard Kistruck
3c59693706 Mps br/vmem: "master" -> "br/vmem"; register at branch/index
Copied from Perforce
 Change: 170012
 ServerID: perforce.ravenbrook.com
2010-03-15 10:10:29 +00:00
Richard Kistruck
46abfe58d4 Mps br/vmem: branch master sources
Copied from Perforce
 Change: 170011
 ServerID: perforce.ravenbrook.com
2010-03-15 10:02:24 +00:00
Richard Kistruck
43d5614dee Mps master readme.txt: (minor rewording for clarity in 1.109's change comments)
Copied from Perforce
 Change: 169941
 ServerID: perforce.ravenbrook.com
2010-03-05 13:33:11 +00:00
Richard Kistruck
90fd638684 Mps master: (empty-integ from version/1.109) ignore changes (in index.html, readme.txt) that label version/1.109
Copied from Perforce
 Change: 169938
 ServerID: perforce.ravenbrook.com
2010-03-05 09:07:26 +00:00
Richard Kistruck
7722220755 Mps version/1.109:
- Register version/1.109
  - 109 index: edit "Master" -> "V 109"
  - 109 readme: delete changes-template from What's New section

Copied from Perforce
 Change: 169936
 ServerID: perforce.ravenbrook.com
2010-03-05 08:58:46 +00:00
Richard Kistruck
c1127b8cd1 Mps version/1.109: first integrate from master (populate with files).
Copied from Perforce
 Change: 169934
 ServerID: perforce.ravenbrook.com
2010-03-04 17:27:37 +00:00
Richard Kistruck
288593cece Mps master: version.c and w3build.bat for release/1.109.0
Copied from Perforce
 Change: 169933
 ServerID: perforce.ravenbrook.com
2010-03-04 17:22:53 +00:00
Richard Kistruck
bee49dbdb6 Mps master: readme.txt and build-notes for release 1.109
(Also update wiki/timeline.html)

Copied from Perforce
 Change: 169919
 ServerID: perforce.ravenbrook.com
2010-03-03 17:01:50 +00:00
Richard Kistruck
ea76ded074 Mps master (integ from 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

Reference Manual: mps_addr_pool, mps_addr_fmt: as yet Undocumented.

Also: design/poolamc: clarifications; add dated attribution for statements by RHSK.

Copied from Perforce
 Change: 169907
 ServerID: perforce.ravenbrook.com
2010-03-02 17:29:41 +00:00
Richard Kistruck
39bdede907 Mps master (integ from br/padding): job002205: if pollthreshold is > 64kib behind fillmutatorsize, make arenapoll call tracepoll many times:
Changes:
  - separate ArenaPoll and ArenaStep code paths;
  - simplify ArenaPoll;
  - loop calling TracePoll to catch-up;
  - update pollThreshold correctly, depending on whether we have no work and are sleeping, or have work and are advancing the 'clock' by one unit. If there's no work, don't keep checking. Avoid multiple calls to ClockNow().
  - ArenaStep should NOT change pollThreshold -- that's ArenaPoll's business.  This means ArenaStep may advance, but not retard, trace work.
zcoll: 100MB is a more sensible arena size than 0.5 MB
test-runner.py: run zcoll; on w3i3, use m9 (=VC9.0) compiler

Copied from Perforce
 Change: 169904
 ServerID: perforce.ravenbrook.com
2010-03-02 17:17:52 +00:00