mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 18:37:33 +00:00
Catch up merge from mps master to keyword arguments development branch.
Copied from Perforce Change: 181890 ServerID: perforce.ravenbrook.com
This commit is contained in:
commit
a3d15bbdb0
15 changed files with 410 additions and 132 deletions
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in -- source for autoconf Makefile
|
||||
#
|
||||
# $Id$
|
||||
# Copyright (C) 2012 Ravenbrook Limited. See end of file for license.
|
||||
# Copyright (C) 2012-2013 Ravenbrook Limited. See end of file for license.
|
||||
#
|
||||
# YOU DON'T NEED AUTOCONF TO BUILD THE MPS
|
||||
# This is just here for people who want or expect a configure script.
|
||||
|
|
@ -32,7 +32,7 @@ install-make-build: make-install-dirs build-via-make
|
|||
$(INSTALL_DATA) code/mps*.h $(prefix)/include/
|
||||
$(INSTALL_DATA) code/$(MPS_TARGET_NAME)/cool/mps.a $(prefix)/lib/libmps-debug.a
|
||||
$(INSTALL_DATA) code/$(MPS_TARGET_NAME)/hot/mps.a $(prefix)/lib/libmps.a
|
||||
for PROGRAM in $(EXTRA_TARGETS); do $(INSTALL_PROGRAM) code/$(MPS_TARGET_NAME)/hot/$$PROGRAM $(prefix)/bin/$$PROGRAM; done
|
||||
$(INSTALL_PROGRAM) $(addprefix code/$(MPS_TARGET_NAME)/hot/Release/,$(EXTRA_TARGETS)) $(prefix)/bin
|
||||
|
||||
build-via-xcode:
|
||||
$(XCODEBUILD) -config Release
|
||||
|
|
@ -46,7 +46,7 @@ install-xcode-build: make-install-dirs build-via-xcode
|
|||
$(INSTALL_DATA) code/mps*.h $(prefix)/include/
|
||||
$(INSTALL_DATA) code/xc/Debug/libmps.a $(prefix)/lib/libmps-debug.a
|
||||
$(INSTALL_DATA) code/xc/Release/libmps.a $(prefix)/lib/libmps.a
|
||||
for PROGRAM in $(EXTRA_TARGETS); do $(INSTALL_PROGRAM) code/xc/Release/$$PROGRAM $(prefix)/bin/$$PROGRAM; done
|
||||
$(INSTALL_PROGRAM) $(addprefix code/xc/Release/,$(EXTRA_TARGETS)) $(prefix)/bin
|
||||
|
||||
Makefile: Makefile.in config.status
|
||||
./config.status Makefile
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/* arenavm.c: VIRTUAL MEMORY ARENA CLASS
|
||||
*
|
||||
* $Id$
|
||||
* Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
|
||||
* Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
|
||||
*
|
||||
*
|
||||
* DESIGN
|
||||
|
|
@ -90,8 +90,8 @@ typedef struct VMArenaStruct { /* VM arena structure */
|
|||
/* Forward declarations */
|
||||
|
||||
static void sparePagesPurge(VMArena vmArena);
|
||||
static ArenaClass VMArenaClassGet(void);
|
||||
static ArenaClass VMNZArenaClassGet(void);
|
||||
extern ArenaClass VMArenaClassGet(void);
|
||||
extern ArenaClass VMNZArenaClassGet(void);
|
||||
static void VMCompact(Arena arena, Trace trace);
|
||||
|
||||
|
||||
|
|
@ -1849,7 +1849,7 @@ mps_arena_class_t mps_arena_class_vmnz(void)
|
|||
|
||||
/* C. COPYRIGHT AND LICENSE
|
||||
*
|
||||
* Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>.
|
||||
* Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
|
||||
* All rights reserved. This is an open source license. Contact
|
||||
* Ravenbrook for commercial licensing options.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/* clock.h -- Fast clocks and timers
|
||||
*
|
||||
* Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
|
||||
* Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
|
|
@ -21,17 +21,6 @@
|
|||
* RB 2012-09-11
|
||||
*/
|
||||
|
||||
/* Clang provides a cross-platform builtin for a fast timer, but it
|
||||
was not available on Mac OS X 10.8 until the release of XCode 4.6.
|
||||
<http://clang.llvm.org/docs/LanguageExtensions.html#builtins> */
|
||||
#if defined(MPS_BUILD_LL)
|
||||
|
||||
#if __has_builtin(__builtin_readcyclecounter)
|
||||
/* TODO: use this for EVENT_CLOCK. See job003411. */
|
||||
#endif /* __has_builtin(__builtin_readcyclecounter) */
|
||||
|
||||
#endif
|
||||
|
||||
/* Microsoft C provides an intrinsic for the Intel rdtsc instruction.
|
||||
<http://msdn.microsoft.com/en-US/library/twchhe95%28v=vs.100%29.aspx> */
|
||||
#if (defined(MPS_ARCH_I3) || defined(MPS_ARCH_I6)) && defined(MPS_BUILD_MV)
|
||||
|
|
@ -104,9 +93,28 @@ typedef union EventClockUnion {
|
|||
(defined(MPS_ARCH_I3) || defined(MPS_ARCH_I6)) && \
|
||||
(defined(MPS_BUILD_GC) || defined(MPS_BUILD_LL))
|
||||
|
||||
/* Use __extension__ to enable use of a 64-bit type on 32-bit pedantic GCC */
|
||||
/* Use __extension__ to enable use of a 64-bit type on 32-bit pedantic
|
||||
GCC or Clang. */
|
||||
__extension__ typedef unsigned long long EventClock;
|
||||
|
||||
/* Clang provides a cross-platform builtin for a fast timer, but it
|
||||
was not available on Mac OS X 10.8 until the release of XCode 4.6.
|
||||
<http://clang.llvm.org/docs/LanguageExtensions.html#builtins> */
|
||||
#if defined(MPS_BUILD_LL)
|
||||
|
||||
#if __has_builtin(__builtin_readcyclecounter)
|
||||
|
||||
#define EVENT_CLOCK(lvalue) \
|
||||
BEGIN \
|
||||
(lvalue) = __builtin_readcyclecounter(); \
|
||||
END
|
||||
|
||||
#endif /* __has_builtin(__builtin_readcyclecounter) */
|
||||
|
||||
#endif /* Clang */
|
||||
|
||||
#ifndef EVENT_CLOCK
|
||||
|
||||
#define EVENT_CLOCK(lvalue) \
|
||||
BEGIN \
|
||||
unsigned _l, _h; \
|
||||
|
|
@ -114,6 +122,8 @@ __extension__ typedef unsigned long long EventClock;
|
|||
(lvalue) = ((EventClock)_h << 32) | _l; \
|
||||
END
|
||||
|
||||
#endif
|
||||
|
||||
/* The __extension__ keyword doesn't work on printf formats, so we
|
||||
concatenate two 32-bit hex numbers to print the 64-bit value. */
|
||||
#define EVENT_CLOCK_PRINT(stream, clock) \
|
||||
|
|
@ -150,7 +160,7 @@ typedef mps_clock_t EventClock;
|
|||
|
||||
/* C. COPYRIGHT AND LICENSE
|
||||
*
|
||||
* Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>.
|
||||
* Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
|
||||
* All rights reserved. This is an open source license. Contact
|
||||
* Ravenbrook for commercial licensing options.
|
||||
*
|
||||
|
|
|
|||
109
mps/code/gcovfmt.py
Executable file
109
mps/code/gcovfmt.py
Executable file
|
|
@ -0,0 +1,109 @@
|
|||
#!/usr/bin/python
|
||||
#
|
||||
# $Id$
|
||||
# Copyright (c) 2013 Ravenbrook Limited. See end of file for license.
|
||||
#
|
||||
# This program takes the output of gcov on standard input and writes a
|
||||
# human-readable table with a summary, to the file named on the
|
||||
# command line (or standard output if none is given). The summary line
|
||||
# is always written to standard output so that in the context of "make
|
||||
# test" where the detailed test output is being directed to a test log
|
||||
# file, the coverage summary can still be presented.
|
||||
#
|
||||
# gcov output looks like this:
|
||||
#
|
||||
# File '/project/mps/master/code/mpsi.c'
|
||||
# Lines executed:85.12% of 921
|
||||
# /project/mps/master/code/mpsi.c:creating 'mpsi.c.gcov'
|
||||
#
|
||||
# Note that we select only the .c files (there may also be output for
|
||||
# system files like signal.h with inline function definitions, and we
|
||||
# are not interested in covering them). The MPS has no inline function
|
||||
# definitions in headers.
|
||||
|
||||
from sys import argv, stdin, stdout
|
||||
from re import match
|
||||
|
||||
def coverage():
|
||||
"""For each .c file with coverage data, generate a triple (percent
|
||||
coverage, file name, number of lines).
|
||||
|
||||
"""
|
||||
for line in stdin:
|
||||
m1 = match(r"File '.*/([^/]+\.c)'$", line)
|
||||
if not m1:
|
||||
continue
|
||||
m2 = match(r"Lines executed:(\d[0-9.]*)% of (\d+)$", next(stdin))
|
||||
if m2:
|
||||
yield float(m2.group(1)), m1.group(1), int(m2.group(2))
|
||||
|
||||
def main():
|
||||
if len(argv) >= 2:
|
||||
out = open(argv[1], 'a')
|
||||
else:
|
||||
out = stdout
|
||||
fmt1 = "{:<16s} {:<7s} {:<7s} {:<7s}\n"
|
||||
fmt2 = "{:<16s} {:7d} {:7d} {:7.2f}\n"
|
||||
underlines = "---------------- ------- ------- -------".split()
|
||||
out.write(fmt1.format(*"File Lines Covered Percent".split()))
|
||||
out.write(fmt1.format(*underlines))
|
||||
total_lines, total_covered = 0, 0
|
||||
for percent, file, lines in sorted(coverage()):
|
||||
covered = int(round(lines * percent / 100))
|
||||
total_lines += lines
|
||||
total_covered += covered
|
||||
out.write(fmt2.format(file, lines, covered, percent))
|
||||
out.write(fmt1.format(*underlines))
|
||||
if total_lines == 0:
|
||||
total_percent = 100.0
|
||||
else:
|
||||
total_percent = 100.0 * total_covered / total_lines
|
||||
summary = fmt2.format("COVERAGE TOTAL", total_lines, total_covered,
|
||||
total_percent)
|
||||
out.write(summary)
|
||||
if out != stdout:
|
||||
stdout.write(summary)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
|
||||
# C. COPYRIGHT AND LICENSE
|
||||
#
|
||||
# Copyright (C) 2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
|
||||
# All rights reserved. This is an open source license. Contact
|
||||
# Ravenbrook for commercial licensing options.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# 3. Redistributions in any form must be accompanied by information on how
|
||||
# to obtain complete source code for this software and any accompanying
|
||||
# software that uses this software. The source code must either be
|
||||
# included in the distribution or be available for no more than the cost
|
||||
# of distribution plus a nominal fee, and must be freely redistributable
|
||||
# under reasonable conditions. For an executable file, complete source
|
||||
# code means the source code for all modules it contains. It does not
|
||||
# include source code for modules or files that typically accompany the
|
||||
# major components of the operating system on which the executable file
|
||||
# runs.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
# PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||||
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
|
@ -2453,7 +2453,7 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "# bttest & teletest cannot be run unattended\n# mv2test cannot be run because MV2 is broken\n# amcssth doesn't work on OS X (job001621)\nTESTCASES=\"abqtest amcss amcsshe amsss amssshe apss arenacv awlut \\\n awluthe btcv cbstest finalcv finaltest lockcov locv \\\n messtest mpmss mpsicv poolncv qs sacss segsmss steptest \\\n walkt0\"\nOUTPUT=$(mktemp /tmp/mps.log.XXXXXX)\necho \"Logging test output to $OUTPUT\"\nfor TEST in $TESTCASES; do\n TESTCASE=$TARGET_BUILD_DIR/$TEST\n printf \"\\n\\n-- Running $TESTCASE at $(date) --\\n\" >> $OUTPUT\n echo \"Running $TESTCASE\"\n $TESTCASE >> $OUTPUT || exit 1\ndone";
|
||||
shellScript = "# bttest & teletest cannot be run unattended\n# mv2test cannot be run because MV2 is broken\n# amcssth doesn't work on OS X (job001621)\nTESTCASES=\"abqtest amcss amcsshe amsss amssshe apss arenacv awlut \\\n awluthe btcv cbstest finalcv finaltest lockcov locv \\\n messtest mpmss mpsicv poolncv qs sacss segsmss steptest \\\n walkt0\"\nOUTPUT=$(mktemp /tmp/mps.log.XXXXXX)\necho \"Logging test output to $OUTPUT\"\nfor TEST in $TESTCASES; do\n TESTCASE=$TARGET_BUILD_DIR/$TEST\n printf \"\\n\\n-- Running $TESTCASE at $(date) --\\n\" >> $OUTPUT\n echo \"Running $TEST ($CONFIGURATION)\"\n $TESTCASE >> $OUTPUT || exit 1\ndone\necho \"All tests pass.\"\n\n# Coverage\nif [ \"$CONFIGURATION\" == \"Debug\" ]; then\n (cd xc/$PROJECT.build/$CONFIGURATION/$PROJECT.build/Objects-normal/x86_64 &&\n gcov mps.c 2>>$OUTPUT) |\n python gcovfmt.py $OUTPUT\nfi";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
|
@ -3178,6 +3178,8 @@
|
|||
22FA177216E8D6FC0098B23F /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = amcssth;
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3185,6 +3187,8 @@
|
|||
22FA177316E8D6FC0098B23F /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = amcssth;
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3192,6 +3196,8 @@
|
|||
22FA177416E8D6FC0098B23F /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = amcssth;
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3200,6 +3206,8 @@
|
|||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3223,6 +3231,8 @@
|
|||
2D604B9F16514B1A003AAF46 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3244,6 +3254,8 @@
|
|||
3104AFBA156D357B000A585A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3251,6 +3263,8 @@
|
|||
3104AFBB156D357B000A585A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3258,6 +3272,8 @@
|
|||
3104AFD0156D35E2000A585A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3265,6 +3281,8 @@
|
|||
3104AFD1156D35E2000A585A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3272,6 +3290,8 @@
|
|||
3104AFE5156D3682000A585A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3279,6 +3299,8 @@
|
|||
3104AFE6156D3682000A585A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3302,6 +3324,8 @@
|
|||
3104B011156D38F3000A585A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3309,6 +3333,8 @@
|
|||
3104B012156D38F3000A585A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3316,6 +3342,8 @@
|
|||
3104B02A156D39D4000A585A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3323,6 +3351,8 @@
|
|||
3104B02B156D39D4000A585A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3330,6 +3360,8 @@
|
|||
3104B045156D3AD8000A585A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3337,6 +3369,8 @@
|
|||
3104B046156D3AD8000A585A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3344,6 +3378,8 @@
|
|||
3114A597156E913C001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3351,6 +3387,8 @@
|
|||
3114A598156E913C001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3358,6 +3396,8 @@
|
|||
3114A5AF156E92C0001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3365,6 +3405,8 @@
|
|||
3114A5B0156E92C0001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3372,6 +3414,8 @@
|
|||
3114A5C5156E9315001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3379,6 +3423,8 @@
|
|||
3114A5C6156E9315001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3386,6 +3432,8 @@
|
|||
3114A5DE156E93A0001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3393,6 +3441,8 @@
|
|||
3114A5DF156E93A0001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3400,6 +3450,8 @@
|
|||
3114A5F7156E93E7001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3407,6 +3459,8 @@
|
|||
3114A5F8156E93E7001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3414,6 +3468,8 @@
|
|||
3114A60D156E9430001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3421,6 +3477,8 @@
|
|||
3114A60E156E9430001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3428,6 +3486,8 @@
|
|||
3114A624156E9485001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3435,6 +3495,8 @@
|
|||
3114A625156E9485001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3442,6 +3504,8 @@
|
|||
3114A63B156E94DB001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3449,6 +3513,8 @@
|
|||
3114A63C156E94DB001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3456,6 +3522,8 @@
|
|||
3114A654156E9596001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3463,6 +3531,8 @@
|
|||
3114A655156E9596001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3470,6 +3540,8 @@
|
|||
3114A66A156E95D9001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3477,6 +3549,8 @@
|
|||
3114A66B156E95D9001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3484,6 +3558,8 @@
|
|||
3114A684156E9669001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3491,6 +3567,8 @@
|
|||
3114A685156E9669001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3498,6 +3576,8 @@
|
|||
3114A69D156E971B001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3505,6 +3585,8 @@
|
|||
3114A69E156E971B001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3512,6 +3594,8 @@
|
|||
3114A6B4156E9759001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3519,6 +3603,8 @@
|
|||
3114A6B5156E9759001E0AA3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3526,6 +3612,8 @@
|
|||
3114A6CE156E9815001E0AA3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3540,6 +3628,8 @@
|
|||
3124CAC0156BE3EC00753214 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3547,6 +3637,8 @@
|
|||
3124CAC1156BE3EC00753214 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3554,6 +3646,8 @@
|
|||
3124CADC156BE64A00753214 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3561,6 +3655,8 @@
|
|||
3124CADD156BE64A00753214 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3568,6 +3664,8 @@
|
|||
3124CAF3156BE7F300753214 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3575,6 +3673,8 @@
|
|||
3124CAF4156BE7F300753214 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3654,6 +3754,8 @@
|
|||
318387EE15DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3661,6 +3763,8 @@
|
|||
318387EF15DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3668,6 +3772,8 @@
|
|||
318387F015DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3675,6 +3781,8 @@
|
|||
318387F115DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3682,6 +3790,8 @@
|
|||
318387F215DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3689,6 +3799,8 @@
|
|||
318387F315DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3696,6 +3808,8 @@
|
|||
318387F415DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3703,6 +3817,8 @@
|
|||
318387F515DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3710,6 +3826,8 @@
|
|||
318387F615DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3717,6 +3835,8 @@
|
|||
318387F715DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3724,6 +3844,8 @@
|
|||
318387F815DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3731,6 +3853,8 @@
|
|||
318387F915DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3738,6 +3862,8 @@
|
|||
318387FA15DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3745,6 +3871,8 @@
|
|||
318387FB15DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3752,6 +3880,8 @@
|
|||
318387FC15DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3759,6 +3889,8 @@
|
|||
318387FD15DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3766,6 +3898,8 @@
|
|||
318387FE15DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3773,6 +3907,8 @@
|
|||
318387FF15DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3780,6 +3916,8 @@
|
|||
3183880015DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3787,6 +3925,8 @@
|
|||
3183880115DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3794,6 +3934,8 @@
|
|||
3183880215DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3801,6 +3943,8 @@
|
|||
3183880315DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3808,6 +3952,8 @@
|
|||
3183880415DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3815,6 +3961,8 @@
|
|||
3183880515DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3822,6 +3970,8 @@
|
|||
3183880615DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3829,6 +3979,8 @@
|
|||
3183880715DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3836,6 +3988,8 @@
|
|||
3183880815DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3843,6 +3997,8 @@
|
|||
3183880915DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3850,6 +4006,8 @@
|
|||
3183880A15DC30CC008E4EA0 /* WE */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = WE;
|
||||
|
|
@ -3864,6 +4022,8 @@
|
|||
31D60015156D3CB200337B26 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3871,6 +4031,8 @@
|
|||
31D60016156D3CB200337B26 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3878,6 +4040,8 @@
|
|||
31D6002F156D3D3F00337B26 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3885,6 +4049,8 @@
|
|||
31D60030156D3D3F00337B26 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3892,6 +4058,8 @@
|
|||
31D60046156D3EC700337B26 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3899,6 +4067,8 @@
|
|||
31D60047156D3EC700337B26 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3906,6 +4076,8 @@
|
|||
31D6005C156D3F3500337B26 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3913,6 +4085,8 @@
|
|||
31D6005D156D3F3500337B26 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3920,6 +4094,8 @@
|
|||
31D60079156D3FBC00337B26 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3927,6 +4103,8 @@
|
|||
31D6007A156D3FBC00337B26 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -3934,6 +4112,8 @@
|
|||
31D60094156D402900337B26 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -3941,6 +4121,8 @@
|
|||
31D60095156D402900337B26 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
@ -4060,6 +4242,8 @@
|
|||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -4077,6 +4261,8 @@
|
|||
31EEAC6D156AB52600714D05 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
|
@ -4084,6 +4270,8 @@
|
|||
31EEAC6E156AB52600714D05 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
|
|
|||
|
|
@ -29,9 +29,9 @@ static Bool amcSegHasNailboard(Seg seg);
|
|||
static Bool AMCCheck(AMC amc);
|
||||
static Res AMCFix(Pool pool, ScanState ss, Seg seg, Ref *refIO);
|
||||
static Res AMCHeaderFix(Pool pool, ScanState ss, Seg seg, Ref *refIO);
|
||||
static PoolClass AMCPoolClassGet(void);
|
||||
static BufferClass amcBufClassGet(void);
|
||||
static SegClass amcSegClassGet(void);
|
||||
extern PoolClass AMCPoolClassGet(void);
|
||||
extern BufferClass amcBufClassGet(void);
|
||||
extern SegClass amcSegClassGet(void);
|
||||
|
||||
|
||||
/* amcGenStruct -- pool AMC generation descriptor */
|
||||
|
|
@ -1768,7 +1768,7 @@ static Res AMCFixEmergency(Pool pool, ScanState ss, Seg seg,
|
|||
*
|
||||
* See <design/poolamc/#fix>.
|
||||
*/
|
||||
Res AMCFix(Pool pool, ScanState ss, Seg seg, Ref *refIO)
|
||||
static Res AMCFix(Pool pool, ScanState ss, Seg seg, Ref *refIO)
|
||||
{
|
||||
Arena arena;
|
||||
AMC amc;
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ typedef struct AWLSegStruct {
|
|||
#define AWLSeg2Seg(awlseg) ((Seg)(awlseg))
|
||||
|
||||
|
||||
static SegClass AWLSegClassGet(void);
|
||||
extern SegClass AWLSegClassGet(void);
|
||||
|
||||
|
||||
static Bool AWLSegCheck(AWLSeg awlseg)
|
||||
|
|
|
|||
|
|
@ -168,8 +168,8 @@ typedef struct MRGRefSegStruct {
|
|||
|
||||
/* forward declarations */
|
||||
|
||||
static SegClass MRGLinkSegClassGet(void);
|
||||
static SegClass MRGRefSegClassGet(void);
|
||||
extern SegClass MRGLinkSegClassGet(void);
|
||||
extern SegClass MRGRefSegClassGet(void);
|
||||
|
||||
|
||||
/* MRGLinkSegCheck -- check a link segment
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/* poolsnc.c: STACK NO CHECKING POOL CLASS
|
||||
*
|
||||
* $Id$
|
||||
* Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
|
||||
* Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
|
||||
*
|
||||
* DESIGN
|
||||
*
|
||||
|
|
@ -47,8 +47,8 @@ typedef struct SNCStruct {
|
|||
|
||||
/* Forward declarations */
|
||||
|
||||
static SegClass SNCSegClassGet(void);
|
||||
static BufferClass SNCBufClassGet(void);
|
||||
extern SegClass SNCSegClassGet(void);
|
||||
extern BufferClass SNCBufClassGet(void);
|
||||
static Bool SNCCheck(SNC snc);
|
||||
static void sncPopPartialSegChain(SNC snc, Buffer buf, Seg upTo);
|
||||
|
||||
|
|
@ -700,7 +700,7 @@ static Bool SNCCheck(SNC snc)
|
|||
|
||||
/* C. COPYRIGHT AND LICENSE
|
||||
*
|
||||
* Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>.
|
||||
* Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
|
||||
* All rights reserved. This is an open source license. Contact
|
||||
* Ravenbrook for commercial licensing options.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
|
||||
#include "testlib.h"
|
||||
#include "clock.h" /* for EVENT_CLOCK */
|
||||
#include "mps.h"
|
||||
#include "misc.h" /* for NOOP */
|
||||
#include <math.h>
|
||||
|
|
@ -246,17 +247,15 @@ mps_addr_t rnd_addr(void)
|
|||
* that's impossible.
|
||||
* (2008..2010-03-22)
|
||||
*
|
||||
* 3. v3 states: when autogenerated from time(), the published state
|
||||
* (printf'd) is that *after* the 10 rnds. Therefore you can get
|
||||
* the state easily, store it, re-use it, etc.
|
||||
* (New from 2010-03-22, changelist 170093)
|
||||
* 3. v3 states: the published state is the state *after* all
|
||||
* initialization is complete. Therefore you can easily store and
|
||||
* re-use the published state. (From 2010-03-22, changelist
|
||||
* 170093).
|
||||
*/
|
||||
|
||||
void randomize(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
int n;
|
||||
unsigned long seedt;
|
||||
unsigned long seed0;
|
||||
|
||||
if (argc > 1) {
|
||||
|
|
@ -266,29 +265,11 @@ void randomize(int argc, char *argv[])
|
|||
argv[0], seed0);
|
||||
rnd_state_set(seed0);
|
||||
} else {
|
||||
/* time_t uses an arbitrary encoding, but hopefully the low order */
|
||||
/* 31 bits will have at least one bit changed from run to run. */
|
||||
seedt = 1 + (unsigned long)time(NULL) % (R_m - 1);
|
||||
|
||||
/* The value returned by time() on some OSs may simply be a
|
||||
* count of seconds: therefore successive runs may start with
|
||||
* nearby seeds, possibly differing only by 1. So the first value
|
||||
* returned by rnd() may differ by only 48271. It is conceivable
|
||||
* that some tests might be able to 'spot' this pattern (for
|
||||
* example: by using the first rnd() value, mod 100M and rounded
|
||||
* to multiple of 1024K, as arena size in bytes).
|
||||
*
|
||||
* So to mix it up a bit, we do a few iterations now. How many?
|
||||
* Very roughly, 48271^2 is of the same order as 2^31, so two
|
||||
* iterations would make the characteristic difference similar to
|
||||
* the period. Hey, let's go wild and do 10.
|
||||
*/
|
||||
rnd_state_set(seedt);
|
||||
for(i = 0; i < 10; i += 1) {
|
||||
(void)rnd();
|
||||
}
|
||||
|
||||
seed0 = rnd_state();
|
||||
/* Initialize seed based on seconds since epoch and on processor
|
||||
* cycle count. */
|
||||
EventClock t2;
|
||||
EVENT_CLOCK(t2);
|
||||
seed0 = 1 + ((unsigned long)time(NULL) + (unsigned long)t2) % (R_m - 1);
|
||||
printf("%s: randomize(): choosing initial state (v3): %lu.\n",
|
||||
argv[0], seed0);
|
||||
rnd_state_set(seed0);
|
||||
|
|
|
|||
|
|
@ -275,8 +275,6 @@ Publishing division of Harlequin.
|
|||
Implementation
|
||||
--------------
|
||||
|
||||
[ Now in impl.h.config, may symbols out of date. GavinM 1997-08-07 ]
|
||||
|
||||
_`.impl`: The two implementation files `config.h`_ and `mpstd.h`_ can be
|
||||
seen as preprocessor programs which "accept" build parameters and "emit"
|
||||
configuration parameters (`.fig.impl`_). The build parameters are
|
||||
|
|
|
|||
|
|
@ -51,15 +51,15 @@ yes no none :ref:`pool-lo`
|
|||
yes no exact :ref:`pool-ams`
|
||||
yes no ambiguous nothing suitable
|
||||
yes no weak nothing suitable
|
||||
no *any* none :ref:`pool-mvt`
|
||||
no *any* exact :ref:`pool-mvt` [1]_
|
||||
no *any* ambiguous :ref:`pool-mvt` [1]_
|
||||
no *any* weak :ref:`pool-mvt` [1]_
|
||||
no *any* none :ref:`pool-mvff`
|
||||
no *any* exact :ref:`pool-mvff` [1]_
|
||||
no *any* ambiguous :ref:`pool-mvff` [1]_
|
||||
no *any* weak :ref:`pool-mvff` [1]_
|
||||
========== ====================== =========== ====================================
|
||||
|
||||
.. note::
|
||||
|
||||
.. [1] :ref:`pool-mvt` doesn't scan for references, but you can
|
||||
.. [1] :ref:`pool-mvff` doesn't scan for references, but you can
|
||||
work around this by registering your blocks as
|
||||
:term:`roots` (with the appropriate :term:`rank`) just
|
||||
after they are allocated, and deregistering them just
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ MV (Manual Variable)
|
|||
|
||||
.. deprecated:: starting with version 1.111.
|
||||
|
||||
:ref:`pool-mvt` or :ref:`pool-mvff` should be used instead.
|
||||
:ref:`pool-mvff` should be used instead.
|
||||
|
||||
**MV** is a general-purpose :term:`manually managed <manual memory
|
||||
management>` :term:`pool class` that manages :term:`blocks` of
|
||||
|
|
|
|||
|
|
@ -229,7 +229,7 @@ code. The MPS provides a convenience macro :c:func:`MPS_FIX12` for the
|
|||
common case of calling :c:func:`MPS_FIX1` and then immediately calling
|
||||
:c:func:`MPS_FIX2` if the reference is "of interest".
|
||||
|
||||
.. warning::
|
||||
.. note::
|
||||
|
||||
Some compilers generate better code if you use
|
||||
:c:func:`MPS_FIX12`, and some if you use :c:func:`MPS_FIX1` and
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
<head>
|
||||
|
||||
<title>Memory Pool System Version Create Procedure</title>
|
||||
<title>Memory Pool System Version Creation Procedure</title>
|
||||
|
||||
</head>
|
||||
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
<hr />
|
||||
|
||||
|
||||
<h1>Memory Pool System Version Create Procedure</h1>
|
||||
<h1>Memory Pool System Version Creation Procedure</h1>
|
||||
|
||||
<address>
|
||||
<a href="mailto:rb@ravenbrook.com">Richard Kistruck</a>,
|
||||
|
|
@ -49,98 +49,89 @@ <h2><a id="section-1" name="section-1">1. Introduction</a></h2>
|
|||
|
||||
<h2><a id="section-2" name="section-2">2. Preamble</a></h2>
|
||||
|
||||
<h3>Do I need this procedure?</h3>
|
||||
<h3>2.1. Do I need this procedure?</h3>
|
||||
|
||||
<p>You might not need to create a new version. An alternative is to create a further 'point release' on the existing version. Refer to PQTCM when deciding. (Summary: am I changing the specification?). </p>
|
||||
<p>You might not need to create a new version. An alternative is to create a further ‘point release’ on the existing version. Refer to PQTCM when deciding. (Summary: am I changing the specification?). </p>
|
||||
|
||||
|
||||
<h3>What is a version?</h3>
|
||||
<h3>2.2. What is a version?</h3>
|
||||
|
||||
<p> A version is a 'clone' of all the master source files, that then has its own evolution. A Version has these parts:</p>
|
||||
<p> A version is a ‘clone’ of all the master source files, that then has its own evolution. A version has these parts:</p>
|
||||
|
||||
<ol>
|
||||
|
||||
<li><p>A version name, consisting of a major version number <code>A</code> and a minor version number <code>BBB</code>.</p></li>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
Perforce branch, defining the mapping used to integrate from master to version. By convention, the name of the branch is "mps/version/A.BBB": note that we make the branch name exactly match the pathname of that version's sub-tree. For example:
|
||||
<blockquote><pre><code>
|
||||
$ p4 branch -o mps/version/1.105
|
||||
...
|
||||
//info.ravenbrook.com/project/mps/master/... //info.ravenbrook.com/project/mps/version/1.105/...
|
||||
...
|
||||
<p>A Perforce branch specification that defines the mapping used between the master sources and the sources on the version branch. By convention, the name of the branch is <code>mps/version/A.BBB</code>: note that we make the branch name exactly match the pathname of that version's sub-tree. For example: </p>
|
||||
<blockquote><pre><code>$ p4 branch -o mps/version/1.105
|
||||
Branch: mps/version/1.105
|
||||
|
||||
Description:
|
||||
Branching master sources for version 1.105.
|
||||
|
||||
View:
|
||||
//info.ravenbrook.com/project/mps/master/... //info.ravenbrook.com/project/mps/version/1.105/...
|
||||
</code></pre></blockquote>
|
||||
</li>
|
||||
|
||||
<li>Cloned (integrated) and submitted files, in the "version/A.BBB/..." sub-tree. Usually this is a clone of the entire "master" subtree and all its files. These were created in a single change with "p4 integrate -b <branchspec>". This initial integrate is what populates the version branch with files; before that it was empty. For each of these files, Perforce reports the first action as "branch". Some files may then be further modified. </li>
|
||||
<li><p>Cloned (integrated) and submitted files, in the <code>version/A.BBB/...</code> sub-tree. Usually this is a clone of the entire <code>master/...</code> subtree and all its files. These were created in a single change by running <code>p4 integrate -b mps/version/A.BBB</code>. This initial integrate is what populates the version branch with files; before that it was empty. For each of these files, Perforce reports the first action as “<code>branch</code>”. Some files may then be further modified. </p></li>
|
||||
|
||||
<li>Origin: The point in time that the initial integrate was performed, expressed as its changelevel minus one, defines the "Origin" of the version. The Origin is the last change on the master sources that also made it into the version sources by virtue of the initial integrate command. </li>
|
||||
<li><p>Origin: The point in time that the initial integrate was performed, expressed as its changelevel minus one, defines the “Origin” of the version. This is the last change on the master sources that also made it into the version sources by virtue of the initial integrate command.</p></li>
|
||||
|
||||
<li>Entry in the table at <a href="http://info.ravenbrook.com/project/mps/version/">http://info.ravenbrook.com/project/mps/version/</a>.
|
||||
</li>
|
||||
</ul>
|
||||
<li><p>Entry in the table at <a href="http://info.ravenbrook.com/project/mps/version/">//info.ravenbrook.com/project/mps/version/</a>.</p></li>
|
||||
|
||||
</ol>
|
||||
|
||||
|
||||
<h2><a id="section-3" name="section-3">3. Procedure: How to make a new version</a></h2>
|
||||
|
||||
<p>
|
||||
0. Some files contain an MPS version-name. What version-name do the *master*
|
||||
copies of these files contain? It depends. Some contain the pseudo-version-name
|
||||
"master": you will leave these files unchanged on master, and only update them
|
||||
on the version branch (see step 6 below). Others, even in master, refer to the
|
||||
expected next version-name: you should update these files before making the
|
||||
branch. Make these files contain the expected new version-name, and/or
|
||||
information pertinent to the new version: master/readme.txt
|
||||
master/code/version.c master/code/w3build.bat
|
||||
(check the "Setup" section of
|
||||
procedure/release-build for the full list of these files) Submit these files
|
||||
before you continue.</p>
|
||||
<ol>
|
||||
|
||||
<p>
|
||||
1. Make the branch: p4 branch mps/version/A.BBB Description: Branching master
|
||||
sources for version A.BBB. Always the whole of master:
|
||||
</p>
|
||||
<blockquote><p><code>//info.ravenbrook.com/project/mps/master/... //info.ravenbrook.com/project/mps/version/A.BBB/...</code></p></blockquote>
|
||||
<li><p>Consider each deprecated feature (by grepping the manual sources for <code>deprecated::</code> sections) and decide whether it needs to be removed from the version you are about to make (and all subsequent versions). Remove features from the master sources before making the version branch.</p></li>
|
||||
|
||||
<p>
|
||||
2. Make sure you have no unsubmitted files, and then:</p>
|
||||
<blockquote><p><code>p4 integrate -b mps/version/A.BBB</code></p></blockquote>
|
||||
<li><p>Choose the version number for the new version. Typically this has the same major version number as the previous version, and the next minor version number. Thus 1.104 is followed by 1.105. [TODO: when does the major version number change?]</p></li>
|
||||
|
||||
<p>
|
||||
3. <code>p4 submit</code></p>
|
||||
<li><p>Make sure you have the new version branch mapped to your client workspace: run <code>p4 client</code> and check that there is a mapping for <code>//info.ravenbrook.com/project/mps/version/A.BBB/...</code>.</p></li>
|
||||
|
||||
<p>
|
||||
4. Determine the Origin of the new version: do p4 changes -m 5 on the master,
|
||||
and note the latest change that was in before the integrate.
|
||||
</p>
|
||||
<li><p>In the master sources, edit <a href="../../code/version.c"><code>code/version.c</code></a> and change <code>MPS_RELEASE</code> to refer to the version you are about to create (using <code>.0</code> for the release), and update <code>MPSCopyrightNotice</code> to include the current year. Submit this file to Perforce. [Note that <code>MPS_RELEASE</code> in this file is used to populate the release number for the Sphinx documentation: see <a href="../../manual/source/conf.py"><code>manual/source/conf.py</code></a>.]</p></li>
|
||||
|
||||
<p>
|
||||
[Note: it's better to do it this way -- do the integrate from the _implicit_
|
||||
tip of the master, and then check back to see what happened -- because it's
|
||||
hard to get wrong. Also, then the integrate has the changelevel origin+1.
|
||||
Clashes with master submits could theoretically occur, and could be avoided by
|
||||
determining the origin first and specifying it to the initial integrate, but in
|
||||
practice this never happens. RHSK]
|
||||
</p>
|
||||
<li><p>Determine the origin of the branch: run <code>p4 changes -m 1 //info.ravenbrook.com/project/mps/master/...</code> and note the output changelevel (this is called <code>ORIGIN</code> in the examples below).</li></p>
|
||||
|
||||
<p>
|
||||
5. Update the table at <http://info.ravenbrook.com/project/mps/version/>.
|
||||
</p>
|
||||
<li><p>Make the branch: <code>p4 branch mps/version/A.BBB</code> and edit the branch specification to read as follows:</p>
|
||||
|
||||
<p>
|
||||
6. Edit Master->Version in documents that erroneously say "Master".
|
||||
<blockquote><pre><code>Branch: mps/version/A.BBB
|
||||
|
||||
Description:
|
||||
Branching master sources for version A.BBB.
|
||||
|
||||
View:
|
||||
//info.ravenbrook.com/project/mps/master/... //info.ravenbrook.com/project/mps/version/A.BBB/...
|
||||
</code></pre></blockquote></li>
|
||||
|
||||
<li><p>Make sure you have no unsubmitted files, and then run <code>p4 integrate -b mps/version/A.BBB //info.ravenbrook.com/project/mps/master/...@ORIGIN</code> and then <code>p4 submit</code>.</p></li>
|
||||
|
||||
<li><p>Update the table at <a href="http://info.ravenbrook.com/project/mps/version/">http://info.ravenbrook.com/project/mps/version/</a>.</p></li>
|
||||
|
||||
<li><p>
|
||||
Edit Master->Version in documents that erroneously say "Master".
|
||||
Always edit version/A.BBB/index.html, eg. (case-sensitive):
|
||||
</p>
|
||||
<blockquote><pre>"of the Master version" -> "of Version A.BBB"
|
||||
"Master" -> "Version A.BBB"</pre></blockquote>
|
||||
<p>
|
||||
Less importantly, edit various other files. See change 30260.
|
||||
</p>
|
||||
</p></li>
|
||||
|
||||
<p>
|
||||
7. Do an empty-integrate of this change back on to the masters, so P4 thinks
|
||||
<li><p>
|
||||
Do an empty-integrate of this change back on to the masters, so P4 thinks
|
||||
it's done and doesn't keep suggesting it:
|
||||
</p>
|
||||
<blockquote><pre>p4 integrate -r -b mps/version/A.BBB <Files Edited Master->Version>
|
||||
p4 resolve -ay <Files Edited Master->Version>
|
||||
</pre></blockquote>
|
||||
</pre></blockquote></li>
|
||||
|
||||
</ol>
|
||||
|
||||
|
||||
<h2><a id="section-A" name="section-A">A. References</a></h2>
|
||||
|
|
@ -175,6 +166,7 @@ <h2><a id="section-B" name="section-B">B. Document History</a></h2>
|
|||
2007-07-05 RHSK Releasename now also in w3build.bat. Make sure all submitted before integ.
|
||||
2008-10-29 RHSK Convert from text to html.
|
||||
2010-11-06 RHSK Correctly format example of p4 branch -o mps/version/1.105
|
||||
2013-05-16 GDR readme.txt doesn’t need updating; w3build.bat no longer exists
|
||||
</pre>
|
||||
|
||||
<h2><a id="section-C" name="section-C">C. Copyright and License</a></h2>
|
||||
|
|
|
|||
Loading…
Reference in a new issue