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

1388 commits

Author SHA1 Message Date
Gareth Rees
bcea6812fc Improve control over checking:
1. Where Type is a pointer type with a signature, replace CHECKL(TypeCheck(val)) with CHECKD(Type, val).
2. Where Type is a pointer type with no signature, replace CHECKL(TypeCheck(val)) with CHECKD_NOSIG(Type, val).
3. Where Type is a pointer type with a signature, but the structure is not visible at point of checking, replace CHECKL(TypeCheck(val)) with CHECKD_NOSIG(Type, val). Reference <design/check/#.hidden-type>
4. Make BTCheck extern and use it where possible.
5. Replace AVER(TypeCheck(val)) with AVERT(Type, val).

Copied from Perforce
 Change: 185263
 ServerID: perforce.ravenbrook.com
2014-04-06 22:51:05 +01:00
Gareth Rees
f970e9d82c Must check against treeempty, not null.
Copied from Perforce
 Change: 185261
 ServerID: perforce.ravenbrook.com
2014-04-06 21:50:56 +01:00
Gareth Rees
f6901a9e23 Complete design.mps.type and design.mps.interface-c and move them to "current" design in the manual.
Remove unused enumeration FormatVariety from mpmtypes.
Improve wording of manual entry on MPS_RM_PROT.

Copied from Perforce
 Change: 185259
 ServerID: perforce.ravenbrook.com
2014-04-06 20:00:31 +01:00
Gareth Rees
45521a9268 Poolarena must be thread-safe, so add a comment.
Copied from Perforce
 Change: 185250
 ServerID: perforce.ravenbrook.com
2014-04-06 16:44:07 +01:00
Gareth Rees
f4050a073e Remove unneeded headers.
Copied from Perforce
 Change: 185248
 ServerID: perforce.ravenbrook.com
2014-04-06 15:53:54 +01:00
Gareth Rees
5a1185daf1 Remove todo -- this was done in change 179501.
Copied from Perforce
 Change: 185247
 ServerID: perforce.ravenbrook.com
2014-04-06 15:53:34 +01:00
Gareth Rees
8b9c38393e Event arenablacklistzone was deleted, but event_version_minor was not updated; and the instruction "when you retire an event type, don't delete it from the list -- comment it out" was not followed.
Delete TODO item: EVENT_VERSION numbers are parameters to the EventInit event.

Copied from Perforce
 Change: 185246
 ServerID: perforce.ravenbrook.com
2014-04-06 15:52:56 +01:00
Gareth Rees
642be932a1 Refactor walkt0 test case so that it can test different pool classes.
Copied from Perforce
 Change: 185244
 ServerID: perforce.ravenbrook.com
2014-04-06 11:47:36 +01:00
Gareth Rees
bbe1052f69 Refactor finaltest so that it is capable of testing different pool classes.
Copied from Perforce
 Change: 185235
 ServerID: perforce.ravenbrook.com
2014-04-04 21:59:45 +01:00
Gareth Rees
fd07236307 Tidy-up of attributes and pool classes:
* Bring design up to date.
* New function PoolHasAttr encapsulates attribute checking.
* Abstract classes are abstract and mustn't be checked.
* The dummy pool class in fotest needs a size.
* Abstract pool classes null out methods that they can't provide a generic implementation for, to force subclasses to provide one.
* New function PoolTrivFramePopPending provides a generic implementation of that method.
* Rename PoolNoFreeWalk to PoolTrivFreeWalk since it has NOOP rather than NOTREACHED.
* Check that AttrMOVINGGC implies AttrGC.
* Remove unimplemented attributes (BUF_RESERVE, BUF_ALLOC, INCR_RB, INCR_WB, PM)
* AMC now inherits from AMCZ instead of the other way round. This is simpler: AMC adds features to AMCZ rather than AMCZ taking features away (and not quite getting it right).
* Similarly, LO inherits from AbstractSegBufPoolClass + PoolClassMixInCollect so that it doesn't have to clear AttrSCAN and the scan methods.
* Fix bug in MFSCheck -- mustn't check unroundedUnitSize >= UNIT_MIN since small unit sizes are rounded up to UNIT_MIN.
* Don't see AttrFREE in MRG (since no free method is supplied).
* Check AttrSCAN systematically (in PoolScan and SegCheck) rather than opportunistically in TraceStart and TraceQuantum.

Copied from Perforce
 Change: 185231
 ServerID: perforce.ravenbrook.com
2014-04-04 17:05:08 +01:00
Gareth Rees
306401504d Check classes after defining them.
Copied from Perforce
 Change: 185228
 ServerID: perforce.ravenbrook.com
2014-04-04 12:51:07 +01:00
Gareth Rees
2d6ead9104 Turn on -wswitch-default for gcc.
Add missing default: cases to switch statements.

Copied from Perforce
 Change: 185226
 ServerID: perforce.ravenbrook.com
2014-04-04 12:16:59 +01:00
Gareth Rees
71d9ea47b8 Explain how to call mps_root_create_table() safely (avoiding type punning). fix example for mps_root_create_table_masked(). use the recommended approach in qs.c.
Copied from Perforce
 Change: 185223
 ServerID: perforce.ravenbrook.com
2014-04-04 11:49:19 +01:00
Gareth Rees
dcaad508fc Remove unnecessary calls to mps_args_done -- these crept back in via the merge of the cbs-tract-alloc branch.
Copied from Perforce
 Change: 185143
 ServerID: perforce.ravenbrook.com
2014-04-01 22:43:58 +01:00
Gareth Rees
40ed06bf17 Clang can compile eventsql.c with -pedantic but gcc cannot.
Copied from Perforce
 Change: 185137
 ServerID: perforce.ravenbrook.com
2014-04-01 22:07:48 +01:00
Gareth Rees
9c7e619ac0 Fix compilation on lii6gc:
* Don't test __has_feature unless we know we are on MPS_BUILD_LL.
* Fix type-punned pointer aliasing in expt825.c.

Copied from Perforce
 Change: 185104
 ServerID: perforce.ravenbrook.com
2014-03-31 13:01:40 +01:00
Gareth Rees
01fbead536 Bring .p4ignore up to date so that p4 status is clean.
Copied from Perforce
 Change: 185101
 ServerID: perforce.ravenbrook.com
2014-03-31 11:37:46 +01:00
Gareth Rees
0094610a6a Support the clang address sanitizer.
Copied from Perforce
 Change: 185096
 ServerID: perforce.ravenbrook.com
2014-03-30 18:51:53 +01:00
Gareth Rees
fcbc3260bd Turn off -wunreachable-code in gcc: too many false positives.
Copied from Perforce
 Change: 185091
 ServerID: perforce.ravenbrook.com
2014-03-30 17:00:50 +01:00
Gareth Rees
8c5bb6ae3c Turn on -wunreachable-code for gcc and clang.
Remove unreachable code:
* No need to have different debug options or structured allocation classes for different platforms.
* Don't use STATISTIC_BEGIN, use STATISTIC_STAT.
* #ifdef away the unused code in zmess.c for testing ControlAlloc failure.
* Remove unused code from the example Scheme interpreter.

Copied from Perforce
 Change: 185089
 ServerID: perforce.ravenbrook.com
2014-03-30 14:26:02 +01:00
Gareth Rees
0eba9c6112 Fix header comment for ssw3i6*.c -- win64 not win32.
Copied from Perforce
 Change: 185086
 ServerID: perforce.ravenbrook.com
2014-03-29 17:24:28 +00:00
Gareth Rees
467ff3a9f5 Preserve the first table entry, so as to avoid false positives when this is kept alive by a register or stack-local variable.
Copied from Perforce
 Change: 185077
 ServerID: perforce.ravenbrook.com
2014-03-28 14:27:21 +00:00
Gareth Rees
6de8c58889 Catch-up merge from master sources to branch/2014-03-21/pellesc.
Copied from Perforce
 Change: 185074
 ServerID: perforce.ravenbrook.com
2014-03-28 13:54:30 +00:00
Gareth Rees
7ceb6297de Remove #pragma warning(disable: ...) for microsoft visual c/c++ warnings that are no longer generated by the code, so that we get the maximum checking from this compiler.
Copied from Perforce
 Change: 185072
 ServerID: perforce.ravenbrook.com
2014-03-28 13:09:14 +00:00
Gareth Rees
d338a23654 Avoid spurious output from rmdir when running "nmake clean".
Copied from Perforce
 Change: 185069
 ServerID: perforce.ravenbrook.com
2014-03-28 12:45:11 +00:00
Gareth Rees
7fc9d6f911 Avoid expanding __file__ in aver in pelles c -- the compiler somehow loses its definition for __file__ in deeply nested macro expansions.
Copied from Perforce
 Change: 185025
 ServerID: perforce.ravenbrook.com
2014-03-26 13:44:02 +00:00
Gareth Rees
c7b793143d Fix review comments from dl <https://info.ravenbrook.com/mail/2014/03/25/17-44-56/0/>.
Add __attribute__((__format__(printf))) to functions that take a printf-compatible format string (when building using GCC or Clang), so that format string mistakes can be detected statically.

Copied from Perforce
 Change: 185021
 ServerID: perforce.ravenbrook.com
2014-03-26 12:27:35 +00:00
Gareth Rees
bb588d5a3d Fix case of mps_os_w3, spotted by rb.
Copied from Perforce
 Change: 185013
 ServerID: perforce.ravenbrook.com
2014-03-25 15:37:27 +00:00
Gareth Rees
42b4955c2f Uncomment event_list calls.
Copied from Perforce
 Change: 185011
 ServerID: perforce.ravenbrook.com
2014-03-25 15:12:33 +00:00
Gareth Rees
b8a8369d66 Fixedsize function needs to take a size_t as argument.
Copied from Perforce
 Change: 184999
 ServerID: perforce.ravenbrook.com
2014-03-25 11:08:06 +00:00
Gareth Rees
30e8b23b45 Support for stackprobe on w3i3pc and w3i6pc.
Copied from Perforce
 Change: 184998
 ServerID: perforce.ravenbrook.com
2014-03-25 11:05:09 +00:00
Gareth Rees
c1df7b56ce 64-bit support for pelles c:
* New nmake file w3i6pc.nmk.
* New stack scanner ssw3i6pc.c supplies missing jump buffer definition.
* Some platform tests change from defined(MPS_PF_W3I6MV) to defined(MPS_OS_w3) && defined(MPS_ARCH_I6).
* Make reasonable changes to the source code to avoid warnings from Pelles C:
** Ensure that printf formats are consistent with arguments by using PRIuLONGEST and casting to ulongest_t.
** Use size_t for loop variables that index into arrays.
** Suppress "Consider changing type to 'size_t' for loop variable" warnings for the MPS core.

Copied from Perforce
 Change: 184996
 ServerID: perforce.ravenbrook.com
2014-03-25 10:59:09 +00:00
Gareth Rees
1be3091e3c New makefile xci6ll.gmk provides way to compile the mps one file at a time on os x.
Copied from Perforce
 Change: 184991
 ServerID: perforce.ravenbrook.com
2014-03-24 21:27:35 +00:00
Gareth Rees
57f2e6db8f Support for "make -f platform.gmk testrun".
Copied from Perforce
 Change: 184990
 ServerID: perforce.ravenbrook.com
2014-03-24 21:26:42 +00:00
Gareth Rees
af88b2499c Update file types: add +k (keyword expansion).
Copied from Perforce
 Change: 184984
 ServerID: perforce.ravenbrook.com
2014-03-24 20:36:57 +00:00
Gareth Rees
d72b3d1253 Need to include <stdlib.h> for malloc and _alloca.
Copied from Perforce
 Change: 184980
 ServerID: perforce.ravenbrook.com
2014-03-24 18:53:23 +00:00
Gareth Rees
f320603ac8 Ensure that windows.h is only included via mpswin.h, so that we always have the same set of definitions and pragmas in effect.
Turn on WIN32_LEAN_AND_MEAN when including windows.h to improve compilation time.

Copied from Perforce
 Change: 184979
 ServerID: perforce.ravenbrook.com
2014-03-24 18:49:22 +00:00
Gareth Rees
c94be13bdf Improved support for pelles c:
* Refactor nmake files so that a compiler-specific makefile is included; move Microsoft Visual C-specific options to mv.nmk.
* Add nmake files for Pelles (w3i3pc.nmk and pc.nmk).
* Rename spw3i3mv.c to spw3i3.c and spw3i6mv.c to spw3i6.c since these are also used by Pelles C.
* Make reasonable changes to the source code to avoid warnings from Pelles C:
** check results of function calls;
** avoid useless return values;
** undef max before defining it;
** ensure printf formats are checkable;
** move notreached() assertions to the end of blocks;
** suppress warnings in cases where the code shouldn't be changed ("Unreachable code", "Inline assembly code is not portable", "Structured Exception Handling is not portable").

Copied from Perforce
 Change: 184977
 ServerID: perforce.ravenbrook.com
2014-03-24 18:23:29 +00:00
Gareth Rees
a3575822cc Catch-up merge from master sources to branch/2014-03-21/pellesc.
Copied from Perforce
 Change: 184973
 ServerID: perforce.ravenbrook.com
2014-03-24 12:20:49 +00:00
Gareth Rees
a9fbb48533 Replace hex constant 9024eac8 (gotneach) with 4026eac8 (notreach).
Copied from Perforce
 Change: 184972
 ServerID: perforce.ravenbrook.com
2014-03-24 12:13:20 +00:00
Gareth Rees
edd6409964 Don't list the test cases to be run in commpre.nmk: list them instead in testrun.bat for consistency with other platforms.
Format lists of files and test cases with one per line so that merges are easier.
Improve testrun.bat: better success/failure output; fewer gotos.

Copied from Perforce
 Change: 184971
 ServerID: perforce.ravenbrook.com
2014-03-24 12:12:24 +00:00
Gareth Rees
333840f54a Ensure that all test cases call testlib_init so that the testlib assertion handler is installed: this ensures that on windows you can set mps_testlib_noabort to avoid the dialog box from abort().
Copied from Perforce
 Change: 184965
 ServerID: perforce.ravenbrook.com
2014-03-24 11:41:01 +00:00
Gareth Rees
15d585558e Don't list the test cases to be run in the xcode project: list them in testrun.sh instead so that this is shared with the freebsd and linux platforms.
Format the list with one test case per line so that merges are easier.

Copied from Perforce
 Change: 184958
 ServerID: perforce.ravenbrook.com
2014-03-22 18:04:56 +00:00
Gareth Rees
558b87093c (very) draft makefile for pelles c.
Copied from Perforce
 Change: 184949
 ServerID: perforce.ravenbrook.com
2014-03-21 18:29:36 +00:00
Gareth Rees
f7f4c6bc1c Mps compiles and runs using pelles c.
Merge code from Bruce Mitchener <https://github.com/Ravenbrook/mps-temporary/pull/2> and from RB <https://github.com/waywardmonkeys/mps-temporary/pull/1/files>.
Split call to EVENT_LIST so that event.c compiles.
Remove useless call to va_end in seg.c.

Copied from Perforce
 Change: 184948
 ServerID: perforce.ravenbrook.com
2014-03-21 18:28:39 +00:00
Gareth Rees
9930b9c807 Move coverage testing out of the xcode project (to avoid normal debug builds being slowed down by coverage instrumentation, and to avoid error messages when the tests are unable to update the coverage data).
Copied from Perforce
 Change: 184931
 ServerID: perforce.ravenbrook.com
2014-03-21 12:51:06 +00:00
Gareth Rees
14cf9d4890 Fix some checkleveldeep assertions:
1. In GlobalsPrepareToDestroy, set arenaGlobals->defaultChain to NULL before calling ChainDestroy, to avoid a failed ChainCheck inside ControlFree.
2. In GlobalsPrepareToDestroy, set arenaGlobals->lock to NULL after destroying it, to avoid a failed LockCheck inside ControlFree.
3. In TraceIdMessagesCreate, set tsMessage[ti] and tMessage[ti] together to avoid a failed TraceIdMessagesCheck inside traceMessageInit.
4. In TracePostStartMessage, set tsMessage[ti] to NULL before calling MessagePost, to avoid a failed TraceStartMessageCheck inside ControlFree.
5. Ditto for TracePostMessage and tMessage[ti].

Copied from Perforce
 Change: 184924
 ServerID: perforce.ravenbrook.com
2014-03-20 23:37:02 +00:00
Gareth Rees
3a249b1bfe Drop .py extension from python executables, as requested by rb.
Copied from Perforce
 Change: 184900
 ServerID: perforce.ravenbrook.com
2014-03-20 11:36:58 +00:00
Gareth Rees
605a189ec8 Update release index and bump release number accordingly.
Copied from Perforce
 Change: 184870
 ServerID: perforce.ravenbrook.com
2014-03-18 18:11:48 +00:00
Gareth Rees
1747357cec In configure.ac, parse the release name out of code/version.c.
This means that there is now just one place in the sources where the release name is specified.

Copied from Perforce
 Change: 184830
 ServerID: perforce.ravenbrook.com
2014-03-17 14:53:58 +00:00