From python-checkins at python.org Tue May 1 15:00:26 2007 From: python-checkins at python.org (richard.tew) Date: Tue, 1 May 2007 15:00:26 +0200 (CEST) Subject: [Stackless-checkins] r55047 - in stackless/branches/release25-maint: Doc/commontex/boilerplate.tex Doc/lib/libcurses.tex Include/patchlevel.h Lib/idlelib/NEWS.txt Lib/idlelib/idlever.py Lib/test/test_dict.py Lib/test/test_pep352.py Misc/NEWS Objects/dictobject.c Objects/setobject.c Python/sysmodule.c Stackless/stackless.h Message-ID: <20070501130026.224CA1E4004@bag.python.org> Author: richard.tew Date: Tue May 1 15:00:13 2007 New Revision: 55047 Modified: stackless/branches/release25-maint/Doc/commontex/boilerplate.tex stackless/branches/release25-maint/Doc/lib/libcurses.tex stackless/branches/release25-maint/Include/patchlevel.h stackless/branches/release25-maint/Lib/idlelib/NEWS.txt stackless/branches/release25-maint/Lib/idlelib/idlever.py stackless/branches/release25-maint/Lib/test/test_dict.py stackless/branches/release25-maint/Lib/test/test_pep352.py stackless/branches/release25-maint/Misc/NEWS stackless/branches/release25-maint/Objects/dictobject.c stackless/branches/release25-maint/Objects/setobject.c stackless/branches/release25-maint/Python/sysmodule.c stackless/branches/release25-maint/Stackless/stackless.h Log: Merged in up to r54863 from the python release25-maint branch. Stackless Python 2.5.1 Modified: stackless/branches/release25-maint/Doc/commontex/boilerplate.tex ============================================================================== --- stackless/branches/release25-maint/Doc/commontex/boilerplate.tex (original) +++ stackless/branches/release25-maint/Doc/commontex/boilerplate.tex Tue May 1 15:00:13 2007 @@ -5,5 +5,5 @@ Email: \email{docs at python.org} } -\date{5th April, 2007} % XXX update before final release! +\date{18th April, 2007} % XXX update before final release! \input{patchlevel} % include Python version information Modified: stackless/branches/release25-maint/Doc/lib/libcurses.tex ============================================================================== --- stackless/branches/release25-maint/Doc/lib/libcurses.tex (original) +++ stackless/branches/release25-maint/Doc/lib/libcurses.tex Tue May 1 15:00:13 2007 @@ -1014,9 +1014,11 @@ input at the end of that time. \end{methoddesc} -\begin{methoddesc}[window]{touchline}{start, count} +\begin{methoddesc}[window]{touchline}{start, count\optional{, changed}} Pretend \var{count} lines have been changed, starting with line -\var{start}. +\var{start}. If \var{changed} is supplied, it specifies +whether the affected lines are marked as +having been changed (\var{changed}=1) or unchanged (\var{changed}=0). \end{methoddesc} \begin{methoddesc}[window]{touchwin}{} Modified: stackless/branches/release25-maint/Include/patchlevel.h ============================================================================== --- stackless/branches/release25-maint/Include/patchlevel.h (original) +++ stackless/branches/release25-maint/Include/patchlevel.h Tue May 1 15:00:13 2007 @@ -22,11 +22,11 @@ #define PY_MAJOR_VERSION 2 #define PY_MINOR_VERSION 5 #define PY_MICRO_VERSION 1 -#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_GAMMA -#define PY_RELEASE_SERIAL 1 +#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL +#define PY_RELEASE_SERIAL 0 /* Version as a string */ -#define PY_VERSION "2.5.1c1" +#define PY_VERSION "2.5.1" /* Subversion Revision number of this file (not of the repository) */ #define PY_PATCHLEVEL_REVISION "$Revision$" Modified: stackless/branches/release25-maint/Lib/idlelib/NEWS.txt ============================================================================== --- stackless/branches/release25-maint/Lib/idlelib/NEWS.txt (original) +++ stackless/branches/release25-maint/Lib/idlelib/NEWS.txt Tue May 1 15:00:13 2007 @@ -1,3 +1,8 @@ +What's New in IDLE 1.2.1? +========================= + +*Release date: 18-APR-2007* + What's New in IDLE 1.2.1c1? =========================== Modified: stackless/branches/release25-maint/Lib/idlelib/idlever.py ============================================================================== --- stackless/branches/release25-maint/Lib/idlelib/idlever.py (original) +++ stackless/branches/release25-maint/Lib/idlelib/idlever.py Tue May 1 15:00:13 2007 @@ -1 +1 @@ -IDLE_VERSION = "1.2.1c1" +IDLE_VERSION = "1.2.1" Modified: stackless/branches/release25-maint/Lib/test/test_dict.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_dict.py (original) +++ stackless/branches/release25-maint/Lib/test/test_dict.py Tue May 1 15:00:13 2007 @@ -189,14 +189,6 @@ self.assertRaises(ValueError, {}.update, [(1, 2, 3)]) - # SF #1615701: make d.update(m) honor __getitem__() and keys() in dict subclasses - class KeyUpperDict(dict): - def __getitem__(self, key): - return key.upper() - d.clear() - d.update(KeyUpperDict.fromkeys('abc')) - self.assertEqual(d, {'a':'A', 'b':'B', 'c':'C'}) - def test_fromkeys(self): self.assertEqual(dict.fromkeys('abc'), {'a':None, 'b':None, 'c':None}) d = {} Modified: stackless/branches/release25-maint/Lib/test/test_pep352.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_pep352.py (original) +++ stackless/branches/release25-maint/Lib/test/test_pep352.py Tue May 1 15:00:13 2007 @@ -19,6 +19,13 @@ self.failUnless(hasattr(ins, attr), "%s missing %s attribute" % (ins.__class__.__name__, attr)) + def stackless_enabled(self): + try: + import stackless + return True + except: + return False + def test_inheritance(self): # Make sure the inheritance hierarchy matches the documentation exc_set = set(x for x in dir(exceptions) if not x.startswith('_')) @@ -51,7 +58,9 @@ try: exc = getattr(__builtin__, exc_name) except AttributeError: - self.fail("%s not a built-in exception" % exc_name) + # This exception is only compiled into Stackless. + if self.stackless_enabled() or exc_name != "TaskletExit": + self.fail("%s not a built-in exception" % exc_name) if last_depth < depth: superclasses.append((last_depth, last_exc)) elif last_depth > depth: @@ -64,7 +73,9 @@ self.verify_instance_interface(exc()) except TypeError: pass - self.failUnless(exc_name in exc_set) + # This exception is only compiled into Stackless. + if self.stackless_enabled() or exc_name != "TaskletExit": + self.failUnless(exc_name in exc_set) exc_set.discard(exc_name) last_exc = exc last_depth = depth Modified: stackless/branches/release25-maint/Misc/NEWS ============================================================================== --- stackless/branches/release25-maint/Misc/NEWS (original) +++ stackless/branches/release25-maint/Misc/NEWS Tue May 1 15:00:13 2007 @@ -4,6 +4,19 @@ (editors: check NEWS.help for information about editing NEWS using ReST.) +What's New in Python 2.5.1? +============================= + +*Release date: 18-APR-2007* + +Core and builtins +----------------- + +- Revert SF #1615701: dict.update() does *not* call __getitem__() or keys() + if subclassed. This is to remain consistent with 2.5. + Also revert revision 53667 with made a similar change to set.update(). + + What's New in Python 2.5.1c1? ============================= Modified: stackless/branches/release25-maint/Objects/dictobject.c ============================================================================== --- stackless/branches/release25-maint/Objects/dictobject.c (original) +++ stackless/branches/release25-maint/Objects/dictobject.c Tue May 1 15:00:13 2007 @@ -1352,7 +1352,7 @@ return -1; } mp = (dictobject*)a; - if (PyDict_CheckExact(b)) { + if (PyDict_Check(b)) { other = (dictobject*)b; if (other == mp || other->ma_used == 0) /* a.update(a) or a.update({}); nothing to do */ Modified: stackless/branches/release25-maint/Objects/setobject.c ============================================================================== --- stackless/branches/release25-maint/Objects/setobject.c (original) +++ stackless/branches/release25-maint/Objects/setobject.c Tue May 1 15:00:13 2007 @@ -916,7 +916,7 @@ { PyObject *key, *it; - if (PyAnySet_CheckExact(other)) + if (PyAnySet_Check(other)) return set_merge(so, other); if (PyDict_CheckExact(other)) { @@ -1211,7 +1211,7 @@ if (result == NULL) return NULL; - if (PyAnySet_CheckExact(other)) { + if (PyAnySet_Check(other)) { Py_ssize_t pos = 0; setentry *entry; @@ -1335,7 +1335,7 @@ if ((PyObject *)so == other) return set_clear_internal(so); - if (PyAnySet_CheckExact(other)) { + if (PyAnySet_Check(other)) { setentry *entry; Py_ssize_t pos = 0; @@ -1384,7 +1384,7 @@ setentry *entry; Py_ssize_t pos = 0; - if (!PyAnySet_CheckExact(other) && !PyDict_CheckExact(other)) { + if (!PyAnySet_Check(other) && !PyDict_CheckExact(other)) { result = set_copy(so); if (result == NULL) return NULL; @@ -1491,7 +1491,7 @@ Py_RETURN_NONE; } - if (PyAnySet_CheckExact(other)) { + if (PyAnySet_Check(other)) { Py_INCREF(other); otherset = (PySetObject *)other; } else { @@ -1574,7 +1574,7 @@ setentry *entry; Py_ssize_t pos = 0; - if (!PyAnySet_CheckExact(other)) { + if (!PyAnySet_Check(other)) { PyObject *tmp, *result; tmp = make_new_set(&PySet_Type, other); if (tmp == NULL) @@ -1603,7 +1603,7 @@ { PyObject *tmp, *result; - if (!PyAnySet_CheckExact(other)) { + if (!PyAnySet_Check(other)) { tmp = make_new_set(&PySet_Type, other); if (tmp == NULL) return NULL; Modified: stackless/branches/release25-maint/Python/sysmodule.c ============================================================================== --- stackless/branches/release25-maint/Python/sysmodule.c (original) +++ stackless/branches/release25-maint/Python/sysmodule.c Tue May 1 15:00:13 2007 @@ -1005,8 +1005,6 @@ } else if (istag || strncmp(br_start, "branches", 8) == 0) { len = br_end2 - br_start; - assert(len >= 13); - assert(len < (sizeof(patchlevel_revision) - 13)); strncpy(branch, br_start, len); branch[len] = '\0'; Modified: stackless/branches/release25-maint/Stackless/stackless.h ============================================================================== --- stackless/branches/release25-maint/Stackless/stackless.h (original) +++ stackless/branches/release25-maint/Stackless/stackless.h Tue May 1 15:00:13 2007 @@ -34,7 +34,7 @@ * ...and then write your support code and mention it in the * common slp_platformselect.h file. */ -#define STACKLESS +#define STACKLESS_OFF #ifdef STACKLESS_OFF #undef STACKLESS _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Tue May 15 11:59:13 2007 From: python-checkins at python.org (richard.tew) Date: Tue, 15 May 2007 11:59:13 +0200 (CEST) Subject: [Stackless-checkins] r55338 - stackless/branches/release25-maint/Stackless/platf/switch_amd64_unix_gas.s Message-ID: <20070515095913.17C281E4002@bag.python.org> Author: richard.tew Date: Tue May 15 11:59:10 2007 New Revision: 55338 Added: stackless/branches/release25-maint/Stackless/platf/switch_amd64_unix_gas.s Log: Most of the work towards assembler based hard switching code for gcc based AMD64 code. Last I checked it still caused crashes, requires further work and is not hooked into the build process. Added: stackless/branches/release25-maint/Stackless/platf/switch_amd64_unix_gas.s ============================================================================== --- (empty file) +++ stackless/branches/release25-maint/Stackless/platf/switch_amd64_unix_gas.s Tue May 15 11:59:10 2007 @@ -0,0 +1,56 @@ +# NOTE: This is not yet safe to use. Checked in for the same of reference. +# +# (int) slp_switch (void); + + .text + .type slp_switch, @function + # This next line is required to the C code can find and + # link against this function. + .global slp_switch +slp_switch: + pushq %rbp + pushq %r15 + pushq %r14 + pushq %r13 + pushq %r12 + pushq %rbx + + # Disabled for now, which should ideally give us identical + # behaviour to the inline C version. Can add this when we + # are ready for it. + #subq $8, %rsp + #stmxcsr (%rsp) + + movq %rsp, %rdi + + call slp_save_state # diff = slp_save_state([?]stackref) + + cmp $-1, %eax # if (diff == -1) + je .exit # return -1; + + cmp $1, %eax # if (diff == 1) + je .no_restore # return 0; + +.restore: + add %eax, %esp # Adjust the stack pointer for the state we are restoring. + + call slp_restore_state # slp_restore_state() + +.no_restore: + xor %rax, %rax # Switch successful (whether we restored or not). + +.exit: + #ldmxcsr (%rsp) + #addq $8, %rsp + + popq %rbx + popq %r12 + popq %r13 + popq %r14 + popq %r15 + # rbp gets popped by the leave statement + + leave + ret +.LFE11: + .size slp_switch, .-slp_switch _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Sun May 6 22:41:40 2007 From: python-checkins at python.org (richard.tew) Date: Sun, 6 May 2007 22:41:40 +0200 (CEST) Subject: [Stackless-checkins] r55159 - stackless/branches/release25-maint/Stackless/unittests/test_pickle.py Message-ID: <20070506204140.9A3F31E4002@bag.python.org> Author: richard.tew Date: Sun May 6 22:41:35 2007 New Revision: 55159 Modified: stackless/branches/release25-maint/Stackless/unittests/test_pickle.py Log: Add a test to ensure that pickling a tasklet in the middle of a call to channelInstance.send_sequence works. Modified: stackless/branches/release25-maint/Stackless/unittests/test_pickle.py ============================================================================== --- stackless/branches/release25-maint/Stackless/unittests/test_pickle.py (original) +++ stackless/branches/release25-maint/Stackless/unittests/test_pickle.py Sun May 6 22:41:35 2007 @@ -264,6 +264,32 @@ # Force the collection of the unpickled tasklet. gc.collect() + def testSendSequence(self): + # Send sequence when pickled was not handled. It uses + # a custom cframe execute function which was not recognised + # by the pickling. + # + # Traceback (most recent call last): + # File ".\test_pickle.py", line 283, in testSendSequence + # pickle.dumps(t1) + # ValueError: frame exec function at 1e00bf40 is not registered! + + def sender(chan): + l = [ 1, 2, 3, 4 ] + chan.send_sequence(l) + + def receiver(chan): + length = 4 + while length: + v = chan.receive() + length -= 1 + + c = stackless.channel() + t1 = stackless.tasklet(sender)(c) + t2 = stackless.tasklet(receiver)(c) + t1.run() + + pickle.dumps(t1) if __name__ == '__main__': if not sys.argv[1:]: _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Mon May 14 16:24:56 2007 From: python-checkins at python.org (kristjan.jonsson) Date: Mon, 14 May 2007 16:24:56 +0200 (CEST) Subject: [Stackless-checkins] r55311 - stackless/branches/release25-maint/Stackless/core/slp_transfer.c Message-ID: <20070514142456.26D2A1E4009@bag.python.org> Author: kristjan.jonsson Date: Mon May 14 16:24:51 2007 New Revision: 55311 Modified: stackless/branches/release25-maint/Stackless/core/slp_transfer.c Log: Fix a serious bug on 64 bit windows. slp_save_state was using an int to compute stack differences. When this function was called from assembler, it was not automatically sign extended to 64 bits, and therefore, negative results got interpreted as large positive ones. Now the testsuite runs perfectly on XP64 Modified: stackless/branches/release25-maint/Stackless/core/slp_transfer.c ============================================================================== --- stackless/branches/release25-maint/Stackless/core/slp_transfer.c (original) +++ stackless/branches/release25-maint/Stackless/core/slp_transfer.c Mon May 14 16:24:51 2007 @@ -62,15 +62,9 @@ #undef __return #define __return(x) { exitcode = x; goto exit; } -int slp_save_state(intptr_t *stack){ - int exitcode; -#ifdef SSIZE_T - /* Only on Windows apparently. */ - SSIZE_T diff; -#else - /* Py_ssize_t when we port to 2.5? */ - int diff; -#endif +intptr_t slp_save_state(intptr_t *stack){ + intptr_t exitcode; + intptr_t diff; SLP_SAVE_STATE(stack, diff); return diff; exit: _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Tue May 1 12:25:52 2007 From: python-checkins at python.org (richard.tew) Date: Tue, 1 May 2007 12:25:52 +0200 (CEST) Subject: [Stackless-checkins] r55043 - in stackless/branches/release25-maint/Stackless: module/channelobject.c module/channelobject.h pickling/prickelpit.c Message-ID: <20070501102552.7EBD01E4004@bag.python.org> Author: richard.tew Date: Tue May 1 12:25:50 2007 New Revision: 55043 Modified: stackless/branches/release25-maint/Stackless/module/channelobject.c stackless/branches/release25-maint/Stackless/module/channelobject.h stackless/branches/release25-maint/Stackless/pickling/prickelpit.c Log: Allow the channel send sequence method to be pickled. This involved hooking the frame pickling used for the eval_frame functions up to be used for the cframe used by channel_send_sequence. Was a little unsure about this change, but Christian gave it an ok when I passed it by him. Modified: stackless/branches/release25-maint/Stackless/module/channelobject.c ============================================================================== --- stackless/branches/release25-maint/Stackless/module/channelobject.c (original) +++ stackless/branches/release25-maint/Stackless/module/channelobject.c Tue May 1 12:25:50 2007 @@ -745,7 +745,7 @@ * the loop all the time. Hopefully the idea is still visible. */ -static PyObject * +PyObject * channel_seq_callback(PyFrameObject *_f, int exc, PyObject *retval) { PyThreadState *ts; Modified: stackless/branches/release25-maint/Stackless/module/channelobject.h ============================================================================== --- stackless/branches/release25-maint/Stackless/module/channelobject.h (original) +++ stackless/branches/release25-maint/Stackless/module/channelobject.h Tue May 1 12:25:50 2007 @@ -17,3 +17,6 @@ } PyChannel_HeapType; int init_channeltype(void); + +PyObject * channel_seq_callback(struct _frame *f, int throwflag, + PyObject *retval); Modified: stackless/branches/release25-maint/Stackless/pickling/prickelpit.c ============================================================================== --- stackless/branches/release25-maint/Stackless/pickling/prickelpit.c (original) +++ stackless/branches/release25-maint/Stackless/pickling/prickelpit.c Tue May 1 12:25:50 2007 @@ -5,6 +5,7 @@ #include "core/stackless_impl.h" #include "pickling/prickelpit.h" +#include "module/channelobject.h" /* platform specific constants */ #include "platf/slp_platformselect.h" @@ -719,6 +720,7 @@ DEF_INVALID_EXEC(eval_frame_value) DEF_INVALID_EXEC(eval_frame_noval) DEF_INVALID_EXEC(eval_frame_iter) +DEF_INVALID_EXEC(channel_seq_callback) static PyTypeObject wrap_PyFrame_Type; @@ -1048,6 +1050,8 @@ PyEval_EvalFrame_noval, REF_INVALID_EXEC(eval_frame_noval)) || slp_register_execute(&PyFrame_Type, "eval_frame_iter", PyEval_EvalFrame_iter, REF_INVALID_EXEC(eval_frame_iter)) + || slp_register_execute(&PyCFrame_Type, "channel_seq_callback", + channel_seq_callback, REF_INVALID_EXEC(channel_seq_callback)) || init_type(&wrap_PyFrame_Type, initchain); } #undef initchain _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Mon May 14 17:59:14 2007 From: python-checkins at python.org (kristjan.jonsson) Date: Mon, 14 May 2007 17:59:14 +0200 (CEST) Subject: [Stackless-checkins] r55314 - in stackless/branches/release25-maint/Stackless: module/channelobject.c stackless_api.h Message-ID: <20070514155914.558401E4009@bag.python.org> Author: kristjan.jonsson Date: Mon May 14 17:59:12 2007 New Revision: 55314 Modified: stackless/branches/release25-maint/Stackless/module/channelobject.c stackless/branches/release25-maint/Stackless/stackless_api.h Log: Add a new api: PyChannel_GetBalance(). Modified: stackless/branches/release25-maint/Stackless/module/channelobject.c ============================================================================== --- stackless/branches/release25-maint/Stackless/module/channelobject.c (original) +++ stackless/branches/release25-maint/Stackless/module/channelobject.c Mon May 14 17:59:12 2007 @@ -244,6 +244,12 @@ self->flags.schedule_all = val ? 1 : 0; } +int +PyChannel_GetBalance(PyChannelObject *self) +{ + return self->balance; +} + static PyGetSetDef channel_getsetlist[] = { {"queue", (getter)channel_get_queue, NULL, "the chain of waiting tasklets."}, Modified: stackless/branches/release25-maint/Stackless/stackless_api.h ============================================================================== --- stackless/branches/release25-maint/Stackless/stackless_api.h (original) +++ stackless/branches/release25-maint/Stackless/stackless_api.h Mon May 14 17:59:12 2007 @@ -261,6 +261,12 @@ PyAPI_FUNC(int) PyChannel_GetScheduleAll(PyChannelObject *self); PyAPI_FUNC(void) PyChannel_SetScheduleAll(PyChannelObject *self, int val); +/* + *Get the current channel balance. Negative numbers are readers, positive + * are writers + */ +PyAPI_FUNC(int) PyChannel_GetBalance(PyChannelObject *self); + /****************************************************** stacklessmodule functions _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Sun May 6 17:36:22 2007 From: python-checkins at python.org (kristjan.jonsson) Date: Sun, 6 May 2007 17:36:22 +0200 (CEST) Subject: [Stackless-checkins] r55157 - stackless/branches/release25-maint/PCbuild8/pyproject.vsprops Message-ID: <20070506153622.BC4B31E4002@bag.python.org> Author: kristjan.jonsson Date: Sun May 6 17:36:22 2007 New Revision: 55157 Modified: stackless/branches/release25-maint/PCbuild8/pyproject.vsprops Log: Update the pyproject.vsprops property sheet with the stackless include dir Modified: stackless/branches/release25-maint/PCbuild8/pyproject.vsprops ============================================================================== --- stackless/branches/release25-maint/PCbuild8/pyproject.vsprops (original) +++ stackless/branches/release25-maint/PCbuild8/pyproject.vsprops Sun May 6 17:36:22 2007 @@ -8,7 +8,7 @@ > Author: richard.tew Date: Sun May 6 22:52:54 2007 New Revision: 55161 Added: stackless/trunk/Stackless/unittests/test_exception.py - copied unchanged from r55160, stackless/branches/release25-maint/Stackless/unittests/test_exception.py Modified: stackless/trunk/Stackless/unittests/test_pickle.py Log: Ported Stackless release25-maint r55159, r55160. Added a test for the crasher where TaskletExit was incorrectly defined as to its exception type. It was fixed recently by Kristjan, but a test can't hurt. Modified: stackless/trunk/Stackless/unittests/test_pickle.py ============================================================================== --- stackless/trunk/Stackless/unittests/test_pickle.py (original) +++ stackless/trunk/Stackless/unittests/test_pickle.py Sun May 6 22:52:54 2007 @@ -264,6 +264,32 @@ # Force the collection of the unpickled tasklet. gc.collect() + def testSendSequence(self): + # Send sequence when pickled was not handled. It uses + # a custom cframe execute function which was not recognised + # by the pickling. + # + # Traceback (most recent call last): + # File ".\test_pickle.py", line 283, in testSendSequence + # pickle.dumps(t1) + # ValueError: frame exec function at 1e00bf40 is not registered! + + def sender(chan): + l = [ 1, 2, 3, 4 ] + chan.send_sequence(l) + + def receiver(chan): + length = 4 + while length: + v = chan.receive() + length -= 1 + + c = stackless.channel() + t1 = stackless.tasklet(sender)(c) + t2 = stackless.tasklet(receiver)(c) + t1.run() + + pickle.dumps(t1) if __name__ == '__main__': if not sys.argv[1:]: _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From stackless-checkins at stackless.com Mon May 21 20:28:44 2007 From: stackless-checkins at stackless.com (Business News) Date: Mon, 21 May 2007 20:28:44 +0200 Subject: [Stackless-checkins] All Investors Alert ! Message-ID: <20070521-52538.3133.qmail@dsl-189-152-40-115.prod-infinitum.com.mx> An HTML attachment was scrubbed... URL: http://www.stackless.com/pipermail/stackless-checkins/attachments/20070521/bdda827f/attachment.htm -------------- next part -------------- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Mon May 14 16:29:10 2007 From: python-checkins at python.org (kristjan.jonsson) Date: Mon, 14 May 2007 16:29:10 +0200 (CEST) Subject: [Stackless-checkins] r55312 - stackless/branches/release25-maint/Stackless/core/slp_transfer.c Message-ID: <20070514142910.3ADE41E4009@bag.python.org> Author: kristjan.jonsson Date: Mon May 14 16:29:07 2007 New Revision: 55312 Modified: stackless/branches/release25-maint/Stackless/core/slp_transfer.c Log: Fix indentation Modified: stackless/branches/release25-maint/Stackless/core/slp_transfer.c ============================================================================== --- stackless/branches/release25-maint/Stackless/core/slp_transfer.c (original) +++ stackless/branches/release25-maint/Stackless/core/slp_transfer.c Mon May 14 16:29:07 2007 @@ -25,16 +25,16 @@ #define __return(x) return (x) #define SLP_SAVE_STATE(stackref, stsizediff) \ - intptr_t stsizeb; \ + intptr_t stsizeb; \ stackref += STACK_MAGIC; \ if (_cstprev != NULL) { \ - if (slp_cstack_new(_cstprev, (intptr_t *)stackref, _prev) == NULL) __return(-1); \ + if (slp_cstack_new(_cstprev, (intptr_t *)stackref, _prev) == NULL) __return(-1); \ stsizeb = slp_cstack_save(*_cstprev); \ } \ else \ - stsizeb = (_cst->startaddr - (intptr_t *)stackref) * sizeof(intptr_t); \ - if (_cst == NULL) __return(0); \ - stsizediff = stsizeb - (_cst->ob_size * sizeof(intptr_t)); + stsizeb = (_cst->startaddr - (intptr_t *)stackref) * sizeof(intptr_t); \ + if (_cst == NULL) __return(0); \ + stsizediff = stsizeb - (_cst->ob_size * sizeof(intptr_t)); #define SLP_RESTORE_STATE() \ if (_cst != NULL) { \ @@ -91,12 +91,12 @@ * needed stack size becomes *negative* :-)) */ PyThreadState *ts = PyThreadState_GET(); - intptr_t probe; - ptrdiff_t needed = &probe - ts->st.cstack_base; + intptr_t probe; + ptrdiff_t needed = &probe - ts->st.cstack_base; /* in rare cases, the need might have vanished due to the recursion */ - intptr_t *goobledigoobs; + intptr_t *goobledigoobs; if (needed > 0) { - goobledigoobs = alloca(needed * sizeof(intptr_t)); + goobledigoobs = alloca(needed * sizeof(intptr_t)); if (goobledigoobs == NULL) return -1; } @@ -112,7 +112,7 @@ /* since we change the stack we must assure that the protocol was met */ STACKLESS_ASSERT(); - if ((intptr_t *) &ts > ts->st.cstack_base) + if ((intptr_t *) &ts > ts->st.cstack_base) return climb_stack_and_transfer(cstprev, cst, prev); if (cst == NULL || cst->ob_size == 0) cst = ts->st.initial_stub; _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Sun May 6 22:47:43 2007 From: python-checkins at python.org (richard.tew) Date: Sun, 6 May 2007 22:47:43 +0200 (CEST) Subject: [Stackless-checkins] r55160 - stackless/branches/release25-maint/Stackless/unittests/test_exception.py Message-ID: <20070506204743.41B811E4002@bag.python.org> Author: richard.tew Date: Sun May 6 22:47:40 2007 New Revision: 55160 Added: stackless/branches/release25-maint/Stackless/unittests/test_exception.py Log: Added a test for the crasher where TaskletExit was incorrectly defined as to its exception type. It was fixed recently by Kristjan, but a test can't hurt. Added: stackless/branches/release25-maint/Stackless/unittests/test_exception.py ============================================================================== --- (empty file) +++ stackless/branches/release25-maint/Stackless/unittests/test_exception.py Sun May 6 22:47:40 2007 @@ -0,0 +1,10 @@ +import unittest + + +class TestException(unittest.TestCase): + def testTaskletExitCode(self): + # Tasklet exit was defined as the wrong kind of exception. + # When its code attribute was accessed the runtime would + # crash. This has been fixed. + exc = TaskletExit() + exc.code _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Sat May 5 11:55:38 2007 From: python-checkins at python.org (kristjan.jonsson) Date: Sat, 5 May 2007 11:55:38 +0200 (CEST) Subject: [Stackless-checkins] r55145 - in stackless/branches/release25-maint: Modules/datetimemodule.c Modules/getbuildinfo.c PC/make_versioninfo.c PCbuild8/PGInstrument.vsprops PCbuild8/PGUpdate.vsprops PCbuild8/Uninstal.wse PCbuild8/_bsddb PCbuild8/_bsddb.vcproj PCbuild8/_ctypes PCbuild8/_ctypes.vcproj PCbuild8/_ctypes_test PCbuild8/_ctypes_test.vcproj PCbuild8/_elementtree PCbuild8/_elementtree.vcproj PCbuild8/_msi PCbuild8/_msi.vcproj PCbuild8/_socket PCbuild8/_socket.vcproj PCbuild8/_sqlite3 PCbuild8/_sqlite3.vcproj PCbuild8/_ssl.mak PCbuild8/_ssl.vcproj PCbuild8/_testcapi PCbuild8/_testcapi.vcproj PCbuild8/_tkinter PCbuild8/_tkinter.vcproj PCbuild8/build.bat PCbuild8/build_pgo.bat PCbuild8/build_ssl.py PCbuild8/bz2 PCbuild8/bz2.vcproj PCbuild8/db.build PCbuild8/field3.py PCbuild8/make_buildinfo PCbuild8/make_buildinfo.c PCbuild8/make_buildinfo.vcproj PCbuild8/make_versioninfo PCbuild8/make_versioninfo.vcproj PCbuild8/pcbuild.sln PCbuild8/pyd.vsprops PCbuild8/pyd_d.vsprops PCbuild8/pyexpat ! PCbuild8/pyexpat.vcproj PCbuild8/pyproject.vsprops PCbuild8/python PCbuild8/python.build PCbuild8/python.iss PCbuild8/python.vcproj PCbuild8/python20.wse PCbuild8/pythoncore PCbuild8/pythoncore.vcproj PCbuild8/pythoncore/pythoncore.vcproj PCbuild8/pythonw PCbuild8/pythonw.vcproj PCbuild8/readme.txt PCbuild8/rmpyc.py PCbuild8/rt.bat PCbuild8/select PCbuild8/select.vcproj PCbuild8/unicodedata PCbuild8/unicodedata.vcproj PCbuild8/w9xpopen PCbuild8/w9xpopen.vcproj PCbuild8/winsound PCbuild8/winsound.vcproj Python/import.c Python/pythonrun.c Message-ID: <20070505095538.251E51E4002@bag.python.org> Author: kristjan.jonsson Date: Sat May 5 11:55:26 2007 New Revision: 55145 Added: stackless/branches/release25-maint/PCbuild8/PGInstrument.vsprops - copied unchanged from r55144, python/branches/release25-maint/PCbuild8/PGInstrument.vsprops stackless/branches/release25-maint/PCbuild8/PGUpdate.vsprops - copied unchanged from r55144, python/branches/release25-maint/PCbuild8/PGUpdate.vsprops stackless/branches/release25-maint/PCbuild8/_bsddb/ - copied from r55144, python/branches/release25-maint/PCbuild8/_bsddb/ stackless/branches/release25-maint/PCbuild8/_ctypes/ - copied from r55144, python/branches/release25-maint/PCbuild8/_ctypes/ stackless/branches/release25-maint/PCbuild8/_ctypes_test/ - copied from r55144, python/branches/release25-maint/PCbuild8/_ctypes_test/ stackless/branches/release25-maint/PCbuild8/_elementtree/ - copied from r55144, python/branches/release25-maint/PCbuild8/_elementtree/ stackless/branches/release25-maint/PCbuild8/_msi/ - copied from r55144, python/branches/release25-maint/PCbuild8/_msi/ stackless/branches/release25-maint/PCbuild8/_socket/ - copied from r55144, python/branches/release25-maint/PCbuild8/_socket/ stackless/branches/release25-maint/PCbuild8/_sqlite3/ - copied from r55144, python/branches/release25-maint/PCbuild8/_sqlite3/ stackless/branches/release25-maint/PCbuild8/_testcapi/ - copied from r55144, python/branches/release25-maint/PCbuild8/_testcapi/ stackless/branches/release25-maint/PCbuild8/_tkinter/ - copied from r55144, python/branches/release25-maint/PCbuild8/_tkinter/ stackless/branches/release25-maint/PCbuild8/build.bat - copied unchanged from r55144, python/branches/release25-maint/PCbuild8/build.bat stackless/branches/release25-maint/PCbuild8/build_pgo.bat - copied unchanged from r55144, python/branches/release25-maint/PCbuild8/build_pgo.bat stackless/branches/release25-maint/PCbuild8/bz2/ - copied from r55144, python/branches/release25-maint/PCbuild8/bz2/ stackless/branches/release25-maint/PCbuild8/make_buildinfo/ - copied from r55144, python/branches/release25-maint/PCbuild8/make_buildinfo/ stackless/branches/release25-maint/PCbuild8/make_versioninfo/ - copied from r55144, python/branches/release25-maint/PCbuild8/make_versioninfo/ stackless/branches/release25-maint/PCbuild8/pyd.vsprops - copied unchanged from r55144, python/branches/release25-maint/PCbuild8/pyd.vsprops stackless/branches/release25-maint/PCbuild8/pyd_d.vsprops - copied unchanged from r55144, python/branches/release25-maint/PCbuild8/pyd_d.vsprops stackless/branches/release25-maint/PCbuild8/pyexpat/ - copied from r55144, python/branches/release25-maint/PCbuild8/pyexpat/ stackless/branches/release25-maint/PCbuild8/pyproject.vsprops - copied unchanged from r55144, python/branches/release25-maint/PCbuild8/pyproject.vsprops stackless/branches/release25-maint/PCbuild8/python/ - copied from r55144, python/branches/release25-maint/PCbuild8/python/ stackless/branches/release25-maint/PCbuild8/pythoncore/ - copied from r55144, python/branches/release25-maint/PCbuild8/pythoncore/ stackless/branches/release25-maint/PCbuild8/pythonw/ - copied from r55144, python/branches/release25-maint/PCbuild8/pythonw/ stackless/branches/release25-maint/PCbuild8/select/ - copied from r55144, python/branches/release25-maint/PCbuild8/select/ stackless/branches/release25-maint/PCbuild8/unicodedata/ - copied from r55144, python/branches/release25-maint/PCbuild8/unicodedata/ stackless/branches/release25-maint/PCbuild8/w9xpopen/ - copied from r55144, python/branches/release25-maint/PCbuild8/w9xpopen/ stackless/branches/release25-maint/PCbuild8/winsound/ - copied from r55144, python/branches/release25-maint/PCbuild8/winsound/ Removed: stackless/branches/release25-maint/PCbuild8/Uninstal.wse stackless/branches/release25-maint/PCbuild8/_bsddb.vcproj stackless/branches/release25-maint/PCbuild8/_ctypes.vcproj stackless/branches/release25-maint/PCbuild8/_ctypes_test.vcproj stackless/branches/release25-maint/PCbuild8/_elementtree.vcproj stackless/branches/release25-maint/PCbuild8/_msi.vcproj stackless/branches/release25-maint/PCbuild8/_socket.vcproj stackless/branches/release25-maint/PCbuild8/_sqlite3.vcproj stackless/branches/release25-maint/PCbuild8/_ssl.mak stackless/branches/release25-maint/PCbuild8/_ssl.vcproj stackless/branches/release25-maint/PCbuild8/_testcapi.vcproj stackless/branches/release25-maint/PCbuild8/_tkinter.vcproj stackless/branches/release25-maint/PCbuild8/build_ssl.py stackless/branches/release25-maint/PCbuild8/bz2.vcproj stackless/branches/release25-maint/PCbuild8/db.build stackless/branches/release25-maint/PCbuild8/field3.py stackless/branches/release25-maint/PCbuild8/make_buildinfo.c stackless/branches/release25-maint/PCbuild8/make_buildinfo.vcproj stackless/branches/release25-maint/PCbuild8/make_versioninfo.vcproj stackless/branches/release25-maint/PCbuild8/pyexpat.vcproj stackless/branches/release25-maint/PCbuild8/python.build stackless/branches/release25-maint/PCbuild8/python.iss stackless/branches/release25-maint/PCbuild8/python.vcproj stackless/branches/release25-maint/PCbuild8/python20.wse stackless/branches/release25-maint/PCbuild8/pythoncore.vcproj stackless/branches/release25-maint/PCbuild8/pythonw.vcproj stackless/branches/release25-maint/PCbuild8/select.vcproj stackless/branches/release25-maint/PCbuild8/unicodedata.vcproj stackless/branches/release25-maint/PCbuild8/w9xpopen.vcproj stackless/branches/release25-maint/PCbuild8/winsound.vcproj Modified: stackless/branches/release25-maint/Modules/datetimemodule.c stackless/branches/release25-maint/Modules/getbuildinfo.c stackless/branches/release25-maint/PC/make_versioninfo.c stackless/branches/release25-maint/PCbuild8/pcbuild.sln stackless/branches/release25-maint/PCbuild8/pythoncore/pythoncore.vcproj stackless/branches/release25-maint/PCbuild8/readme.txt stackless/branches/release25-maint/PCbuild8/rmpyc.py stackless/branches/release25-maint/PCbuild8/rt.bat stackless/branches/release25-maint/Python/import.c stackless/branches/release25-maint/Python/pythonrun.c Log: Integrate recent changes to stackless25-maint, making the PCBuild8 solution up-to-date Modified: stackless/branches/release25-maint/Modules/datetimemodule.c ============================================================================== --- stackless/branches/release25-maint/Modules/datetimemodule.c (original) +++ stackless/branches/release25-maint/Modules/datetimemodule.c Sat May 5 11:55:26 2007 @@ -13,7 +13,9 @@ /* Differentiate between building the core module and building extension * modules. */ +#ifndef Py_BUILD_CORE #define Py_BUILD_CORE +#endif #include "datetime.h" #undef Py_BUILD_CORE Modified: stackless/branches/release25-maint/Modules/getbuildinfo.c ============================================================================== --- stackless/branches/release25-maint/Modules/getbuildinfo.c (original) +++ stackless/branches/release25-maint/Modules/getbuildinfo.c Sat May 5 11:55:26 2007 @@ -20,10 +20,7 @@ #endif #endif -#ifdef SUBWCREV #define SVNVERSION "$WCRANGE$$WCMODS?M:$" -#endif - const char * Py_GetBuildInfo(void) { @@ -40,9 +37,9 @@ const char * _Py_svnversion(void) { -#ifdef SVNVERSION - return SVNVERSION; -#else + /* the following string can be modified by subwcrev.exe */ + static const char svnversion[] = SVNVERSION; + if (!strstr(svnversion, "$")) + return svnversion; /* it was interpolated */ return "exported"; -#endif } Modified: stackless/branches/release25-maint/PC/make_versioninfo.c ============================================================================== --- stackless/branches/release25-maint/PC/make_versioninfo.c (original) +++ stackless/branches/release25-maint/PC/make_versioninfo.c Sat May 5 11:55:26 2007 @@ -27,7 +27,12 @@ PY_MICRO_VERSION*1000 + PY_RELEASE_LEVEL*10 + PY_RELEASE_SERIAL); printf("#define MS_DLL_ID \"%d.%d\"\n", PY_MAJOR_VERSION, PY_MINOR_VERSION); + printf("#ifndef _DEBUG\n"); printf("#define PYTHON_DLL_NAME \"python%d%d.dll\"\n", PY_MAJOR_VERSION, PY_MINOR_VERSION); + printf("#else\n"); + printf("#define PYTHON_DLL_NAME \"python%d%d_d.dll\"\n", + PY_MAJOR_VERSION, PY_MINOR_VERSION); + printf("#endif\n"); return 0; } Deleted: /stackless/branches/release25-maint/PCbuild8/Uninstal.wse ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/Uninstal.wse Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,514 +0,0 @@ -Document Type: WSE -item: Global - Version=8.14 - Flags=00000100 - Split=1420 - Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - Copy Default=1 - Japanese Font Name=MS Gothic - Japanese Font Size=10 - Start Gradient=0 0 255 - End Gradient=0 0 0 - Windows Flags=00000000000000000000101000001000 - Message Font=MS Sans Serif - Font Size=8 - Disk Label=GLBS - Disk Filename=INSTALL - Patch Flags=0000000000000001 - Patch Threshold=200 - Patch Memory=4096 - Per-User Version ID=1 - Crystal Format=10111100101100000010001001001001 - Step View=&Properties -end -item: Remark - Text=Note from Tim: This is a verbatim copy of Wise's Uninstal.wse, altered at the end to write -end -item: Remark - Text=uninstall info under HKCU instead of HKLM if our DOADMIN var is false. -end -item: Remark -end -item: Remark - Text= Install Support for uninstalling the application. -end -item: Remark -end -item: Set Variable - Variable=UNINSTALL_PATH - Value=%_LOGFILE_PATH_% - Flags=00000010 -end -item: Set Variable - Variable=UNINSTALL_PATH - Value=%UNINSTALL_PATH%\UNWISE.EXE -end -item: Compiler Variable If - Variable=_EXE_OS_TYPE_ - Value=WIN32 -end -item: Install File - Source=%_WISE_%\UNWISE32.EXE - Destination=%UNINSTALL_PATH% - Flags=0000000000000010 -end -item: Compiler Variable Else -end -item: Install File - Source=%_WISE_%\UNWISE.EXE - Destination=%UNINSTALL_PATH% - Flags=0000000000000010 -end -item: Compiler Variable End -end -item: Remark -end -item: Remark - Text= Install Support for multiple languages -end -item: Remark -end -item: Set Variable - Variable=UNINSTALL_LANG - Value=%UNINSTALL_PATH% - Flags=00000010 -end -item: Set Variable - Variable=UNINSTALL_LANG - Value=%UNINSTALL_LANG%\UNWISE.INI -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=C - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.FRA - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_C_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.FRA - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=D - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.FRA - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_D_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.FRA - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=E - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.DEU - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_E_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.DEU - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=F - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.PTG - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_F_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.PTG - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=G - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.ESP - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_G_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.ESP - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=H - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.ESP - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_H_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.ESP - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=I - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.ITA - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_I_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.ITA - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=J - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.DAN - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_J_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.DAN - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=K - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.FIN - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_K_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.FIN - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=L - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.ISL - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_L_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.ISL - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=M - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.NLD - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_M_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.NLD - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=N - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.NOR - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_N_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.NOR - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=O - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.SVE - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_O_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.SVE - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Compiler Variable If - Variable=_LANG_LIST_ - Value=P - Flags=00000010 -end -item: Compiler Variable If - Value=%_WISE_%\LANGUAGE\UNWISE.JPN - Flags=00000011 -end -item: If/While Statement - Variable=LANG - Value=%_LANG_P_NAME_% -end -item: Install File - Source=%_WISE_%\LANGUAGE\UNWISE.JPN - Destination=%UNINSTALL_LANG% - Flags=0000000000000010 -end -item: End Block -end -item: Compiler Variable End -end -item: Compiler Variable End -end -item: Remark -end -item: Remark - Text= Install the add/remove or uninstall icon -end -item: Remark -end -item: Set Variable - Variable=UNINSTALL_PATH - Value=%UNINSTALL_PATH% - Flags=00010100 -end -item: Set Variable - Variable=INST_LOG_PATH - Value=%_LOGFILE_PATH_% - Flags=00010100 -end -item: Check Configuration - Flags=10111011 -end -item: If/While Statement - Variable=DOADMIN - Value=1 -end -item: Remark - Text=Write uninstall info under HKLM. This if/else/end block added by Tim. -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=%APPTITLE% - Value Name=DisplayName - Root=2 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=%UNINSTALL_PATH% %INST_LOG_PATH% - New Value= - Value Name=UninstallString - Root=2 -end -item: Else Statement -end -item: Remark - Text=The same, but write under HKCU instead. -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=%APPTITLE% - Value Name=DisplayName - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=%UNINSTALL_PATH% %INST_LOG_PATH% - New Value= - Value Name=UninstallString - Root=1 -end -item: End Block -end -item: Else Statement -end -item: Add ProgMan Icon - Group=%GROUP% - Icon Name=Uninstall %APPTITLE% - Command Line=%UNINSTALL_PATH% %INST_LOG_PATH% -end -item: End Block -end -item: Check Configuration - Flags=11110010 -end -item: If/While Statement - Variable=DOBRAND - Value=1 -end -item: Edit Registry - Total Keys=2 - item: Key - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=%COMPANY% - Value Name=RegCompany - Root=2 - end - item: Key - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=%NAME% - Value Name=RegOwner - Root=2 - end -end -item: End Block -end -item: End Block -end Deleted: /stackless/branches/release25-maint/PCbuild8/_bsddb.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/_bsddb.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,385 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/_ctypes.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/_ctypes.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,412 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/_ctypes_test.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/_ctypes_test.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,370 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/_elementtree.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/_elementtree.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,390 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/_msi.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/_msi.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,375 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/_socket.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/_socket.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,381 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/_sqlite3.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/_sqlite3.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,411 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/_ssl.mak ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/_ssl.mak Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,21 +0,0 @@ - -!IFDEF DEBUG -MODULE=_ssl_d.pyd -TEMP_DIR=x86-temp-debug/_ssl -CFLAGS=/Od /Zi /MDd /LDd /DDEBUG /D_DEBUG /DWIN32 -SSL_LIB_DIR=$(SSL_DIR)/out32.dbg -!ELSE -MODULE=_ssl.pyd -TEMP_DIR=x86-temp-release/_ssl -CFLAGS=/Ox /MD /LD /DWIN32 -SSL_LIB_DIR=$(SSL_DIR)/out32 -!ENDIF - -INCLUDES=-I ../Include -I ../PC -I $(SSL_DIR)/inc32 -LIBS=gdi32.lib wsock32.lib user32.lib advapi32.lib /libpath:$(SSL_LIB_DIR) libeay32.lib ssleay32.lib - -SOURCE=../Modules/_ssl.c $(SSL_LIB_DIR)/libeay32.lib $(SSL_LIB_DIR)/ssleay32.lib - -$(MODULE): $(SOURCE) ../PC/*.h ../Include/*.h - @if not exist "$(TEMP_DIR)/." mkdir "$(TEMP_DIR)" - cl /nologo $(SOURCE) $(CFLAGS) /Fo$(TEMP_DIR)\$*.obj $(INCLUDES) /link /out:$(MODULE) $(LIBS) Deleted: /stackless/branches/release25-maint/PCbuild8/_ssl.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/_ssl.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/_testcapi.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/_testcapi.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,374 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/_tkinter.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/_tkinter.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,389 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/build_ssl.py ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/build_ssl.py Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,163 +0,0 @@ -# Script for building the _ssl module for Windows. -# Uses Perl to setup the OpenSSL environment correctly -# and build OpenSSL, then invokes a simple nmake session -# for _ssl.pyd itself. - -# THEORETICALLY, you can: -# * Unpack the latest SSL release one level above your main Python source -# directory. It is likely you will already find the zlib library and -# any other external packages there. -# * Install ActivePerl and ensure it is somewhere on your path. -# * Run this script from the PCBuild directory. -# -# it should configure and build SSL, then build the ssl Python extension -# without intervention. - -import os, sys, re - -# Find all "foo.exe" files on the PATH. -def find_all_on_path(filename, extras = None): - entries = os.environ["PATH"].split(os.pathsep) - ret = [] - for p in entries: - fname = os.path.abspath(os.path.join(p, filename)) - if os.path.isfile(fname) and fname not in ret: - ret.append(fname) - if extras: - for p in extras: - fname = os.path.abspath(os.path.join(p, filename)) - if os.path.isfile(fname) and fname not in ret: - ret.append(fname) - return ret - -# Find a suitable Perl installation for OpenSSL. -# cygwin perl does *not* work. ActivePerl does. -# Being a Perl dummy, the simplest way I can check is if the "Win32" package -# is available. -def find_working_perl(perls): - for perl in perls: - fh = os.popen(perl + ' -e "use Win32;"') - fh.read() - rc = fh.close() - if rc: - continue - return perl - print "Can not find a suitable PERL:" - if perls: - print " the following perl interpreters were found:" - for p in perls: - print " ", p - print " None of these versions appear suitable for building OpenSSL" - else: - print " NO perl interpreters were found on this machine at all!" - print " Please install ActivePerl and ensure it appears on your path" - print "The Python SSL module was not built" - return None - -# Locate the best SSL directory given a few roots to look into. -def find_best_ssl_dir(sources): - candidates = [] - for s in sources: - try: - s = os.path.abspath(s) - fnames = os.listdir(s) - except os.error: - fnames = [] - for fname in fnames: - fqn = os.path.join(s, fname) - if os.path.isdir(fqn) and fname.startswith("openssl-"): - candidates.append(fqn) - # Now we have all the candidates, locate the best. - best_parts = [] - best_name = None - for c in candidates: - parts = re.split("[.-]", os.path.basename(c))[1:] - # eg - openssl-0.9.7-beta1 - ignore all "beta" or any other qualifiers - if len(parts) >= 4: - continue - if parts > best_parts: - best_parts = parts - best_name = c - if best_name is not None: - print "Found an SSL directory at '%s'" % (best_name,) - else: - print "Could not find an SSL directory in '%s'" % (sources,) - return best_name - -def main(): - debug = "-d" in sys.argv - build_all = "-a" in sys.argv - make_flags = "" - if build_all: - make_flags = "-a" - # perl should be on the path, but we also look in "\perl" and "c:\\perl" - # as "well known" locations - perls = find_all_on_path("perl.exe", ["\\perl\\bin", "C:\\perl\\bin"]) - perl = find_working_perl(perls) - if perl is None: - sys.exit(1) - - print "Found a working perl at '%s'" % (perl,) - # Look for SSL 2 levels up from pcbuild - ie, same place zlib etc all live. - ssl_dir = find_best_ssl_dir(("../..",)) - if ssl_dir is None: - sys.exit(1) - - old_cd = os.getcwd() - try: - os.chdir(ssl_dir) - # If the ssl makefiles do not exist, we invoke Perl to generate them. - if not os.path.isfile(os.path.join(ssl_dir, "32.mak")) or \ - not os.path.isfile(os.path.join(ssl_dir, "d32.mak")): - print "Creating the makefiles..." - # Put our working Perl at the front of our path - os.environ["PATH"] = os.path.split(perl)[0] + \ - os.pathsep + \ - os.environ["PATH"] - # ms\32all.bat will reconfigure OpenSSL and then try to build - # all outputs (debug/nondebug/dll/lib). So we filter the file - # to exclude any "nmake" commands and then execute. - tempname = "ms\\32all_py.bat" - - in_bat = open("ms\\32all.bat") - temp_bat = open(tempname,"w") - while 1: - cmd = in_bat.readline() - print 'cmd', repr(cmd) - if not cmd: break - if cmd.strip()[:5].lower() == "nmake": - continue - temp_bat.write(cmd) - in_bat.close() - temp_bat.close() - os.system(tempname) - try: - os.remove(tempname) - except: - pass - - # Now run make. - print "Executing nmake over the ssl makefiles..." - if debug: - rc = os.system("nmake /nologo -f d32.mak") - if rc: - print "Executing d32.mak failed" - print rc - sys.exit(rc) - else: - rc = os.system("nmake /nologo -f 32.mak") - if rc: - print "Executing 32.mak failed" - print rc - sys.exit(rc) - finally: - os.chdir(old_cd) - # And finally, we can build the _ssl module itself for Python. - defs = "SSL_DIR=%s" % (ssl_dir,) - if debug: - defs = defs + " " + "DEBUG=1" - rc = os.system('nmake /nologo -f _ssl.mak ' + defs + " " + make_flags) - sys.exit(rc) - -if __name__=='__main__': - main() Deleted: /stackless/branches/release25-maint/PCbuild8/bz2.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/bz2.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,390 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/db.build ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/db.build Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,10 +0,0 @@ - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/field3.py ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/field3.py Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,35 +0,0 @@ -# An absurd workaround for the lack of arithmetic in MS's resource compiler. -# After building Python, run this, then paste the output into the appropriate -# part of PC\python_nt.rc. -# Example output: -# -# * For 2.3a0, -# * PY_MICRO_VERSION = 0 -# * PY_RELEASE_LEVEL = 'alpha' = 0xA -# * PY_RELEASE_SERIAL = 1 -# * -# * and 0*1000 + 10*10 + 1 = 101. -# */ -# #define FIELD3 101 - -import sys - -major, minor, micro, level, serial = sys.version_info -levelnum = {'alpha': 0xA, - 'beta': 0xB, - 'candidate': 0xC, - 'final': 0xF, - }[level] -string = sys.version.split()[0] # like '2.3a0' - -print " * For %s," % string -print " * PY_MICRO_VERSION = %d" % micro -print " * PY_RELEASE_LEVEL = %r = %s" % (level, hex(levelnum)) -print " * PY_RELEASE_SERIAL = %d" % serial -print " *" - -field3 = micro * 1000 + levelnum * 10 + serial - -print " * and %d*1000 + %d*10 + %d = %d" % (micro, levelnum, serial, field3) -print " */" -print "#define FIELD3", field3 Deleted: /stackless/branches/release25-maint/PCbuild8/make_buildinfo.c ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/make_buildinfo.c Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,81 +0,0 @@ -#include -#include -#include -#include - -/* This file creates the getbuildinfo2.c file, by - invoking subwcrev.exe (if found). - If this isn't a subversion checkout, or subwcrev isn't - found, it copies ..\\Modules\\getbuildinfo.c instead. - - A file, getbuildinfo2.h is then updated to define - SUBWCREV if it was a subversion checkout. - - getbuildinfo2.c is part of the pythoncore project with - getbuildinfo2.h as a forced include. This helps - VisualStudio refrain from unnecessary compiles much of the - time. - - Currently, subwcrev.exe is found from the registry entries - of TortoiseSVN. - - make_buildinfo.exe is called as a pre-build step for pythoncore. - -*/ - -int make_buildinfo2() -{ - struct _stat st; - HKEY hTortoise; - char command[500]; - DWORD type, size; - if (_stat(".svn", &st) < 0) - return 0; - /* Allow suppression of subwcrev.exe invocation if a no_subwcrev file is present. */ - if (_stat("no_subwcrev", &st) == 0) - return 0; - if (RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS && - RegOpenKey(HKEY_CURRENT_USER, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS) - /* Tortoise not installed */ - return 0; - command[0] = '"'; /* quote the path to the executable */ - size = sizeof(command) - 1; - if (RegQueryValueEx(hTortoise, "Directory", 0, &type, command+1, &size) != ERROR_SUCCESS || - type != REG_SZ) - /* Registry corrupted */ - return 0; - strcat_s(command, sizeof(command), "bin\\subwcrev.exe"); - if (_stat(command+1, &st) < 0) - /* subwcrev.exe not part of the release */ - return 0; - strcat_s(command, sizeof(command), "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c"); - puts(command); fflush(stdout); - if (system(command) < 0) - return 0; - return 1; -} - -int main(int argc, char*argv[]) -{ - char command[500] = ""; - int svn; - FILE *f; - - if (fopen_s(&f, "getbuildinfo2.h", "w")) - return EXIT_FAILURE; - /* Get getbuildinfo.c from svn as getbuildinfo2.c */ - svn = make_buildinfo2(); - if (svn) { - puts("got getbuildinfo2.c from svn. Updating getbuildinfo2.h"); - /* yes. make sure SUBWCREV is defined */ - fprintf(f, "#define SUBWCREV\n"); - } else { - puts("didn't get getbuildinfo2.c from svn. Copying from Modules and clearing getbuildinfo2.h"); - strcat_s(command, sizeof(command), "copy ..\\Modules\\getbuildinfo.c getbuildinfo2.c"); - puts(command); fflush(stdout); - if (system(command) < 0) - return EXIT_FAILURE; - } - fclose(f); - return 0; -} \ No newline at end of file Deleted: /stackless/branches/release25-maint/PCbuild8/make_buildinfo.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/make_buildinfo.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,115 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/make_versioninfo.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/make_versioninfo.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,204 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modified: stackless/branches/release25-maint/PCbuild8/pcbuild.sln ============================================================================== --- stackless/branches/release25-maint/PCbuild8/pcbuild.sln (original) +++ stackless/branches/release25-maint/PCbuild8/pcbuild.sln Sat May 5 11:55:26 2007 @@ -1,304 +1,424 @@ Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore\pythoncore.vcproj", "{987306EC-6BAD-4440-B4FB-A699A1EE6A28}" ProjectSection(ProjectDependencies) = postProject - {F0E0541E-F17D-430B-97C4-93ADF0DD284E} = {F0E0541E-F17D-430B-97C4-93ADF0DD284E} - {C73F0EC1-358B-4177-940F-0846AC8B04CD} = {C73F0EC1-358B-4177-940F-0846AC8B04CD} + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED} = {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED} + {87AB87DB-B665-4621-A67B-878C15B93FF0} = {87AB87DB-B665-4621-A67B-878C15B93FF0} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo\make_versioninfo.vcproj", "{2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo\make_buildinfo.vcproj", "{87AB87DB-B665-4621-A67B-878C15B93FF0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes\_ctypes.vcproj", "{8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}" ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{97239A56-DBC0-41D2-BC14-C87D9B97D63B}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test\_ctypes_test.vcproj", "{F548A318-960A-4B37-9CD6-86B1B0E33CC8}" ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree\_elementtree.vcproj", "{CB025148-F0A1-4B32-A669-19EE0534136D}" ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi\_msi.vcproj", "{A25ADCC5-8DE1-4F88-B842-C287923280B1}" + ProjectSection(ProjectDependencies) = postProject + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} + EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{51F35FAE-FB92-4B2C-9187-1542C065AD77}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3\_sqlite3.vcproj", "{D50E5319-41CC-429A-8E81-B1CD391C3A7B}" ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python\python.vcproj", "{AE617428-B823-4B87-BC6D-DC7C12C746D3}" ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw\pythonw.vcproj", "{98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}" + ProjectSection(ProjectDependencies) = postProject + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} + EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select\select.vcproj", "{0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}" ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{F22F40F4-D318-40DC-96B3-88DC81CE0894}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata\unicodedata.vcproj", "{D04B2089-7DA9-4D92-B23F-07453BC46652}" ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{8CF334D9-4F82-42EB-97AF-83592C5AFD2F}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound\winsound.vcproj", "{1015E3B4-FD3B-4402-AA6E-7806514156D6}" ProjectSection(ProjectDependencies) = postProject - {F22F40F4-D318-40DC-96B3-88DC81CE0894} = {F22F40F4-D318-40DC-96B3-88DC81CE0894} + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{2FF0A312-22F9-4C34-B070-842916DE27A9}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket\_socket.vcproj", "{AE31A248-5367-4EB2-A511-8722BC351CB4}" ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8B172265-1F31-4880-A29C-11A4B7A80172}" - ProjectSection(SolutionItems) = preProject - ..\Modules\getbuildinfo.c = ..\Modules\getbuildinfo.c - readme.txt = readme.txt +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb\_bsddb.vcproj", "{E644B843-F7CA-4888-AA6D-653C77592856}" + ProjectSection(ProjectDependencies) = postProject + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi\_testcapi.vcproj", "{1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}" + ProjectSection(ProjectDependencies) = postProject + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter\_tkinter.vcproj", "{3A1515AF-3694-4222-91F2-9837BDF60F9A}" + ProjectSection(ProjectDependencies) = postProject + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2\bz2.vcproj", "{18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}" ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat\pyexpat.vcproj", "{80EBF51A-6018-4589-9A53-5AAF2872E230}" + ProjectSection(ProjectDependencies) = postProject + {987306EC-6BAD-4440-B4FB-A699A1EE6A28} = {987306EC-6BAD-4440-B4FB-A699A1EE6A28} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{310B6D98-CFE1-4215-97C1-E52989488A50}" + ProjectSection(SolutionItems) = preProject + readme.txt = readme.txt EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen\w9xpopen.vcproj", "{128AA855-8778-4F08-B001-FF79DC95F480}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 - PGIRelease|Win32 = PGIRelease|Win32 - PGIRelease|x64 = PGIRelease|x64 - PGORelease|Win32 = PGORelease|Win32 - PGORelease|x64 = PGORelease|x64 + PGInstrument|Win32 = PGInstrument|Win32 + PGInstrument|x64 = PGInstrument|x64 + PGUpdate|Win32 = PGUpdate|Win32 + PGUpdate|x64 = PGUpdate|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.ActiveCfg = Debug|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.Build.0 = Debug|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.ActiveCfg = Debug|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.Build.0 = Debug|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGIRelease|Win32.ActiveCfg = PGIRelease|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGIRelease|Win32.Build.0 = PGIRelease|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGIRelease|x64.ActiveCfg = PGIRelease|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGIRelease|x64.Build.0 = PGIRelease|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGORelease|Win32.ActiveCfg = PGORelease|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGORelease|Win32.Build.0 = PGORelease|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGORelease|x64.ActiveCfg = PGORelease|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGORelease|x64.Build.0 = PGORelease|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.ActiveCfg = Release|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.Build.0 = Release|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.ActiveCfg = Release|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.Build.0 = Release|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.ActiveCfg = Debug|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.Build.0 = Debug|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.ActiveCfg = Debug|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.Build.0 = Debug|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGIRelease|Win32.ActiveCfg = Release|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGIRelease|Win32.Build.0 = Release|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGIRelease|x64.ActiveCfg = Release|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGIRelease|x64.Build.0 = Release|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGORelease|Win32.ActiveCfg = Release|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGORelease|Win32.Build.0 = Release|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGORelease|x64.ActiveCfg = Release|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGORelease|x64.Build.0 = Release|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.ActiveCfg = Release|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.Build.0 = Release|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.ActiveCfg = Release|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.Build.0 = Release|x64 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug|Win32.ActiveCfg = Debug|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug|Win32.Build.0 = Debug|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug|x64.ActiveCfg = Debug|x64 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug|x64.Build.0 = Debug|x64 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.PGIRelease|Win32.ActiveCfg = Release|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.PGIRelease|Win32.Build.0 = Release|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.PGIRelease|x64.ActiveCfg = Release|x64 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.PGIRelease|x64.Build.0 = Release|x64 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.PGORelease|Win32.ActiveCfg = Release|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.PGORelease|Win32.Build.0 = Release|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.PGORelease|x64.ActiveCfg = Release|x64 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.PGORelease|x64.Build.0 = Release|x64 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release|Win32.ActiveCfg = Release|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release|Win32.Build.0 = Release|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release|x64.ActiveCfg = Release|x64 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release|x64.Build.0 = Release|x64 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug|Win32.ActiveCfg = Debug|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug|Win32.Build.0 = Debug|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug|x64.ActiveCfg = Debug|x64 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug|x64.Build.0 = Debug|x64 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.PGIRelease|Win32.ActiveCfg = Release|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.PGIRelease|Win32.Build.0 = Release|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.PGIRelease|x64.ActiveCfg = Release|x64 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.PGIRelease|x64.Build.0 = Release|x64 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.PGORelease|Win32.ActiveCfg = Release|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.PGORelease|Win32.Build.0 = Release|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.PGORelease|x64.ActiveCfg = Release|x64 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.PGORelease|x64.Build.0 = Release|x64 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release|Win32.ActiveCfg = Release|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release|Win32.Build.0 = Release|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release|x64.ActiveCfg = Release|x64 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release|x64.Build.0 = Release|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.ActiveCfg = Debug|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.Build.0 = Debug|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.ActiveCfg = Debug|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.Build.0 = Debug|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGIRelease|Win32.ActiveCfg = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGIRelease|Win32.Build.0 = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGIRelease|x64.ActiveCfg = Release|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGIRelease|x64.Build.0 = Release|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGORelease|Win32.ActiveCfg = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGORelease|Win32.Build.0 = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGORelease|x64.ActiveCfg = Release|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGORelease|x64.Build.0 = Release|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.ActiveCfg = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.Build.0 = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.ActiveCfg = Release|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.Build.0 = Release|x64 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug|Win32.ActiveCfg = Debug|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug|Win32.Build.0 = Debug|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug|x64.ActiveCfg = Debug|x64 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug|x64.Build.0 = Debug|x64 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.PGIRelease|Win32.ActiveCfg = Release|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.PGIRelease|Win32.Build.0 = Release|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.PGIRelease|x64.ActiveCfg = Release|x64 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.PGIRelease|x64.Build.0 = Release|x64 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.PGORelease|Win32.ActiveCfg = Release|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.PGORelease|Win32.Build.0 = Release|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.PGORelease|x64.ActiveCfg = Release|x64 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.PGORelease|x64.Build.0 = Release|x64 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release|Win32.ActiveCfg = Release|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release|Win32.Build.0 = Release|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release|x64.ActiveCfg = Release|x64 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release|x64.Build.0 = Release|x64 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug|Win32.ActiveCfg = Debug|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug|Win32.Build.0 = Debug|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug|x64.ActiveCfg = Debug|x64 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug|x64.Build.0 = Debug|x64 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.PGIRelease|Win32.ActiveCfg = Release|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.PGIRelease|Win32.Build.0 = Release|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.PGIRelease|x64.ActiveCfg = Release|x64 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.PGIRelease|x64.Build.0 = Release|x64 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.PGORelease|Win32.ActiveCfg = Release|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.PGORelease|Win32.Build.0 = Release|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.PGORelease|x64.ActiveCfg = Release|x64 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.PGORelease|x64.Build.0 = Release|x64 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release|Win32.ActiveCfg = Release|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release|Win32.Build.0 = Release|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release|x64.ActiveCfg = Release|x64 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release|x64.Build.0 = Release|x64 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.ActiveCfg = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.Build.0 = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.ActiveCfg = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.Build.0 = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGIRelease|Win32.ActiveCfg = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGIRelease|Win32.Build.0 = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGIRelease|x64.ActiveCfg = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGORelease|Win32.ActiveCfg = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGORelease|Win32.Build.0 = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGORelease|x64.ActiveCfg = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.ActiveCfg = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.Build.0 = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.ActiveCfg = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.Build.0 = Debug|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Debug|Win32.ActiveCfg = Debug|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Debug|Win32.Build.0 = Debug|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Debug|x64.ActiveCfg = Debug|x64 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Debug|x64.Build.0 = Debug|x64 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.PGIRelease|Win32.ActiveCfg = Release|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.PGIRelease|Win32.Build.0 = Release|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.PGIRelease|x64.ActiveCfg = Release|x64 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.PGIRelease|x64.Build.0 = Release|x64 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.PGORelease|Win32.ActiveCfg = Release|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.PGORelease|Win32.Build.0 = Release|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.PGORelease|x64.ActiveCfg = Release|x64 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.PGORelease|x64.Build.0 = Release|x64 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Release|Win32.ActiveCfg = Release|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Release|Win32.Build.0 = Release|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Release|x64.ActiveCfg = Release|x64 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Release|x64.Build.0 = Release|x64 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Debug|Win32.ActiveCfg = Debug|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Debug|Win32.Build.0 = Debug|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Debug|x64.ActiveCfg = Debug|x64 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Debug|x64.Build.0 = Debug|x64 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.PGIRelease|Win32.ActiveCfg = Release|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.PGIRelease|Win32.Build.0 = Release|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.PGIRelease|x64.ActiveCfg = Release|x64 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.PGIRelease|x64.Build.0 = Release|x64 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.PGORelease|Win32.ActiveCfg = Release|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.PGORelease|Win32.Build.0 = Release|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.PGORelease|x64.ActiveCfg = Release|x64 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.PGORelease|x64.Build.0 = Release|x64 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Release|Win32.ActiveCfg = Release|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Release|Win32.Build.0 = Release|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Release|x64.ActiveCfg = Release|x64 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Debug|Win32.ActiveCfg = Debug|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Debug|Win32.Build.0 = Debug|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Debug|x64.ActiveCfg = Debug|x64 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Debug|x64.Build.0 = Debug|x64 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.PGIRelease|Win32.ActiveCfg = Release|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.PGIRelease|Win32.Build.0 = Release|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.PGIRelease|x64.ActiveCfg = Release|x64 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.PGIRelease|x64.Build.0 = Release|x64 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.PGORelease|Win32.ActiveCfg = Release|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.PGORelease|Win32.Build.0 = Release|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.PGORelease|x64.ActiveCfg = Release|x64 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.PGORelease|x64.Build.0 = Release|x64 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Release|Win32.ActiveCfg = Release|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Release|Win32.Build.0 = Release|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Release|x64.ActiveCfg = Release|x64 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Release|x64.Build.0 = Release|x64 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.Debug|Win32.ActiveCfg = Debug|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.Debug|Win32.Build.0 = Debug|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.Debug|x64.ActiveCfg = Debug|x64 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.Debug|x64.Build.0 = Debug|x64 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.PGIRelease|Win32.ActiveCfg = Release|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.PGIRelease|Win32.Build.0 = Release|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.PGIRelease|x64.ActiveCfg = Release|x64 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.PGIRelease|x64.Build.0 = Release|x64 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.PGORelease|Win32.ActiveCfg = Release|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.PGORelease|Win32.Build.0 = Release|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.PGORelease|x64.ActiveCfg = Release|x64 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.PGORelease|x64.Build.0 = Release|x64 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.Release|Win32.ActiveCfg = Release|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.Release|Win32.Build.0 = Release|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.Release|x64.ActiveCfg = Release|x64 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.Release|x64.Build.0 = Release|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.ActiveCfg = Debug|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.Build.0 = Debug|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.ActiveCfg = Debug|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.Build.0 = Debug|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGIRelease|Win32.ActiveCfg = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGIRelease|Win32.Build.0 = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGIRelease|x64.ActiveCfg = Release|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGIRelease|x64.Build.0 = Release|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGORelease|Win32.ActiveCfg = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGORelease|Win32.Build.0 = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGORelease|x64.ActiveCfg = Release|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGORelease|x64.Build.0 = Release|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.ActiveCfg = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.Build.0 = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.ActiveCfg = Release|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.Build.0 = Release|x64 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.ActiveCfg = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.Build.0 = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.ActiveCfg = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.Build.0 = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGIRelease|Win32.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGIRelease|Win32.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGIRelease|x64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGORelease|Win32.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGORelease|Win32.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGORelease|x64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.Build.0 = Release|Win32 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.Debug|Win32.ActiveCfg = Debug|Win32 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.Debug|Win32.Build.0 = Debug|Win32 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.Debug|x64.ActiveCfg = Debug|x64 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.Debug|x64.Build.0 = Debug|x64 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.Release|Win32.ActiveCfg = Release|Win32 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.Release|Win32.Build.0 = Release|Win32 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.Release|x64.ActiveCfg = Release|x64 + {987306EC-6BAD-4440-B4FB-A699A1EE6A28}.Release|x64.Build.0 = Release|x64 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.Debug|Win32.ActiveCfg = Debug|Win32 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.Debug|Win32.Build.0 = Debug|Win32 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.Debug|x64.ActiveCfg = Debug|Win32 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.Debug|x64.Build.0 = Debug|Win32 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.PGInstrument|Win32.ActiveCfg = Debug|Win32 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.PGInstrument|Win32.Build.0 = Debug|Win32 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.PGInstrument|x64.ActiveCfg = Debug|Win32 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.PGUpdate|Win32.ActiveCfg = Debug|Win32 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.PGUpdate|Win32.Build.0 = Debug|Win32 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.PGUpdate|x64.ActiveCfg = Debug|Win32 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.Release|Win32.ActiveCfg = Debug|Win32 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.Release|Win32.Build.0 = Debug|Win32 + {2AB2AC43-1B73-40B1-8964-95B3FC3F15ED}.Release|x64.ActiveCfg = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.Debug|Win32.ActiveCfg = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.Debug|Win32.Build.0 = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.Debug|x64.ActiveCfg = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.Debug|x64.Build.0 = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.PGInstrument|Win32.ActiveCfg = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.PGInstrument|Win32.Build.0 = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.PGInstrument|x64.ActiveCfg = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.PGUpdate|Win32.ActiveCfg = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.PGUpdate|Win32.Build.0 = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.PGUpdate|x64.ActiveCfg = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.Release|Win32.ActiveCfg = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.Release|Win32.Build.0 = Debug|Win32 + {87AB87DB-B665-4621-A67B-878C15B93FF0}.Release|x64.ActiveCfg = Debug|Win32 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.Debug|Win32.ActiveCfg = Debug|Win32 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.Debug|Win32.Build.0 = Debug|Win32 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.Debug|x64.ActiveCfg = Debug|x64 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.Debug|x64.Build.0 = Debug|x64 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.Release|Win32.ActiveCfg = Release|Win32 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.Release|Win32.Build.0 = Release|Win32 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.Release|x64.ActiveCfg = Release|x64 + {8D80F68B-F6EC-4E69-9B04-73F632A8A8ED}.Release|x64.Build.0 = Release|x64 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.Debug|Win32.ActiveCfg = Debug|Win32 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.Debug|Win32.Build.0 = Debug|Win32 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.Debug|x64.ActiveCfg = Debug|x64 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.Debug|x64.Build.0 = Debug|x64 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.Release|Win32.ActiveCfg = Release|Win32 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.Release|Win32.Build.0 = Release|Win32 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.Release|x64.ActiveCfg = Release|x64 + {F548A318-960A-4B37-9CD6-86B1B0E33CC8}.Release|x64.Build.0 = Release|x64 + {CB025148-F0A1-4B32-A669-19EE0534136D}.Debug|Win32.ActiveCfg = Debug|Win32 + {CB025148-F0A1-4B32-A669-19EE0534136D}.Debug|Win32.Build.0 = Debug|Win32 + {CB025148-F0A1-4B32-A669-19EE0534136D}.Debug|x64.ActiveCfg = Debug|x64 + {CB025148-F0A1-4B32-A669-19EE0534136D}.Debug|x64.Build.0 = Debug|x64 + {CB025148-F0A1-4B32-A669-19EE0534136D}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {CB025148-F0A1-4B32-A669-19EE0534136D}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {CB025148-F0A1-4B32-A669-19EE0534136D}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {CB025148-F0A1-4B32-A669-19EE0534136D}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {CB025148-F0A1-4B32-A669-19EE0534136D}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {CB025148-F0A1-4B32-A669-19EE0534136D}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {CB025148-F0A1-4B32-A669-19EE0534136D}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {CB025148-F0A1-4B32-A669-19EE0534136D}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {CB025148-F0A1-4B32-A669-19EE0534136D}.Release|Win32.ActiveCfg = Release|Win32 + {CB025148-F0A1-4B32-A669-19EE0534136D}.Release|Win32.Build.0 = Release|Win32 + {CB025148-F0A1-4B32-A669-19EE0534136D}.Release|x64.ActiveCfg = Release|x64 + {CB025148-F0A1-4B32-A669-19EE0534136D}.Release|x64.Build.0 = Release|x64 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.Debug|Win32.ActiveCfg = Debug|Win32 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.Debug|Win32.Build.0 = Debug|Win32 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.Debug|x64.ActiveCfg = Debug|x64 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.Debug|x64.Build.0 = Debug|x64 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.Release|Win32.ActiveCfg = Release|Win32 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.Release|Win32.Build.0 = Release|Win32 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.Release|x64.ActiveCfg = Release|x64 + {A25ADCC5-8DE1-4F88-B842-C287923280B1}.Release|x64.Build.0 = Release|x64 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.Debug|Win32.ActiveCfg = Debug|Win32 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.Debug|Win32.Build.0 = Debug|Win32 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.Debug|x64.ActiveCfg = Debug|x64 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.Debug|x64.Build.0 = Debug|x64 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.Release|Win32.ActiveCfg = Release|Win32 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.Release|Win32.Build.0 = Release|Win32 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.Release|x64.ActiveCfg = Release|x64 + {D50E5319-41CC-429A-8E81-B1CD391C3A7B}.Release|x64.Build.0 = Release|x64 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.Debug|Win32.ActiveCfg = Debug|Win32 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.Debug|Win32.Build.0 = Debug|Win32 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.Debug|x64.ActiveCfg = Debug|x64 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.Debug|x64.Build.0 = Debug|x64 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.Release|Win32.ActiveCfg = Release|Win32 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.Release|Win32.Build.0 = Release|Win32 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.Release|x64.ActiveCfg = Release|x64 + {AE617428-B823-4B87-BC6D-DC7C12C746D3}.Release|x64.Build.0 = Release|x64 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.Debug|Win32.ActiveCfg = Debug|Win32 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.Debug|Win32.Build.0 = Debug|Win32 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.Debug|x64.ActiveCfg = Debug|x64 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.Debug|x64.Build.0 = Debug|x64 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.Release|Win32.ActiveCfg = Release|Win32 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.Release|Win32.Build.0 = Release|Win32 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.Release|x64.ActiveCfg = Release|x64 + {98C3DB47-DD1F-4A4B-9D3C-1DBB32AC6667}.Release|x64.Build.0 = Release|x64 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.Debug|Win32.ActiveCfg = Debug|Win32 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.Debug|Win32.Build.0 = Debug|Win32 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.Debug|x64.ActiveCfg = Debug|x64 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.Debug|x64.Build.0 = Debug|x64 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.Release|Win32.ActiveCfg = Release|Win32 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.Release|Win32.Build.0 = Release|Win32 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.Release|x64.ActiveCfg = Release|x64 + {0BAFC4A4-8DB5-4CC6-9DDB-A1D32C682B2F}.Release|x64.Build.0 = Release|x64 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.Debug|Win32.ActiveCfg = Debug|Win32 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.Debug|Win32.Build.0 = Debug|Win32 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.Debug|x64.ActiveCfg = Debug|x64 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.Debug|x64.Build.0 = Debug|x64 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.Release|Win32.ActiveCfg = Release|Win32 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.Release|Win32.Build.0 = Release|Win32 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.Release|x64.ActiveCfg = Release|x64 + {D04B2089-7DA9-4D92-B23F-07453BC46652}.Release|x64.Build.0 = Release|x64 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.Debug|Win32.ActiveCfg = Debug|Win32 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.Debug|Win32.Build.0 = Debug|Win32 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.Debug|x64.ActiveCfg = Debug|x64 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.Debug|x64.Build.0 = Debug|x64 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.Release|Win32.ActiveCfg = Release|Win32 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.Release|Win32.Build.0 = Release|Win32 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.Release|x64.ActiveCfg = Release|x64 + {1015E3B4-FD3B-4402-AA6E-7806514156D6}.Release|x64.Build.0 = Release|x64 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.Debug|Win32.ActiveCfg = Debug|Win32 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.Debug|Win32.Build.0 = Debug|Win32 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.Debug|x64.ActiveCfg = Debug|x64 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.Debug|x64.Build.0 = Debug|x64 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.Release|Win32.ActiveCfg = Release|Win32 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.Release|Win32.Build.0 = Release|Win32 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.Release|x64.ActiveCfg = Release|x64 + {AE31A248-5367-4EB2-A511-8722BC351CB4}.Release|x64.Build.0 = Release|x64 + {E644B843-F7CA-4888-AA6D-653C77592856}.Debug|Win32.ActiveCfg = Debug|Win32 + {E644B843-F7CA-4888-AA6D-653C77592856}.Debug|Win32.Build.0 = Debug|Win32 + {E644B843-F7CA-4888-AA6D-653C77592856}.Debug|x64.ActiveCfg = Debug|x64 + {E644B843-F7CA-4888-AA6D-653C77592856}.Debug|x64.Build.0 = Debug|x64 + {E644B843-F7CA-4888-AA6D-653C77592856}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {E644B843-F7CA-4888-AA6D-653C77592856}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {E644B843-F7CA-4888-AA6D-653C77592856}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {E644B843-F7CA-4888-AA6D-653C77592856}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {E644B843-F7CA-4888-AA6D-653C77592856}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {E644B843-F7CA-4888-AA6D-653C77592856}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {E644B843-F7CA-4888-AA6D-653C77592856}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {E644B843-F7CA-4888-AA6D-653C77592856}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {E644B843-F7CA-4888-AA6D-653C77592856}.Release|Win32.ActiveCfg = PGInstrument|Win32 + {E644B843-F7CA-4888-AA6D-653C77592856}.Release|Win32.Build.0 = PGInstrument|Win32 + {E644B843-F7CA-4888-AA6D-653C77592856}.Release|x64.ActiveCfg = Release|x64 + {E644B843-F7CA-4888-AA6D-653C77592856}.Release|x64.Build.0 = Release|x64 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.Debug|Win32.ActiveCfg = Debug|Win32 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.Debug|Win32.Build.0 = Debug|Win32 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.Debug|x64.ActiveCfg = Debug|x64 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.Debug|x64.Build.0 = Debug|x64 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.Release|Win32.ActiveCfg = Release|Win32 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.Release|Win32.Build.0 = Release|Win32 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.Release|x64.ActiveCfg = Release|x64 + {1E8DCFC4-1EF8-4076-8CA2-B08D3C979749}.Release|x64.Build.0 = Release|x64 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.Debug|Win32.ActiveCfg = Debug|Win32 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.Debug|Win32.Build.0 = Debug|Win32 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.Debug|x64.ActiveCfg = Debug|x64 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.Debug|x64.Build.0 = Debug|x64 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.Release|Win32.ActiveCfg = Release|Win32 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.Release|Win32.Build.0 = Release|Win32 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.Release|x64.ActiveCfg = Release|x64 + {3A1515AF-3694-4222-91F2-9837BDF60F9A}.Release|x64.Build.0 = Release|x64 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.Debug|Win32.ActiveCfg = Debug|Win32 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.Debug|Win32.Build.0 = Debug|Win32 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.Debug|x64.ActiveCfg = Debug|x64 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.Debug|x64.Build.0 = Debug|x64 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.Release|Win32.ActiveCfg = Release|Win32 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.Release|Win32.Build.0 = Release|Win32 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.Release|x64.ActiveCfg = Release|x64 + {18C518FB-33CB-4C16-AA05-8DEA8DE66DF0}.Release|x64.Build.0 = Release|x64 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.Debug|Win32.ActiveCfg = Debug|Win32 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.Debug|Win32.Build.0 = Debug|Win32 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.Debug|x64.ActiveCfg = Debug|x64 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.Debug|x64.Build.0 = Debug|x64 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.Release|Win32.ActiveCfg = Release|Win32 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.Release|Win32.Build.0 = Release|Win32 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.Release|x64.ActiveCfg = Release|x64 + {80EBF51A-6018-4589-9A53-5AAF2872E230}.Release|x64.Build.0 = Release|x64 + {128AA855-8778-4F08-B001-FF79DC95F480}.Debug|Win32.ActiveCfg = Debug|Win32 + {128AA855-8778-4F08-B001-FF79DC95F480}.Debug|Win32.Build.0 = Debug|Win32 + {128AA855-8778-4F08-B001-FF79DC95F480}.Debug|x64.ActiveCfg = Debug|Win32 + {128AA855-8778-4F08-B001-FF79DC95F480}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {128AA855-8778-4F08-B001-FF79DC95F480}.PGInstrument|Win32.Build.0 = Release|Win32 + {128AA855-8778-4F08-B001-FF79DC95F480}.PGInstrument|x64.ActiveCfg = Release|Win32 + {128AA855-8778-4F08-B001-FF79DC95F480}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {128AA855-8778-4F08-B001-FF79DC95F480}.PGUpdate|Win32.Build.0 = Release|Win32 + {128AA855-8778-4F08-B001-FF79DC95F480}.PGUpdate|x64.ActiveCfg = Release|Win32 + {128AA855-8778-4F08-B001-FF79DC95F480}.Release|Win32.ActiveCfg = Release|Win32 + {128AA855-8778-4F08-B001-FF79DC95F480}.Release|Win32.Build.0 = Release|Win32 + {128AA855-8778-4F08-B001-FF79DC95F480}.Release|x64.ActiveCfg = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE Deleted: /stackless/branches/release25-maint/PCbuild8/pyexpat.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/pyexpat.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,393 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/python.build ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/python.build Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/python.iss ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/python.iss Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,346 +0,0 @@ -; Script generated by the Inno Setup Script Wizard. -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! - -; This is the whole ball of wax for an Inno installer for Python. -; To use, download Inno Setup from http://www.jrsoftware.org/isdl.htm/, -; install it, and double-click on this file. That launches the Inno -; script compiler. The GUI is extemely simple, and has only one button -; you may not recognize instantly: click it. You're done. It builds -; the installer into PCBuild/Python-2.2a1.exe. Size and speed of the -; installer are competitive with the Wise installer; Inno uninstall -; seems much quicker than Wise (but also feebler, and the uninstall -; log is in some un(human)readable binary format). -; -; What's Done -; ----------- -; All the usual Windows Python files are installed by this now. -; All the usual Windows Python Start menu entries are created and -; work fine. -; .py, .pyw, .pyc and .pyo extensions are registered. -; PROBLEM: Inno uninstall does not restore their previous registry -; associations (if any). Wise did. This will make life -; difficult for alpha (etc) testers. -; The Python install is fully functional for "typical" uses. -; -; What's Not Done -; --------------- -; None of "Mark Hammond's" registry entries are written. -; No installation of files is done into the system dir: -; The MS DLLs aren't handled at all by this yet. -; Python22.dll is unpacked into the main Python dir. -; -; Inno can't do different things on NT/2000 depending on whether the user -; has Admin privileges, so I don't know how to "solve" either of those, -; short of building two installers (one *requiring* Admin privs, the -; other not doing anything that needs Admin privs). -; -; Inno has no concept of variables, so lots of lines in this file need -; to be fiddled by hand across releases. Simplest way out: stick this -; file in a giant triple-quoted r-string (note that backslashes are -; required all over the place here -- forward slashes DON'T WORK in -; Inno), and use %(yadda)s string interpolation to do substitutions; i.e., -; write a very simple Python program to *produce* this script. - -[Setup] -AppName=Python and combined Win32 Extensions -AppVerName=Python 2.2.2 and combined Win32 Extensions 150 -AppId=Python 2.2.2.150 -AppVersion=2.2.2.150 -AppCopyright=Python is Copyright ? 2001 Python Software Foundation. Win32 Extensions are Copyright ? 1996-2001 Greg Stein and Mark Hammond. - -; Default install dir; value of {app} later (unless user overrides). -; {sd} = system root drive, probably "C:". -DefaultDirName={sd}\Python22 -;DefaultDirName={pf}\Python - -; Start menu folder name; value of {group} later (unless user overrides). -DefaultGroupName=Python 2.2 - -; Point SourceDir to one above PCBuild = src. -; means this script can run unchanged from anyone's CVS tree, no matter -; what they called the top-level directories. -SourceDir=. -OutputDir=.. -OutputBaseFilename=Python-2.2.2-Win32-150-Setup - -AppPublisher=PythonLabs at Digital Creations -AppPublisherURL=http://www.python.org -AppSupportURL=http://www.python.org -AppUpdatesURL=http://www.python.org - -AlwaysCreateUninstallIcon=true -ChangesAssociations=true -UninstallLogMode=new -AllowNoIcons=true -AdminPrivilegesRequired=true -UninstallDisplayIcon={app}\pyc.ico -WizardDebug=false - -; The fewer screens the better; leave these commented. - -Compression=bzip -InfoBeforeFile=LICENSE.txt -;InfoBeforeFile=Misc\NEWS - -; uncomment the following line if you want your installation to run on NT 3.51 too. -; MinVersion=4,3.51 - -[Types] -Name: normal; Description: Select desired components; Flags: iscustom - -[Components] -Name: main; Description: Python and Win32 Extensions; Types: normal -Name: docs; Description: Python documentation (HTML); Types: normal -Name: tk; Description: TCL/TK, tkinter, and Idle; Types: normal -Name: tools; Description: Python utility scripts (Tools\); Types: normal -Name: test; Description: Python test suite (Lib\test\); Types: normal - -[Tasks] -Name: extensions; Description: Register file associations (.py, .pyw, .pyc, .pyo); Components: main; Check: IsAdminLoggedOn - -[Files] -; Caution: Using forward slashes instead screws up in amazing ways. -; Unknown: By the time Components (and other attrs) are added to these lines, they're -; going to get awfully long. But don't see a way to continue logical lines across -; physical lines. - -Source: LICENSE.txt; DestDir: {app}; CopyMode: alwaysoverwrite -Source: README.txt; DestDir: {app}; CopyMode: alwaysoverwrite -Source: News.txt; DestDir: {app}; CopyMode: alwaysoverwrite -Source: *.ico; DestDir: {app}; CopyMode: alwaysoverwrite; Components: main - -Source: python.exe; DestDir: {app}; CopyMode: alwaysoverwrite; Components: main -Source: pythonw.exe; DestDir: {app}; CopyMode: alwaysoverwrite; Components: main -Source: w9xpopen.exe; DestDir: {app}; CopyMode: alwaysoverwrite; Components: main - - -Source: DLLs\tcl83.dll; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: tk -Source: DLLs\tk83.dll; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: tk -Source: tcl\*.*; DestDir: {app}\tcl; CopyMode: alwaysoverwrite; Components: tk; Flags: recursesubdirs - -Source: sysdir\python22.dll; DestDir: {sys}; CopyMode: alwaysskipifsameorolder; Components: main; Flags: sharedfile restartreplace -Source: sysdir\PyWinTypes22.dll; DestDir: {sys}; CopyMode: alwaysskipifsameorolder; Components: main; Flags: restartreplace sharedfile -Source: sysdir\pythoncom22.dll; DestDir: {sys}; CopyMode: alwaysskipifsameorolder; Components: main; Flags: restartreplace sharedfile - -Source: DLLs\_socket.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\_socket.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\_sre.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\_sre.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\_symtable.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\_symtable.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\_testcapi.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\_testcapi.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\_tkinter.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: tk -Source: libs\_tkinter.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: tk - -Source: DLLs\bsddb.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\bsddb.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\mmap.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\mmap.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\parser.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\parser.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\pyexpat.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\pyexpat.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\select.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\select.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\unicodedata.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\unicodedata.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\_winreg.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\_winreg.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\winsound.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\winsound.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\zlib.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main -Source: libs\zlib.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: libs\python22.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main - -Source: DLLs\expat.dll; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main - - - -Source: Lib\*.py; DestDir: {app}\Lib; CopyMode: alwaysoverwrite; Components: main -Source: Lib\compiler\*.*; DestDir: {app}\Lib\compiler; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs -Source: Lib\distutils\*.*; DestDir: {app}\Lib\distutils; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs -Source: Lib\email\*.*; DestDir: {app}\Lib\email; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs -Source: Lib\encodings\*.*; DestDir: {app}\Lib\encodings; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs -Source: Lib\hotshot\*.*; DestDir: {app}\Lib\hotshot; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs -Source: Lib\lib-old\*.*; DestDir: {app}\Lib\lib-old; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs -Source: Lib\xml\*.*; DestDir: {app}\Lib\xml; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs -Source: Lib\hotshot\*.*; DestDir: {app}\Lib\hotshot; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs -Source: Lib\test\*.*; DestDir: {app}\Lib\test; CopyMode: alwaysoverwrite; Components: test; Flags: recursesubdirs - -Source: Lib\site-packages\README.txt; DestDir: {app}\Lib\site-packages; CopyMode: alwaysoverwrite; Components: main - -Source: Lib\site-packages\PyWin32.chm; DestDir: {app}\Lib\site-packages; CopyMode: alwaysoverwrite; Components: docs -Source: Lib\site-packages\win32\*.*; DestDir: {app}\Lib\site-packages\win32; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs -Source: Lib\site-packages\win32com\*.*; DestDir: {app}\Lib\site-packages\win32com; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs -Source: Lib\site-packages\win32comext\*.*; DestDir: {app}\Lib\site-packages\win32comext; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs - -Source: Lib\lib-tk\*.py; DestDir: {app}\Lib\lib-tk; CopyMode: alwaysoverwrite; Components: tk; Flags: recursesubdirs - -Source: include\*.h; DestDir: {app}\include; CopyMode: alwaysoverwrite; Components: main - -Source: Tools\idle\*.*; DestDir: {app}\Tools\idle; CopyMode: alwaysoverwrite; Components: tk; Flags: recursesubdirs - -Source: Tools\pynche\*.*; DestDir: {app}\Tools\pynche; CopyMode: alwaysoverwrite; Components: tools; Flags: recursesubdirs -Source: Tools\scripts\*.*; DestDir: {app}\Tools\Scripts; CopyMode: alwaysoverwrite; Components: tools; Flags: recursesubdirs -Source: Tools\webchecker\*.*; DestDir: {app}\Tools\webchecker; CopyMode: alwaysoverwrite; Components: tools; Flags: recursesubdirs -Source: Tools\versioncheck\*.*; DestDir: {app}\Tools\versioncheck; CopyMode: alwaysoverwrite; Components: tools; Flags: recursesubdirs - -Source: Doc\*.*; DestDir: {app}\Doc; CopyMode: alwaysoverwrite; Flags: recursesubdirs; Components: docs - - -[Icons] -Name: {group}\Python (command line); Filename: {app}\python.exe; WorkingDir: {app}; Components: main -Name: {group}\Python Manuals; Filename: {app}\Doc\index.html; WorkingDir: {app}; Components: docs -Name: {group}\Win32 Extensions Help; Filename: {app}\Lib\site-packages\PyWin32.chm; WorkingDir: {app}\Lib\site-packages; Components: docs -Name: {group}\Module Docs; Filename: {app}\pythonw.exe; WorkingDir: {app}; Parameters: """{app}\Tools\Scripts\pydoc.pyw"""; Components: tools -Name: {group}\IDLE (Python GUI); Filename: {app}\pythonw.exe; WorkingDir: {app}; Parameters: """{app}\Tools\idle\idle.pyw"""; Components: tools - -[Registry] -; Register .py -Tasks: extensions; Root: HKCR; Subkey: .py; ValueType: string; ValueName: ; ValueData: Python File; Flags: uninsdeletevalue -Tasks: extensions; Root: HKCR; Subkey: .py; ValueType: string; ValueName: Content Type; ValueData: text/plain; Flags: uninsdeletevalue -Tasks: extensions; Root: HKCR; Subkey: Python File; ValueType: string; ValueName: ; ValueData: Python File; Flags: uninsdeletekey -Tasks: extensions; Root: HKCR; Subkey: Python File\DefaultIcon; ValueType: string; ValueName: ; ValueData: {app}\Py.ico -Tasks: extensions; Root: HKCR; Subkey: Python File\shell\open\command; ValueType: string; ValueName: ; ValueData: """{app}\python.exe"" ""%1"" %*" - -; Register .pyc -Tasks: extensions; Root: HKCR; Subkey: .pyc; ValueType: string; ValueName: ; ValueData: Python CompiledFile; Flags: uninsdeletevalue -Tasks: extensions; Root: HKCR; Subkey: Python CompiledFile; ValueType: string; ValueName: ; ValueData: Compiled Python File; Flags: uninsdeletekey -Tasks: extensions; Root: HKCR; Subkey: Python CompiledFile\DefaultIcon; ValueType: string; ValueName: ; ValueData: {app}\pyc.ico -Tasks: extensions; Root: HKCR; Subkey: Python CompiledFile\shell\open\command; ValueType: string; ValueName: ; ValueData: """{app}\python.exe"" ""%1"" %*" - -; Register .pyo -Tasks: extensions; Root: HKCR; Subkey: .pyo; ValueType: string; ValueName: ; ValueData: Python CompiledFile; Flags: uninsdeletevalue - -; Register .pyw -Tasks: extensions; Root: HKCR; Subkey: .pyw; ValueType: string; ValueName: ; ValueData: Python NoConFile; Flags: uninsdeletevalue -Tasks: extensions; Root: HKCR; Subkey: .pyw; ValueType: string; ValueName: Content Type; ValueData: text/plain; Flags: uninsdeletevalue -Tasks: extensions; Root: HKCR; Subkey: Python NoConFile; ValueType: string; ValueName: ; ValueData: Python File (no console); Flags: uninsdeletekey -Tasks: extensions; Root: HKCR; Subkey: Python NoConFile\DefaultIcon; ValueType: string; ValueName: ; ValueData: {app}\Py.ico -Tasks: extensions; Root: HKCR; Subkey: Python NoConFile\shell\open\command; ValueType: string; ValueName: ; ValueData: """{app}\pythonw.exe"" ""%1"" %*" - - -; Python Registry Keys -Root: HKLM; Subkey: SOFTWARE\Python; Flags: uninsdeletekeyifempty; Check: IsAdminLoggedOn -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore; Flags: uninsdeletekeyifempty -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2; Flags: uninsdeletekeyifempty -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\PythonPath; ValueData: "{app}\Lib;{app}\DLLs"; Flags: uninsdeletekeyifempty -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\PythonPath\tk; ValueData: {app}\Lib\lib-tk; Flags: uninsdeletekey; Components: tk -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\PythonPath\win32; ValueData: "{app}\lib\site-packages\win32;{app}\lib\site-packages\win32\lib"; Flags: uninsdeletekey -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\PythonPath\win32com; ValueData: C:\Python\lib\site-packages; Flags: uninsdeletekey -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Modules; Flags: uninsdeletekeyifempty -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Modules\pythoncom; ValueData: {sys}\pythoncom22.dll; Flags: uninsdeletekey -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Modules\pywintypes; ValueData: {sys}\PyWinTypes22.dll; Flags: uninsdeletekey -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\InstallPath; ValueData: {app}; Flags: uninsdeletekeyifempty; ValueType: string -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\InstallPath\InstallGroup; ValueData: {group}; Flags: uninsdeletekey -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Help; Flags: uninsdeletekeyifempty -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Help\Main Python Documentation; ValueType: string; ValueData: {app}\Doc\index.html; Flags: uninsdeletekey; Components: docs -Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Help\Python Win32 Documentation; ValueType: string; ValueData: {app}\lib\site-packages\PyWin32.chm; Flags: uninsdeletekey; Components: docs - -[_ISTool] -EnableISX=true - - -[Code] -Program Setup; - -Function IsAdminNotLoggedOn(): Boolean; -begin - Result := Not IsAdminLoggedOn(); -end; - -begin -end. - - - - -[UninstallDelete] -Name: {app}\Lib\compiler\*.pyc; Type: files -Name: {app}\Lib\compiler\*.pyo; Type: files -Name: {app}\Lib\compiler; Type: dirifempty -Name: {app}\Lib\distutils\command\*.pyc; Type: files -Name: {app}\Lib\distutils\command\*.pyo; Type: files -Name: {app}\Lib\distutils\command; Type: dirifempty -Name: {app}\Lib\distutils\*.pyc; Type: files -Name: {app}\Lib\distutils\*.pyo; Type: files -Name: {app}\Lib\distutils; Type: dirifempty -Name: {app}\Lib\email\test\*.pyc; Type: files -Name: {app}\Lib\email\test\*.pyo; Type: files -Name: {app}\Lib\email\test; Type: dirifempty -Name: {app}\Lib\email\*.pyc; Type: files -Name: {app}\Lib\email\*.pyo; Type: files -Name: {app}\Lib\email; Type: dirifempty -Name: {app}\Lib\encodings\*.pyc; Type: files -Name: {app}\Lib\encodings\*.pyo; Type: files -Name: {app}\Lib\encodings; Type: dirifempty -Name: {app}\Lib\hotshot\*.pyc; Type: files -Name: {app}\Lib\hotshot\*.pyo; Type: files -Name: {app}\Lib\hotshot; Type: dirifempty -Name: {app}\Lib\lib-old\*.pyc; Type: files -Name: {app}\Lib\lib-old\*.pyo; Type: files -Name: {app}\Lib\lib-old; Type: dirifempty -Name: {app}\Lib\lib-tk\*.pyc; Type: files -Name: {app}\Lib\lib-tk\*.pyo; Type: files -Name: {app}\Lib\lib-tk; Type: dirifempty -Name: {app}\Lib\test\*.pyc; Type: files -Name: {app}\Lib\test\*.pyo; Type: files -Name: {app}\Lib\test; Type: dirifempty -Name: {app}\Lib\xml\dom\*.pyc; Type: files -Name: {app}\Lib\xml\dom\*.pyo; Type: files -Name: {app}\Lib\xml\dom; Type: dirifempty -Name: {app}\Lib\xml\parsers\*.pyc; Type: files -Name: {app}\Lib\xml\parsers\*.pyo; Type: files -Name: {app}\Lib\xml\parsers; Type: dirifempty -Name: {app}\Lib\xml\sax\*.pyc; Type: files -Name: {app}\Lib\xml\sax\*.pyo; Type: files -Name: {app}\Lib\xml\sax; Type: dirifempty -Name: {app}\Lib\xml\*.pyc; Type: files -Name: {app}\Lib\xml\*.pyo; Type: files -Name: {app}\Lib\xml; Type: dirifempty - -Name: {app}\Lib\site-packages\win32; Type: filesandordirs -Name: {app}\Lib\site-packages\win32com; Type: filesandordirs -Name: {app}\Lib\site-packages\win32comext; Type: filesandordirs -Name: {app}\Lib\site-packages\pythoncom.py*; Type: files -Name: {app}\Lib\site-packages; Type: dirifempty - -Name: {app}\Lib\*.pyc; Type: files -Name: {app}\Lib; Type: dirifempty - -Name: {app}\Tools\pynche\*.pyc; Type: files -Name: {app}\Tools\pynche\*.pyo; Type: files -Name: {app}\Tools\pynche; Type: dirifempty - -Name: {app}\Tools\idle\*.pyc; Type: files -Name: {app}\Tools\idle\*.pyo; Type: files -Name: {app}\Tools\idle; Type: dirifempty - -Name: {app}\Tools\scripts\*.pyc; Type: files -Name: {app}\Tools\scripts\*.pyo; Type: files -Name: {app}\Tools\scripts; Type: dirifempty - -Name: {app}\Tools\versioncheck\*.pyc; Type: files -Name: {app}\Tools\versioncheck\*.pyo; Type: files -Name: {app}\Tools\versioncheck; Type: dirifempty - -Name: {app}\Tools\webchecker\*.pyc; Type: files -Name: {app}\Tools\webchecker\*.pyo; Type: files -Name: {app}\Tools\webchecker; Type: dirifempty - -Name: {app}\Tools; Type: dirifempty - Deleted: /stackless/branches/release25-maint/PCbuild8/python.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/python.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/python20.wse ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/python20.wse Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,3135 +0,0 @@ -Document Type: WSE -item: Global - Version=9.0 - Title=Python 2.4a1 - Flags=00010100 - Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - Japanese Font Name=MS Gothic - Japanese Font Size=10 - Start Gradient=0 255 0 - End Gradient=0 128 0 - Windows Flags=00000100000011010010010100001010 - Log Pathname=%MAINDIR%\INSTALL.LOG - Message Font=MS Sans Serif - Font Size=8 - Pages Modified=00010000011101000000000100000111 - Extra Pages=00000000000000000000000010110010 - Disk Filename=SETUP - Patch Flags=0000000000001001 - Patch Threshold=85 - Patch Memory=4000 - MIF PDF Version=1.0 - MIF SMS Version=2.0 - EXE Filename=Python-2.4a1.exe - Dialogs Version=8 - Version File=2.4a1 - Version Description=Python Programming Language - Version Copyright=?2001-2007 Python Software Foundation - Version Company=Python Software Foundation - Crystal Format=10111100101100000010001001001001 - Step View=&All - Variable Name1=_WISE_ - Variable Description1=WISE root directory - Variable Default1=C:\Programme\Wise Installation System - Variable Flags1=00001000 - Variable Name2=_TCLDIR_ - Variable Description2=The directory in which the Tcl/Tk installation - Variable Description2=lives. This must be a sibling of the Python - Variable Description2=directory. - Variable Default2=tcl84 - Variable Flags2=00001000 - Variable Name3=_DOC_ - Variable Description3=The unpacked HTML doc directory. - Variable Default3=..\html - Variable Flags3=00001001 - Variable Name4=_SYS_ - Variable Description4=System directory (where to find MSVCRT.DLL) - Variable Default4=C:\Windows\System - Variable Values4=C:\Windows\System - Variable Values4=C:\WINNT\System32 - Variable Values4=C:\Code\MSDLLs - Variable Values4=C:\Windows\System32 - Variable Flags4=00000010 - Variable Name5=_PYMAJOR_ - Variable Description5=Python major version number; the 2 in 2.3. - Variable Default5=2 - Variable Flags5=00001000 - Variable Name6=_PYMINOR_ - Variable Description6=Python minor version number; the 3 in 2.3 - Variable Default6=3 - Variable Flags6=00001000 - Variable Name7=_DOADMIN_ - Variable Description7=The initial value for %DOADMIN%. - Variable Description7=When 0, we never try to write under HKLM, - Variable Description7=and install the Python + MS runtime DLLs in - Variable Description7=the Python directory instead of the system dir. - Variable Default7=1 - Variable Values7=1 - Variable Values7=0 - Variable Flags7=00001010 - Variable Name8=_ALIASNAME_ - Variable Flags8=00001000 - Variable Name9=_ALIASPATH_ - Variable Flags9=00001000 - Variable Name10=_ALIASTYPE_ - Variable Flags10=00001000 -end -item: Set Variable - Variable=PYVER_STRING - Value=2.3 -end -item: Remark -end -item: Remark - Text=When the version number changes, set the compiler -end -item: Remark - Text=vrbls _PYMAJOR_ and _PYMINOR_. -end -item: Remark - Text=Nothing in the script below should need fiddling then. -end -item: Remark - Text=Other things that need fiddling: -end -item: Remark - Text= PYVER_STRING above. -end -item: Remark - Text= The "Title:" in the upper left corner of the GUI. -end -item: Remark - Text= Build Settings and Version Resource on step 6 (Finish) of the Installation Expert -end -item: Remark - Text= Be sure to select Steps->All or you may not see these! -end -item: Remark -end -item: Remark - Text=When the version of Tcl/Tk changes, the compiler vrbl -end -item: Remark - Text=_TCLDIR_ may also need to be changed. -end -item: Remark -end -item: Set Variable - Variable=APPTITLE - Value=Python %PYVER_STRING% -end -item: Remark - Text=PY_VERSION should be major.minor only; used to create the registry key; must match MS_DLL_ID in python_nt.rc -end -item: Set Variable - Variable=PY_VERSION - Value=%_PYMAJOR_%.%_PYMINOR_% -end -item: Remark - Text=GROUP is the Start menu group name; user can override. -end -item: Set Variable - Variable=GROUP - Value=Python %PY_VERSION% - Flags=10000000 -end -item: Remark - Text=MAINDIR is the app directory; user can override. -end -item: Set Variable - Variable=MAINDIR - Value=Python%_PYMAJOR_%%_PYMINOR_% -end -item: Remark -end -item: Set Variable - Variable=DOADMIN - Value=%_DOADMIN_% -end -item: Remark - Text=Give non-admin users a chance to abort. -end -item: Check Configuration - Flags=10011111 -end -item: Set Variable - Variable=DOADMIN - Value=0 -end -item: Display Message - Title=Doing non-admin install - Text=The current login does not have Administrator Privileges on this machine. Python will install its registry information into the per-user area only for the current login, instead of into the per-machine area for every account on this machine. Some advanced uses of Python may not work as a result (for example, running a Python script as a service). - Text= - Text=If this is not what you want, please click Cancel to abort this installation, log on as an Administrator, and start the installation again. - Flags=00001000 -end -item: End Block -end -item: Remark -end -item: Remark - Text=BEGIN WIZARD STUFF ----------------------------------------------------------------------------------------------------------------------------- -end -item: Remark - Text=Note from Tim: the "stop" on the next line is actually "pause". -end -item: Open/Close INSTALL.LOG - Flags=00000001 -end -item: Remark - Text=If the destination system does not have a writable Windows\System directory, system files will be written to the Windows\ directory -end -item: Check if File/Dir Exists - Pathname=%SYS% - Flags=10000100 -end -item: Set Variable - Variable=SYS - Value=%WIN% -end -item: End Block -end -item: Check Configuration - Flags=10111011 -end -item: Get Registry Key Value - Variable=COMMON - Key=SOFTWARE\Microsoft\Windows\CurrentVersion - Default=C:\Program Files\Common Files - Value Name=CommonFilesDir - Flags=00000100 -end -item: Get Registry Key Value - Variable=PROGRAM_FILES - Key=SOFTWARE\Microsoft\Windows\CurrentVersion - Default=C:\Program Files - Value Name=ProgramFilesDir - Flags=00000100 -end -item: Set Variable - Variable=EXPLORER - Value=1 -end -item: End Block -end -item: Remark - Text=Note from Tim: The Wizard hardcod "C:" at the start of the replacement text for MAINDIR. -end -item: Remark - Text=That's not appropriate if the system drive doesn't happen to be C:. -end -item: Remark - Text=I removed the "C:", and that did the right thing for two people who tested it on non-C: machines, -end -item: Remark - Text=but it's unclear whether it will always do the right thing. -end -item: Set Variable - Variable=MAINDIR - Value=\%MAINDIR% - Flags=00001100 -end -item: Remark - Text=BACKUP is the variable that holds the path that all backup files will be copied to when overwritten -end -item: Set Variable - Variable=BACKUP - Value=%MAINDIR%\BACKUP - Flags=10000000 -end -item: Remark - Text=DOBACKUP determines if a backup will be performed. The possible values are A (do backup) or B (do not do backup) -end -item: Set Variable - Variable=DOBACKUP - Value=A -end -item: Remark - Text=BRANDING determines if the installation will be branded with a name and company. By default, this is written to the INST directory (installation media). -end -item: Set Variable - Variable=BRANDING - Value=0 -end -item: If/While Statement - Variable=BRANDING - Value=1 -end -item: Read INI Value - Variable=NAME - Pathname=%INST%\CUSTDATA.INI - Section=Registration - Item=Name -end -item: Read INI Value - Variable=COMPANY - Pathname=%INST%\CUSTDATA.INI - Section=Registration - Item=Company -end -item: If/While Statement - Variable=NAME -end -item: Set Variable - Variable=DOBRAND - Value=1 -end -item: Get System Information - Variable=NAME - Flags=00000110 -end -item: Get System Information - Variable=COMPANY - Flags=00000111 -end -item: End Block -end -item: End Block -end -item: Remark - Text=END WIZARD STUFF ----------------------------------------------------------------------------------------------------------------------------- -end -item: Remark -end -item: Remark - Text=Set vrbls for the "Advanced Options" subdialog of Components. -end -item: Set Variable - Variable=SELECT_ADMIN - Value=A -end -item: If/While Statement - Variable=DOADMIN - Value=0 -end -item: Set Variable - Variable=SELECT_ADMIN - Value=B -end -item: End Block -end -item: Remark -end -item: Remark - Text=TASKS values: -end -item: Remark - Text=A: Register file extensions -end -item: Remark - Text=B: Create Start Menu shortcuts -end -item: Set Variable - Variable=TASKS - Value=AB -end -item: Remark -end -item: Remark - Text=COMPONENTS values: -end -item: Remark - Text=A: interpreter and libraries -end -item: Remark - Text=B: Tcl/Tk -end -item: Remark - Text=C: docs -end -item: Remark - Text=D: tools -end -item: Remark - Text=E: test suite -end -item: Set Variable - Variable=COMPONENTS - Value=ABCDE -end -item: Remark -end -item: Remark - Text=March thru the user GUI. -end -item: Wizard Block - Direction Variable=DIRECTION - Display Variable=DISPLAY - Bitmap Pathname=.\installer.bmp - X Position=9 - Y Position=10 - Filler Color=11173759 - Dialog=Select Destination Directory - Dialog=Backup Replaced Files - Dialog=Select Components - Dialog=Select Program Manager Group - Variable= - Variable= - Variable= - Variable=TASKS - Value= - Value= - Value= - Value=B - Compare=0 - Compare=0 - Compare=0 - Compare=3 - Flags=00000011 -end -item: If/While Statement - Variable=DISPLAY - Value=Start Installation -end -item: Set Variable - Variable=SUMMARY - Value=Install directory: %MAINDIR%%CRLF% -end -item: Remark -end -item: If/While Statement - Variable=SELECT_ADMIN - Value=A -end -item: Set Variable - Variable=SUMMARY - Value=%CRLF%Doing admin install.%CRLF% - Flags=00000001 -end -item: Else Statement -end -item: Set Variable - Variable=SUMMARY - Value=%CRLF%Doing non-admin install.%CRLF% - Flags=00000001 -end -item: End Block -end -item: Remark -end -item: If/While Statement - Variable=DOBACKUP - Value=A -end -item: Set Variable - Variable=SUMMARY - Value=%CRLF%Make backups, into %BACKUP%%CRLF% - Flags=00000001 -end -item: Else Statement -end -item: Set Variable - Variable=SUMMARY - Value=%CRLF%Don't make backups.%CRLF% - Flags=00000001 -end -item: End Block -end -item: Remark -end -item: Set Variable - Variable=SUMMARY - Value=%CRLF%Components:%CRLF% - Flags=00000001 -end -item: If/While Statement - Variable=COMPONENTS - Value=A - Flags=00000010 -end -item: Set Variable - Variable=SUMMARY - Value= Python interpreter and libraries%CRLF% - Flags=00000001 -end -item: End Block -end -item: If/While Statement - Variable=COMPONENTS - Value=B - Flags=00000010 -end -item: Set Variable - Variable=SUMMARY - Value= Tcl/Tk (Tkinter, IDLE, pydoc)%CRLF% - Flags=00000001 -end -item: End Block -end -item: If/While Statement - Variable=COMPONENTS - Value=C - Flags=00000010 -end -item: Set Variable - Variable=SUMMARY - Value= Python documentation%CRLF% - Flags=00000001 -end -item: End Block -end -item: If/While Statement - Variable=COMPONENTS - Value=D - Flags=00000010 -end -item: Set Variable - Variable=SUMMARY - Value= Tool and utility scripts%CRLF% - Flags=00000001 -end -item: End Block -end -item: If/While Statement - Variable=COMPONENTS - Value=E - Flags=00000010 -end -item: Set Variable - Variable=SUMMARY - Value= Python test suite%CRLF% - Flags=00000001 -end -item: End Block -end -item: Remark -end -item: If/While Statement - Variable=TASKS - Value=A - Flags=00000010 -end -item: Set Variable - Variable=SUMMARY - Value=%CRLF%Register file extensions.%CRLF% - Flags=00000001 -end -item: Else Statement -end -item: Set Variable - Variable=SUMMARY - Value=%CRLF%Don't register file extensions.%CRLF% - Flags=00000001 -end -item: End Block -end -item: Remark -end -item: If/While Statement - Variable=TASKS - Value=B - Flags=00000010 -end -item: Set Variable - Variable=SUMMARY - Value=%CRLF%Start Menu group: %GROUP%%CRLF% - Flags=00000001 -end -item: Else Statement -end -item: Set Variable - Variable=SUMMARY - Value=%CRLF%No Start Menu shortcuts.%CRLF% - Flags=00000001 -end -item: End Block -end -item: End Block -end -item: Remark -end -item: Custom Dialog Set - Name=Select Destination Directory - Display Variable=DISPLAY - item: Dialog - Title=%APPTITLE% Installation - Title French=Installation de %APPTITLE% - Title German=Installation von %APPTITLE% - Title Spanish=Instalaci?n de %APPTITLE% - Title Italian=Installazione di %APPTITLE% - Width=339 - Height=280 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=188 234 244 253 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suite > - Text German=&Weiter > - Text Spanish=&Siguiente > - Text Italian=&Avanti > - end - item: Push Button - Rectangle=264 234 320 253 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=&Cancel - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Static - Rectangle=10 225 320 226 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=108 11 323 33 - Create Flags=01010000000000000000000000000000 - Flags=0000000000000001 - Name=Times New Roman - Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 - Text=Select Destination Directory - Text French=S?lectionner le r?pertoire de destination - Text German=Zielverzeichnis w?hlen - Text Spanish=Seleccione el directorio de destino - Text Italian=Selezionare Directory di destinazione - end - item: Listbox - Rectangle=108 58 321 219 - Variable=MAINDIR - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000100000010000000101000001 - Flags=0000110000001010 - Text=%MAINDIR% - Text= - end - item: Static - Rectangle=108 40 313 58 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000000 - Text=Please select a directory for the %APPTITLE% files. - end - end - item: Dialog - Title=Select Destination Directory - Title French=S?lectionner le r?pertoire de destination - Title German=Zielverzeichnis w?hlen - Title Spanish=Seleccione el directorio de destino - Title Italian=Selezionare Directory di destinazione - Width=276 - Height=216 - Font Name=Helv - Font Size=8 - item: Listbox - Rectangle=6 6 204 186 - Variable=MAINDIR - Create Flags=01010000100000010000000101000000 - Flags=0000110000100010 - Text=%MAINDIR% - Text French=%MAINDIR% - Text German=%MAINDIR% - Text Spanish=%MAINDIR% - Text Italian=%MAINDIR% - end - item: Push Button - Rectangle=209 8 265 26 - Create Flags=01010000000000010000000000000001 - Text=OK - Text French=OK - Text German=OK - Text Spanish=Aceptar - Text Italian=OK - end - item: Push Button - Rectangle=209 31 265 50 - Variable=MAINDIR - Value=%MAINDIR_SAVE% - Create Flags=01010000000000010000000000000000 - Flags=0000000000000001 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Spanish=Cancelar - Text Italian=Annulla - end - end -end -item: Custom Dialog Set - Name=Backup Replaced Files - Display Variable=DISPLAY - item: Dialog - Title=%APPTITLE% Installation - Title French=Fichiers de Sauvegarde Remplac?s - Title German=Sicherungskopie von ersetzten Dateien erstellen - Title Portuguese=Ficheiros substitu?dos de seguran?a - Title Spanish=Copias de seguridad de los archivos reemplazados - Title Italian=Backup file sostituiti - Title Danish=Sikkerhedskopiering af erstattede filer - Title Dutch=Vervangen bestanden kopi?ren - Title Norwegian=Sikkerhetskopiere erstattede filer - Title Swedish=S?kerhetskopiera utbytta filer - Width=350 - Height=280 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=188 234 244 251 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Pr?ximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&N?ste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&N?sta > - end - item: Push Button - Rectangle=131 234 188 251 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Text=< &Back - Text French=<&Retour - Text German=<&Zur?ck - Text Portuguese=<&Retornar - Text Spanish=<&Retroceder - Text Italian=< &Indietro - Text Danish=<&Tilbage - Text Dutch=<&Terug - Text Norwegian=<&Tilbake - Text Swedish=< &Tillbaka - end - item: Push Button - Rectangle=278 234 330 251 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Annuller - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=11 221 329 223 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=108 46 320 98 - Create Flags=01010000000000000000000000000000 - Text=This installation program can create backup copies of all files replaced during the installation. These files will be used when the software is uninstalled and a rollback is requested. If backup copies are not created, you will only be able to uninstall the software and not roll the system back to a previous state. - Text= - Text=Do you want to create backups of replaced files? - Text French=Le programme d'installation peut cr?er des copies de sauvegarde de tous les fichiers remplac?s pendant l'installation. Ces fichiers sont utilis?s au cas o? le logiciel est d?sinstall? et que l'on proc?de ? la reprise du syst?me. Si les copies de sauvegarde ne sont pas cr??es, on ne pourra que d?sinstaller le logiciel sans reprendre le syst?me ? un ?tat pr?c?dent. Voulez-vous cr?er une sauvegarde des fichiers remplac?s ? - Text German=Dieses Installationsprogramm kann Sicherungskopien von allen w?hrend der Installation ersetzten Dateien erstellen. Diese Dateien werden zur R?ckg?ngigmachung der Installation und bei Anforderung eines Rollbacks verwendet. Ohne Sicherungskopien ist nur eine R?ckg?ngigmachung der Installation m?glich, nicht aber ein Rollback des Systems. Sicherungskopien der ersetzten Dateien erstellen? - Text Portuguese=Este programa de instala??o pode criar c?pias de seguran?a de todos os ficheiros substitu?dos durante a instala??o. Estes ficheiros ser?o utilizados quando o programa for desinstalado e for requisitada uma retomada. Se as c?pias de seguran?a n?o forem criadas, s? poder? desinstalar o programa e n?o pode retomar um estado anterior do sistema. Deseja criar c?pias de seguran?a dos ficheiros substitu?dos? - Text Spanish=Este programa de instalaci?n puede crear copias de seguridad de todos los archivos reemplazados durante la instalaci?n. Estos archivos se utilizar?n cuando se desinstale el software y se solicite volver al estado anterior. Si no se crean copias de seguridad, ?nicamente podr? desinstalar el software y no podr? devolver el sistema al estado anterior. ?Desea crear archivos de seguridad de los archivos reemplazados? - Text Italian=Questo programma di installazione pu? creare copie di backup di tutti i file sostituiti durante l?installazione. Questi file saranno usati quando il software sar? disinstallato e sar? richiesto un ritorno allo stato precedente. Se non crei le copie di backup, potrai solo disinstallare il software, ma non potrai riportare il sistema allo stato precedente. Vuoi creare i file di backup dei file sostituiti? - Text Danish=Dette installationsprogram kan oprette sikkerhedskopier af alle filer, som erstattes under installationen. Disse filer benyttes, n?r softwaren fjernes, og den tidligere systemkonfiguration genetableres. Hvis der ikke oprettes sikkerhedskopier, kan du kun fjerne den installerede software og ikke genetablere den tidligere systemkonfiguration. Vil du oprette sikkerhedskopier af filer, som erstattes? - Text Dutch=Dit installatieprogramma kan kopie?n maken van alle bestanden die tijdens de installatie worden vervangen. Deze worden dan gebruikt als de software-installatie ongedaan wordt gemaakt en u het systeem wilt laten terugkeren naar de oorspronkelijke staat. Als er geen back-up kopie?n worden gemaakt, kunt u de software enkel verwijderen maar het systeem niet in de oorspronkelijke staat terugbrengen. Wilt u een back-up maken van de vervangen bestanden? - Text Norwegian=Dette installasjonsprogrammet kan lage sikkerhetskopier av alle filer som blir erstattet under installasjonen. Disse filene vil tas i bruk n?r programvaren er avinstallert og det er behov for tilbakestilling. Hvis det ikke er laget sikkerhetskopier, kan du kun avinstallere programvaren og ikke stille systemet tilbake til tidligere status. ?nsker du ? lage sikkerhetskopier av de filene som blir erstattet n?? - Text Swedish=Installationsprogrammet kan skapa s?kerhetskopior av alla filer som byts ut under installationen. Dessa filer kan sedan anv?ndas n?r programvaran avinstalleras och du beg?r rollback. Om du d? inte har n?gra s?kerhetskopior kan du bara avinstallera programvaran, inte ?terskapa systemet i dess tidigare skick. Vill du g?ra s?kerhetskopior av de ersatta filerna? - end - item: Radio Button - Rectangle=141 106 265 136 - Variable=DOBACKUP - Create Flags=01010000000000010000000000001001 - Text=&Yes, make backups - Text=N&o, do not make backups - Text= - Text French=&Oui - Text French=N&on - Text French= - Text German=&Ja - Text German=N&ein - Text German= - Text Portuguese=&Sim - Text Portuguese=N?&o - Text Portuguese= - Text Spanish=&S? - Text Spanish=N&o - Text Spanish= - Text Italian=&S? - Text Italian=N&o - Text Italian= - Text Danish=&Ja - Text Danish=&Nej - Text Danish= - Text Dutch=&Ja - Text Dutch=N&ee - Text Dutch= - Text Norwegian=&Ja - Text Norwegian=&Nei - Text Norwegian= - Text Swedish=&Ja - Text Swedish=N&ej - Text Swedish= - end - item: Static - Control Name=BACK2 - Rectangle=108 173 320 208 - Action=1 - Create Flags=01010000000000000000000000000111 - Text=Backup File Destination Directory - Text French=R?pertoire de destination des fichiers de sauvegarde - Text German=Zielverzeichnis f?r die Sicherungsdatei - Text Portuguese=Direct?rio de destino de ficheiro de seguran?a - Text Spanish=Directorio de Destino de los Archivos de Seguridad - Text Italian=Directory di destinazione dei file di backup - Text Danish=Destinationsbibliotek til sikkerhedskopier - Text Dutch=Doeldirectory backup-bestand - Text Norwegian=M?lkatalog for sikkerhetskopier - Text Swedish=Katalog f?r s?kerhetskopierade filer - end - item: Push Button - Control Name=BACK3 - Rectangle=265 185 318 203 - Variable=BACKUP_SAVE - Value=%BACKUP% - Destination Dialog=1 - Action=2 - Create Flags=01010000000000010000000000000000 - Text=B&rowse... - Text French=P&arcourir - Text German=B&l?ttern... - Text Portuguese=P&rocurar - Text Spanish=V&isualizar... - Text Italian=Sfoglia... - Text Danish=&Gennemse... - Text Dutch=B&laderen... - Text Norwegian=Bla igjennom - Text Swedish=&Bl?ddra - end - item: Static - Control Name=BACK4 - Rectangle=129 188 254 200 - Destination Dialog=2 - Create Flags=01010000000000000000000000000000 - Text=%BACKUP% - Text French=%BACKUP% - Text German=%BACKUP% - Text Portuguese=%BACKUP% - Text Spanish=%BACKUP% - Text Italian=%BACKUP% - Text Danish=%BACKUP% - Text Dutch=%BACKUP% - Text Norwegian=%BACKUP% - Text Swedish=%BACKUP% - end - item: Static - Rectangle=108 11 323 36 - Create Flags=01010000000000000000000000000000 - Flags=0000000000000001 - Name=Times New Roman - Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 - Text=Backup Replaced Files - Text French=S?lectionner les composants - Text German=Komponenten ausw?hlen - Text Spanish=Seleccione componentes - Text Italian=Selezionare i componenti - end - item: If/While Statement - Variable=DOBACKUP - Value=B - end - item: Set Control Attribute - Control Name=BACK3 - Operation=1 - end - item: Set Control Attribute - Control Name=BACK4 - Operation=1 - end - item: Else Statement - end - item: Set Control Attribute - Control Name=BACK3 - end - item: Set Control Attribute - Control Name=BACK4 - end - item: End Block - end - end - item: Dialog - Title=Select Destination Directory - Title French=Choisissez le r?pertoire de destination - Title German=Zielverzeichnis w?hlen - Title Portuguese=Seleccionar Direct?rio de Destino - Title Spanish=Seleccione el Directorio de Destino - Title Italian=Seleziona Directory di destinazione - Title Danish=V?lg Destinationsbibliotek - Title Dutch=Kies Doeldirectory - Title Norwegian=Velg m?lkatalog - Title Swedish=V?lj destinationskalatog - Width=276 - Height=216 - Font Name=Helv - Font Size=8 - item: Listbox - Rectangle=6 3 200 186 - Variable=BACKUP - Create Flags=01010000100000010000000101000000 - Flags=0000110000100010 - Text=%BACKUP% - Text= - Text French=%BACKUP% - Text French= - Text German=%BACKUP% - Text German= - Text Portuguese=%BACKUP% - Text Portuguese= - Text Spanish=%BACKUP% - Text Spanish= - Text Italian=%BACKUP% - Text Italian= - Text Danish=%BACKUP% - Text Danish= - Text Dutch=%BACKUP% - Text Dutch= - Text Norwegian=%BACKUP% - Text Norwegian= - Text Swedish=%BACKUP% - Text Swedish= - end - item: Push Button - Rectangle=209 8 265 26 - Create Flags=01010000000000010000000000000001 - Text=OK - Text French=OK - Text German=OK - Text Portuguese=OK - Text Spanish=ACEPTAR - Text Italian=OK - Text Danish=OK - Text Dutch=OK - Text Norwegian=OK - Text Swedish=OK - end - item: Push Button - Rectangle=209 31 265 50 - Variable=BACKUP - Value=%BACKUP_SAVE% - Create Flags=01010000000000010000000000000000 - Flags=0000000000000001 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Slet - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - end -end -item: Custom Dialog Set - Name=Select Components - Display Variable=DISPLAY - item: Dialog - Title=%APPTITLE% Installation - Title French=Installation de %APPTITLE% - Title German=Installation von %APPTITLE% - Title Spanish=Instalaci?n de %APPTITLE% - Title Italian=Installazione di %APPTITLE% - Width=339 - Height=280 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=188 234 244 253 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suite > - Text German=&Weiter > - Text Spanish=&Siguiente > - Text Italian=&Avanti > - end - item: Push Button - Rectangle=131 234 188 253 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Text=< &Back - Text French=< &Retour - Text German=< &Zur?ck - Text Spanish=< &Atr?s - Text Italian=< &Indietro - end - item: Push Button - Rectangle=264 234 320 253 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=&Cancel - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Checkbox - Rectangle=108 66 313 156 - Variable=COMPONENTS - Create Flags=01010000000000010000000000000011 - Flags=0000000000000110 - Text=Python interpreter and libraries - Text=Tcl/Tk (Tkinter, IDLE, pydoc) - Text=Python HTML docs - Text=Python utility scripts (Tools/) - Text=Python test suite (Lib/test/) - Text= - Text French=Python interpreter, library and IDLE - Text French=Python HTML docs - Text French=Python utility scripts (Tools/) - Text French=Python test suite (Lib/test/) - Text French= - Text German=Python interpreter, library and IDLE - Text German=Python HTML docs - Text German=Python utility scripts (Tools/) - Text German=Python test suite (Lib/test/) - Text German= - Text Spanish=Python interpreter, library and IDLE - Text Spanish=Python HTML docs - Text Spanish=Python utility scripts (Tools/) - Text Spanish=Python test suite (Lib/test/) - Text Spanish= - Text Italian=Python interpreter, library and IDLE - Text Italian=Python HTML docs - Text Italian=Python utility scripts (Tools/) - Text Italian=Python test suite (Lib/test/) - Text Italian= - end - item: Static - Rectangle=108 45 320 63 - Create Flags=01010000000000000000000000000000 - Text=Choose which components to install by checking the boxes below. - Text French=Choisissez les composants que vous voulez installer en cochant les cases ci-dessous. - Text German=W?hlen Sie die zu installierenden Komponenten, indem Sie in die entsprechenden K?stchen klicken. - Text Spanish=Elija los componentes que desee instalar marcando los cuadros de abajo. - Text Italian=Scegliere quali componenti installare selezionando le caselle sottostanti. - end - item: Push Button - Rectangle=188 203 269 220 - Destination Dialog=1 - Action=2 - Enabled Color=00000000000000000000000011111111 - Create Flags=01010000000000010000000000000000 - Text=Advanced Options ... - end - item: Static - Rectangle=10 225 320 226 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=108 10 323 43 - Create Flags=01010000000000000000000000000000 - Flags=0000000000000001 - Name=Times New Roman - Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 - Text=Select Components - Text French=S?lectionner les composants - Text German=Komponenten ausw?hlen - Text Spanish=Seleccione componentes - Text Italian=Selezionare i componenti - end - item: Static - Rectangle=251 180 311 193 - Variable=COMPONENTS - Value=MAINDIR - Create Flags=01010000000000000000000000000010 - end - item: Static - Rectangle=251 168 311 179 - Variable=COMPONENTS - Create Flags=01010000000000000000000000000010 - end - item: Static - Rectangle=123 168 234 181 - Create Flags=01010000000000000000000000000000 - Text=Disk Space Required: - Text French=Espace disque requis : - Text German=Notwendiger Speicherplatz: - Text Spanish=Espacio requerido en el disco: - Text Italian=Spazio su disco necessario: - end - item: Static - Rectangle=123 180 234 193 - Create Flags=01010000000000000000000000000000 - Text=Disk Space Remaining: - Text French=Espace disque disponible : - Text German=Verbleibender Speicherplatz: - Text Spanish=Espacio en disco disponible: - Text Italian=Spazio su disco disponibile: - end - item: Static - Rectangle=108 158 320 196 - Action=1 - Create Flags=01010000000000000000000000000111 - end - item: If/While Statement - Variable=DLG_EVENT_TYPE - Value=VERIFY - end - item: Remark - Text=If they're installing Tcl/Tk, Tools, or the test suite, doesn't make much sense unless they're installing Python too. - end - item: If/While Statement - Variable=COMPONENTS - Value=BDE - Flags=00001010 - end - item: If/While Statement - Variable=COMPONENTS - Value=A - Flags=00000011 - end - item: Display Message - Title=Are you sure? - Text=Installing Tcl/Tk, Tools or the test suite doesn't make much sense unless you install the Python interpreter and libraries too. - Text= - Text=Click Yes if that's really what you want. - Flags=00101101 - end - item: Remark - Text=Nothing -- just proceed to the next dialog. - end - item: Else Statement - end - item: Remark - Text=Return to the dialog. - end - item: Set Variable - Variable=DLG_EVENT_TYPE - end - item: End Block - end - item: End Block - end - item: End Block - end - item: End Block - end - end - item: Dialog - Title=Advanced Options - Width=339 - Height=213 - Font Name=Helv - Font Size=8 - item: Radio Button - Control Name=ADMIN2 - Rectangle=11 46 90 76 - Variable=SELECT_ADMIN - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000010000000000001001 - Text=Admin install - Text=Non-Admin installl - Text= - end - item: Push Button - Rectangle=188 170 244 189 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=OK - Text French=&Suite > - Text German=&Weiter > - Text Spanish=&Siguiente > - Text Italian=&Avanti > - end - item: Static - Rectangle=5 3 326 83 - Action=1 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000111 - end - item: Static - Control Name=ADMIN1 - Rectangle=11 11 321 45 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000000 - Text=By default, the install records settings in the per-machine area of the registry (HKLM), and installs the Python and C runtime DLLs to %SYS32%. Choose "Non-Admin install" if you would prefer settings made in the per-user registry (HKCU), and DLLs installed in %MAINDIR%. - end - item: Static - Rectangle=5 90 326 157 - Action=1 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000111 - end - item: Checkbox - Rectangle=11 121 243 151 - Variable=TASKS - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000010000000000000011 - Text=Register file extensions (.py, .pyw, .pyc, .pyo) - Text=Create Start Menu shortcuts - Text= - end - item: Static - Rectangle=11 103 320 121 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000000 - Text=Choose tasks to perform by checking the boxes below. - end - item: If/While Statement - Variable=DLG_EVENT_TYPE - Value=INIT - end - item: If/While Statement - Variable=DOADMIN - Value=1 - end - item: Set Control Attribute - Control Name=ADMIN2 - end - item: Else Statement - end - item: Set Control Text - Control Name=ADMIN1 - Control Text=This section is available only if logged in to an account with Administrator privileges. - end - item: Set Control Attribute - Control Name=ADMIN2 - Operation=1 - end - item: End Block - end - item: End Block - end - end -end -item: Custom Dialog Set - Name=Select Program Manager Group - Display Variable=DISPLAY - item: Dialog - Title=%APPTITLE% Installation - Title French=Installation de %APPTITLE% - Title German=Installation von %APPTITLE% - Title Spanish=Instalaci?n de %APPTITLE% - Title Italian=Installazione di %APPTITLE% - Width=339 - Height=280 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=188 234 244 253 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suite > - Text German=&Weiter > - Text Spanish=&Siguiente > - Text Italian=&Avanti > - end - item: Push Button - Rectangle=131 234 188 253 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Flags=0000000000000001 - Text=< &Back - Text French=< &Retour - Text German=< &Zur?ck - Text Spanish=< &Atr?s - Text Italian=< &Indietro - end - item: Push Button - Rectangle=264 234 320 253 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=&Cancel - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Static - Rectangle=10 225 320 226 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=108 10 323 53 - Create Flags=01010000000000000000000000000000 - Flags=0000000000000001 - Name=Times New Roman - Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 - Text=Select Start Menu Group - Text French=S?lectionner le groupe du Gestionnaire de programme - Text German=Bestimmung der Programm-Managergruppe - Text Spanish=Seleccione grupo del Administrador de programas - Text Italian=Selezionare il gruppo ProgMan - end - item: Static - Rectangle=108 35 320 65 - Create Flags=01010000000000000000000000000000 - Text=Enter the name of the Start Menu program group to which to add the %APPTITLE% icons: - Text French=Entrez le nom du groupe du Gestionnaire de programme dans lequel vous souhaitez ajouter les ic?nes de %APPTITLE% : - Text German=Geben Sie den Namen der Programmgruppe ein, der das Symbol %APPTITLE% hinzugef?gt werden soll: - Text Spanish=Escriba el nombre del grupo del Administrador de programas en el que desea agregar los iconos de %APPTITLE%: - Text Italian=Inserire il nome del gruppo Program Manager per aggiungere le icone %APPTITLE% a: - end - item: Combobox - Rectangle=108 56 320 219 - Variable=GROUP - Create Flags=01010000001000010000001100000001 - Flags=0000000000000001 - Text=%GROUP% - Text= - Text French=%GROUP% - Text German=%GROUP% - Text Spanish=%GROUP% - Text Italian=%GROUP% - end - end -end -item: Custom Dialog Set - Name=Start Installation - Display Variable=DISPLAY - item: Dialog - Title=%APPTITLE% Installation - Title French=Installation de %APPTITLE% - Title German=Installation von %APPTITLE% - Title Spanish=Instalaci?n de %APPTITLE% - Title Italian=Installazione di %APPTITLE% - Width=339 - Height=280 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=188 234 244 253 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suite > - Text German=&Weiter > - Text Spanish=&Siguiente > - Text Italian=&Avanti > - end - item: Push Button - Rectangle=131 234 188 253 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Text=< &Back - Text French=< &Retour - Text German=< &Zur?ck - Text Spanish=< &Atr?s - Text Italian=< &Indietro - end - item: Push Button - Rectangle=264 234 320 253 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=&Cancel - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Static - Rectangle=10 225 320 226 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=108 10 323 53 - Create Flags=01010000000000000000000000000000 - Flags=0000000000000001 - Name=Times New Roman - Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 - Text=Ready to Install! - Text French=Pr?t ? installer ! - Text German=Installationsbereit! - Text Spanish=?Preparado para la instalaci?n! - Text Italian=Pronto per l'installazione! - end - item: Static - Rectangle=108 40 320 62 - Create Flags=01010000000000000000000000000000 - Text=Click the Next button to install %APPTITLE%, or the Back button to change choices: - Text French=Vous ?tes maintenant pr?t ? installer les fichiers %APPTITLE%. - Text French= - Text French=Cliquez sur le bouton Suite pour commencer l'installation ou sur le bouton Retour pour entrer les informations d'installation ? nouveau. - Text German=Sie k?nnen %APPTITLE% nun installieren. - Text German= - Text German=Klicken Sie auf "Weiter", um mit der Installation zu beginnen. Klicken Sie auf "Zur?ck", um die Installationsinformationen neu einzugeben. - Text Spanish=Ya est? listo para instalar %APPTITLE%. - Text Spanish= - Text Spanish=Presione el bot?n Siguiente para comenzar la instalaci?n o presione Atr?s para volver a ingresar la informaci?n para la instalaci?n. - Text Italian=Ora ? possibile installare %APPTITLE%. - Text Italian= - Text Italian=Premere il pulsante Avanti per avviare l'installazione o il pulsante Indietro per reinserire le informazioni di installazione. - end - item: Editbox - Rectangle=108 66 324 219 - Help Context=16711681 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000100000000001100011000100 - Text=%SUMMARY% - end - end -end -item: Remark -end -item: If/While Statement - Variable=DISPLAY - Value=Select Destination Directory -end -item: Remark - Text=User may have changed MAINDIR, so reset BACKUP to match. -end -item: Set Variable - Variable=BACKUP - Value=%MAINDIR%\BACKUP -end -item: End Block -end -item: Remark -end -item: End Block -end -item: Remark -end -item: Remark - Text=BEGIN WIZARD STUFF ----------------------------------------------------------------------------------------------------------------------------- -end -item: Remark - Text=When the BACKUP feature is enabled, the BACKUPDIR is initialized -end -item: If/While Statement - Variable=DOBACKUP - Value=A -end -item: Set Variable - Variable=BACKUPDIR - Value=%BACKUP% -end -item: End Block -end -item: Remark - Text=The BRANDING information is written to the INI file on the installation media. -end -item: If/While Statement - Variable=BRANDING - Value=1 -end -item: If/While Statement - Variable=DOBRAND - Value=1 -end -item: Edit INI File - Pathname=%INST%\CUSTDATA.INI - Settings=[Registration] - Settings=NAME=%NAME% - Settings=COMPANY=%COMPANY% - Settings= -end -item: End Block -end -item: End Block -end -item: Remark - Text=Begin writing to the INSTALL.LOG -end -item: Open/Close INSTALL.LOG -end -item: Remark - Text=Check free disk space calculates free disk space as well as component sizes. -end -item: Remark - Text=It should be located before all Install File actions. -end -item: Check Disk Space - Component=COMPONENTS -end -item: Remark - Text=This include script allows uninstall support -end -item: Remark - Text=Note from Tim: this is our own Uninstal.wse, a copy of Wise's except -end -item: Remark - Text=it writes to HKCU (instead of HKLM) if the user doesn't have admin privs. -end -item: Include Script - Pathname=.\Uninstal.wse -end -item: Remark - Text=Note from Tim: these seeming no-ops actually convert to short filenames. -end -item: Set Variable - Variable=COMMON - Value=%COMMON% - Flags=00010100 -end -item: Set Variable - Variable=MAINDIR - Value=%MAINDIR% - Flags=00010100 -end -item: Remark - Text=This IF/THEN/ELSE reads the correct registry entries for shortcut/icon placement -end -item: Check Configuration - Flags=10111011 -end -item: Get Registry Key Value - Variable=STARTUPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%WIN%\Start Menu\Programs\StartUp - Value Name=StartUp - Flags=00000010 -end -item: Get Registry Key Value - Variable=DESKTOPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%WIN%\Desktop - Value Name=Desktop - Flags=00000010 -end -item: Get Registry Key Value - Variable=STARTMENUDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%WIN%\Start Menu - Value Name=Start Menu - Flags=00000010 -end -item: Get Registry Key Value - Variable=GROUPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%WIN%\Start Menu\Programs - Value Name=Programs - Flags=00000010 -end -item: Get Registry Key Value - Variable=CSTARTUPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%STARTUPDIR% - Value Name=Common Startup - Flags=00000100 -end -item: Get Registry Key Value - Variable=CDESKTOPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%DESKTOPDIR% - Value Name=Common Desktop - Flags=00000100 -end -item: Get Registry Key Value - Variable=CSTARTMENUDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%STARTMENUDIR% - Value Name=Common Start Menu - Flags=00000100 -end -item: Get Registry Key Value - Variable=CGROUPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%GROUPDIR% - Value Name=Common Programs - Flags=00000100 -end -item: Else Statement -end -item: Remark - Text=Note from Tim: the Wizard left this block empty! -end -item: Remark - Text=Perhaps it's only relevant on Windows 3.1. -end -item: End Block -end -item: Remark - Text=END WIZARD STUFF ----------------------------------------------------------------------------------------------------------------------------- -end -item: Remark -end -item: If/While Statement - Variable=SELECT_ADMIN - Value=B -end -item: Remark - Text=The user chose a non-admin install in "Advanced Options". -end -item: Remark - Text=This should come after the include of Uninstal.wse above, because -end -item: Remark - Text=writing uninstall info to HKCU is ineffective except under Win2K. -end -item: Set Variable - Variable=DOADMIN - Value=0 -end -item: End Block -end -item: Remark -end -item: Set Variable - Variable=CGROUP_SAVE - Value=%GROUP% -end -item: If/While Statement - Variable=TASKS - Value=B - Flags=00000010 -end -item: If/While Statement - Variable=DOADMIN - Value=1 -end -item: Set Variable - Variable=GROUP - Value=%CGROUPDIR%\%GROUP% -end -item: Else Statement -end -item: Set Variable - Variable=GROUP - Value=%GROUPDIR%\%GROUP% -end -item: End Block -end -item: End Block -end -item: Remark -end -item: Remark - Text=Long section to install files. -end -item: Remark -end -item: If/While Statement - Variable=DOADMIN - Value=1 -end -item: Set Variable - Variable=DLLDEST - Value=%SYS32% -end -item: Else Statement -end -item: Set Variable - Variable=DLLDEST - Value=%MAINDIR% -end -item: End Block -end -item: Remark -end -item: Remark - Text=Install the license even if they deselect everything . -end -item: Install File - Source=..\license - Destination=%MAINDIR%\LICENSE.txt - Flags=0000000000000010 -end -item: Install File - Source=..\readme - Destination=%MAINDIR%\README.txt - Flags=0000000000000010 -end -item: Install File - Source=..\misc\news - Destination=%MAINDIR%\NEWS.txt - Flags=0000000000000010 -end -item: Remark - Text=Icons -- always install so that the uninstaller can use them for its own display. -end -item: Install File - Source=..\pc\pycon.ico - Destination=%MAINDIR%\pycon.ico - Flags=0000000010000010 -end -item: Install File - Source=..\pc\pyc.ico - Destination=%MAINDIR%\pyc.ico - Flags=0000000010000010 -end -item: Install File - Source=..\pc\py.ico - Destination=%MAINDIR%\py.ico - Flags=0000000010000010 -end -item: Remark -end -item: Remark - Text=These arrange to (recursively!) delete all .pyc and .pyo files at uninstall time. -end -item: Remark - Text=This "does the right thing": any directories left empty at the end are removed. -end -item: Add Text to INSTALL.LOG - Text=File Tree: %MAINDIR%\*.pyc -end -item: Add Text to INSTALL.LOG - Text=File Tree: %MAINDIR%\*.pyo -end -item: Remark -end -item: Remark - Text=A: interpreter and libraries -end -item: If/While Statement - Variable=COMPONENTS - Value=A - Flags=00000010 -end -item: Remark - Text=Executables -end -item: Install File - Source=.\python.exe - Destination=%MAINDIR%\python.exe - Flags=0000000000000010 -end -item: Install File - Source=.\pythonw.exe - Destination=%MAINDIR%\pythonw.exe - Flags=0000000000000010 -end -item: Install File - Source=.\w9xpopen.exe - Destination=%MAINDIR%\w9xpopen.exe - Flags=0000000000000010 -end -item: Remark -end -item: Remark - Text=Extension module DLLs (.pyd); keep in synch with libs directory next -end -item: Install File - Source=.\_winreg.pyd - Destination=%MAINDIR%\DLLs\_winreg.pyd - Description=Extension modules - Flags=0000000000000010 -end -item: Install File - Source=.\_csv.pyd - Destination=%MAINDIR%\DLLs\_csv.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\_sre.pyd - Destination=%MAINDIR%\DLLs\_sre.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\_ssl.pyd - Destination=%MAINDIR%\DLLs\_ssl.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\_symtable.pyd - Destination=%MAINDIR%\DLLs\_symtable.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\_testcapi.pyd - Destination=%MAINDIR%\DLLs\_testcapi.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\_tkinter.pyd - Destination=%MAINDIR%\DLLs\_tkinter.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\_socket.pyd - Destination=%MAINDIR%\DLLs\_socket.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\_bsddb.pyd - Destination=%MAINDIR%\DLLs\_bsddb.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\bz2.pyd - Destination=%MAINDIR%\DLLs\bz2.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\datetime.pyd - Destination=%MAINDIR%\DLLs\datetime.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\mmap.pyd - Destination=%MAINDIR%\DLLs\mmap.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\parser.pyd - Destination=%MAINDIR%\DLLs\parser.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\pyexpat.pyd - Destination=%MAINDIR%\DLLs\pyexpat.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\select.pyd - Destination=%MAINDIR%\DLLs\select.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\unicodedata.pyd - Destination=%MAINDIR%\DLLs\unicodedata.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\winsound.pyd - Destination=%MAINDIR%\DLLs\winsound.pyd - Flags=0000000000000010 -end -item: Install File - Source=.\zlib.pyd - Destination=%MAINDIR%\DLLs\zlib.pyd - Flags=0000000000000010 -end -item: Remark -end -item: Remark - Text=Link libraries (.lib); keep in synch with DLLs above, except that the Python lib lives here. -end -item: Install File - Source=.\_winreg.lib - Destination=%MAINDIR%\libs\_winreg.lib - Description=Link library files - Flags=0000000000000010 -end -item: Install File - Source=.\_csv.lib - Destination=%MAINDIR%\libs\_csv.lib - Flags=0000000000000010 -end -item: Install File - Source=.\_sre.lib - Destination=%MAINDIR%\libs\_sre.lib - Flags=0000000000000010 -end -item: Install File - Source=.\_ssl.lib - Destination=%MAINDIR%\libs\_ssl.lib - Flags=0000000000000010 -end -item: Install File - Source=.\_symtable.lib - Destination=%MAINDIR%\libs\_symtable.lib - Flags=0000000000000010 -end -item: Install File - Source=.\_testcapi.lib - Destination=%MAINDIR%\libs\_testcapi.lib - Flags=0000000000000010 -end -item: Install File - Source=.\_tkinter.lib - Destination=%MAINDIR%\libs\_tkinter.lib - Description=Extension modules - Flags=0000000000000010 -end -item: Install File - Source=.\_socket.lib - Destination=%MAINDIR%\libs\_socket.lib - Flags=0000000000000010 -end -item: Install File - Source=.\_bsddb.lib - Destination=%MAINDIR%\libs\_bsddb.lib - Flags=0000000000000010 -end -item: Install File - Source=.\bz2.lib - Destination=%MAINDIR%\libs\bz2.lib - Flags=0000000000000010 -end -item: Install File - Source=.\datetime.lib - Destination=%MAINDIR%\libs\datetime.lib - Flags=0000000000000010 -end -item: Install File - Source=.\mmap.lib - Destination=%MAINDIR%\libs\mmap.lib - Flags=0000000000000010 -end -item: Install File - Source=.\parser.lib - Destination=%MAINDIR%\libs\parser.lib - Flags=0000000000000010 -end -item: Install File - Source=.\pyexpat.lib - Destination=%MAINDIR%\libs\pyexpat.lib - Flags=0000000000000010 -end -item: Install File - Source=.\select.lib - Destination=%MAINDIR%\libs\select.lib - Flags=0000000000000010 -end -item: Install File - Source=.\unicodedata.lib - Destination=%MAINDIR%\libs\unicodedata.lib - Flags=0000000000000010 -end -item: Install File - Source=.\winsound.lib - Destination=%MAINDIR%\libs\winsound.lib - Flags=0000000000000010 -end -item: Install File - Source=.\zlib.lib - Destination=%MAINDIR%\libs\zlib.lib - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=.\python%_pymajor_%%_pyminor_%.lib - Destination=%MAINDIR%\libs\python%_PYMAJOR_%%_PYMINOR_%.lib - Flags=0000000000000010 -end -item: Remark -end -item: Remark - Text=Main Python DLL -end -item: Remark - Text=Tell Wise it's OK to delete the Python DLL at uninstall time, -end -item: Remark - Text=despite that we (may) write it into a system directory. -end -item: Add Text to INSTALL.LOG - Text=Non-System File: -end -item: Install File - Source=.\python%_pymajor_%%_pyminor_%.dll - Destination=%DLLDEST%\python%_PYMAJOR_%%_PYMINOR_%.dll - Flags=0000000000000010 -end -item: Remark -end -item: Remark - Text=Libraries (Lib/) -end -item: Install File - Source=..\lib\*.py - Destination=%MAINDIR%\Lib - Description=Library Modules - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\lib\bsddb\*.py - Destination=%MAINDIR%\Lib\bsddb - Description=Berkeley database package - Flags=0000000100000010 -end -item: Remark -end -item: Install File - Source=..\lib\compiler\*.py - Destination=%MAINDIR%\Lib\compiler - Description=Python compiler written in Python - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\lib\distutils\*.py - Destination=%MAINDIR%\Lib\distutils - Description=Distribution utility modules - Flags=0000000000000010 -end -item: Install File - Source=..\lib\distutils\readme - Destination=%MAINDIR%\Lib\distutils\README.txt - Flags=0000000000000010 -end -item: Install File - Source=..\lib\distutils\command\*.py - Destination=%MAINDIR%\Lib\distutils\command - Flags=0000000000000010 -end -item: Install File - Source=..\lib\distutils\command\wininst.exe - Destination=%MAINDIR%\Lib\distutils\command\wininst.exe - Flags=0000000000000010 -end -item: Install File - Source=..\lib\distutils\command\command_template - Destination=%MAINDIR%\Lib\distutils\command\command_template - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\lib\email\*.py - Destination=%MAINDIR%\Lib\email - Description=Library email package - Flags=0000000000000010 -end -item: Install File - Source=..\lib\email\test\*.py - Destination=%MAINDIR%\Lib\email\test - Description=email tests - Flags=0000000000000010 -end -item: Install File - Source=..\lib\email\test\data\*.txt - Destination=%MAINDIR%\Lib\email\test\data - Description=email test data - Flags=0000000000000010 -end -item: Install File - Source=..\lib\email\test\data\*.gif - Destination=%MAINDIR%\Lib\email\test\data - Description=email test data - Flags=0000000000000010 -end -item: Install File - Source=..\lib\email\test\data\*.au - Destination=%MAINDIR%\Lib\email\test\data - Description=email test data - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\lib\encodings\*.py - Destination=%MAINDIR%\Lib\encodings - Description=Unicode encoding tables - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\lib\hotshot\*.py - Destination=%MAINDIR%\Lib\hotshot - Description=Fast Python profiler - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\lib\lib-old\*.py - Destination=%MAINDIR%\Lib\lib-old - Description=Obsolete modules - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\lib\lib-tk\*.py - Destination=%MAINDIR%\Lib\lib-tk - Description=Tkinter related library modules - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\lib\logging\*.py - Destination=%MAINDIR%\Lib\logging - Description=Logging package - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\lib\site-packages\readme - Destination=%MAINDIR%\Lib\site-packages\README.txt - Description=Site packages - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\lib\xml\*.py - Destination=%MAINDIR%\Lib\xml - Description=XML support packages - Flags=0000000000000010 -end -item: Install File - Source=..\lib\xml\dom\*.py - Destination=%MAINDIR%\Lib\xml\dom - Flags=0000000000000010 -end -item: Install File - Source=..\lib\xml\parsers\*.py - Destination=%MAINDIR%\Lib\xml\parsers - Flags=0000000000000010 -end -item: Install File - Source=..\lib\xml\sax\*.py - Destination=%MAINDIR%\Lib\xml\sax - Flags=0000000000000010 -end -item: Remark -end -item: Remark - Text=C Include files -end -item: Install File - Source=..\include\*.h - Destination=%MAINDIR%\include - Description=Header files - Flags=0000000000000010 -end -item: Install File - Source=..\pc\pyconfig.h - Destination=%MAINDIR%\include\pyconfig.h - Description=Header files (pyconfig.h) - Flags=0000000000000010 -end -item: Remark -end -item: Remark - Text=Microsoft C runtime libraries -end -item: Install File - Source=%_SYS_%\MSVCIRT.DLL - Destination=%DLLDEST%\MSVCIRT.DLL - Description=Visual C++ Runtime DLLs - Flags=0000011000010011 -end -item: Install File - Source=%_SYS_%\MSVCRT.DLL - Destination=%DLLDEST%\MSVCRT.DLL - Description=Visual C++ Runtime DLLs - Flags=0000011000010011 -end -item: End Block -end -item: Remark -end -item: Remark - Text=B: Tcl/Tk (Tkinter, IDLE, pydoc) -end -item: If/While Statement - Variable=COMPONENTS - Value=B - Flags=00000010 -end -item: Remark - Text=Tcl/Tk -end -item: Install File - Source=..\..\%_tcldir_%\bin\*.dll - Destination=%MAINDIR%\DLLs - Description=Tcl/Tk binaries and libraries - Flags=0000000000000010 -end -item: Install File - Source=..\..\%_tcldir_%\lib\*.* - Destination=%MAINDIR%\tcl - Description=Tcl/Tk binaries and libraries - Flags=0000000100000010 -end -item: Remark -end -item: Remark - Text=IDLE -end -item: Install File - Source=..\Lib\idlelib\*.py - Destination=%MAINDIR%\Lib\idlelib - Description=Integrated DeveLopment Environment for Python - Flags=0000000000000010 -end -item: Install File - Source=..\Lib\idlelib\*.txt - Destination=%MAINDIR%\Lib\idlelib - Description=Integrated DeveLopment Environment for Python - Flags=0000000000000010 -end -item: Install File - Source=..\Lib\idlelib\*.def - Destination=%MAINDIR%\Lib\idlelib - Description=Integrated DeveLopment Environment for Python - Flags=0000000000000010 -end -item: Install File - Source=..\Lib\idlelib\Icons\* - Destination=%MAINDIR%\Lib\idlelib\Icons - Description=Integrated DeveLopment Environment for Python - Flags=0000000000000010 -end -item: Install File - Source=..\Tools\scripts\idle - Destination=%MAINDIR%\Lib\idlelib\idle.pyw - Description=IDLE bootstrap script - Flags=0000000000000010 -end -item: Remark -end -item: Remark - Text=Windows pydoc driver -end -item: Install File - Source=..\tools\scripts\*.pyw - Destination=%MAINDIR%\Tools\Scripts - Description=Windows pydoc driver - Flags=0000000000000010 -end -item: End Block -end -item: Remark -end -item: Remark - Text=C: docs -end -item: If/While Statement - Variable=COMPONENTS - Value=C - Flags=00000010 -end -item: Install File - Source=%_DOC_%\*.* - Destination=%MAINDIR%\Doc - Description=Python Documentation (HTML) - Flags=0000000100000010 -end -item: End Block -end -item: Remark -end -item: Remark - Text=D: tools -end -item: If/While Statement - Variable=COMPONENTS - Value=D - Flags=00000010 -end -item: Install File - Source=..\tools\scripts\*.py - Destination=%MAINDIR%\Tools\Scripts - Description=Utility Scripts - Flags=0000000000000010 -end -item: Install File - Source=..\tools\scripts\*.doc - Destination=%MAINDIR%\Tools\Scripts - Description=Utility Scripts - Flags=0000000000000010 -end -item: Install File - Source=..\tools\scripts\readme - Destination=%MAINDIR%\Tools\Scripts\README.txt - Description=Utility Scripts - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\tools\webchecker\*.py - Destination=%MAINDIR%\Tools\webchecker - Description=Web checker tool - Flags=0000000000000010 -end -item: Install File - Source=..\tools\webchecker\readme - Destination=%MAINDIR%\Tools\webchecker\README.txt - Description=Web checker tool - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\tools\versioncheck\*.py - Destination=%MAINDIR%\Tools\versioncheck - Description=Version checker tool - Flags=0000000000000010 -end -item: Install File - Source=..\tools\versioncheck\readme - Destination=%MAINDIR%\Tools\versioncheck\README.txt - Description=Version checker tool - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\tools\pynche\*.py - Destination=%MAINDIR%\Tools\pynche - Description=pynche color editor - Flags=0000000000000010 -end -item: Install File - Source=..\tools\pynche\*.txt - Destination=%MAINDIR%\Tools\pynche - Description=pynche color editor - Flags=0000000000000010 -end -item: Install File - Source=..\tools\pynche\x\*.txt - Destination=%MAINDIR%\Tools\pynche\X - Description=pynche color editor - X files - Flags=0000000000000010 -end -item: Install File - Source=..\tools\pynche\readme - Destination=%MAINDIR%\Tools\pynche\README.txt - Description=pynche color editor - README - Flags=0000000100000010 -end -item: Install File - Source=..\tools\pynche\pynche - Destination=%MAINDIR%\Tools\pynche\pynche.py - Description=pynche color editor - main - Flags=0000000100000010 -end -item: Install File - Source=..\tools\pynche\pynche.pyw - Destination=%MAINDIR%\Tools\pynche\pynche.pyw - Description=pynche color editor - noconsole main - Flags=0000000100000010 -end -item: Remark -end -item: Install File - Source=..\tools\i18n\*.py - Destination=%MAINDIR%\Tools\i18n - Description=Internationalization helpers - Flags=0000000000000010 -end -item: End Block -end -item: Remark -end -item: Remark - Text=E: test suite -end -item: If/While Statement - Variable=COMPONENTS - Value=E - Flags=00000010 -end -item: Install File - Source=..\lib\test\audiotest.au - Destination=%MAINDIR%\Lib\test\audiotest.au - Description=Python Test files - Flags=0000000000000010 -end -item: Install File - Source=..\lib\test\*.uue - Destination=%MAINDIR%\Lib\test - Description=Python Test files - Flags=0000000000000010 -end -item: Install File - Source=..\lib\test\*.py - Destination=%MAINDIR%\Lib\test - Description=Python Test files - Flags=0000000000000010 -end -item: Install File - Source=..\lib\test\*.xml - Destination=%MAINDIR%\Lib\test - Description=Python Test files - Flags=0000000000000010 -end -item: Install File - Source=..\lib\test\*.out - Destination=%MAINDIR%\Lib\test - Description=Python Test files - Flags=0000000000000010 -end -item: Install File - Source=..\lib\test\*.bz2 - Destination=%MAINDIR%\Lib\test - Description=Python Test files - Flags=0000000000000010 -end -item: Install File - Source=..\lib\test\*.tar - Destination=%MAINDIR%\Lib\test - Description=Python Test files - Flags=0000000000000010 -end -item: Install File - Source=..\lib\test\*.gz - Destination=%MAINDIR%\Lib\test - Description=Python Test files - Flags=0000000000000010 -end -item: Install File - Source=..\lib\test\*.txt - Destination=%MAINDIR%\Lib\test - Description=Python Test files - Flags=0000000000000010 -end -item: Remark -end -item: Install File - Source=..\lib\test\output\*.* - Destination=%MAINDIR%\Lib\test\output - Description=Python Test output files - Flags=0000000000000010 -end -item: End Block -end -item: Remark -end -item: Remark - Text=DONE with file copying. -end -item: Remark - Text=The rest is registry and Start Menu fiddling. -end -item: Remark -end -item: If/While Statement - Variable=COMPONENTS - Value=A - Flags=00000010 -end -item: If/While Statement - Variable=TASKS - Value=A - Flags=00000010 -end -item: Remark - Text=Register file extensions. As usual, Admin privs get in the way, but with a twist: -end -item: Remark - Text=You don't need admin privs to write to HKEY_CLASSES_ROOT *except* under Win2K. -end -item: Remark - Text=On Win2K, a user without Admin privs has to register extensions under HKCU\Software\CLASSES instead. -end -item: Remark - Text=But while you can *do* that under other flavors of Windows too, it has no useful effect except in Win2K. -end -item: Set Variable - Variable=USE_HKCR - Value=1 -end -item: Check Configuration - Flags=11110010 -end -item: If/While Statement - Variable=DOADMIN - Value=0 -end -item: Set Variable - Variable=USE_HKCR - Value=0 -end -item: End Block -end -item: End Block -end -item: If/While Statement - Variable=USE_HKCR - Value=1 -end -item: Remark - Text=File types. -end -item: Edit Registry - Total Keys=1 - Key=Python.File - New Value=Python File -end -item: Edit Registry - Total Keys=1 - Key=Python.File\shell\open\command - New Value=%MAINDIR%\python.exe "%%1" %%* -end -item: Edit Registry - Total Keys=1 - Key=Python.File\DefaultIcon - New Value=%MAINDIR%\Py.ico -end -item: Remark -end -item: Edit Registry - Total Keys=1 - Key=Python.NoConFile - New Value=Python File (no console) -end -item: Edit Registry - Total Keys=1 - Key=Python.NoConFile\shell\open\command - New Value=%MAINDIR%\pythonw.exe "%%1" %%* -end -item: Edit Registry - Total Keys=1 - Key=Python.NoConFile\DefaultIcon - New Value=%MAINDIR%\Py.ico -end -item: Remark -end -item: Edit Registry - Total Keys=1 - Key=Python.CompiledFile - New Value=Compiled Python File -end -item: Edit Registry - Total Keys=1 - Key=Python.CompiledFile\shell\open\command - New Value=%MAINDIR%\python.exe "%%1" %%* -end -item: Edit Registry - Total Keys=1 - Key=Python.CompiledFile\DefaultIcon - New Value=%MAINDIR%\pyc.ico -end -item: Remark -end -item: Remark - Text=File extensions. -end -item: Edit Registry - Total Keys=1 - Key=.py - New Value=Python.File -end -item: Edit Registry - Total Keys=1 - Key=.py - New Value=text/plain - Value Name=Content Type -end -item: Remark -end -item: Edit Registry - Total Keys=1 - Key=.pyw - New Value=Python.NoConFile -end -item: Edit Registry - Total Keys=1 - Key=.pyw - New Value=text/plain - Value Name=Content Type -end -item: Remark -end -item: Edit Registry - Total Keys=1 - Key=.pyc - New Value=Python.CompiledFile -end -item: Edit Registry - Total Keys=1 - Key=.pyo - New Value=Python.CompiledFile -end -item: Else Statement -end -item: Remark - Text=File types. -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\Python.File - New Value=Python File - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\Python.File\shell\open\command - New Value=%MAINDIR%\python.exe "%%1" %%* - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\Python.File\DefaultIcon - New Value=%MAINDIR%\Py.ico - Root=1 -end -item: Remark -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\Python.NoConFile - New Value=Python File (no console) - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\Python.NoConFile\shell\open\command - New Value=%MAINDIR%\pythonw.exe "%%1" %%* - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\Python.NoConFile\DefaultIcon - New Value=%MAINDIR%\Py.ico - Root=1 -end -item: Remark -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\Python.CompiledFile - New Value=Compiled Python File - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\Python.CompiledFile\shell\open\command - New Value=%MAINDIR%\python.exe "%%1" %%* - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\Python.CompiledFile\DefaultIcon - New Value=%MAINDIR%\pyc.ico - Root=1 -end -item: Remark -end -item: Remark - Text=File extensions. -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\.py - New Value=Python.File - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\.py - New Value=text/plain - Value Name=Content Type - Root=1 -end -item: Remark -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\.pyw - New Value=Python.NoConFile - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\.pyw - New Value=text/plain - Value Name=Content Type - Root=1 -end -item: Remark -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\.pyc - New Value=Python.CompiledFile - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\.pyo - New Value=Python.CompiledFile - Root=1 -end -item: End Block -end -item: Remark -end -item: Remark - Text=If we're installing IDLE, also set an Edit context menu action to use IDLE, for .py and .pyw files. -end -item: If/While Statement - Variable=COMPONENTS - Value=B - Flags=00000010 -end -item: If/While Statement - Variable=USE_HKCR - Value=1 -end -item: Edit Registry - Total Keys=1 - Key=Python.NoConFile\shell\Edit with IDLE\command - New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -n -e "%%1" -end -item: Edit Registry - Total Keys=1 - Key=Python.File\shell\Edit with IDLE\command - New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -n -e "%%1" -end -item: Else Statement -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\Python.NoConFile\shell\Edit with IDLE\command - New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -n -e "%%1" - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\CLASSES\Python.File\shell\Edit with IDLE\command - New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -n -e "%%1" - Root=1 -end -item: End Block -end -item: End Block -end -item: End Block -end -item: Remark -end -item: Remark - Text=Register Python paths. -end -item: Remark - Text=Write to HKLM for admin, else HKCU. Keep these blocks otherwise identical! -end -item: If/While Statement - Variable=DOADMIN - Value=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\Python\PythonCore\CurrentVersion - Root=130 -end -item: Edit Registry - Total Keys=1 - Key=Software\Python\PythonCore\%PY_VERSION%\InstallPath - New Value=%MAINDIR% - Root=2 -end -item: Edit Registry - Total Keys=1 - Key=Software\Python\PythonCore\%PY_VERSION%\InstallPath\InstallGroup - New Value=%CGROUP_SAVE% - New Value= - Root=2 -end -item: Edit Registry - Total Keys=1 - Key=Software\Python\PythonCore\%PY_VERSION%\PythonPath - New Value=%MAINDIR%\Lib;%MAINDIR%\DLLs;%MAINDIR%\Lib\lib-tk - New Value= - Root=2 -end -item: Edit Registry - Total Keys=1 - Key=Software\Python\PythonCore\%PY_VERSION%\Modules - Root=2 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe - New Value=%MAINDIR%\Python.exe - Root=2 -end -item: Else Statement -end -item: Edit Registry - Total Keys=1 - Key=Software\Python\PythonCore\CurrentVersion - Root=129 -end -item: Edit Registry - Total Keys=1 - Key=Software\Python\PythonCore\%PY_VERSION%\InstallPath - New Value=%MAINDIR% - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\Python\PythonCore\%PY_VERSION%\InstallPath\InstallGroup - New Value=%CGROUP_SAVE% - New Value= - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\Python\PythonCore\%PY_VERSION%\PythonPath - New Value=%MAINDIR%\Lib;%MAINDIR%\DLLs;%MAINDIR%\Lib\lib-tk - New Value= - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\Python\PythonCore\%PY_VERSION%\Modules - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe - New Value=%MAINDIR%\Python.exe - Root=1 -end -item: End Block -end -item: End Block -end -item: Remark -end -item: Remark - Text=Registry fiddling for docs. -end -item: Remark - Text=Write to HKLM for admin, else HKCU. Keep these blocks otherwise identical! -end -item: If/While Statement - Variable=COMPONENTS - Value=C - Flags=00000010 -end -item: If/While Statement - Variable=DOADMIN - Value=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\Python\PythonCore\%PY_VERSION%\Help\Main Python Documentation - New Value=%MAINDIR%\Doc\index.html - Root=2 -end -item: Else Statement -end -item: Edit Registry - Total Keys=1 - Key=Software\Python\PythonCore\%PY_VERSION%\Help\Main Python Documentation - New Value=%MAINDIR%\Doc\index.html - Root=1 -end -item: End Block -end -item: End Block -end -item: Remark -end -item: Remark - Text=Set the app publisher and URL entries for Win2K add/remove. -end -item: Remark - Text=It doesn't hurt on other systems. -end -item: Remark - Text=As usual, write to HKLM or HKCU depending on Admin privs. -end -item: Remark - Text=CAUTION: If you set this info on the "Windows 2000" page (step 6) of the -end -item: Remark - Text=Installation Expert, it only shows up in the "If" block below. Keep in synch! -end -item: If/While Statement - Variable=DOADMIN - Value=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=http://www.python.org/ - Value Name=HelpLink - Root=2 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=PythonLabs at Zope Corporation - Value Name=Publisher - Root=2 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=http://www.python.org/ - Value Name=URLInfoAbout - Root=2 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=%PYVER_STRING% - Value Name=DisplayVersion - Root=2 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=%MAINDIR%\py.ico,-0 - Value Name=DisplayIcon - Root=2 -end -item: Else Statement -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=http://www.python.org/ - Value Name=HelpLink - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=PythonLabs at Zope Corporation - Value Name=Publisher - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=http://www.python.org/ - Value Name=URLInfoAbout - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=%PYVER_STRING% - Value Name=DisplayVersion - Root=1 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=%MAINDIR%\py.ico,-0 - Value Name=DisplayIcon - Root=1 -end -item: End Block -end -item: Remark -end -item: Remark - Text=Populate Start Menu group -end -item: If/While Statement - Variable=TASKS - Value=B - Flags=00000010 -end -item: Remark - Text=Shortcut to installer no matter what. -end -item: Create Shortcut - Source=%MAINDIR%\unwise.exe - Destination=%GROUP%\Uninstall Python.lnk - Working Directory=%MAINDIR% - Key Type=1536 - Flags=00000001 -end -item: Remark -end -item: If/While Statement - Variable=COMPONENTS - Value=A - Flags=00000010 -end -item: Create Shortcut - Source=%MAINDIR%\python.exe - Destination=%GROUP%\Python (command line).lnk - Working Directory=%MAINDIR% - Icon Pathname=%MAINDIR%\pycon.ico - Key Type=1536 - Flags=00000001 -end -item: End Block -end -item: Remark -end -item: If/While Statement - Variable=COMPONENTS - Value=B - Flags=00000010 -end -item: Create Shortcut - Source=%MAINDIR%\pythonw.exe - Destination=%GROUP%\IDLE (Python GUI).lnk - Command Options="%MAINDIR%\Lib\idlelib\idle.pyw" - Working Directory=%MAINDIR% - Key Type=1536 - Flags=00000001 -end -item: Create Shortcut - Source=%MAINDIR%\pythonw.exe - Destination=%GROUP%\Module Docs.lnk - Command Options="%MAINDIR%\Tools\Scripts\pydocgui.pyw" - Working Directory=%MAINDIR% - Key Type=1536 - Flags=00000001 -end -item: End Block -end -item: Remark -end -item: If/While Statement - Variable=COMPONENTS - Value=C - Flags=00000010 -end -item: Create Shortcut - Source=%MAINDIR%\Doc\index.html - Destination=%GROUP%\Python Manuals.lnk - Working Directory=%MAINDIR% - Key Type=1536 - Flags=00000001 -end -item: End Block -end -item: End Block -end -item: Remark -end -item: Remark - Text=I don't think we need this, but have always done it. -end -item: Self-Register OCXs/DLLs - Description=Updating System Configuration, Please Wait... -end -item: Remark -end -remarked item: Remark - Text=Don't enable "Delete in-use files". Here's what happens: -end -remarked item: Remark - Text=Install Python; uninstall Python; install Python again. Reboot the machine. -end -remarked item: Remark - Text=Now UNWISE.EXE is missing. I think this is a Wise bug, but so it goes. -end -remarked item: Add Text to INSTALL.LOG - Text=Delete in-use files: On -end -item: Remark -end -item: Wizard Block - Direction Variable=DIRECTION - Display Variable=DISPLAY - Bitmap Pathname=.\installer.bmp - X Position=9 - Y Position=10 - Filler Color=11173759 - Flags=00000011 -end -item: Custom Dialog Set - Name=Finished - Display Variable=DISPLAY - item: Dialog - Title=%APPTITLE% Installation - Title French=Installation de %APPTITLE% - Title German=Installation von %APPTITLE% - Title Spanish=Instalaci?n de %APPTITLE% - Title Italian=Installazione di %APPTITLE% - Width=339 - Height=280 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=188 234 244 253 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Finish - Text French=&Fin - Text German=&Weiter - Text Spanish=&Terminar - Text Italian=&Fine - end - item: Push Button - Rectangle=264 234 320 253 - Variable=DISABLED - Value=! - Action=3 - Create Flags=01010000000000010000000000000000 - Text=&Cancel - Text French=&Annuler - Text German=&Abbrechen - Text Spanish=&Cancelar - Text Italian=&Annulla - end - item: Static - Rectangle=108 10 323 48 - Create Flags=01010000000000000000000000000000 - Flags=0000000000000001 - Name=Times New Roman - Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 - Text=Installation Completed! - Text French=Installation termin?e ! - Text German=Die Installation ist abgeschlossen! - Text Spanish=?Instalaci?n terminada! - Text Italian=Installazione completata! - end - item: Static - Rectangle=108 44 320 82 - Create Flags=01010000000000000000000000000000 - Text=%APPTITLE% has been successfully installed. - Text= - Text=Press the Finish button to exit this installation. - Text French=%APPTITLE% est maintenant install?. - Text French= - Text French=Cliquez sur le bouton Fin pour quitter l'installation. - Text German=%APPTITLE% wurde erfolgreich installiert. - Text German= - Text German=Klicken Sie auf "Weiter", um die Installation zu beenden. - Text Spanish=%APPTITLE% se ha instalado con ?xito. - Text Spanish= - Text Spanish=Presione el bot?n Terminar para salir de esta instalaci?n. - Text Italian=L'installazione %APPTITLE% ? stata portata a termine con successo. - Text Italian= - Text Italian=Premere il pulsante Fine per uscire dall'installazione. - end - item: Static - Rectangle=10 225 320 226 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=106 105 312 210 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000000 - Text=Special Windows thanks to: - Text= - Text=Wise Solutions, for the use of InstallMaster 8.1. - Text= http://www.wisesolutions.com/ - Text= - Text= - Text=LettError, Erik van Blokland, for the Python for Windows graphic. - Text= http://www.letterror.com/ - Text= - Text= - Text=Mark Hammond, without whose years of freely shared Windows expertise, Python for Windows would still be Python for DOS. - end - item: Static - Rectangle=106 95 312 96 - Action=3 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000001001 - end - end -end -item: End Block -end -item: New Event - Name=Cancel -end -item: Remark - Text=This include script supports a rollback to preinstallation state if the user chooses to cancel before the installation is complete. -end -item: Include Script - Pathname=%_WISE_%\INCLUDE\rollback.wse -end Deleted: /stackless/branches/release25-maint/PCbuild8/pythoncore.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/pythoncore.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,1938 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modified: stackless/branches/release25-maint/PCbuild8/pythoncore/pythoncore.vcproj ============================================================================== --- python/branches/release25-maint/PCbuild8/pythoncore/pythoncore.vcproj (original) +++ stackless/branches/release25-maint/PCbuild8/pythoncore/pythoncore.vcproj Sat May 5 11:55:26 2007 @@ -16,6 +16,9 @@ /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Deleted: /stackless/branches/release25-maint/PCbuild8/pythonw.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/pythonw.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,383 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modified: stackless/branches/release25-maint/PCbuild8/readme.txt ============================================================================== --- stackless/branches/release25-maint/PCbuild8/readme.txt (original) +++ stackless/branches/release25-maint/PCbuild8/readme.txt Sat May 5 11:55:26 2007 @@ -2,55 +2,66 @@ ------------------------------------- This directory is used to build Python for Win32 platforms, e.g. Windows 95, 98 and NT. It requires Microsoft Visual C++ 8.0 -(a.k.a. Visual Studio 2005). +(a.k.a. Visual Studio 2005). There are two Platforms defined, Win32 +and x64. (For other Windows platforms and compilers, see ../PC/readme.txt.) -All you need to do is open the workspace "pcbuild.sln" in VisualStudio 2005, -select the platform, select the Debug or Release setting -(using "Solution Configuration" from the "Standard" toolbar"), and build the -solution. - -The proper order to build subprojects: - -1) pythoncore (this builds the main Python DLL and library files, - python25.{dll, lib} in Release mode) - NOTE: in previous releases, this subproject was - named after the release number, e.g. python20. - -2) python (this builds the main Python executable, - python.exe in Release mode) - -3) the other subprojects, as desired or needed (note: you probably don't - want to build most of the other subprojects, unless you're building an - entire Python distribution from scratch, or specifically making changes - to the subsystems they implement, or are running a Python core buildbot - test slave; see SUBPROJECTS below) +All you need to do is open the workspace "pcbuild.sln" in MSVC++, select +the Debug or Release setting (using "Solution Configuration" from +the "Standard" toolbar"), and build the solution. -Binary files go into PCBuild8\Win32 or \x64 directories and don't -interfere with each other. +A .bat file, build.bat, is provided to simplify command line builds. + +Some of the subprojects rely on external libraries and won't build +unless you have them installed. + +Binary files go into PCBuild8\$(PlatformName)($ConfigurationName), +which will be something like Win32Debug, Win32Release, x64Release, etc. When using the Debug setting, the output files have a _d added to their name: python25_d.dll, python_d.exe, parser_d.pyd, and so on. -Profile guided Optimization: +PROFILER GUIDED OPTIMIZATION +---------------------------- +There are two special solution configurations for Profiler Guided +Optimization. Careful use of this has been shown to yield more than +10% extra speed. +1) Build the PGInstrument solution configuration. This will yield +binaries in the win32PGO or x64PGO folders. (You may want do start +by erasing any .pgc files there, present from earlier runs.) +2) Instrument the binaries. Do this by for example running the test +suite: win32PGO\python.exe ..\lib\test\regrtest.py. This will excercise +python thoroughly. +3) Build the PGUpdate solution configuration (You may need to ask it +to rebuild.) This will incorporate the information gathered in step 2 +and produce new binaries in the same win32PGO or x64pPGO folders. +4) (optional) You can continue to build the PGUpdate configuration as +you work on python. It will continue to use the data from step 2, even +if you add or modify files as part of your work. Thus, it makes sense to +run steps 1 and 2 maybe once a week, and then use step 3) for all regular +work. + +A .bat file, build_pgo.bat is included to automate this process + +You can convince yourself of the benefits of the PGO by comparing the +results of the python testsuite with the regular Release build. + + +C RUNTIME +--------- +Visual Studio 2005 uses version 8 of the C runtime. The executables are +linked to a CRT "side by side" assembly which must be present on the target +machine. This is avalible under the VC/Redist folder of your visual studio +distribution. Note that ServicePack1 of Visual Studio 2005 has a different +version than the original. On XP and later operating systems that support +side-by-side assemblies it is not enough to have the msvcrt80.dll present, +it has to be there as a whole assembly, that is, a folder with the .dll +and a .manifest. Also, a check is made for the correct version. +Therefore, one should distribute this assembly with the dlls, and keep +it in the same directory. For compatibility with older systems, one should +also set the PATH to this directory so that the dll can be found. +For more info, see the Readme in the VC/Redist folder. -There are two special configurations for the pythoncore project and -the solution. These are PGIRelease and PGORelease. They are for -creating profile-guided optimized versions of python.dll. -The former creates the instrumented binaries, and the latter -runs python.exe with the instrumented python.dll on the performance -testsuite, and creates a new, optimized, python.dll in -PCBuild8\Win32\PGORelease, or in the x64 folder. Note that although -we can cross-compile x64 binaries on a 32 bit machine, we cannot -create the PGO binaries, since they require actually running the code. - -To create the PGO binaries, first build the Release configuration, then -build the PGIRelease configuration and finally build the PGORelease -configuration. The last stage can take a while to complete as the -testsuite runs. -Note that the profile runs are stored in files such as -Win32\PGIRelease\pythoncore\python25!1.pgc which may -need to be cleared for fresh builds. SUBPROJECTS ----------- @@ -278,164 +289,22 @@ build_ssl.py/MSVC isn't clever enough to clean OpenSSL - you must do this by hand. -Building for Itanium --------------------- - -The project files support a ReleaseItanium configuration which creates -Win64/Itanium binaries. For this to work, you need to install the Platform -SDK, in particular the 64-bit support. This includes an Itanium compiler -(future releases of the SDK likely include an AMD64 compiler as well). -In addition, you need the Visual Studio plugin for external C compilers, -from http://sf.net/projects/vsextcomp. The plugin will wrap cl.exe, to -locate the proper target compiler, and convert compiler options -accordingly. The project files require atleast version 0.8. Building for AMD64 ------------------ -The build process for the ReleaseAMD64 configuration is very similar -to the Itanium configuration; make sure you use the latest version of -vsextcomp. - -Building Python Using the free MS Toolkit Compiler --------------------------------------------------- - -The build process for Visual C++ can be used almost unchanged with the free MS -Toolkit Compiler. This provides a way of building Python using freely -available software. - -Requirements - - To build Python, the following tools are required: - - * The Visual C++ Toolkit Compiler - from http://msdn.microsoft.com/visualc/vctoolkit2003/ - * A recent Platform SDK - from http://www.microsoft.com/downloads/details.aspx?FamilyID=484269e2-3b89-47e3-8eb7-1f2be6d7123a - * The .NET 1.1 SDK - from http://www.microsoft.com/downloads/details.aspx?FamilyID=9b3a2ca6-3647-4070-9f41-a333c6b9181d - - [Does anyone have better URLs for the last 2 of these?] - - The toolkit compiler is needed as it is an optimising compiler (the - compiler supplied with the .NET SDK is a non-optimising version). The - platform SDK is needed to provide the Windows header files and libraries - (the Windows 2003 Server SP1 edition, typical install, is known to work - - other configurations or versions are probably fine as well). The .NET 1.1 - SDK is needed because it contains a version of msvcrt.dll which links to - the msvcr71.dll CRT. Note that the .NET 2.0 SDK is NOT acceptable, as it - references msvcr80.dll. - - All of the above items should be installed as normal. - - If you intend to build the openssl (needed for the _ssl extension) you - will need the C runtime sources installed as part of the platform SDK. - - In addition, you will need Nant, available from - http://nant.sourceforge.net. The 0.85 release candidate 3 version is known - to work. This is the latest released version at the time of writing. Later - "nightly build" versions are known NOT to work - it is not clear at - present whether future released versions will work. - -Setting up the environment - - Start a platform SDK "build environment window" from the start menu. The - "Windows XP 32-bit retail" version is known to work. - - Add the following directories to your PATH: - * The toolkit compiler directory - * The SDK "Win64" binaries directory - * The Nant directory - Add to your INCLUDE environment variable: - * The toolkit compiler INCLUDE directory - Add to your LIB environment variable: - * The toolkit compiler LIB directory - * The .NET SDK Visual Studio 2003 VC7\lib directory - - The following commands should set things up as you need them: - - rem Set these values according to where you installed the software - set TOOLKIT=C:\Program Files\Microsoft Visual C++ Toolkit 2003 - set SDK=C:\Program Files\Microsoft Platform SDK - set NET=C:\Program Files\Microsoft Visual Studio .NET 2003 - set NANT=C:\Utils\Nant - - set PATH=%TOOLKIT%\bin;%PATH%;%SDK%\Bin\win64;%NANT%\bin - set INCLUDE=%TOOLKIT%\include;%INCLUDE% - set LIB=%TOOLKIT%\lib;%NET%\VC7\lib;%LIB% - - The "win64" directory from the SDK is added to supply executables such as - "cvtres" and "lib", which are not available elsewhere. The versions in the - "win64" directory are 32-bit programs, so they are fine to use here. - - That's it. To build Python (the core only, no binary extensions which - depend on external libraries) you just need to issue the command - - nant -buildfile:python.build all - - from within the PCBuild directory. - -Extension modules - - To build those extension modules which require external libraries - (_tkinter, bz2, _bsddb, _sqlite3, _ssl) you can follow the instructions - for the Visual Studio build above, with a few minor modifications. These - instructions have only been tested using the sources in the Python - subversion repository - building from original sources should work, but - has not been tested. - - For each extension module you wish to build, you should remove the - associated include line from the excludeprojects section of pc.build. - - The changes required are: - - _tkinter - The tix makefile (tix-8.4.0\win\makefile.vc) must be modified to - remove references to TOOLS32. The relevant lines should be changed to - read: - cc32 = cl.exe - link32 = link.exe - include32 = - The remainder of the build instructions will work as given. - - bz2 - No changes are needed - - _bsddb - The file db.build should be copied from the Python PCBuild directory - to the directory db-4.4.20\build_win32. - - The file db_static.vcproj in db-4.4.20\build_win32 should be edited to - remove the string "$(SolutionDir)" - this occurs in 2 places, only - relevant for 64-bit builds. (The edit is required as otherwise, nant - wants to read the solution file, which is not in a suitable form). - - The bsddb library can then be build with the command - nant -buildfile:db.build all - run from the db-4.4.20\build_win32 directory. - - _sqlite3 - No changes are needed. However, in order for the tests to succeed, a - copy of sqlite3.dll must be downloaded, and placed alongside - python.exe. - - _ssl - The documented build process works as written. However, it needs a - copy of the file setargv.obj, which is not supplied in the platform - SDK. However, the sources are available (in the crt source code). To - build setargv.obj, proceed as follows: - - Copy setargv.c, cruntime.h and internal.h from %SDK%\src\crt to a - temporary directory. - Compile using "cl /c /I. /MD /D_CRTBLD setargv.c" - Copy the resulting setargv.obj to somewhere on your LIB environment - (%SDK%\lib is a reasonable place). +Select x64 as the destination platform. - With setargv.obj in place, the standard build process should work - fine. YOUR OWN EXTENSION DLLs ----------------------- If you want to create your own extension module DLL, there's an example with easy-to-follow instructions in ../PC/example/; read the file readme.txt there first. +Also, you can simply use Visual Studio to "Add new project to solution". +Elect to create a win32 project, .dll, empty project. +This will create a subdirectory with a .vcproj file in it. Now, You can +simply copy most of another .vcproj, like _test_capi/_test_capi.vcproj over +(you can't just copy and rename it, since the target will have a unique GUID.) +At some point we want to be able to provide a template for creating a +project. Modified: stackless/branches/release25-maint/PCbuild8/rmpyc.py ============================================================================== --- stackless/branches/release25-maint/PCbuild8/rmpyc.py (original) +++ stackless/branches/release25-maint/PCbuild8/rmpyc.py Sat May 5 11:55:26 2007 @@ -1,4 +1,5 @@ # Remove all the .pyc and .pyo files under ../Lib. +import sys def deltree(root): @@ -21,5 +22,9 @@ return npyc, npyo -npyc, npyo = deltree("../Lib") +path = "../Lib" +if len(sys.argv) > 1: + path = sys.argv[1] + +npyc, npyo = deltree(path) print npyc, ".pyc deleted,", npyo, ".pyo deleted" Modified: stackless/branches/release25-maint/PCbuild8/rt.bat ============================================================================== --- stackless/branches/release25-maint/PCbuild8/rt.bat (original) +++ stackless/branches/release25-maint/PCbuild8/rt.bat Sat May 5 11:55:26 2007 @@ -2,6 +2,8 @@ rem Run Tests. Run the regression test suite. rem Usage: rt [-d] [-O] [-q] regrtest_args rem -d Run Debug build (python_d.exe). Else release build. +rem -pgo Run PGO build, e.g. for instrumentation +rem -x64 Run the x64 version, otherwise win32 rem -O Run python.exe or python_d.exe (see -d) with -O. rem -q "quick" -- normally the tests are run twice, the first time rem after deleting all the .py[co] files reachable from Lib/. @@ -24,16 +26,21 @@ setlocal -set exe=python +set platf=win32 +set exe=python.exe set qmode= set dashO= +set conf=Release PATH %PATH%;..\..\tcltk\bin :CheckOpts if "%1"=="-O" (set dashO=-O) & shift & goto CheckOpts if "%1"=="-q" (set qmode=yes) & shift & goto CheckOpts -if "%1"=="-d" (set exe=python_d) & shift & goto CheckOpts +if "%1"=="-d" (set exe=python_d.exe) & (set conf=Debug) & shift & goto CheckOpts +if "%1"=="-x64" (set platf=x64) & shift & goto CheckOpts +if "%1"=="-pgo" (set conf=PGO) & shift & goto CheckOpts +set exe=%platf%%conf%\%exe% set cmd=%exe% %dashO% -E -tt ../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9 if defined qmode goto Qmode Deleted: /stackless/branches/release25-maint/PCbuild8/select.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/select.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,379 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/unicodedata.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/unicodedata.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,371 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/w9xpopen.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/w9xpopen.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,353 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/winsound.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/winsound.vcproj Sat May 5 11:55:26 2007 +++ (empty file) @@ -1,375 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modified: stackless/branches/release25-maint/Python/import.c ============================================================================== --- stackless/branches/release25-maint/Python/import.c (original) +++ stackless/branches/release25-maint/Python/import.c Sat May 5 11:55:26 2007 @@ -4,6 +4,8 @@ #include "Python.h" #include "Python-ast.h" +#undef Yield /* to avoid conflict with winbase.h */ + #include "pyarena.h" #include "pythonrun.h" #include "errcode.h" Modified: stackless/branches/release25-maint/Python/pythonrun.c ============================================================================== --- stackless/branches/release25-maint/Python/pythonrun.c (original) +++ stackless/branches/release25-maint/Python/pythonrun.c Sat May 5 11:55:26 2007 @@ -4,6 +4,8 @@ #include "Python.h" #include "Python-ast.h" +#undef Yield /* to avoid conflict with winbase.h */ + #include "grammar.h" #include "node.h" #include "token.h" -------------- next part -------------- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Tue May 1 15:03:09 2007 From: python-checkins at python.org (richard.tew) Date: Tue, 1 May 2007 15:03:09 +0200 (CEST) Subject: [Stackless-checkins] r55048 - stackless/branches/release25-maint/Stackless/stackless.h Message-ID: <20070501130309.93D0E1E4004@bag.python.org> Author: richard.tew Date: Tue May 1 15:03:06 2007 New Revision: 55048 Modified: stackless/branches/release25-maint/Stackless/stackless.h Log: Forgot to re-enable Stackless. Modified: stackless/branches/release25-maint/Stackless/stackless.h ============================================================================== --- stackless/branches/release25-maint/Stackless/stackless.h (original) +++ stackless/branches/release25-maint/Stackless/stackless.h Tue May 1 15:03:06 2007 @@ -12,7 +12,7 @@ /**************************************************************************** - Stackless Python Internal Configuration + Stackless Python Internal Configuration Some preliminary description can be found in the draft document readme.txt @@ -27,14 +27,14 @@ ****************************************************************************/ -/* +/* * every platform needs to define its own interface here. * If this isn't defined, stackless is simply not compiled in. * Repeat the following sequence for every platform you support... * ...and then write your support code and mention it in the * common slp_platformselect.h file. */ -#define STACKLESS_OFF +#define STACKLESS #ifdef STACKLESS_OFF #undef STACKLESS _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Tue May 1 12:18:35 2007 From: python-checkins at python.org (richard.tew) Date: Tue, 1 May 2007 12:18:35 +0200 (CEST) Subject: [Stackless-checkins] r55040 - in stackless/trunk: Objects/exceptions.c Stackless/core/stackless_structs.h Stackless/core/stacklesseval.c Stackless/platf/switch_x86_msvc.h Message-ID: <20070501101835.D72541E400F@bag.python.org> Author: richard.tew Date: Tue May 1 12:18:34 2007 New Revision: 55040 Modified: stackless/trunk/Objects/exceptions.c stackless/trunk/Stackless/core/stackless_structs.h stackless/trunk/Stackless/core/stacklesseval.c stackless/trunk/Stackless/platf/switch_x86_msvc.h Log: Ported two changes by Kristjan Jonsson from the release25-maint branch. 54936 - Corrected the TaskletExit exception. 54937 - Windows SEH handling. Modified: stackless/trunk/Objects/exceptions.c ============================================================================== --- stackless/trunk/Objects/exceptions.c (original) +++ stackless/trunk/Objects/exceptions.c Tue May 1 12:18:34 2007 @@ -474,7 +474,7 @@ /* * TaskletExit extends SystemExit */ -SimpleExtendsException(PyExc_SystemExit, TaskletExit, +MiddlingExtendsException(PyExc_SystemExit, TaskletExit, SystemExit, "This exception is used to silently kill a tasklet"); #endif Modified: stackless/trunk/Stackless/core/stackless_structs.h ============================================================================== --- stackless/trunk/Stackless/core/stackless_structs.h (original) +++ stackless/trunk/Stackless/core/stackless_structs.h Tue May 1 12:18:34 2007 @@ -5,6 +5,9 @@ extern "C" { #endif +/* platform specific constants (mainly SEH stuff to store )*/ +#include "platf/slp_platformselect.h" + /*** important structures: tasklet ***/ @@ -102,6 +105,9 @@ struct _tasklet *task; int nesting_level; PyThreadState *tstate; +#ifdef _SEH32 + DWORD exception_list; /* SEH handler on Win32 */ +#endif intptr_t *startaddr; intptr_t stack[1]; } PyCStackObject; Modified: stackless/trunk/Stackless/core/stacklesseval.c ============================================================================== --- stackless/trunk/Stackless/core/stacklesseval.c (original) +++ stackless/trunk/Stackless/core/stacklesseval.c Tue May 1 12:18:34 2007 @@ -111,6 +111,11 @@ (*cst)->task = task; (*cst)->tstate = ts; (*cst)->nesting_level = ts->st.nesting_level; +#ifdef _SEH32 + //save the SEH handler + (*cst)->exception_list = (DWORD) + __readfsdword(FIELD_OFFSET(NT_TIB, ExceptionList)); +#endif return *cst; } @@ -121,10 +126,18 @@ memcpy((cstprev)->stack, (cstprev)->startaddr - (cstprev)->ob_size, stsizeb); +#ifdef _SEH32 + //save the SEH handler + cstprev->exception_list = (DWORD) + __readfsdword(FIELD_OFFSET(NT_TIB, ExceptionList)); +#endif return stsizeb; } void +#ifdef _SEH32 +#pragma warning(disable:4733) /* disable warning about modifying FS[0] */ +#endif slp_cstack_restore(PyCStackObject *cst) { cst->tstate->st.nesting_level = cst->nesting_level; @@ -132,6 +145,11 @@ cst->task = NULL; memcpy(cst->startaddr - cst->ob_size, &cst->stack, (cst->ob_size) * sizeof(intptr_t)); +#ifdef _SEH32 + //restore the SEH handler + __writefsdword(FIELD_OFFSET(NT_TIB, ExceptionList), (DWORD)(cst->exception_list)); + #pragma warning(default:4733) +#endif } Modified: stackless/trunk/Stackless/platf/switch_x86_msvc.h ============================================================================== --- stackless/trunk/Stackless/platf/switch_x86_msvc.h (original) +++ stackless/trunk/Stackless/platf/switch_x86_msvc.h Tue May 1 12:18:34 2007 @@ -22,6 +22,16 @@ * Initial final version after lots of iterations for i386. */ +/* for the SEH things */ +#ifndef _WINDOWS_ +#define WIN32_LEAN_AND_MEAN +#ifdef BYTE +#undef BYTE +#endif +#include +#endif +#define _SEH32 + #define alloca _alloca #define STACK_REFPLUS 1 @@ -36,6 +46,7 @@ #pragma optimize("", off) +#pragma warning(disable:4731) /* disable ebp modification warning */ static int slp_switch(void) { @@ -54,6 +65,7 @@ SLP_RESTORE_STATE(); return 0; } +#pragma warning(default:4731) } #endif _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Sun May 13 22:02:33 2007 From: python-checkins at python.org (kristjan.jonsson) Date: Sun, 13 May 2007 22:02:33 +0200 (CEST) Subject: [Stackless-checkins] r55296 - in stackless/branches/release25-maint: Include/pythonrun.h PCbuild8/pythoncore_pgo.vcproj PCbuild8/pythoncore_pgo_link.txt Message-ID: <20070513200233.24FA21E400A@bag.python.org> Author: kristjan.jonsson Date: Sun May 13 22:02:29 2007 New Revision: 55296 Removed: stackless/branches/release25-maint/PCbuild8/pythoncore_pgo.vcproj stackless/branches/release25-maint/PCbuild8/pythoncore_pgo_link.txt Modified: stackless/branches/release25-maint/Include/pythonrun.h Log: Turn on stack checking for x64, remove two obsolete files. Modified: stackless/branches/release25-maint/Include/pythonrun.h ============================================================================== --- stackless/branches/release25-maint/Include/pythonrun.h (original) +++ stackless/branches/release25-maint/Include/pythonrun.h Sun May 13 22:02:29 2007 @@ -149,7 +149,7 @@ to a 8k margin. */ #define PYOS_STACK_MARGIN 2048 -#if defined(WIN32) && !defined(MS_WIN64) && defined(_MSC_VER) +#if defined(WIN32) && !defined(_M_IA64) && defined(_MSC_VER) /* Enable stack checking under Microsoft C */ #define USE_STACKCHECK #endif Deleted: /stackless/branches/release25-maint/PCbuild8/pythoncore_pgo.vcproj ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/pythoncore_pgo.vcproj Sun May 13 22:02:29 2007 +++ (empty file) @@ -1,781 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: /stackless/branches/release25-maint/PCbuild8/pythoncore_pgo_link.txt ============================================================================== --- /stackless/branches/release25-maint/PCbuild8/pythoncore_pgo_link.txt Sun May 13 22:02:29 2007 +++ (empty file) @@ -1,311 +0,0 @@ -/OUT:".\pythoncore_pgo/python25.dll" /INCREMENTAL:NO /DLL /MANIFEST /MANIFESTFILE:".\x86-temp-release\pythoncore_pgo\python25.dll.intermediate.manifest" /NODEFAULTLIB:"libc" /DEBUG /PDB:".\pythoncore_pgo/python25.pdb" /SUBSYSTEM:WINDOWS /LTCG:PGINSTRUMENT /PGD:".\pythoncore_pgo\python25.pgd" /BASE:"0x1e000000" /IMPLIB:"pythoncore_pgo/python25.lib" /MACHINE:X86 getbuildinfo.o kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib - -".\x86-temp-release\pythoncore_pgo\adler32.obj" - -".\x86-temp-release\pythoncore_pgo\compress.obj" - -".\x86-temp-release\pythoncore_pgo\crc32.obj" - -".\x86-temp-release\pythoncore_pgo\deflate.obj" - -".\x86-temp-release\pythoncore_pgo\gzio.obj" - -".\x86-temp-release\pythoncore_pgo\infback.obj" - -".\x86-temp-release\pythoncore_pgo\inffast.obj" - -".\x86-temp-release\pythoncore_pgo\inflate.obj" - -".\x86-temp-release\pythoncore_pgo\inftrees.obj" - -".\x86-temp-release\pythoncore_pgo\trees.obj" - -".\x86-temp-release\pythoncore_pgo\uncompr.obj" - -".\x86-temp-release\pythoncore_pgo\zlibmodule.obj" - -".\x86-temp-release\pythoncore_pgo\zutil.obj" - -".\x86-temp-release\pythoncore_pgo\_bisectmodule.obj" - -".\x86-temp-release\pythoncore_pgo\_codecs_cn.obj" - -".\x86-temp-release\pythoncore_pgo\_codecs_hk.obj" - -".\x86-temp-release\pythoncore_pgo\_codecs_iso2022.obj" - -".\x86-temp-release\pythoncore_pgo\_codecs_jp.obj" - -".\x86-temp-release\pythoncore_pgo\_codecs_kr.obj" - -".\x86-temp-release\pythoncore_pgo\_codecs_tw.obj" - -".\x86-temp-release\pythoncore_pgo\_codecsmodule.obj" - -".\x86-temp-release\pythoncore_pgo\_csv.obj" - -".\x86-temp-release\pythoncore_pgo\_functoolsmodule.obj" - -".\x86-temp-release\pythoncore_pgo\_heapqmodule.obj" - -".\x86-temp-release\pythoncore_pgo\_hotshot.obj" - -".\x86-temp-release\pythoncore_pgo\_localemodule.obj" - -".\x86-temp-release\pythoncore_pgo\_lsprof.obj" - -".\x86-temp-release\pythoncore_pgo\_randommodule.obj" - -".\x86-temp-release\pythoncore_pgo\_sre.obj" - -".\x86-temp-release\pythoncore_pgo\_struct.obj" - -".\x86-temp-release\pythoncore_pgo\_subprocess.obj" - -".\x86-temp-release\pythoncore_pgo\_weakref.obj" - -".\x86-temp-release\pythoncore_pgo\_winreg.obj" - -".\x86-temp-release\pythoncore_pgo\abstract.obj" - -".\x86-temp-release\pythoncore_pgo\acceler.obj" - -".\x86-temp-release\pythoncore_pgo\arraymodule.obj" - -".\x86-temp-release\pythoncore_pgo\asdl.obj" - -".\x86-temp-release\pythoncore_pgo\ast.obj" - -".\x86-temp-release\pythoncore_pgo\audioop.obj" - -".\x86-temp-release\pythoncore_pgo\binascii.obj" - -".\x86-temp-release\pythoncore_pgo\bitset.obj" - -".\x86-temp-release\pythoncore_pgo\bltinmodule.obj" - -".\x86-temp-release\pythoncore_pgo\boolobject.obj" - -".\x86-temp-release\pythoncore_pgo\bufferobject.obj" - -".\x86-temp-release\pythoncore_pgo\cellobject.obj" - -".\x86-temp-release\pythoncore_pgo\ceval.obj" - -".\x86-temp-release\pythoncore_pgo\classobject.obj" - -".\x86-temp-release\pythoncore_pgo\cmathmodule.obj" - -".\x86-temp-release\pythoncore_pgo\cobject.obj" - -".\x86-temp-release\pythoncore_pgo\codecs.obj" - -".\x86-temp-release\pythoncore_pgo\codeobject.obj" - -".\x86-temp-release\pythoncore_pgo\collectionsmodule.obj" - -".\x86-temp-release\pythoncore_pgo\compile.obj" - -".\x86-temp-release\pythoncore_pgo\complexobject.obj" - -".\x86-temp-release\pythoncore_pgo\config.obj" - -".\x86-temp-release\pythoncore_pgo\cPickle.obj" - -".\x86-temp-release\pythoncore_pgo\cStringIO.obj" - -".\x86-temp-release\pythoncore_pgo\datetimemodule.obj" - -".\x86-temp-release\pythoncore_pgo\descrobject.obj" - -".\x86-temp-release\pythoncore_pgo\dictobject.obj" - -".\x86-temp-release\pythoncore_pgo\dl_nt.obj" - -".\x86-temp-release\pythoncore_pgo\dynload_win.obj" - -".\x86-temp-release\pythoncore_pgo\enumobject.obj" - -".\x86-temp-release\pythoncore_pgo\errnomodule.obj" - -".\x86-temp-release\pythoncore_pgo\errors.obj" - -".\x86-temp-release\pythoncore_pgo\exceptions.obj" - -".\x86-temp-release\pythoncore_pgo\fileobject.obj" - -".\x86-temp-release\pythoncore_pgo\firstsets.obj" - -".\x86-temp-release\pythoncore_pgo\floatobject.obj" - -".\x86-temp-release\pythoncore_pgo\frameobject.obj" - -".\x86-temp-release\pythoncore_pgo\frozen.obj" - -".\x86-temp-release\pythoncore_pgo\funcobject.obj" - -".\x86-temp-release\pythoncore_pgo\future.obj" - -".\x86-temp-release\pythoncore_pgo\gcmodule.obj" - -".\x86-temp-release\pythoncore_pgo\genobject.obj" - -".\x86-temp-release\pythoncore_pgo\getargs.obj" - -".\x86-temp-release\pythoncore_pgo\getcompiler.obj" - -".\x86-temp-release\pythoncore_pgo\getcopyright.obj" - -".\x86-temp-release\pythoncore_pgo\getmtime.obj" - -".\x86-temp-release\pythoncore_pgo\getopt.obj" - -".\x86-temp-release\pythoncore_pgo\getpathp.obj" - -".\x86-temp-release\pythoncore_pgo\getplatform.obj" - -".\x86-temp-release\pythoncore_pgo\getversion.obj" - -".\x86-temp-release\pythoncore_pgo\graminit.obj" - -".\x86-temp-release\pythoncore_pgo\grammar.obj" - -".\x86-temp-release\pythoncore_pgo\grammar1.obj" - -".\x86-temp-release\pythoncore_pgo\imageop.obj" - -".\x86-temp-release\pythoncore_pgo\import.obj" - -".\x86-temp-release\pythoncore_pgo\import_nt.obj" - -".\x86-temp-release\pythoncore_pgo\importdl.obj" - -".\x86-temp-release\pythoncore_pgo\intobject.obj" - -".\x86-temp-release\pythoncore_pgo\iterobject.obj" - -".\x86-temp-release\pythoncore_pgo\itertoolsmodule.obj" - -".\x86-temp-release\pythoncore_pgo\listnode.obj" - -".\x86-temp-release\pythoncore_pgo\listobject.obj" - -".\x86-temp-release\pythoncore_pgo\longobject.obj" - -".\x86-temp-release\pythoncore_pgo\main.obj" - -".\x86-temp-release\pythoncore_pgo\marshal.obj" - -".\x86-temp-release\pythoncore_pgo\mathmodule.obj" - -".\x86-temp-release\pythoncore_pgo\md5.obj" - -".\x86-temp-release\pythoncore_pgo\md5module.obj" - -".\x86-temp-release\pythoncore_pgo\metagrammar.obj" - -".\x86-temp-release\pythoncore_pgo\methodobject.obj" - -".\x86-temp-release\pythoncore_pgo\mmapmodule.obj" - -".\x86-temp-release\pythoncore_pgo\modsupport.obj" - -".\x86-temp-release\pythoncore_pgo\moduleobject.obj" - -".\x86-temp-release\pythoncore_pgo\msvcrtmodule.obj" - -".\x86-temp-release\pythoncore_pgo\multibytecodec.obj" - -".\x86-temp-release\pythoncore_pgo\myreadline.obj" - -".\x86-temp-release\pythoncore_pgo\mysnprintf.obj" - -".\x86-temp-release\pythoncore_pgo\mystrtoul.obj" - -".\x86-temp-release\pythoncore_pgo\node.obj" - -".\x86-temp-release\pythoncore_pgo\object.obj" - -".\x86-temp-release\pythoncore_pgo\obmalloc.obj" - -".\x86-temp-release\pythoncore_pgo\operator.obj" - -".\x86-temp-release\pythoncore_pgo\parser.obj" - -".\x86-temp-release\pythoncore_pgo\parsermodule.obj" - -".\x86-temp-release\pythoncore_pgo\parsetok.obj" - -".\x86-temp-release\pythoncore_pgo\posixmodule.obj" - -".\x86-temp-release\pythoncore_pgo\pyarena.obj" - -".\x86-temp-release\pythoncore_pgo\pyfpe.obj" - -".\x86-temp-release\pythoncore_pgo\pystate.obj" - -".\x86-temp-release\pythoncore_pgo\pystrtod.obj" - -".\x86-temp-release\pythoncore_pgo\Python-ast.obj" - -".\x86-temp-release\pythoncore_pgo\python_nt.res" - -".\x86-temp-release\pythoncore_pgo\pythonrun.obj" - -".\x86-temp-release\pythoncore_pgo\rangeobject.obj" - -".\x86-temp-release\pythoncore_pgo\rgbimgmodule.obj" - -".\x86-temp-release\pythoncore_pgo\rotatingtree.obj" - -".\x86-temp-release\pythoncore_pgo\setobject.obj" - -".\x86-temp-release\pythoncore_pgo\sha256module.obj" - -".\x86-temp-release\pythoncore_pgo\sha512module.obj" - -".\x86-temp-release\pythoncore_pgo\shamodule.obj" - -".\x86-temp-release\pythoncore_pgo\signalmodule.obj" - -".\x86-temp-release\pythoncore_pgo\sliceobject.obj" - -".\x86-temp-release\pythoncore_pgo\stringobject.obj" - -".\x86-temp-release\pythoncore_pgo\stropmodule.obj" - -".\x86-temp-release\pythoncore_pgo\structmember.obj" - -".\x86-temp-release\pythoncore_pgo\structseq.obj" - -".\x86-temp-release\pythoncore_pgo\symtable.obj" - -".\x86-temp-release\pythoncore_pgo\symtablemodule.obj" - -".\x86-temp-release\pythoncore_pgo\sysmodule.obj" - -".\x86-temp-release\pythoncore_pgo\thread.obj" - -".\x86-temp-release\pythoncore_pgo\threadmodule.obj" - -".\x86-temp-release\pythoncore_pgo\timemodule.obj" - -".\x86-temp-release\pythoncore_pgo\tokenizer.obj" - -".\x86-temp-release\pythoncore_pgo\traceback.obj" - -".\x86-temp-release\pythoncore_pgo\tupleobject.obj" - -".\x86-temp-release\pythoncore_pgo\typeobject.obj" - -".\x86-temp-release\pythoncore_pgo\unicodectype.obj" - -".\x86-temp-release\pythoncore_pgo\unicodeobject.obj" - -".\x86-temp-release\pythoncore_pgo\weakrefobject.obj" - -".\x86-temp-release\pythoncore_pgo\xxsubtype.obj" - -".\x86-temp-release\pythoncore_pgo\yuvconvert.obj" - -".\x86-temp-release\pythoncore_pgo\zipimport.obj" _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Mon May 14 17:58:02 2007 From: python-checkins at python.org (kristjan.jonsson) Date: Mon, 14 May 2007 17:58:02 +0200 (CEST) Subject: [Stackless-checkins] r55313 - in stackless/branches/release25-maint/Stackless: module/channelobject.c module/flextype.c module/stacklessmodule.c module/taskletobject.c pickling/prickelpit.c pickling/prickelpit.h Message-ID: <20070514155802.C26E11E4009@bag.python.org> Author: kristjan.jonsson Date: Mon May 14 17:57:54 2007 New Revision: 55313 Modified: stackless/branches/release25-maint/Stackless/module/channelobject.c stackless/branches/release25-maint/Stackless/module/flextype.c stackless/branches/release25-maint/Stackless/module/stacklessmodule.c stackless/branches/release25-maint/Stackless/module/taskletobject.c stackless/branches/release25-maint/Stackless/pickling/prickelpit.c stackless/branches/release25-maint/Stackless/pickling/prickelpit.h Log: Fix 64 bit compiler warnings in the stackless module. Modified: stackless/branches/release25-maint/Stackless/module/channelobject.c ============================================================================== --- stackless/branches/release25-maint/Stackless/module/channelobject.c (original) +++ stackless/branches/release25-maint/Stackless/module/channelobject.c Mon May 14 17:57:54 2007 @@ -921,7 +921,7 @@ PyObject *lis; int flags, balance; int dir; - int i, n; + Py_ssize_t i, n; if (!PyArg_ParseTuple(args, "iiO!:channel", &balance, Modified: stackless/branches/release25-maint/Stackless/module/flextype.c ============================================================================== --- stackless/branches/release25-maint/Stackless/module/flextype.c (original) +++ stackless/branches/release25-maint/Stackless/module/flextype.c Mon May 14 17:57:54 2007 @@ -26,14 +26,14 @@ } } -static int -find_size(PyObject * bases, int size) +static Py_ssize_t +find_size(PyObject * bases, Py_ssize_t size) { - int i, n = PyTuple_GET_SIZE(bases); + Py_ssize_t i, n = PyTuple_GET_SIZE(bases); for (i=0; iob_type->tp_basicsize; + Py_ssize_t sz = op->ob_type->tp_basicsize; if (sz > size) size = sz; } @@ -117,8 +117,8 @@ PyObject *name, *bases, *dict; static char *kwlist[] = {"name", "bases", "dict", 0}; PyFlexTypeObject *type; - int basicsize = meta->tp_basicsize; - int type_size = basicsize; + Py_ssize_t basicsize = meta->tp_basicsize; + Py_ssize_t type_size = basicsize; if (!PyArg_ParseTupleAndKeywords(args, kwds, "SO!O!:type", kwlist, &name, @@ -149,7 +149,7 @@ size_t type_size, PyCMethodDef *ml) { PyObject *args = Py_BuildValue("(s(O)O)", typename, base, dict); - int basicsize = meta->tp_basicsize; + Py_ssize_t basicsize = meta->tp_basicsize; PyFlexTypeObject *type; assert(type_size >= (size_t) meta->tp_basicsize); Modified: stackless/branches/release25-maint/Stackless/module/stacklessmodule.c ============================================================================== --- stackless/branches/release25-maint/Stackless/module/stacklessmodule.c (original) +++ stackless/branches/release25-maint/Stackless/module/stacklessmodule.c Mon May 14 17:57:54 2007 @@ -675,8 +675,8 @@ { PyObject *op, *max = Py_None; PyObject *refchain; - int ref_total = _Py_RefTotal; - int computed_total = 0; + Py_ssize_t ref_total = _Py_RefTotal; + Py_ssize_t computed_total = 0; refchain = PyTuple_New(0)->_ob_next; /* None doesn't work in 2.2 */ Py_DECREF(refchain->_ob_prev); @@ -689,7 +689,7 @@ max = op; computed_total += op->ob_refcnt; } - return Py_BuildValue("(Oiii)", max, max->ob_refcnt, ref_total, + return Py_BuildValue("(Onnn)", max, max->ob_refcnt, ref_total, computed_total); } @@ -1010,8 +1010,8 @@ for (; p->type != NULL; p++) { PyTypeObject *t = p->type; - int ind = p->offset & MFLAG_IND; - int ofs = p->offset - ind; + size_t ind = p->offset & MFLAG_IND; + size_t ofs = p->offset - ind; if (ind) t = *((PyTypeObject **)t); Modified: stackless/branches/release25-maint/Stackless/module/taskletobject.c ============================================================================== --- stackless/branches/release25-maint/Stackless/module/taskletobject.c (original) +++ stackless/branches/release25-maint/Stackless/module/taskletobject.c Mon May 14 17:57:54 2007 @@ -309,7 +309,8 @@ PyObject *tempval, *lis; int flags, nesting_level; PyFrameObject *f; - int i, nframes; + Py_ssize_t i, nframes; + int j; if (!PyArg_ParseTuple(args, "iOiO!:tasklet", &flags, @@ -334,12 +335,12 @@ * they can leave their blocked flag in place because the * channel would have set it. */ - i = t->flags.blocked; + j = t->flags.blocked; *(int *)&t->flags = flags; if (t->next == NULL) { t->flags.blocked = 0; } else { - t->flags.blocked = i; + t->flags.blocked = j; } /* t->nesting_level = nesting_level; Modified: stackless/branches/release25-maint/Stackless/pickling/prickelpit.c ============================================================================== --- stackless/branches/release25-maint/Stackless/pickling/prickelpit.c (original) +++ stackless/branches/release25-maint/Stackless/pickling/prickelpit.c Mon May 14 17:57:54 2007 @@ -450,18 +450,18 @@ */ PyObject * -slp_into_tuple_with_nulls(PyObject **start, int length) +slp_into_tuple_with_nulls(PyObject **start, Py_ssize_t length) { PyObject *res = PyTuple_New(length+1); PyObject *nulls = PyTuple_New(0); - int i, nullcount = 0; + Py_ssize_t i, nullcount = 0; if (res == NULL) return NULL; for (i=0; iob_type)) return NULL; @@ -923,7 +924,7 @@ } if (PyTuple_Check(localsplus_as_tuple)) { - int space = f->f_code->co_stacksize + (f->f_valuestack - f->f_localsplus); + Py_ssize_t space = f->f_code->co_stacksize + (f->f_valuestack - f->f_localsplus); if (PyTuple_GET_SIZE(localsplus_as_tuple)-1 > space) { PyErr_SetString(PyExc_ValueError, "invalid localsplus for frame"); @@ -949,7 +950,8 @@ f->f_lasti = f_lasti; f->f_lineno = f_lineno; - f->f_iblock = PyTuple_GET_SIZE(blockstack_as_tuple); + tmp = PyTuple_GET_SIZE(blockstack_as_tuple); + f->f_iblock = Py_SAFE_DOWNCAST(tmp, Py_ssize_t, int); if (f->f_iblock < 0 || f->f_iblock > CO_MAXBLOCKS) { PyErr_SetString(PyExc_ValueError, "invalid blockstack for frame"); goto err_exit; Modified: stackless/branches/release25-maint/Stackless/pickling/prickelpit.h ============================================================================== --- stackless/branches/release25-maint/Stackless/pickling/prickelpit.h (original) +++ stackless/branches/release25-maint/Stackless/pickling/prickelpit.h Mon May 14 17:57:54 2007 @@ -37,10 +37,10 @@ /* pickling of arrays with nulls */ -PyAPI_FUNC(PyObject *) slp_into_tuple_with_nulls(PyObject **start, int length); +PyAPI_FUNC(PyObject *) slp_into_tuple_with_nulls(PyObject **start, Py_ssize_t length); /* creates a tuple of length+1 with the first element holding null markers */ -PyAPI_FUNC(int) slp_from_tuple_with_nulls(PyObject **start, PyObject *tup); +PyAPI_FUNC(Py_ssize_t) slp_from_tuple_with_nulls(PyObject **start, PyObject *tup); /* loads data from a tuple where the first element holds null markers. return value is the number of elements (length-1) */ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Tue May 1 17:48:52 2007 From: python-checkins at python.org (richard.tew) Date: Tue, 1 May 2007 17:48:52 +0200 (CEST) Subject: [Stackless-checkins] r55052 - stackless/branches/release25-maint/PCbuild/publish_binaries.py Message-ID: <20070501154852.0837D1E4008@bag.python.org> Author: richard.tew Date: Tue May 1 17:48:44 2007 New Revision: 55052 Modified: stackless/branches/release25-maint/PCbuild/publish_binaries.py Log: Added modified test scripts from the standard library to the archiving script. Modified: stackless/branches/release25-maint/PCbuild/publish_binaries.py ============================================================================== --- stackless/branches/release25-maint/PCbuild/publish_binaries.py (original) +++ stackless/branches/release25-maint/PCbuild/publish_binaries.py Tue May 1 17:48:44 2007 @@ -1,7 +1,7 @@ from zipfile import * import os, sys, md5 -exp_path = r"..\..\..\binaries-pc" +exp_path = r"" prog = """ import md5 @@ -13,7 +13,14 @@ raw_input("press enter to continue") """ -fileList = [ r"..\Lib\copy_reg.py", r"..\Lib\pickle.py", r"..\Lib\platform.py", r"..\Lib\test\exception_hierarchy.txt" ] +fileList = [ + r"..\Lib\copy_reg.py", + r"..\Lib\pickle.py", + r"..\Lib\platform.py", + r"..\Lib\test\exception_hierarchy.txt", + r"..\Lib\test\test_platform.py", + r"..\Lib\test\test_pep352.py", +] for debug in ("", "_d"): for suffix in ("dll", "lib", "exp"): fileList.append("python25%s.%s" % (debug, suffix)) @@ -22,7 +29,6 @@ "dll": "", "lib": "libs/", "exp": "libs/", - "py": "Lib/", "txt": "Lib/test/", } @@ -31,9 +37,13 @@ z = ZipFile(zname, "w", ZIP_DEFLATED) for fileName in fileList: if os.path.exists(fileName): - suffix = fileName[fileName.rfind(".")+1:] + if fileName.endswith(".py"): + outFileName = fileName[3:].replace("\\", "/") + else: + suffix = fileName[fileName.rfind(".")+1:] + outFileName = pathBySuffix[suffix] + os.path.basename(fileName) s = open(fileName, "rb").read() - z.writestr(pathBySuffix[suffix] + os.path.basename(fileName), s) + z.writestr(outFileName, s) else: print "File not found:", fileName z.close() _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From mailman-bounces at stackless.com Thu May 24 14:45:28 2007 From: mailman-bounces at stackless.com (mailman-bounces at stackless.com) Date: Thu, 24 May 2007 14:45:28 +0200 Subject: Stackless-checkins unsubscribe notification Message-ID: indigo at bitglue.com has been removed from Stackless-checkins. From python-checkins at python.org Tue May 15 17:39:20 2007 From: python-checkins at python.org (richard.tew) Date: Tue, 15 May 2007 17:39:20 +0200 (CEST) Subject: [Stackless-checkins] r55339 - stackless/branches/release25-maint/Stackless/platf/switch_amd64_unix_gas.s Message-ID: <20070515153920.E71AD1E4019@bag.python.org> Author: richard.tew Date: Tue May 15 17:39:20 2007 New Revision: 55339 Modified: stackless/branches/release25-maint/Stackless/platf/switch_amd64_unix_gas.s (contents, props changed) Log: Update to correct register usage to be 64 bits where applicable. Modified: stackless/branches/release25-maint/Stackless/platf/switch_amd64_unix_gas.s ============================================================================== --- stackless/branches/release25-maint/Stackless/platf/switch_amd64_unix_gas.s (original) +++ stackless/branches/release25-maint/Stackless/platf/switch_amd64_unix_gas.s Tue May 15 17:39:20 2007 @@ -1,56 +1,56 @@ -# NOTE: This is not yet safe to use. Checked in for the same of reference. -# -# (int) slp_switch (void); - - .text - .type slp_switch, @function - # This next line is required to the C code can find and - # link against this function. - .global slp_switch -slp_switch: - pushq %rbp - pushq %r15 - pushq %r14 - pushq %r13 - pushq %r12 - pushq %rbx - - # Disabled for now, which should ideally give us identical - # behaviour to the inline C version. Can add this when we - # are ready for it. - #subq $8, %rsp - #stmxcsr (%rsp) - - movq %rsp, %rdi - - call slp_save_state # diff = slp_save_state([?]stackref) - - cmp $-1, %eax # if (diff == -1) - je .exit # return -1; - - cmp $1, %eax # if (diff == 1) - je .no_restore # return 0; - -.restore: - add %eax, %esp # Adjust the stack pointer for the state we are restoring. - - call slp_restore_state # slp_restore_state() - -.no_restore: - xor %rax, %rax # Switch successful (whether we restored or not). - -.exit: - #ldmxcsr (%rsp) - #addq $8, %rsp - - popq %rbx - popq %r12 - popq %r13 - popq %r14 - popq %r15 - # rbp gets popped by the leave statement - - leave - ret -.LFE11: - .size slp_switch, .-slp_switch +# NOTE: This is not yet safe to use. Checked in for the same of reference. +# +# (int) slp_switch (void); + + .text + .type slp_switch, @function + # This next line is required to the C code can find and + # link against this function. + .global slp_switch +slp_switch: + pushq %rbp + pushq %r15 + pushq %r14 + pushq %r13 + pushq %r12 + pushq %rbx + + # Disabled for now, which should ideally give us identical + # behaviour to the inline C version. Can add this when we + # are ready for it. + #subq $8, %rsp + #stmxcsr (%rsp) + + movq %rsp, %rdi + + call slp_save_state # diff = slp_save_state([?]stackref) + + cmp $-1, %rax # if (diff == -1) + je .exit # return -1; + + cmp $1, %rax # if (diff == 1) + je .no_restore # return 0; + +.restore: + add %rax, %rsp # Adjust the stack pointer for the state we are restoring. + + call slp_restore_state # slp_restore_state() + +.no_restore: + xor %rax, %rax # Switch successful (whether we restored or not). + +.exit: + #ldmxcsr (%rsp) + #addq $8, %rsp + + popq %rbx + popq %r12 + popq %r13 + popq %r14 + popq %r15 + # rbp gets popped by the leave statement + + leave + ret +.LFE11: + .size slp_switch, .-slp_switch _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Tue May 8 22:21:30 2007 From: python-checkins at python.org (kristjan.jonsson) Date: Tue, 8 May 2007 22:21:30 +0200 (CEST) Subject: [Stackless-checkins] r55192 - stackless/branches/release25-maint/Python/ceval.c Message-ID: <20070508202130.5489A1E400C@bag.python.org> Author: kristjan.jonsson Date: Tue May 8 22:21:24 2007 New Revision: 55192 Modified: stackless/branches/release25-maint/Python/ceval.c Log: Fix a well hidden bug with Release builds from VisualStudio 2005. The global optimizer would aggressively collapse PyEval_EvalFrame_noval and PyEval_EvalFrame_iter into the same function, thus destroying the special control semantics that they convey onto f_execute. We need to both make them dissimilar and disable global optmization for them. Modified: stackless/branches/release25-maint/Python/ceval.c ============================================================================== --- stackless/branches/release25-maint/Python/ceval.c (original) +++ stackless/branches/release25-maint/Python/ceval.c Tue May 8 22:21:24 2007 @@ -786,6 +786,10 @@ return NULL; } +#if defined _MSC_VER && _MSC_VER >= 1400 +/* prevent VisualStudio from collapsing the following two functions */ +#pragma optimize("g", off) +#endif PyObject * PyEval_EvalFrame_noval(PyFrameObject *f, int throwflag, PyObject *retval) { @@ -805,10 +809,18 @@ * it serves as a marker whether we are inside of a * for_iter operation. In this case we need to handle * null without error as valid result. + * Note, it is not just a copy of the above function, but calls + * the above. This is to prevent clever compilers from + * collapsing these two functions into one and thus ruining + * our smart logic that tests f_execute for these functions. */ - return PyEval_EvalFrame_value(f, throwflag, retval); + return PyEval_EvalFrame_noval(f, throwflag, retval); } +#if defined _MSC_VER && _MSC_VER >= 1400 +#pragma optimize("", on) +#endif + PyObject * PyEval_EvalFrame_value(PyFrameObject *f, int throwflag, PyObject *retval) { _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Tue May 1 12:56:06 2007 From: python-checkins at python.org (richard.tew) Date: Tue, 1 May 2007 12:56:06 +0200 (CEST) Subject: [Stackless-checkins] r55044 - in stackless/trunk/Stackless: module/channelobject.c module/channelobject.h pickling/prickelpit.c Message-ID: <20070501105606.398B31E4004@bag.python.org> Author: richard.tew Date: Tue May 1 12:56:03 2007 New Revision: 55044 Modified: stackless/trunk/Stackless/module/channelobject.c stackless/trunk/Stackless/module/channelobject.h stackless/trunk/Stackless/pickling/prickelpit.c Log: Ported r55043 from the release25-maint branch. Allow the channel send sequence method to be pickled. This involved hooking the frame pickling used for the eval_frame functions up to be used for the cframe used by channel_send_sequence. Was a little unsure about this change, but Christian gave it an ok when I passed it by him. Modified: stackless/trunk/Stackless/module/channelobject.c ============================================================================== --- stackless/trunk/Stackless/module/channelobject.c (original) +++ stackless/trunk/Stackless/module/channelobject.c Tue May 1 12:56:03 2007 @@ -745,7 +745,7 @@ * the loop all the time. Hopefully the idea is still visible. */ -static PyObject * +PyObject * channel_seq_callback(PyFrameObject *_f, int exc, PyObject *retval) { PyThreadState *ts; Modified: stackless/trunk/Stackless/module/channelobject.h ============================================================================== --- stackless/trunk/Stackless/module/channelobject.h (original) +++ stackless/trunk/Stackless/module/channelobject.h Tue May 1 12:56:03 2007 @@ -17,3 +17,6 @@ } PyChannel_HeapType; int init_channeltype(void); + +PyObject * channel_seq_callback(struct _frame *f, int throwflag, + PyObject *retval); Modified: stackless/trunk/Stackless/pickling/prickelpit.c ============================================================================== --- stackless/trunk/Stackless/pickling/prickelpit.c (original) +++ stackless/trunk/Stackless/pickling/prickelpit.c Tue May 1 12:56:03 2007 @@ -5,6 +5,7 @@ #include "core/stackless_impl.h" #include "pickling/prickelpit.h" +#include "module/channelobject.h" /* platform specific constants */ #include "platf/slp_platformselect.h" @@ -719,6 +720,7 @@ DEF_INVALID_EXEC(eval_frame_value) DEF_INVALID_EXEC(eval_frame_noval) DEF_INVALID_EXEC(eval_frame_iter) +DEF_INVALID_EXEC(channel_seq_callback) static PyTypeObject wrap_PyFrame_Type; @@ -1048,6 +1050,8 @@ PyEval_EvalFrame_noval, REF_INVALID_EXEC(eval_frame_noval)) || slp_register_execute(&PyFrame_Type, "eval_frame_iter", PyEval_EvalFrame_iter, REF_INVALID_EXEC(eval_frame_iter)) + || slp_register_execute(&PyCFrame_Type, "channel_seq_callback", + channel_seq_callback, REF_INVALID_EXEC(channel_seq_callback)) || init_type(&wrap_PyFrame_Type, initchain); } #undef initchain _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Tue May 1 16:50:19 2007 From: python-checkins at python.org (richard.tew) Date: Tue, 1 May 2007 16:50:19 +0200 (CEST) Subject: [Stackless-checkins] r55049 - stackless/tags/python-2.51 Message-ID: <20070501145019.E2EAB1E401B@bag.python.org> Author: richard.tew Date: Tue May 1 16:50:15 2007 New Revision: 55049 Added: stackless/tags/python-2.51/ - copied from r55048, stackless/branches/release25-maint/ Log: Tag the integration of the 2.5.1 release into Stackless. _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From python-checkins at python.org Tue May 8 11:04:13 2007 From: python-checkins at python.org (kristjan.jonsson) Date: Tue, 8 May 2007 11:04:13 +0200 (CEST) Subject: [Stackless-checkins] r55183 - in stackless/branches/release25-maint: Doc/api/concrete.tex Doc/api/init.tex Doc/commontex/copyright.tex Doc/commontex/license.tex Doc/inst/inst.tex Doc/lib/libbase64.tex Doc/lib/libfuncs.tex Doc/lib/liblogging.tex Doc/lib/libstdtypes.tex Doc/lib/libsys.tex Doc/lib/liburllib2.tex Doc/lib/libxmlrpclib.tex Doc/mac/using.tex Doc/texinputs/python.sty Doc/tut/tut.tex Include/fileobject.h LICENSE Lib/Bastion.py Lib/CGIHTTPServer.py Lib/_strptime.py Lib/cgitb.py Lib/ctypes Lib/distutils/command/build_ext.py Lib/distutils/unixccompiler.py Lib/email/__init__.py Lib/encodings/utf_8_sig.py Lib/ftplib.py Lib/lib-tk/tkSimpleDialog.py Lib/locale.py Lib/rexec.py Lib/subprocess.py Lib/tarfile.py Lib/test/README Lib/test/string_tests.py Lib/test/test_codecs.py Lib/test/test_curses.py Lib/test/test_descr.py Lib/test/test_format.py Lib/test/test_import.py Lib/test/test_index.py Lib/test/test_itertools.py Lib/test/test_locale.py Lib/test/test_mailbox.py Lib/test/test_old_mailb! ox.py Lib/test/test_pty.py Lib/test/test_re.py Lib/test/test_sax.py Lib/test/test_set.py Lib/test/test_strptime.py Lib/test/test_syntax.py Lib/test/test_tarfile.py Lib/urllib2.py Misc/NEWS Misc/build.sh Modules/_ctypes Modules/_ctypes/callproc.c Modules/_ctypes/cfield.c Modules/_ctypes/stgdict.c Modules/binascii.c Modules/cPickle.c Modules/cStringIO.c Modules/itertoolsmodule.c Modules/posixmodule.c Objects/classobject.c Objects/exceptions.c Objects/fileobject.c Objects/longobject.c PC/_winreg.c Python/dynload_win.c Python/thread_nt.h Message-ID: <20070508090413.757571E4002@bag.python.org> Author: kristjan.jonsson Date: Tue May 8 11:04:01 2007 New Revision: 55183 Modified: stackless/branches/release25-maint/Doc/api/concrete.tex stackless/branches/release25-maint/Doc/api/init.tex stackless/branches/release25-maint/Doc/commontex/copyright.tex stackless/branches/release25-maint/Doc/commontex/license.tex stackless/branches/release25-maint/Doc/inst/inst.tex stackless/branches/release25-maint/Doc/lib/libbase64.tex stackless/branches/release25-maint/Doc/lib/libfuncs.tex stackless/branches/release25-maint/Doc/lib/liblogging.tex stackless/branches/release25-maint/Doc/lib/libstdtypes.tex stackless/branches/release25-maint/Doc/lib/libsys.tex stackless/branches/release25-maint/Doc/lib/liburllib2.tex stackless/branches/release25-maint/Doc/lib/libxmlrpclib.tex stackless/branches/release25-maint/Doc/mac/using.tex stackless/branches/release25-maint/Doc/texinputs/python.sty stackless/branches/release25-maint/Doc/tut/tut.tex stackless/branches/release25-maint/Include/fileobject.h stackless/branches/release25-maint/LICENSE stackless/branches/release25-maint/Lib/Bastion.py stackless/branches/release25-maint/Lib/CGIHTTPServer.py stackless/branches/release25-maint/Lib/_strptime.py stackless/branches/release25-maint/Lib/cgitb.py stackless/branches/release25-maint/Lib/ctypes/ (props changed) stackless/branches/release25-maint/Lib/distutils/command/build_ext.py stackless/branches/release25-maint/Lib/distutils/unixccompiler.py stackless/branches/release25-maint/Lib/email/__init__.py stackless/branches/release25-maint/Lib/encodings/utf_8_sig.py stackless/branches/release25-maint/Lib/ftplib.py stackless/branches/release25-maint/Lib/lib-tk/tkSimpleDialog.py stackless/branches/release25-maint/Lib/locale.py stackless/branches/release25-maint/Lib/rexec.py stackless/branches/release25-maint/Lib/subprocess.py stackless/branches/release25-maint/Lib/tarfile.py stackless/branches/release25-maint/Lib/test/README stackless/branches/release25-maint/Lib/test/string_tests.py stackless/branches/release25-maint/Lib/test/test_codecs.py stackless/branches/release25-maint/Lib/test/test_curses.py stackless/branches/release25-maint/Lib/test/test_descr.py stackless/branches/release25-maint/Lib/test/test_format.py stackless/branches/release25-maint/Lib/test/test_import.py stackless/branches/release25-maint/Lib/test/test_index.py stackless/branches/release25-maint/Lib/test/test_itertools.py stackless/branches/release25-maint/Lib/test/test_locale.py stackless/branches/release25-maint/Lib/test/test_mailbox.py stackless/branches/release25-maint/Lib/test/test_old_mailbox.py stackless/branches/release25-maint/Lib/test/test_pty.py stackless/branches/release25-maint/Lib/test/test_re.py stackless/branches/release25-maint/Lib/test/test_sax.py stackless/branches/release25-maint/Lib/test/test_set.py stackless/branches/release25-maint/Lib/test/test_strptime.py stackless/branches/release25-maint/Lib/test/test_syntax.py stackless/branches/release25-maint/Lib/test/test_tarfile.py stackless/branches/release25-maint/Lib/urllib2.py stackless/branches/release25-maint/Misc/NEWS stackless/branches/release25-maint/Misc/build.sh stackless/branches/release25-maint/Modules/_ctypes/ (props changed) stackless/branches/release25-maint/Modules/_ctypes/callproc.c stackless/branches/release25-maint/Modules/_ctypes/cfield.c stackless/branches/release25-maint/Modules/_ctypes/stgdict.c stackless/branches/release25-maint/Modules/binascii.c stackless/branches/release25-maint/Modules/cPickle.c stackless/branches/release25-maint/Modules/cStringIO.c stackless/branches/release25-maint/Modules/itertoolsmodule.c stackless/branches/release25-maint/Modules/posixmodule.c stackless/branches/release25-maint/Objects/classobject.c stackless/branches/release25-maint/Objects/exceptions.c stackless/branches/release25-maint/Objects/fileobject.c stackless/branches/release25-maint/Objects/longobject.c stackless/branches/release25-maint/PC/_winreg.c stackless/branches/release25-maint/Python/dynload_win.c stackless/branches/release25-maint/Python/thread_nt.h Log: Merged in up to 55182 from the python release25-maint branch. Several bugfixes mainly for Visual Studio 2005, and x64 platform. Modified: stackless/branches/release25-maint/Doc/api/concrete.tex ============================================================================== --- stackless/branches/release25-maint/Doc/api/concrete.tex (original) +++ stackless/branches/release25-maint/Doc/api/concrete.tex Tue May 8 11:04:01 2007 @@ -1173,10 +1173,10 @@ *byteorder == 1: big endian \end{verbatim} - and then switches according to all byte order marks (BOM) it finds - in the input data. BOMs are not copied into the resulting Unicode - string. After completion, \var{*byteorder} is set to the current - byte order at the end of input data. + and then switches if the first two bytes of the input data are a byte order + mark (BOM) and the specified byte order is native order. This BOM is not + copied into the resulting Unicode string. After completion, \var{*byteorder} + is set to the current byte order at the. If \var{byteorder} is \NULL{}, the codec starts in native order mode. Modified: stackless/branches/release25-maint/Doc/api/init.tex ============================================================================== --- stackless/branches/release25-maint/Doc/api/init.tex (original) +++ stackless/branches/release25-maint/Doc/api/init.tex Tue May 8 11:04:01 2007 @@ -245,7 +245,7 @@ program name (set by \cfunction{Py_SetProgramName()} above) and some environment variables. The returned string consists of a series of directory names separated by a platform dependent delimiter - character. The delimiter character is \character{:} on \UNIX and Mac OS X, + character. The delimiter character is \character{:} on \UNIX{} and Mac OS X, \character{;} on Windows. The returned string points into static storage; the caller should not modify its value. The value is available to Python code as the list Modified: stackless/branches/release25-maint/Doc/commontex/copyright.tex ============================================================================== --- stackless/branches/release25-maint/Doc/commontex/copyright.tex (original) +++ stackless/branches/release25-maint/Doc/commontex/copyright.tex Tue May 8 11:04:01 2007 @@ -1,4 +1,4 @@ -Copyright \copyright{} 2001-2006 Python Software Foundation. +Copyright \copyright{} 2001-2007 Python Software Foundation. All rights reserved. Copyright \copyright{} 2000 BeOpen.com. Modified: stackless/branches/release25-maint/Doc/commontex/license.tex ============================================================================== --- stackless/branches/release25-maint/Doc/commontex/license.tex (original) +++ stackless/branches/release25-maint/Doc/commontex/license.tex Tue May 8 11:04:01 2007 @@ -50,6 +50,7 @@ \linev{2.4.1}{2.4}{2005}{PSF}{yes} \linev{2.4.2}{2.4.1}{2005}{PSF}{yes} \linev{2.4.3}{2.4.2}{2006}{PSF}{yes} + \linev{2.4.4}{2.4.3}{2006}{PSF}{yes} \linev{2.5}{2.4}{2006}{PSF}{yes} \linev{2.5.1}{2.5}{2007}{PSF}{yes} \end{tablev} @@ -82,7 +83,7 @@ prepare derivative works, distribute, and otherwise use Python \version{} alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., -``Copyright \copyright{} 2001-2006 Python Software Foundation; All +``Copyright \copyright{} 2001-2007 Python Software Foundation; All Rights Reserved'' are retained in Python \version{} alone or in any derivative version prepared by Licensee. Modified: stackless/branches/release25-maint/Doc/inst/inst.tex ============================================================================== --- stackless/branches/release25-maint/Doc/inst/inst.tex (original) +++ stackless/branches/release25-maint/Doc/inst/inst.tex Tue May 8 11:04:01 2007 @@ -296,7 +296,7 @@ \filevar{prefix} and \filevar{exec-prefix} stand for the directories that Python is installed to, and where it finds its libraries at run-time. They are always the same under Windows, and very -often the same under \UNIX and Mac OS X. You can find out what your Python +often the same under \UNIX{} and Mac OS X. You can find out what your Python installation uses for \filevar{prefix} and \filevar{exec-prefix} by running Python in interactive mode and typing a few simple commands. Under \UNIX, just type \code{python} at the shell prompt. Under Modified: stackless/branches/release25-maint/Doc/lib/libbase64.tex ============================================================================== --- stackless/branches/release25-maint/Doc/lib/libbase64.tex (original) +++ stackless/branches/release25-maint/Doc/lib/libbase64.tex Tue May 8 11:04:01 2007 @@ -85,7 +85,7 @@ letter O (oh), and for optional mapping of the digit 1 (one) to either the letter I (eye) or letter L (el). The optional argument \var{map01} when not \code{None}, specifies which letter the digit 1 should -be mapped to (when map01 is not \var{None}, the digit 0 is always +be mapped to (when \var{map01} is not \code{None}, the digit 0 is always mapped to the letter O). For security purposes the default is \code{None}, so that 0 and 1 are not allowed in the input. Modified: stackless/branches/release25-maint/Doc/lib/libfuncs.tex ============================================================================== --- stackless/branches/release25-maint/Doc/lib/libfuncs.tex (original) +++ stackless/branches/release25-maint/Doc/lib/libfuncs.tex Tue May 8 11:04:01 2007 @@ -972,7 +972,7 @@ \begin{funcdesc}{reversed}{seq} Return a reverse iterator. \var{seq} must be an object which - supports the sequence protocol (the __len__() method and the + supports the sequence protocol (the \method{__len__()} method and the \method{__getitem__()} method with integer arguments starting at \code{0}). \versionadded{2.4} Modified: stackless/branches/release25-maint/Doc/lib/liblogging.tex ============================================================================== --- stackless/branches/release25-maint/Doc/lib/liblogging.tex (original) +++ stackless/branches/release25-maint/Doc/lib/liblogging.tex Tue May 8 11:04:01 2007 @@ -203,7 +203,7 @@ \begin{verbatim} FORMAT = "%(asctime)-15s %(clientip)s %(user)-8s %(message)s" logging.basicConfig(format=FORMAT) - dict = { 'clientip' : '192.168.0.1', 'user' : 'fbloggs' } + d = {'clientip': '192.168.0.1', 'user': 'fbloggs'} logging.warning("Protocol problem: %s", "connection reset", extra=d) \end{verbatim} @@ -1495,7 +1495,7 @@ \var{exc_info} is the exception tuple obtained by calling \function{sys.exc_info() }(or \constant{None}, if no exception information is available). The \var{func} is the name of the function from which the -logging call was made. If not specified, it defaults to \var{None}. +logging call was made. If not specified, it defaults to \code{None}. \versionchanged[\var{func} was added]{2.5} \end{classdesc} Modified: stackless/branches/release25-maint/Doc/lib/libstdtypes.tex ============================================================================== --- stackless/branches/release25-maint/Doc/lib/libstdtypes.tex (original) +++ stackless/branches/release25-maint/Doc/lib/libstdtypes.tex Tue May 8 11:04:01 2007 @@ -1489,7 +1489,7 @@ \item[(5)] \function{setdefault()} is like \function{get()}, except that if \var{k} is missing, \var{x} is both returned and inserted into -the dictionary as the value of \var{k}. \var{x} defaults to \var{None}. +the dictionary as the value of \var{k}. \var{x} defaults to \code{None}. \item[(6)] \function{popitem()} is useful to destructively iterate over a dictionary, as often used in set algorithms. If the dictionary @@ -1615,14 +1615,15 @@ iterator, typically in a \keyword{for} loop (for example, \code{for line in f: print line}), the \method{next()} method is called repeatedly. This method returns the next input line, or raises -\exception{StopIteration} when \EOF{} is hit. In order to make a -\keyword{for} loop the most efficient way of looping over the lines of -a file (a very common operation), the \method{next()} method uses a -hidden read-ahead buffer. As a consequence of using a read-ahead -buffer, combining \method{next()} with other file methods (like -\method{readline()}) does not work right. However, using -\method{seek()} to reposition the file to an absolute position will -flush the read-ahead buffer. +\exception{StopIteration} when \EOF{} is hit when the file is open for +reading (behavior is undefined when the file is open for writing). In +order to make a \keyword{for} loop the most efficient way of looping +over the lines of a file (a very common operation), the +\method{next()} method uses a hidden read-ahead buffer. As a +consequence of using a read-ahead buffer, combining \method{next()} +with other file methods (like \method{readline()}) does not work +right. However, using \method{seek()} to reposition the file to an +absolute position will flush the read-ahead buffer. \versionadded{2.3} \end{methoddesc} @@ -1846,7 +1847,7 @@ expection that occurred should be suppressed. If an exception occurred while executing the body of the \keyword{with} statement, the arguments contain the exception type, value and traceback information. - Otherwise, all three arguments are \var{None}. + Otherwise, all three arguments are \code{None}. Returning a true value from this method will cause the \keyword{with} statement to suppress the exception and continue execution with the Modified: stackless/branches/release25-maint/Doc/lib/libsys.tex ============================================================================== --- stackless/branches/release25-maint/Doc/lib/libsys.tex (original) +++ stackless/branches/release25-maint/Doc/lib/libsys.tex Tue May 8 11:04:01 2007 @@ -15,8 +15,8 @@ whether this is a full pathname or not). If the command was executed using the \programopt{-c} command line option to the interpreter, \code{argv[0]} is set to the string \code{'-c'}. If no - script name was passed to the Python interpreter, \code{argv} has - zero length. + script name was passed to the Python interpreter, \code{argv[0]} is + the empty string. \end{datadesc} \begin{datadesc}{byteorder} Modified: stackless/branches/release25-maint/Doc/lib/liburllib2.tex ============================================================================== --- stackless/branches/release25-maint/Doc/lib/liburllib2.tex (original) +++ stackless/branches/release25-maint/Doc/lib/liburllib2.tex Tue May 8 11:04:01 2007 @@ -817,7 +817,10 @@ import urllib2 # Create an OpenerDirector with support for Basic HTTP Authentication... auth_handler = urllib2.HTTPBasicAuthHandler() -auth_handler.add_password('realm', 'host', 'username', 'password') +auth_handler.add_password(realm='PDQ Application', + uri='https://mahler:8092/site-updates.py', + user='klem', + passwd='kadidd!ehopper') opener = urllib2.build_opener(auth_handler) # ...and install it globally so it can be used with urlopen. urllib2.install_opener(opener) Modified: stackless/branches/release25-maint/Doc/lib/libxmlrpclib.tex ============================================================================== --- stackless/branches/release25-maint/Doc/lib/libxmlrpclib.tex (original) +++ stackless/branches/release25-maint/Doc/lib/libxmlrpclib.tex Tue May 8 11:04:01 2007 @@ -280,7 +280,7 @@ Create an object used to boxcar method calls. \var{server} is the eventual target of the call. Calls can be made to the result object, -but they will immediately return \var{None}, and only store the +but they will immediately return \code{None}, and only store the call name and parameters in the \class{MultiCall} object. Calling the object itself causes all stored calls to be transmitted as a single \code{system.multicall} request. The result of this call Modified: stackless/branches/release25-maint/Doc/mac/using.tex ============================================================================== --- stackless/branches/release25-maint/Doc/mac/using.tex (original) +++ stackless/branches/release25-maint/Doc/mac/using.tex Tue May 8 11:04:01 2007 @@ -2,7 +2,7 @@ \sectionauthor{Bob Savage}{bobsavage at mac.com} Python on a Macintosh running Mac OS X is in principle very similar to -Python on any other \UNIX platform, but there are a number of additional +Python on any other \UNIX{} platform, but there are a number of additional features such as the IDE and the Package Manager that are worth pointing out. Python on Mac OS 9 or earlier can be quite different from Python on @@ -13,206 +13,166 @@ \section{Getting and Installing MacPython \label{getting-OSX}} -Mac OS X 10.3 comes with Python 2.3 pre-installed by Apple. -This installation does not come with the IDE and other additions, however, -so to get these you need to install the \program{MacPython for Panther additions} -from the MacPython website, \url{http://www.cwi.nl/\textasciitilde jack/macpython}. - -For MacPython 2.4, or for any MacPython on earlier releases of Mac OS X, -you need to install a full distribution from the same website. +Mac OS X 10.4 comes with Python 2.3 pre-installed by Apple. However, you are +encouraged to install the most recent version of Python from the Python website +(\url{http://www.python.org}). A ``universal binary'' build of Python 2.5, which +runs natively on the Mac's new Intel and legacy PPC CPU's, is available there. What you get after installing is a number of things: \begin{itemize} - \item A \file{MacPython-2.3} folder in your \file{Applications} - folder. In here you find the PythonIDE Integrated Development Environment; - PythonLauncher, which handles double-clicking Python scripts from - the Finder; and the Package Manager. - - \item A fairly standard \UNIX{} commandline Python interpreter in - \file{/usr/local/bin/python}, but without the usual - \file{/usr/local/lib/python}. - - \item A framework \file{/Library/Frameworks/Python.framework}, where - all the action really is, but which you usually do not have to be aware of. +\item A \file{MacPython 2.5} folder in your \file{Applications} folder. In here + you find IDLE, the development environment that is a standard part of official + Python distributions; PythonLauncher, which handles double-clicking Python + scripts from the Finder; and the ``Build Applet'' tool, which allows you to + package Python scripts as standalone applications on your system. + +\item A framework \file{/Library/Frameworks/Python.framework}, which includes + the Python executable and libraries. The installer adds this location to your + shell path. To uninstall MacPython, you can simply remove these three + things. A symlink to the Python executable is placed in /usr/local/bin/. \end{itemize} -To uninstall MacPython you can simply remove these three things. +The Apple-provided build of Python is installed in +\file{/System/Library/Frameworks/Python.framework} and \file{/usr/bin/python}, +respectively. You should never modify or delete these, as they are +Apple-controlled and are used by Apple- or third-party software. + +IDLE includes a help menu that allows you to access Python documentation. If you +are completely new to Python you should start reading the tutorial introduction +in that document. -If you use the ``additions'' installer to install on top of an existing -Apple-Python you will not get the framework and the commandline interpreter, -as they have been installed by Apple already, in -\file{/System/Library/Frameworks/Python.framework} and -\file{/usr/bin/python}, respectively. You should in principle never modify -or delete these, as they are Apple-controlled and may be used by Apple- or -third-party software. - -PythonIDE contains an Apple Help Viewer book called "MacPython Help" -which you can access through its help menu. If you are completely new to -Python you should start reading the IDE introduction in that document. +If you are familiar with Python on other \UNIX{} platforms you should read the +section on running Python scripts from the \UNIX{} shell. -If you are familiar with Python on other \UNIX{} platforms you should -read the section on running Python scripts from the \UNIX{} shell. \subsection{How to run a Python script} -Your best way to get started with Python on Mac OS X is through the PythonIDE -integrated development environment, see section \ref{IDE} and use the Help -menu when the IDE is running. - -If you want to run Python scripts from the Terminal window command line -or from the Finder you first need an editor to create your script. -Mac OS X comes with a number of standard \UNIX{} command line editors, -\program{vim} and \program{emacs} among them. If you want a more Mac-like -editor \program{BBEdit} or \program{TextWrangler} from Bare Bones Software -(see \url{http://www.barebones.com/products/bbedit/index.shtml}) are -good choices. \program{AppleWorks} or any other -word processor that can save files in ASCII is also a possibility, including -\program{TextEdit} which is included with OS X. +Your best way to get started with Python on Mac OS X is through the IDLE +integrated development environment, see section \ref{IDE} and use the Help menu +when the IDE is running. + +If you want to run Python scripts from the Terminal window command line or from +the Finder you first need an editor to create your script. Mac OS X comes with a +number of standard \UNIX{} command line editors, \program{vim} and +\program{emacs} among them. If you want a more Mac-like editor, \program{BBEdit} +or \program{TextWrangler} from Bare Bones Software (see +\url{http://www.barebones.com/products/bbedit/index.shtml}) are good choices, as +is \program{TextMate} (see \url{http://macromates.com/}). Other editors include +\program{Gvim} (\url{http://macvim.org}) and \program{Aquamacs} +(\url{http://aquamacs.org}). To run your script from the Terminal window you must make sure that -\file{/usr/local/bin} is in your shell search path. +\file{/usr/local/bin} is in your shell search path. To run your script from the Finder you have two options: + \begin{itemize} - \item Drag it to \program{PythonLauncher} - \item Select \program{PythonLauncher} as the default application - to open your script (or any .py script) through the finder Info window - and double-click it. +\item Drag it to \program{PythonLauncher} +\item Select \program{PythonLauncher} as the default application to open your + script (or any .py script) through the finder Info window and double-click it. + \program{PythonLauncher} has various preferences to control how your script is + launched. Option-dragging allows you to change these for one invocation, or + use its Preferences menu to change things globally. \end{itemize} -PythonLauncher has various preferences to control how your script is launched. -Option-dragging allows you to change these for one invocation, or use its -Preferences menu to change things globally. \subsection{Running scripts with a GUI \label{osx-gui-scripts}} -There is one Mac OS X quirk that you need to be aware of: programs -that talk to the Aqua window manager (in other words, anything that has a GUI) -need to be run in a special way. Use \program{pythonw} instead of \program{python} -to start such scripts. - -\subsection{configuration} - -MacPython honours all standard \UNIX{} environment variables such as -\envvar{PYTHONPATH}, but setting these variables for programs started -from the Finder is non-standard -as the Finder does not read your \file{.profile} or \file{.cshrc} at startup. -You need to create a file \file{\textasciitilde /.MacOSX/environment.plist}. -See Apple's Technical Document QA1067 for details. +With older versions of Python, there is one Mac OS X quirk that you need to be +aware of: programs that talk to the Aqua window manager (in other words, +anything that has a GUI) need to be run in a special way. Use \program{pythonw} +instead of \program{python} to start such scripts. + +With Python 2.5, you can use either \program{python} or \program{pythonw}. + +\subsection{Configuration} + +Python on OS X honors all standard \UNIX{} environment variables such as +\envvar{PYTHONPATH}, but setting these variables for programs started from the +Finder is non-standard as the Finder does not read your \file{.profile} or +\file{.cshrc} at startup. You need to create a file \file{\textasciitilde + /.MacOSX/environment.plist}. See Apple's Technical Document QA1067 for +details. -Installing additional Python packages is most easily done through the -Package Manager, see the MacPython Help Book for details. +For more information on installation Python packages in MacPython, see section +\ref{mac-package-manager}, ``Installing Additional Python Packages.'' \section{The IDE\label{IDE}} -The \program{Python IDE} (Integrated Development Environment) is a -separate application that acts as a text editor for your Python code, -a class browser, a graphical debugger, and more. - -The online Python Help contains a quick walkthrough of the IDE that -shows the major features and how to use them. - -\subsection{Using the ``Python Interactive'' window} - -Use this window like you would use a normal \UNIX{} command line -interpreter. - -\subsection{Writing a Python Script \label{IDEwrite}} - -In addition to using the \program{Python IDE} interactively, you can -also type out a complete Python program, saving it incrementally, and -execute it or smaller selections of it. - -You can create a new script, open a previously saved script, and save -your currently open script by selecting the appropriate item in the -``File'' menu. Dropping a Python script onto the -\program{Python IDE} will open it for editing. - -When the \program{Python IDE} saves a script, it uses the creator code -settings which are available by clicking on the small black triangle -on the top right of the document window, and selecting ``save -options''. The default is to save the file with the \program{Python -IDE} as the creator, this means that you can open the file for editing -by simply double-clicking on its icon. You might want to change this -behaviour so that it will be opened by the -\program{PythonLauncher}, and run. To do this simply choose -``PythonLauncher'' from the ``save options''. Note that these -options are associated with the \emph{file} not the application. - - -\subsection{Executing a script from within the IDE - \label{IDEexecution}} - -You can run the script in the frontmost window of the \program{Python -IDE} by hitting the run all button. You should be aware, however that -if you use the Python convention \samp{if __name__ == "__main__":} the -script will \emph{not} be ``__main__'' by default. To get that -behaviour you must select the ``Run as __main__'' option from the -small black triangle on the top right of the document window. Note -that this option is associated with the \emph{file} not the -application. It \emph{will} stay active after a save, however; to shut -this feature off simply select it again. - - -\subsection{``Save as'' versus ``Save as Applet'' - \label{IDEapplet}} - -When you are done writing your Python script you have the option of -saving it as an ``applet'' (by selecting ``Save as applet'' from the -``File'' menu). This has a significant advantage in that you can drop -files or folders onto it, to pass them to the applet the way -command-line users would type them onto the command-line to pass them -as arguments to the script. However, you should make sure to save the -applet as a separate file, do not overwrite the script you are -writing, because you will not be able to edit it again. - -Accessing the items passed to the applet via ``drag-and-drop'' is done -using the standard \member{sys.argv} mechanism. See the general -documentation for more -% need to link to the appropriate place in non-Mac docs - -Note that saving a script as an applet will not make it runnable on a -system without a Python installation. - -%\subsection{Debugger} -% **NEED INFO HERE** - -%\subsection{Module Browser} -% **NEED INFO HERE** - -%\subsection{Profiler} -% **NEED INFO HERE** -% end IDE - -%\subsection{The ``Scripts'' menu} -% **NEED INFO HERE** - -\section{The Package Manager} - -Historically MacPython came with a number of useful extension packages -included, because most Macintosh users do not have access to a development -environment and C compiler. For Mac OS X that bundling is no longer done, -but a new mechanism has been made available to allow easy access to -extension packages. - -The Python Package Manager helps you installing additional packages -that enhance Python. It determines the exact MacOS version and Python -version you have and uses that information to download a database that -has packages that are tested and tried on that combination. In other -words: if something is in your Package Manager window but does not work -you are free to blame the database maintainer. - -PackageManager then checks which of the packages you have installed and -which ones are not. This should also work when you have installed packages -outside of PackageManager. You can select packages and install them, -and PackageManager will work out the requirements and install these too. - -Often PackageManager will list a package in two flavors: binary and -source. Binary should always work, source will only work if you have -installed the Apple Developer Tools. PackageManager will warn you about -this, and also about other external dependencies. +MacPython ships with the standard IDLE development environment. A good +introduction to using IDLE can be found at +\url{http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/index.html}. + + +\section{Installing Additional Python Packages \label{mac-package-manager}} + +There are several methods to install additional Python packages: + +\begin{itemize} +\item \url{http://pythonmac.org/packages/} contains selected compiled packages + for Python 2.5, 2.4, and 2.3. +\item Packages can be installed via the standard Python distutils mode + (\samp{python setup.py install}). +\item Many packages can also be installed via the \program{setuptools} + extension. +\end{itemize} + + +\section{GUI Programming on the Mac} + +There are several options for building GUI applications on the Mac with Python. + +\emph{PyObjC} is a Python binding to Apple's Objective-C/Cocoa framework, which +is the foundation of most modern Mac development. Information on PyObjC is +available from \url{http://pybojc.sourceforge.net}. + +The standard Python GUI toolkit is \module{Tkinter}, based on the cross-platform +Tk toolkit (\url{http://www.tcl.tk}). An Aqua-native version of Tk is bundled +with OS X by Apple, and the latest version can be downloaded and installed from +\url{http://www.activestate.com}; it can also be built from source. + +\emph{wxPython} is another popular cross-platform GUI toolkit that runs natively +on Mac OS X. Packages and documentation are available from +\url{http://www.wxpython.org}. + +\emph{PyQt} is another popular cross-platform GUI toolkit that runs natively on +Mac OS X. More information can be found at +\url{http://www.riverbankcomputing.co.uk/pyqt/}. + + +\section{Distributing Python Applications on the Mac} + +The ``Build Applet'' tool that is placed in the MacPython 2.5 folder is fine for +packaging small Python scripts on your own machine to run as a standard Mac +application. This tool, however, is not robust enough to distribute Python +applications to other users. + +The standard tool for deploying standalone Python applications on the Mac is +\program{py2app}. More information on installing and using py2app can be found +at \url{http://undefined.org/python/\#py2app}. + +\section{Application Scripting} + +Python can also be used to script other Mac applications via Apple's Open +Scripting Architecture (OSA); see +\url{http://appscript.sourceforge.net}. Appscript is a high-level, user-friendly +Apple event bridge that allows you to control scriptable Mac OS X applications +using ordinary Python scripts. Appscript makes Python a serious alternative to +Apple's own \emph{AppleScript} language for automating your Mac. A related +package, \emph{PyOSA}, is an OSA language component for the Python scripting +language, allowing Python code to be executed by any OSA-enabled application +(Script Editor, Mail, iTunes, etc.). PyOSA makes Python a full peer to +AppleScript. + +\section{Other Resources} + +The MacPython mailing list is an excellent support resource for Python users and +developers on the Mac: + +\url{http://www.python.org/community/sigs/current/pythonmac-sig/} + +Another useful resource is the MacPython wiki: -PackageManager is available as a separate application and also as a -function of the IDE, through the File->Package Manager menu entry. +\url{http://wiki.python.org/moin/MacPython} Modified: stackless/branches/release25-maint/Doc/texinputs/python.sty ============================================================================== --- stackless/branches/release25-maint/Doc/texinputs/python.sty (original) +++ stackless/branches/release25-maint/Doc/texinputs/python.sty Tue May 8 11:04:01 2007 @@ -612,7 +612,7 @@ \newenvironment{cfuncdesc}[4][\py at badkey]{ \begin{fulllineitems} \cfuncline{#2}{#3}{#4} - \ifx#1\@undefined\else% + \ifx\@undefined#1\relax\else% \emph{Return value: \textbf{#1}.}\\ \fi }{\end{fulllineitems}} @@ -629,7 +629,7 @@ \newenvironment{ctypedesc}[2][\py at badkey]{ \begin{fulllineitems} \item[\bfcode{#2}% - \ifx#1\@undefined% + \ifx\@undefined#1\relax% \index{#2@{\py at idxcode{#2}} (C type)} \else% \index{#2@{\py at idxcode{#1}} (C type)} @@ -712,7 +712,7 @@ % \begin{methoddesc}[classname]{methodname}{args} \newcommand{\methodline}[3][\@undefined]{ \methodlineni{#2}{#3} - \ifx#1\@undefined + \ifx\@undefined#1\relax \index{#2@{\py at idxcode{#2()}} (\py at thisclass\ method)} \else \index{#2@{\py at idxcode{#2()}} (#1 method)} @@ -720,7 +720,7 @@ } \newenvironment{methoddesc}[3][\@undefined]{ \begin{fulllineitems} - \ifx#1\@undefined + \ifx\@undefined#1\relax \methodline{#2}{#3} \else \def\py at thisclass{#1} @@ -740,7 +740,7 @@ % object data attribute -------------------------------------------------- % \begin{memberdesc}[classname]{membername} \newcommand{\memberline}[2][\py at classbadkey]{% - \ifx#1\@undefined + \ifx\@undefined#1\relax \memberlineni{#2} \index{#2@{\py at idxcode{#2}} (\py at thisclass\ attribute)} \else @@ -750,7 +750,7 @@ } \newenvironment{memberdesc}[2][\py at classbadkey]{ \begin{fulllineitems} - \ifx#1\@undefined + \ifx\@undefined#1\relax \memberline{#2} \else \def\py at thisclass{#1} @@ -1046,14 +1046,14 @@ % \versionchanged[short explanation]{2.0} % \newcommand{\versionadded}[2][\py at badkey]{% - \ifx#1\@undefined% + \ifx\@undefined#1\relax% { New in version #2. }% \else% { New in version #2:\ #1. }% \fi% } \newcommand{\versionchanged}[2][\py at badkey]{% - \ifx#1\@undefined% + \ifx\@undefined#1\relax% { Changed in version #2. }% \else% { Changed in version #2:\ #1. }% Modified: stackless/branches/release25-maint/Doc/tut/tut.tex ============================================================================== --- stackless/branches/release25-maint/Doc/tut/tut.tex (original) +++ stackless/branches/release25-maint/Doc/tut/tut.tex Tue May 8 11:04:01 2007 @@ -184,12 +184,12 @@ \file{/usr/local/python} is a popular alternative location.) On Windows machines, the Python installation is usually placed in -\file{C:\e Python24}, though you can change this when you're running +\file{C:\e Python25}, though you can change this when you're running the installer. To add this directory to your path, you can type the following command into the command prompt in a DOS box: \begin{verbatim} -set path=%path%;C:\python24 +set path=%path%;C:\python25 \end{verbatim} @@ -3556,7 +3556,7 @@ ... print 'x =', x ... print 'y =', y ... - + ('spam', 'eggs') ('spam', 'eggs') x = spam @@ -4654,7 +4654,7 @@ >>> os.system('time 0:02') 0 >>> os.getcwd() # Return the current working directory -'C:\\Python24' +'C:\\Python25' >>> os.chdir('/server/accesslogs') \end{verbatim} @@ -5254,7 +5254,7 @@ Traceback (most recent call last): File "", line 1, in -toplevel- d['primary'] # entry was automatically removed - File "C:/PY24/lib/weakref.py", line 46, in __getitem__ + File "C:/python25/lib/weakref.py", line 46, in __getitem__ o = self.data[key]() KeyError: 'primary' \end{verbatim} Modified: stackless/branches/release25-maint/Include/fileobject.h ============================================================================== --- stackless/branches/release25-maint/Include/fileobject.h (original) +++ stackless/branches/release25-maint/Include/fileobject.h Tue May 8 11:04:01 2007 @@ -57,6 +57,11 @@ char *Py_UniversalNewlineFgets(char *, int, FILE*, PyObject *); size_t Py_UniversalNewlineFread(char *, size_t, FILE *, PyObject *); +/* A routine to do sanity checking on the file mode string. returns + non-zero on if an exception occurred +*/ +int _PyFile_SanitizeMode(char *mode); + #ifdef __cplusplus } #endif Modified: stackless/branches/release25-maint/LICENSE ============================================================================== --- stackless/branches/release25-maint/LICENSE (original) +++ stackless/branches/release25-maint/LICENSE Tue May 8 11:04:01 2007 @@ -52,6 +52,7 @@ 2.4.1 2.4 2005 PSF yes 2.4.2 2.4.1 2005 PSF yes 2.4.3 2.4.2 2006 PSF yes + 2.4.4 2.4.3 2006 PSF yes 2.5 2.4 2006 PSF yes 2.5.1 2.5 2007 PSF yes Modified: stackless/branches/release25-maint/Lib/Bastion.py ============================================================================== --- stackless/branches/release25-maint/Lib/Bastion.py (original) +++ stackless/branches/release25-maint/Lib/Bastion.py Tue May 8 11:04:01 2007 @@ -97,7 +97,7 @@ """ - raise RuntimeError, "This code is not secure in Python 2.2 and 2.3" + raise RuntimeError, "This code is not secure in Python 2.2 and later" # Note: we define *two* ad-hoc functions here, get1 and get2. # Both are intended to be called in the same way: get(name). Modified: stackless/branches/release25-maint/Lib/CGIHTTPServer.py ============================================================================== --- stackless/branches/release25-maint/Lib/CGIHTTPServer.py (original) +++ stackless/branches/release25-maint/Lib/CGIHTTPServer.py Tue May 8 11:04:01 2007 @@ -107,7 +107,7 @@ """Execute a CGI script.""" path = self.path dir, rest = self.cgi_info - + i = path.find('/', len(dir) + 1) while i >= 0: nextdir = path[:i] Modified: stackless/branches/release25-maint/Lib/_strptime.py ============================================================================== --- stackless/branches/release25-maint/Lib/_strptime.py (original) +++ stackless/branches/release25-maint/Lib/_strptime.py Tue May 8 11:04:01 2007 @@ -299,17 +299,16 @@ global _TimeRE_cache, _regex_cache _cache_lock.acquire() try: - time_re = _TimeRE_cache - locale_time = time_re.locale_time - if _getlang() != locale_time.lang: + if _getlang() != _TimeRE_cache.locale_time.lang: _TimeRE_cache = TimeRE() - _regex_cache = {} + _regex_cache.clear() if len(_regex_cache) > _CACHE_MAX_SIZE: _regex_cache.clear() + locale_time = _TimeRE_cache.locale_time format_regex = _regex_cache.get(format) if not format_regex: try: - format_regex = time_re.compile(format) + format_regex = _TimeRE_cache.compile(format) # KeyError raised when a bad format is found; can be specified as # \\, in which case it was a stray % but with a space after it except KeyError, err: Modified: stackless/branches/release25-maint/Lib/cgitb.py ============================================================================== --- stackless/branches/release25-maint/Lib/cgitb.py (original) +++ stackless/branches/release25-maint/Lib/cgitb.py Tue May 8 11:04:01 2007 @@ -167,7 +167,7 @@ exception = ['

%s: %s' % (strong(pydoc.html.escape(str(etype))), pydoc.html.escape(str(evalue)))] - if type(evalue) is types.InstanceType: + if isinstance(evalue, BaseException): for name in dir(evalue): if name[:1] == '_': continue value = pydoc.html.repr(getattr(evalue, name)) @@ -239,7 +239,7 @@ frames.append('\n%s\n' % '\n'.join(rows)) exception = ['%s: %s' % (str(etype), str(evalue))] - if type(evalue) is types.InstanceType: + if isinstance(evalue, BaseException): for name in dir(evalue): value = pydoc.text.repr(getattr(evalue, name)) exception.append('\n%s%s = %s' % (" "*4, name, value)) Modified: stackless/branches/release25-maint/Lib/distutils/command/build_ext.py ============================================================================== --- stackless/branches/release25-maint/Lib/distutils/command/build_ext.py (original) +++ stackless/branches/release25-maint/Lib/distutils/command/build_ext.py Tue May 8 11:04:01 2007 @@ -533,7 +533,8 @@ if self.swig_cpp: log.warn("--swig-cpp is deprecated - use --swig-opts=-c++") - if self.swig_cpp or ('-c++' in self.swig_opts): + if self.swig_cpp or ('-c++' in self.swig_opts) or \ + ('-c++' in extension.swig_opts): target_ext = '.cpp' else: target_ext = '.c' Modified: stackless/branches/release25-maint/Lib/distutils/unixccompiler.py ============================================================================== --- stackless/branches/release25-maint/Lib/distutils/unixccompiler.py (original) +++ stackless/branches/release25-maint/Lib/distutils/unixccompiler.py Tue May 8 11:04:01 2007 @@ -82,7 +82,7 @@ except ValueError: pass - # Check if the SDK that is used during compilation actually exists, + # Check if the SDK that is used during compilation actually exists, # the universal build requires the usage of a universal SDK and not all # users have that installed by default. sysroot = None Modified: stackless/branches/release25-maint/Lib/email/__init__.py ============================================================================== --- stackless/branches/release25-maint/Lib/email/__init__.py (original) +++ stackless/branches/release25-maint/Lib/email/__init__.py Tue May 8 11:04:01 2007 @@ -4,7 +4,7 @@ """A package for parsing, handling, and generating email messages.""" -__version__ = '4.0.1' +__version__ = '4.0.2' __all__ = [ # Old names Modified: stackless/branches/release25-maint/Lib/encodings/utf_8_sig.py ============================================================================== --- stackless/branches/release25-maint/Lib/encodings/utf_8_sig.py (original) +++ stackless/branches/release25-maint/Lib/encodings/utf_8_sig.py Tue May 8 11:04:01 2007 @@ -44,14 +44,19 @@ self.first = True def _buffer_decode(self, input, errors, final): - if self.first and codecs.BOM_UTF8.startswith(input): # might be a BOM + if self.first: if len(input) < 3: - # not enough data to decide if this really is a BOM - # => try again on the next call - return (u"", 0) - (output, consumed) = codecs.utf_8_decode(input[3:], errors, final) - self.first = False - return (output, consumed+3) + if codecs.BOM_UTF8.startswith(input): + # not enough data to decide if this really is a BOM + # => try again on the next call + return (u"", 0) + else: + self.first = None + else: + self.first = None + if input[:3] == codecs.BOM_UTF8: + (output, consumed) = codecs.utf_8_decode(input[3:], errors, final) + return (output, consumed+3) return codecs.utf_8_decode(input, errors, final) def reset(self): Modified: stackless/branches/release25-maint/Lib/ftplib.py ============================================================================== --- stackless/branches/release25-maint/Lib/ftplib.py (original) +++ stackless/branches/release25-maint/Lib/ftplib.py Tue May 8 11:04:01 2007 @@ -332,7 +332,7 @@ # 1xx or error messages for LIST), so we just discard # this response. if resp[0] == '2': - resp = self.getresp() + resp = self.getresp() if resp[0] != '1': raise error_reply, resp else: @@ -342,7 +342,7 @@ resp = self.sendcmd(cmd) # See above. if resp[0] == '2': - resp = self.getresp() + resp = self.getresp() if resp[0] != '1': raise error_reply, resp conn, sockaddr = sock.accept() Modified: stackless/branches/release25-maint/Lib/lib-tk/tkSimpleDialog.py ============================================================================== --- stackless/branches/release25-maint/Lib/lib-tk/tkSimpleDialog.py (original) +++ stackless/branches/release25-maint/Lib/lib-tk/tkSimpleDialog.py Tue May 8 11:04:01 2007 @@ -50,9 +50,9 @@ # If the master is not viewable, don't # make the child transient, or else it # would be opened withdrawn - if parent.winfo_viewable(): + if parent.winfo_viewable(): self.transient(parent) - + if title: self.title(title) Modified: stackless/branches/release25-maint/Lib/locale.py ============================================================================== --- stackless/branches/release25-maint/Lib/locale.py (original) +++ stackless/branches/release25-maint/Lib/locale.py Tue May 8 11:04:01 2007 @@ -19,9 +19,11 @@ # Yuck: LC_MESSAGES is non-standard: can't tell whether it exists before # trying the import. So __all__ is also fiddled at the end of the file. -__all__ = ["setlocale","Error","localeconv","strcoll","strxfrm", - "format","str","atof","atoi","LC_CTYPE","LC_COLLATE", - "LC_TIME","LC_MONETARY","LC_NUMERIC", "LC_ALL","CHAR_MAX"] +__all__ = ["getlocale", "getdefaultlocale", "getpreferredencoding", "Error", + "setlocale", "resetlocale", "localeconv", "strcoll", "strxfrm", + "str", "atof", "atoi", "format", "format_string", "currency", + "normalize", "LC_CTYPE", "LC_COLLATE", "LC_TIME", "LC_MONETARY", + "LC_NUMERIC", "LC_ALL", "CHAR_MAX"] try: Modified: stackless/branches/release25-maint/Lib/rexec.py ============================================================================== --- stackless/branches/release25-maint/Lib/rexec.py (original) +++ stackless/branches/release25-maint/Lib/rexec.py Tue May 8 11:04:01 2007 @@ -181,7 +181,7 @@ """ - raise RuntimeError, "This code is not secure in Python 2.2 and 2.3" + raise RuntimeError, "This code is not secure in Python 2.2 and later" ihooks._Verbose.__init__(self, verbose) # XXX There's a circular reference here: Modified: stackless/branches/release25-maint/Lib/subprocess.py ============================================================================== --- stackless/branches/release25-maint/Lib/subprocess.py (original) +++ stackless/branches/release25-maint/Lib/subprocess.py Tue May 8 11:04:01 2007 @@ -596,7 +596,7 @@ # either have to redirect all three or none. If the subprocess # user has only redirected one or two handles, we are # automatically creating PIPEs for the rest. We should close - # these after the process is started. See bug #1124861. + # these after the process is started. See bug #1124861. if mswindows: if stdin is None and p2cwrite is not None: os.close(p2cwrite) @@ -628,7 +628,7 @@ return data - def __del__(self): + def __del__(self, sys=sys): if not self._child_created: # We didn't get to successfully create a child process. return @@ -1142,7 +1142,7 @@ # we can write up to PIPE_BUF bytes without risk # blocking. POSIX defines PIPE_BUF >= 512 bytes_written = os.write(self.stdin.fileno(), buffer(input, input_offset, 512)) - input_offset += bytes_written + input_offset += bytes_written if input_offset >= len(input): self.stdin.close() write_set.remove(self.stdin) Modified: stackless/branches/release25-maint/Lib/tarfile.py ============================================================================== --- stackless/branches/release25-maint/Lib/tarfile.py (original) +++ stackless/branches/release25-maint/Lib/tarfile.py Tue May 8 11:04:01 2007 @@ -963,7 +963,7 @@ stn(prefix, 155) ] - buf += struct.pack("%ds" % BLOCKSIZE, "".join(parts)) + buf += "".join(parts).ljust(BLOCKSIZE, NUL) chksum = calc_chksums(buf[-BLOCKSIZE:])[0] buf = buf[:-364] + "%06o\0" % chksum + buf[-357:] self.buf = buf @@ -1044,7 +1044,9 @@ can be determined, `mode' is overridden by `fileobj's mode. `fileobj' is not closed, when TarFile is closed. """ - self.name = os.path.abspath(name) + self.name = name + if self.name is not None: + self.name = os.path.abspath(name) if len(mode) > 1 or mode not in "raw": raise ValueError("mode must be 'r', 'a' or 'w'") @@ -1842,7 +1844,7 @@ tarinfo.type = DIRTYPE # Directory names should have a '/' at the end. - if tarinfo.isdir(): + if tarinfo.isdir() and not tarinfo.name.endswith("/"): tarinfo.name += "/" self.members.append(tarinfo) Modified: stackless/branches/release25-maint/Lib/test/README ============================================================================== --- stackless/branches/release25-maint/Lib/test/README (original) +++ stackless/branches/release25-maint/Lib/test/README Tue May 8 11:04:01 2007 @@ -15,7 +15,7 @@ one of these options. Each option requires writing a test module using the conventions of the selected option: - - PyUnit_ based tests + - unittest_ based tests - doctest_ based tests - "traditional" Python test modules @@ -28,27 +28,26 @@ able to refer to the C and Python code in the CVS repository when writing your regression test cases. -.. _PyUnit: .. _unittest: http://www.python.org/doc/current/lib/module-unittest.html .. _doctest: http://www.python.org/doc/current/lib/module-doctest.html -PyUnit based tests +unittest-based tests ------------------ -The PyUnit_ framework is based on the ideas of unit testing as espoused +The unittest_ framework is based on the ideas of unit testing as espoused by Kent Beck and the `Extreme Programming`_ (XP) movement. The specific interface provided by the framework is tightly based on the JUnit_ Java implementation of Beck's original SmallTalk test framework. Please see the documentation of the unittest_ module for detailed information on -the interface and general guidelines on writing PyUnit based tests. +the interface and general guidelines on writing unittest-based tests. The test_support helper module provides two functions for use by -PyUnit based tests in the Python regression testing framework: +unittest-based tests in the Python regression testing framework: -- ``run_unittest()`` takes a ``unittest.TestCase`` derived class as a - parameter and runs the tests defined in that class +- ``run_unittest()`` takes a number of ``unittest.TestCase`` derived class as + parameters and runs the tests defined in those classes. - ``run_suite()`` takes a populated ``TestSuite`` instance and runs the - tests + tests. ``run_suite()`` is preferred because unittest files typically grow multiple test classes, and you might as well be prepared. @@ -63,7 +62,7 @@ latter information makes it easier to find the source for the test than the docstring. -All PyUnit-based tests in the Python test suite use boilerplate that +All unittest-based tests in the Python test suite use boilerplate that looks like this (with minor variations):: import unittest @@ -415,7 +414,7 @@ This is rarely required with the "traditional" Python tests, and you shouldn't create a module global with name test_main unless you're specifically exploiting this gimmick. This usage does - prove useful with PyUnit-based tests as well, however; defining + prove useful with unittest-based tests as well, however; defining a ``test_main()`` which is run by regrtest and a script-stub in the test module ("``if __name__ == '__main__': test_main()``") allows the test to be used like any other Python test and also work Modified: stackless/branches/release25-maint/Lib/test/string_tests.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/string_tests.py (original) +++ stackless/branches/release25-maint/Lib/test/string_tests.py Tue May 8 11:04:01 2007 @@ -2,7 +2,7 @@ Common tests shared by test_str, test_unicode, test_userstring and test_string. """ -import unittest, string, sys +import unittest, string, sys, struct from test import test_support from UserList import UserList @@ -671,7 +671,7 @@ def test_replace_overflow(self): # Check for overflow checking on 32 bit machines - if sys.maxint != 2147483647: + if sys.maxint != 2147483647 or struct.calcsize("P") > 4: return A2_16 = "A" * (2**16) self.checkraises(OverflowError, A2_16, "replace", "", A2_16) Modified: stackless/branches/release25-maint/Lib/test/test_codecs.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_codecs.py (original) +++ stackless/branches/release25-maint/Lib/test/test_codecs.py Tue May 8 11:04:01 2007 @@ -430,6 +430,11 @@ # SF bug #1601501: check that the codec works with a buffer unicode("\xef\xbb\xbf", "utf-8-sig") + def test_bom(self): + d = codecs.getincrementaldecoder("utf-8-sig")() + s = u"spam" + self.assertEqual(d.decode(s.encode("utf-8-sig")), s) + class EscapeDecodeTest(unittest.TestCase): def test_empty(self): self.assertEquals(codecs.escape_decode(""), ("", 0)) @@ -916,7 +921,7 @@ self.assertEquals(f.readlines(), [u'\ud55c\n', u'\uae00']) class EncodedFileTest(unittest.TestCase): - + def test_basic(self): f = StringIO.StringIO('\xed\x95\x9c\n\xea\xb8\x80') ef = codecs.EncodedFile(f, 'utf-16-le', 'utf-8') Modified: stackless/branches/release25-maint/Lib/test/test_curses.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_curses.py (original) +++ stackless/branches/release25-maint/Lib/test/test_curses.py Tue May 8 11:04:01 2007 @@ -245,7 +245,7 @@ if hasattr(curses, 'resizeterm'): lines, cols = curses.LINES, curses.COLS curses.resizeterm(lines - 1, cols + 1) - + if curses.LINES != lines - 1 or curses.COLS != cols + 1: raise RuntimeError, "Expected resizeterm to update LINES and COLS" Modified: stackless/branches/release25-maint/Lib/test/test_descr.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_descr.py (original) +++ stackless/branches/release25-maint/Lib/test/test_descr.py Tue May 8 11:04:01 2007 @@ -1216,7 +1216,7 @@ except NameError: pass else: - # _unicode_to_string used to modify slots in certain circumstances + # _unicode_to_string used to modify slots in certain circumstances slots = (unicode("foo"), unicode("bar")) class C(object): __slots__ = slots @@ -1231,7 +1231,7 @@ except (TypeError, UnicodeEncodeError): pass else: - raise TestFailed, "[unichr(128)] slots not caught" + raise TestFailed, "[unichr(128)] slots not caught" # Test leaks class Counted(object): Modified: stackless/branches/release25-maint/Lib/test/test_format.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_format.py (original) +++ stackless/branches/release25-maint/Lib/test/test_format.py Tue May 8 11:04:01 2007 @@ -1,5 +1,7 @@ from test.test_support import verbose, have_unicode, TestFailed import sys +from test.test_support import MAX_Py_ssize_t +maxsize = MAX_Py_ssize_t # test string formatting operator (I am not sure if this is being tested # elsewhere but, surely, some of the given cases are *not* tested because @@ -238,11 +240,11 @@ test_exc('%o', Foobar(), TypeError, "expected string or Unicode object, long found") -if sys.maxint == 2**31-1: +if maxsize == 2**31-1: # crashes 2.2.1 and earlier: try: - "%*d"%(sys.maxint, -127) + "%*d"%(maxsize, -127) except MemoryError: pass else: - raise TestFailed, '"%*d"%(sys.maxint, -127) should fail' + raise TestFailed, '"%*d"%(maxsize, -127) should fail' Modified: stackless/branches/release25-maint/Lib/test/test_import.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_import.py (original) +++ stackless/branches/release25-maint/Lib/test/test_import.py Tue May 8 11:04:01 2007 @@ -224,13 +224,13 @@ test_import_initless_directory_warning() def test_infinite_reload(): - # Bug #742342 reports that Python segfaults (infinite recursion in C) - # when faced with self-recursive reload()ing. + # Bug #742342 reports that Python segfaults (infinite recursion in C) + # when faced with self-recursive reload()ing. - sys.path.insert(0, os.path.dirname(__file__)) - try: - import infinite_reload - finally: - sys.path.pop(0) + sys.path.insert(0, os.path.dirname(__file__)) + try: + import infinite_reload + finally: + sys.path.pop(0) test_infinite_reload() Modified: stackless/branches/release25-maint/Lib/test/test_index.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_index.py (original) +++ stackless/branches/release25-maint/Lib/test/test_index.py Tue May 8 11:04:01 2007 @@ -1,7 +1,10 @@ import unittest from test import test_support import operator +import sys from sys import maxint +maxsize = test_support.MAX_Py_ssize_t +minsize = -maxsize-1 class oldstyle: def __index__(self): @@ -185,7 +188,7 @@ def _getitem_helper(self, base): class GetItem(base): def __len__(self): - return maxint + return maxint #cannot return long here def __getitem__(self, key): return key def __getslice__(self, i, j): @@ -193,8 +196,8 @@ x = GetItem() self.assertEqual(x[self.pos], self.pos) self.assertEqual(x[self.neg], self.neg) - self.assertEqual(x[self.neg:self.pos], (-1, maxint)) - self.assertEqual(x[self.neg:self.pos:1].indices(maxint), (0, maxint, 1)) + self.assertEqual(x[self.neg:self.pos], (maxint+minsize, maxsize)) + self.assertEqual(x[self.neg:self.pos:1].indices(maxsize), (0, maxsize, 1)) def test_getitem(self): self._getitem_helper(object) Modified: stackless/branches/release25-maint/Lib/test/test_itertools.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_itertools.py (original) +++ stackless/branches/release25-maint/Lib/test/test_itertools.py Tue May 8 11:04:01 2007 @@ -5,6 +5,8 @@ import sys import operator import random +maxsize = test_support.MAX_Py_ssize_t +minsize = -maxsize-1 def onearg(x): 'Test function of one argument' @@ -52,7 +54,7 @@ self.assertEqual(take(2, zip('abc',count(3))), [('a', 3), ('b', 4)]) self.assertRaises(TypeError, count, 2, 3) self.assertRaises(TypeError, count, 'a') - self.assertRaises(OverflowError, list, islice(count(sys.maxint-5), 10)) + self.assertRaises(OverflowError, list, islice(count(maxsize-5), 10)) c = count(3) self.assertEqual(repr(c), 'count(3)') c.next() @@ -285,7 +287,7 @@ self.assertRaises(ValueError, islice, xrange(10), 1, 'a') self.assertRaises(ValueError, islice, xrange(10), 'a', 1, 1) self.assertRaises(ValueError, islice, xrange(10), 1, 'a', 1) - self.assertEqual(len(list(islice(count(), 1, 10, sys.maxint))), 1) + self.assertEqual(len(list(islice(count(), 1, 10, maxsize))), 1) def test_takewhile(self): data = [1, 3, 5, 20, 2, 4, 6, 8] Modified: stackless/branches/release25-maint/Lib/test/test_locale.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_locale.py (original) +++ stackless/branches/release25-maint/Lib/test/test_locale.py Tue May 8 11:04:01 2007 @@ -7,7 +7,7 @@ oldlocale = locale.setlocale(locale.LC_NUMERIC) if sys.platform.startswith("win"): - tlocs = ("en",) + tlocs = ("En", "English") else: tlocs = ("en_US.UTF-8", "en_US.US-ASCII", "en_US") Modified: stackless/branches/release25-maint/Lib/test/test_mailbox.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_mailbox.py (original) +++ stackless/branches/release25-maint/Lib/test/test_mailbox.py Tue May 8 11:04:01 2007 @@ -681,11 +681,11 @@ box = self._factory(self._path, factory=dummy_factory) folder = box.add_folder('folder1') self.assert_(folder._factory is dummy_factory) - + folder1_alias = box.get_folder('folder1') self.assert_(folder1_alias._factory is dummy_factory) - + class _TestMboxMMDF(TestMailbox): @@ -767,15 +767,15 @@ key1 = self._box.add(msg) self._box.flush() self._box.close() - + self._box = self._factory(self._path) self._box.lock() key2 = self._box.add(msg) self._box.flush() self.assert_(self._box._locked) self._box.close() - - + + class TestMbox(_TestMboxMMDF): @@ -805,7 +805,7 @@ def dummy_factory (s): return None self._box = self._factory(self._path, dummy_factory) - + new_folder = self._box.add_folder('foo.bar') folder0 = self._box.get_folder('foo.bar') folder0.add(self._template % 'bar') @@ -901,7 +901,7 @@ self.assert_(self._box.get_sequences() == {'foo':[1, 2, 3, 4, 5], 'unseen':[1], 'bar':[3], 'replied':[3]}) - + def _get_lock_path(self): return os.path.join(self._path, '.mh_sequences.lock') Modified: stackless/branches/release25-maint/Lib/test/test_old_mailbox.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_old_mailbox.py (original) +++ stackless/branches/release25-maint/Lib/test/test_old_mailbox.py Tue May 8 11:04:01 2007 @@ -116,7 +116,7 @@ def tearDown(self): os.unlink(self._path) - + def test_from_regex (self): # Testing new regex from bug #1633678 f = open(self._path, 'w') Modified: stackless/branches/release25-maint/Lib/test/test_pty.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_pty.py (original) +++ stackless/branches/release25-maint/Lib/test/test_pty.py Tue May 8 11:04:01 2007 @@ -115,6 +115,24 @@ os._exit(4) else: debug("Waiting for child (%d) to finish."%pid) + # In verbose mode, we have to consume the debug output from the child or + # the child will block, causing this test to hang in the parent's + # waitpid() call. The child blocks after a platform-dependent amount of + # data is written to its fd. On Linux 2.6, it's 4000 bytes and the child + # won't block, but on OS X even the small writes in the child above will + # block it. Also on Linux, the read() will throw an OSError (input/output + # error) when it tries to read past the end of the buffer but the child's + # already exited, so catch and discard those exceptions. It's not worth + # checking for EIO. + while True: + try: + data = os.read(master_fd, 80) + except OSError: + break + if not data: + break + sys.stdout.write(data.replace('\r\n', '\n')) + ##line = os.read(master_fd, 80) ##lines = line.replace('\r\n', '\n').split('\n') ##if False and lines != ['In child, calling os.setsid()', Modified: stackless/branches/release25-maint/Lib/test/test_re.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_re.py (original) +++ stackless/branches/release25-maint/Lib/test/test_re.py Tue May 8 11:04:01 2007 @@ -610,7 +610,7 @@ for typecode in 'cbBuhHiIlLfd': a = array.array(typecode) self.assertEqual(re.compile("bla").match(a), None) - self.assertEqual(re.compile("").match(a).groups(), ()) + self.assertEqual(re.compile("").match(a).groups(), ()) def run_re_tests(): from test.re_tests import benchmarks, tests, SUCCEED, FAIL, SYNTAX_ERROR Modified: stackless/branches/release25-maint/Lib/test/test_sax.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_sax.py (original) +++ stackless/branches/release25-maint/Lib/test/test_sax.py Tue May 8 11:04:01 2007 @@ -252,7 +252,7 @@ gen.endDocument() return result.getvalue() == start+'' - + # ===== Xmlfilterbase def test_filter_basic(): Modified: stackless/branches/release25-maint/Lib/test/test_set.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_set.py (original) +++ stackless/branches/release25-maint/Lib/test/test_set.py Tue May 8 11:04:01 2007 @@ -288,7 +288,7 @@ self.assertEqual(sum(elem.hash_count for elem in d), n) if hasattr(s, 'symmetric_difference_update'): s.symmetric_difference_update(d) - self.assertEqual(sum(elem.hash_count for elem in d), n) + self.assertEqual(sum(elem.hash_count for elem in d), n) d2 = dict.fromkeys(set(d)) self.assertEqual(sum(elem.hash_count for elem in d), n) d3 = dict.fromkeys(frozenset(d)) @@ -500,7 +500,7 @@ set.__init__(self, iterable) class TestSetSubclassWithKeywordArgs(TestSet): - + def test_keywords_in_subclass(self): 'SF bug #1486663 -- this used to erroneously raise a TypeError' SetSubclassWithKeywordArgs(newarg=1) @@ -1487,7 +1487,7 @@ test_classes = ( TestSet, TestSetSubclass, - TestSetSubclassWithKeywordArgs, + TestSetSubclassWithKeywordArgs, TestFrozenSet, TestFrozenSetSubclass, TestSetOfSets, Modified: stackless/branches/release25-maint/Lib/test/test_strptime.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_strptime.py (original) +++ stackless/branches/release25-maint/Lib/test/test_strptime.py Tue May 8 11:04:01 2007 @@ -505,6 +505,35 @@ self.failIfEqual(locale_time_id, id(_strptime._TimeRE_cache.locale_time)) + def test_TimeRE_recreation(self): + # The TimeRE instance should be recreated upon changing the locale. + locale_info = locale.getlocale(locale.LC_TIME) + try: + locale.setlocale(locale.LC_TIME, ('en_US', 'UTF8')) + except locale.Error: + return + try: + _strptime.strptime('10', '%d') + # Get id of current cache object. + first_time_re_id = id(_strptime._TimeRE_cache) + try: + # Change the locale and force a recreation of the cache. + locale.setlocale(locale.LC_TIME, ('de_DE', 'UTF8')) + _strptime.strptime('10', '%d') + # Get the new cache object's id. + second_time_re_id = id(_strptime._TimeRE_cache) + # They should not be equal. + self.failIfEqual(first_time_re_id, second_time_re_id) + # Possible test locale is not supported while initial locale is. + # If this is the case just suppress the exception and fall-through + # to the reseting to the original locale. + except locale.Error: + pass + # Make sure we don't trample on the locale setting once we leave the + # test. + finally: + locale.setlocale(locale.LC_TIME, locale_info) + def test_main(): test_support.run_unittest( Modified: stackless/branches/release25-maint/Lib/test/test_syntax.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_syntax.py (original) +++ stackless/branches/release25-maint/Lib/test/test_syntax.py Tue May 8 11:04:01 2007 @@ -373,7 +373,7 @@ ... elif 1: ... pass Traceback (most recent call last): - ... + ... SyntaxError: can't assign to function call (, line 2) >>> if 1: @@ -381,7 +381,7 @@ ... elif 1: ... x() = 1 Traceback (most recent call last): - ... + ... SyntaxError: can't assign to function call (, line 4) >>> if 1: @@ -391,7 +391,7 @@ ... else: ... pass Traceback (most recent call last): - ... + ... SyntaxError: can't assign to function call (, line 2) >>> if 1: @@ -401,7 +401,7 @@ ... else: ... pass Traceback (most recent call last): - ... + ... SyntaxError: can't assign to function call (, line 4) >>> if 1: @@ -411,7 +411,7 @@ ... else: ... x() = 1 Traceback (most recent call last): - ... + ... SyntaxError: can't assign to function call (, line 6) """ Modified: stackless/branches/release25-maint/Lib/test/test_tarfile.py ============================================================================== --- stackless/branches/release25-maint/Lib/test/test_tarfile.py (original) +++ stackless/branches/release25-maint/Lib/test/test_tarfile.py Tue May 8 11:04:01 2007 @@ -191,6 +191,13 @@ except: pass + def test_dirtype(self): + for tarinfo in self.tar: + if tarinfo.isdir(): + self.assert_(tarinfo.name.endswith("/")) + self.assert_(not tarinfo.name[:-1].endswith("/")) + + class ReadStreamTest(ReadTest): sep = "|" @@ -626,15 +633,21 @@ self.assertEqual(tarfile.filemode(07111), '---s--s--t') class OpenFileobjTest(BaseTest): - # Test for SF bug #1496501. def test_opener(self): + # Test for SF bug #1496501. fobj = StringIO.StringIO("foo\n") try: - tarfile.open("", "r", fileobj=fobj) + tarfile.open("", mode="r", fileobj=fobj) except tarfile.ReadError: self.assertEqual(fobj.tell(), 0, "fileobj's position has moved") + def test_fileobj(self): + # Test for SF bug #1695229, opening a tarfile without + # a name argument. + tarfile.open(mode="r", fileobj=open(tarname(""))) + tarfile.TarFile(mode="r", fileobj=open(tarname(""))) + if bz2: # Bzip2 TestCases class ReadTestBzip2(ReadTestGzip): Modified: stackless/branches/release25-maint/Lib/urllib2.py ============================================================================== --- stackless/branches/release25-maint/Lib/urllib2.py (original) +++ stackless/branches/release25-maint/Lib/urllib2.py Tue May 8 11:04:01 2007 @@ -55,7 +55,10 @@ # set up authentication info authinfo = urllib2.HTTPBasicAuthHandler() -authinfo.add_password('realm', 'host', 'username', 'password') +authinfo.add_password(realm='PDQ Application', + uri='https://mahler:8092/site-updates.py', + user='klem', + passwd='geheim$parole') proxy_support = urllib2.ProxyHandler({"http" : "http://ahad-haam:3128"}) Modified: stackless/branches/release25-maint/Misc/NEWS ============================================================================== --- stackless/branches/release25-maint/Misc/NEWS (original) +++ stackless/branches/release25-maint/Misc/NEWS Tue May 8 11:04:01 2007 @@ -4,6 +4,37 @@ (editors: check NEWS.help for information about editing NEWS using ReST.) +What's New in Python 2.5.2c1? +============================= + +*Release date: XX-XXX-XXXX* + +Library +------- + +- Bug #1290505: Properly clear time.strptime's locale cache when the locale + changes between calls. Backport of r54646 and r54647. + +- Bug #1706381: Specifying the SWIG option "-c++" in the setup.py file + (as opposed to the command line) will now write file names ending in + ".cpp" too. + +- Patch #1695229: Fix a regression with tarfile.open() and a missing name + argument. + +- tarfile.py: Fix directory names to have only one trailing slash. + +- Fix test_pty.py to not hang on OS X (and theoretically other *nixes) when + run in verbose mode. + + +Documentation +------------- + +- Bug #1569057: Document that calling file.next() on a file open for writing + has undefined behaviour. Backport of r54712. + + What's New in Python 2.5.1? ============================= @@ -483,6 +514,8 @@ Documentation ------------- +- Patch #1698768: updated the "using Python on the Mac" intro. + - Patch #1489771: the syntax rules in Python Reference Manual were updated to reflect the current Python syntax. @@ -588,6 +621,8 @@ - Fix bsddb test_basics.test06_Transactions to check the version number properly. +- Fix utf-8-sig incremental decoder, which didn't recognise a BOM when the + first chunk fed to the decoder started with a BOM, but was longer than 3 bytes. Documentation ------------- Modified: stackless/branches/release25-maint/Misc/build.sh ============================================================================== --- stackless/branches/release25-maint/Misc/build.sh (original) +++ stackless/branches/release25-maint/Misc/build.sh Tue May 8 11:04:01 2007 @@ -47,11 +47,12 @@ FAILURE_SUBJECT="Python Regression Test Failures" #FAILURE_MAILTO="YOUR_ACCOUNT at gmail.com" FAILURE_MAILTO="python-checkins at python.org" +#FAILURE_CC="optional--uncomment and set to desired address" REMOTE_SYSTEM="neal at dinsdale.python.org" -REMOTE_DIR="/data/ftp.python.org/pub/docs.python.org/dev/" +REMOTE_DIR="/data/ftp.python.org/pub/docs.python.org/dev/2.5" RESULT_FILE="$DIR/build/index.html" -INSTALL_DIR="/tmp/python-test/local" +INSTALL_DIR="/tmp/python-test-2.5/local" RSYNC_OPTS="-aC -e ssh" # Always run the installed version of Python. @@ -66,7 +67,7 @@ # Note: test_XXX (none currently) really leak, but are disabled # so we don't send spam. Any test which really leaks should only # be listed here if there are also test cases under Lib/test/leakers. -LEAKY_TESTS="test_(XXX)" # Currently no tests should report spurious leaks. +LEAKY_TESTS="test_(cmd_line|socket)" # Skip these tests altogether when looking for leaks. These tests # do not need to be stored above in LEAKY_TESTS too. @@ -76,7 +77,7 @@ LEAKY_SKIPS="-x test_compiler test_logging" # Change this flag to "yes" for old releases to only update/build the docs. -BUILD_DISABLED="no" +BUILD_DISABLED="yes" ## utility functions current_time() { @@ -91,7 +92,12 @@ mail_on_failure() { if [ "$NUM_FAILURES" != "0" ]; then - mutt -s "$FAILURE_SUBJECT $1 ($NUM_FAILURES)" $FAILURE_MAILTO < $2 + dest=$FAILURE_MAILTO + # FAILURE_CC is optional. + if [ "$FAILURE_CC" != "" ]; then + dest="$dest -c $FAILURE_CC" + fi + mutt -s "$FAILURE_SUBJECT $1 ($NUM_FAILURES)" $dest < $2 fi } @@ -208,8 +214,19 @@ cd $DIR/Doc F="make-doc.out" start=`current_time` -make >& ../build/$F -err=$? +# Doc/commontex/boilerplate.tex is expected to always have an outstanding +# modification for the date. When a release is cut, a conflict occurs. +# This allows us to detect this problem and not try to build the docs +# which will definitely fail with a conflict. +CONFLICTED_FILE=commontex/boilerplate.tex +conflict_count=`grep -c "<<<" $CONFLICTED_FILE` +if [ $conflict_count != 0 ]; then + echo "Conflict detected in $CONFLICTED_FILE. Doc build skipped." > ../build/$F + err=1 +else + make >& ../build/$F + err=$? +fi update_status "Making doc" "$F" $start if [ $err != 0 ]; then NUM_FAILURES=1 Modified: stackless/branches/release25-maint/Modules/_ctypes/callproc.c ============================================================================== --- stackless/branches/release25-maint/Modules/_ctypes/callproc.c (original) +++ stackless/branches/release25-maint/Modules/_ctypes/callproc.c Tue May 8 11:04:01 2007 @@ -64,6 +64,7 @@ #ifdef MS_WIN32 #include +#include #else #include "ctypes_dlfcn.h" #endif @@ -97,9 +98,9 @@ 0, NULL); if (n) { - while (isspace(lpMsgBuf[n-1])) + while (_istspace(lpMsgBuf[n-1])) --n; - lpMsgBuf[n] = '\0'; /* rstrip() */ + lpMsgBuf[n] = _T('\0'); /* rstrip() */ } return lpMsgBuf; } @@ -538,8 +539,10 @@ size += 1; /* terminating NUL */ size *= sizeof(wchar_t); pa->value.p = PyMem_Malloc(size); - if (!pa->value.p) + if (!pa->value.p) { + PyErr_NoMemory(); return -1; + } memset(pa->value.p, 0, size); pa->keep = PyCObject_FromVoidPtr(pa->value.p, PyMem_Free); if (!pa->keep) { Modified: stackless/branches/release25-maint/Modules/_ctypes/cfield.c ============================================================================== --- stackless/branches/release25-maint/Modules/_ctypes/cfield.c (original) +++ stackless/branches/release25-maint/Modules/_ctypes/cfield.c Tue May 8 11:04:01 2007 @@ -1333,7 +1333,7 @@ if (IsBadStringPtrA(*(char **)ptr, -1)) { PyErr_Format(PyExc_ValueError, "invalid string pointer %p", - ptr); + *(char **)ptr); return NULL; } #endif @@ -1389,7 +1389,7 @@ size *= sizeof(wchar_t); buffer = (wchar_t *)PyMem_Malloc(size); if (!buffer) - return NULL; + return PyErr_NoMemory(); memset(buffer, 0, size); keep = PyCObject_FromVoidPtr(buffer, PyMem_Free); if (!keep) { @@ -1414,9 +1414,17 @@ { wchar_t *p; p = *(wchar_t **)ptr; - if (p) + if (p) { +#if defined(MS_WIN32) && !defined(_WIN32_WCE) + if (IsBadStringPtrW(*(wchar_t **)ptr, -1)) { + PyErr_Format(PyExc_ValueError, + "invalid string pointer %p", + *(wchar_t **)ptr); + return NULL; + } +#endif return PyUnicode_FromWideChar(p, wcslen(p)); - else { + } else { Py_INCREF(Py_None); return Py_None; } Modified: stackless/branches/release25-maint/Modules/_ctypes/stgdict.c ============================================================================== --- stackless/branches/release25-maint/Modules/_ctypes/stgdict.c (original) +++ stackless/branches/release25-maint/Modules/_ctypes/stgdict.c Tue May 8 11:04:01 2007 @@ -72,8 +72,10 @@ return 0; size = sizeof(ffi_type *) * (src->length + 1); dst->ffi_type_pointer.elements = PyMem_Malloc(size); - if (dst->ffi_type_pointer.elements == NULL) + if (dst->ffi_type_pointer.elements == NULL) { + PyErr_NoMemory(); return -1; + } memcpy(dst->ffi_type_pointer.elements, src->ffi_type_pointer.elements, size); @@ -359,6 +361,10 @@ total_align = align ? align : 1; stgdict->ffi_type_pointer.type = FFI_TYPE_STRUCT; stgdict->ffi_type_pointer.elements = PyMem_Malloc(sizeof(ffi_type *) * (basedict->length + len + 1)); + if (stgdict->ffi_type_pointer.elements == NULL) { + PyErr_NoMemory(); + return -1; + } memset(stgdict->ffi_type_pointer.elements, 0, sizeof(ffi_type *) * (basedict->length + len + 1)); memcpy(stgdict->ffi_type_pointer.elements, @@ -373,6 +379,10 @@ total_align = 1; stgdict->ffi_type_pointer.type = FFI_TYPE_STRUCT; stgdict->ffi_type_pointer.elements = PyMem_Malloc(sizeof(ffi_type *) * (len + 1)); + if (stgdict->ffi_type_pointer.elements == NULL) { + PyErr_NoMemory(); + return -1; + } memset(stgdict->ffi_type_pointer.elements, 0, sizeof(ffi_type *) * (len + 1)); ffi_ofs = 0; Modified: stackless/branches/release25-maint/Modules/binascii.c ============================================================================== --- stackless/branches/release25-maint/Modules/binascii.c (original) +++ stackless/branches/release25-maint/Modules/binascii.c Tue May 8 11:04:01 2007 @@ -1160,12 +1160,14 @@ if ((data[in] > 126) || (data[in] == '=') || (header && data[in] == '_') || - ((data[in] == '.') && (linelen == 1)) || + ((data[in] == '.') && (linelen == 0) && + (data[in+1] == '\n' || data[in+1] == '\r' || data[in+1] == 0)) || (!istext && ((data[in] == '\r') || (data[in] == '\n'))) || ((data[in] == '\t' || data[in] == ' ') && (in + 1 == datalen)) || ((data[in] < 33) && (data[in] != '\r') && (data[in] != '\n') && - (quotetabs && ((data[in] != '\t') || (data[in] != ' '))))) + (quotetabs || + (!quotetabs && ((data[in] != '\t') && (data[in] != ' ')))))) { if ((linelen + 3) >= MAXLINESIZE) { linelen = 0; @@ -1230,12 +1232,14 @@ if ((data[in] > 126) || (data[in] == '=') || (header && data[in] == '_') || - ((data[in] == '.') && (linelen == 1)) || + ((data[in] == '.') && (linelen == 0) && + (data[in+1] == '\n' || data[in+1] == '\r' || data[in+1] == 0)) || (!istext && ((data[in] == '\r') || (data[in] == '\n'))) || ((data[in] == '\t' || data[in] == ' ') && (in + 1 == datalen)) || ((data[in] < 33) && (data[in] != '\r') && (data[in] != '\n') && - (quotetabs && ((data[in] != '\t') || (data[in] != ' '))))) + (quotetabs || + (!quotetabs && ((data[in] != '\t') && (data[in] != ' ')))))) { if ((linelen + 3 )>= MAXLINESIZE) { odata[out++] = '='; Modified: stackless/branches/release25-maint/Modules/cPickle.c ============================================================================== --- stackless/branches/release25-maint/Modules/cPickle.c (original) +++ stackless/branches/release25-maint/Modules/cPickle.c Tue May 8 11:04:01 2007 @@ -538,11 +538,12 @@ self->buf_size = size; } else if (n > self->buf_size) { - self->buf = (char *)realloc(self->buf, n); - if (!self->buf) { + char *newbuf = (char *)realloc(self->buf, n); + if (!newbuf) { PyErr_NoMemory(); return -1; } + self->buf = newbuf; self->buf_size = n; } @@ -581,6 +582,7 @@ i = 0; while (1) { int bigger; + char *newbuf; for (; i < (self->buf_size - 1); i++) { if (feof(self->fp) || (self->buf[i] = getc(self->fp)) == '\n') { @@ -594,11 +596,12 @@ PyErr_NoMemory(); return -1; } - self->buf = (char *)realloc(self->buf, bigger); - if (!self->buf) { + newbuf = (char *)realloc(self->buf, bigger); + if (!newbuf) { PyErr_NoMemory(); return -1; } + self->buf = newbuf; self->buf_size = bigger; } } @@ -4437,17 +4440,19 @@ */ if ((self->num_marks + 1) >= self->marks_size) { + int *marks; s=self->marks_size+20; if (s <= self->num_marks) s=self->num_marks + 1; if (self->marks == NULL) - self->marks=(int *)malloc(s * sizeof(int)); + marks=(int *)malloc(s * sizeof(int)); else - self->marks=(int *)realloc(self->marks, + marks=(int *)realloc(self->marks, s * sizeof(int)); - if (! self->marks) { + if (!marks) { PyErr_NoMemory(); return -1; } + self->marks = marks; self->marks_size = s; } Modified: stackless/branches/release25-maint/Modules/cStringIO.c ============================================================================== --- stackless/branches/release25-maint/Modules/cStringIO.c (original) +++ stackless/branches/release25-maint/Modules/cStringIO.c Tue May 8 11:04:01 2007 @@ -339,13 +339,17 @@ } if (position > self->buf_size) { + char *newbuf; self->buf_size*=2; if (self->buf_size <= position) self->buf_size=position+1; - self->buf = (char*) realloc(self->buf,self->buf_size); - if (!self->buf) { + newbuf = (char*) realloc(self->buf,self->buf_size); + if (!newbuf) { + free(self->buf); + self->buf = 0; self->buf_size=self->pos=0; return PyErr_NoMemory(); } + self->buf = newbuf; } else if (position < 0) position=0; @@ -366,6 +370,7 @@ O_cwrite(PyObject *self, const char *c, Py_ssize_t l) { Py_ssize_t newl; Oobject *oself; + char *newbuf; if (!IO__opencheck(IOOOBJECT(self))) return -1; oself = (Oobject *)self; @@ -377,12 +382,15 @@ assert(newl + 1 < INT_MAX); oself->buf_size = (int)(newl+1); } - oself->buf = (char*)realloc(oself->buf, oself->buf_size); - if (!oself->buf) { + newbuf = (char*)realloc(oself->buf, oself->buf_size); + if (!newbuf) { PyErr_SetString(PyExc_MemoryError,"out of memory"); + free(oself->buf); + oself->buf = 0; oself->buf_size = oself->pos = 0; return -1; } + oself->buf = newbuf; } memcpy(oself->buf+oself->pos,c,l); Modified: stackless/branches/release25-maint/Modules/itertoolsmodule.c ============================================================================== --- stackless/branches/release25-maint/Modules/itertoolsmodule.c (original) +++ stackless/branches/release25-maint/Modules/itertoolsmodule.c Tue May 8 11:04:01 2007 @@ -2073,9 +2073,9 @@ static PyObject * count_next(countobject *lz) { - if (lz->cnt == LONG_MAX) { + if (lz->cnt == PY_SSIZE_T_MAX) { PyErr_SetString(PyExc_OverflowError, - "cannot count beyond LONG_MAX"); + "cannot count beyond PY_SSIZE_T_MAX"); return NULL; } return PyInt_FromSsize_t(lz->cnt++); Modified: stackless/branches/release25-maint/Modules/posixmodule.c ============================================================================== --- stackless/branches/release25-maint/Modules/posixmodule.c (original) +++ stackless/branches/release25-maint/Modules/posixmodule.c Tue May 8 11:04:01 2007 @@ -4788,18 +4788,19 @@ (sizeof(modulepath)/sizeof(modulepath[0])) -strlen(modulepath)); if (stat(modulepath, &statinfo) != 0) { + size_t mplen = sizeof(modulepath)/sizeof(modulepath[0]); /* Eeek - file-not-found - possibly an embedding situation - see if we can locate it in sys.prefix */ strncpy(modulepath, Py_GetExecPrefix(), - sizeof(modulepath)/sizeof(modulepath[0])); + mplen); + modulepath[mplen-1] = '\0'; if (modulepath[strlen(modulepath)-1] != '\\') strcat(modulepath, "\\"); strncat(modulepath, szConsoleSpawn, - (sizeof(modulepath)/sizeof(modulepath[0])) - -strlen(modulepath)); + mplen-strlen(modulepath)); /* No where else to look - raise an easily identifiable error, rather than leaving Windows to report "file not found" - as the user is probably blissfully @@ -6169,16 +6170,23 @@ posix_fdopen(PyObject *self, PyObject *args) { int fd; - char *mode = "r"; + char *orgmode = "r"; int bufsize = -1; FILE *fp; PyObject *f; - if (!PyArg_ParseTuple(args, "i|si", &fd, &mode, &bufsize)) + char *mode; + if (!PyArg_ParseTuple(args, "i|si", &fd, &orgmode, &bufsize)) return NULL; - if (mode[0] != 'r' && mode[0] != 'w' && mode[0] != 'a') { - PyErr_Format(PyExc_ValueError, - "invalid file mode '%s'", mode); + /* Sanitize mode. See fileobject.c */ + mode = PyMem_MALLOC(strlen(orgmode)+3); + if (!mode) { + PyErr_NoMemory(); + return NULL; + } + strcpy(mode, orgmode); + if (_PyFile_SanitizeMode(mode)) { + PyMem_FREE(mode); return NULL; } Py_BEGIN_ALLOW_THREADS @@ -6199,10 +6207,11 @@ #else fp = fdopen(fd, mode); #endif + PyMem_FREE(mode); Py_END_ALLOW_THREADS if (fp == NULL) return posix_error(); - f = PyFile_FromFile(fp, "", mode, fclose); + f = PyFile_FromFile(fp, "", orgmode, fclose); if (f != NULL) PyFile_SetBufSize(f, bufsize); return f; Modified: stackless/branches/release25-maint/Objects/classobject.c ============================================================================== --- stackless/branches/release25-maint/Objects/classobject.c (original) +++ stackless/branches/release25-maint/Objects/classobject.c Tue May 8 11:04:01 2007 @@ -1540,6 +1540,18 @@ return generic_unary_op(self, o); \ } +/* unary function with a fallback */ +#define UNARY_FB(funcname, methodname, funcname_fb) \ +static PyObject *funcname(PyInstanceObject *self) { \ + static PyObject *o; \ + if (o == NULL) { o = PyString_InternFromString(methodname); \ + if (o == NULL) return NULL; } \ + if (PyObject_HasAttr((PyObject*)self, o)) \ + return generic_unary_op(self, o); \ + else \ + return funcname_fb(self); \ +} + #define BINARY(f, m, n) \ static PyObject *f(PyObject *v, PyObject *w) { \ return do_binop(v, w, "__" m "__", "__r" m "__", n); \ @@ -1778,7 +1790,7 @@ UNARY(instance_invert, "__invert__") UNARY(instance_int, "__int__") -UNARY(instance_long, "__long__") +UNARY_FB(instance_long, "__long__", instance_int) UNARY(instance_float, "__float__") UNARY(instance_oct, "__oct__") UNARY(instance_hex, "__hex__") Modified: stackless/branches/release25-maint/Objects/exceptions.c ============================================================================== --- stackless/branches/release25-maint/Objects/exceptions.c (original) +++ stackless/branches/release25-maint/Objects/exceptions.c Tue May 8 11:04:01 2007 @@ -33,6 +33,8 @@ PyBaseExceptionObject *self; self = (PyBaseExceptionObject *)type->tp_alloc(type, 0); + if (!self) + return NULL; /* the dict is created on the fly in PyObject_GenericSetAttr */ self->message = self->dict = NULL; Modified: stackless/branches/release25-maint/Objects/fileobject.c ============================================================================== --- stackless/branches/release25-maint/Objects/fileobject.c (original) +++ stackless/branches/release25-maint/Objects/fileobject.c Tue May 8 11:04:01 2007 @@ -139,17 +139,16 @@ ignore stuff they don't understand... write or append mode with universal newline support is expressly forbidden by PEP 278. Additionally, remove the 'U' from the mode string as platforms - won't know what it is. */ -/* zero return is kewl - one is un-kewl */ -static int -sanitize_the_mode(char *mode) + won't know what it is. Non-zero return signals an exception */ +int +_PyFile_SanitizeMode(char *mode) { char *upos; size_t len = strlen(mode); if (!len) { PyErr_SetString(PyExc_ValueError, "empty mode string"); - return 1; + return -1; } upos = strchr(mode, 'U'); @@ -160,7 +159,7 @@ PyErr_Format(PyExc_ValueError, "universal newline " "mode can only be used with modes " "starting with 'r'"); - return 1; + return -1; } if (mode[0] != 'r') { @@ -175,7 +174,7 @@ } else if (mode[0] != 'r' && mode[0] != 'w' && mode[0] != 'a') { PyErr_Format(PyExc_ValueError, "mode string must begin with " "one of 'r', 'w', 'a' or 'U', not '%.200s'", mode); - return 1; + return -1; } return 0; @@ -204,7 +203,7 @@ } strcpy(newmode, mode); - if (sanitize_the_mode(newmode)) { + if (_PyFile_SanitizeMode(newmode)) { f = NULL; goto cleanup; } Modified: stackless/branches/release25-maint/Objects/longobject.c ============================================================================== --- stackless/branches/release25-maint/Objects/longobject.c (original) +++ stackless/branches/release25-maint/Objects/longobject.c Tue May 8 11:04:01 2007 @@ -893,7 +893,7 @@ int one = 1; return _PyLong_FromByteArray( (unsigned char *)&bytes, - SIZEOF_SIZE_T, IS_LITTLE_ENDIAN, 0); + SIZEOF_SIZE_T, IS_LITTLE_ENDIAN, 1); } /* Create a new long int object from a C size_t. */ @@ -1739,6 +1739,8 @@ a->ob_digit[size_a-1] < b->ob_digit[size_b-1])) { /* |a| < |b|. */ *pdiv = _PyLong_New(0); + if (*pdiv == NULL) + return -1; Py_INCREF(a); *prem = (PyLongObject *) a; return 0; @@ -1749,6 +1751,10 @@ if (z == NULL) return -1; *prem = (PyLongObject *) PyLong_FromLong((long)rem); + if (*prem == NULL) { + Py_DECREF(z); + return -1; + } } else { z = x_divrem(a, b, prem); @@ -3204,6 +3210,8 @@ { if (PyInt_Check(*pw)) { *pw = PyLong_FromLong(PyInt_AS_LONG(*pw)); + if (*pw == NULL) + return -1; Py_INCREF(*pv); return 0; } Modified: stackless/branches/release25-maint/PC/_winreg.c ============================================================================== --- stackless/branches/release25-maint/PC/_winreg.c (original) +++ stackless/branches/release25-maint/PC/_winreg.c Tue May 8 11:04:01 2007 @@ -699,7 +699,7 @@ case REG_DWORD: if (value != Py_None && !PyInt_Check(value)) return FALSE; - *retDataBuf = (BYTE *)PyMem_NEW(DWORD, sizeof(DWORD)); + *retDataBuf = (BYTE *)PyMem_NEW(DWORD, 1); if (*retDataBuf==NULL){ PyErr_NoMemory(); return FALSE; Modified: stackless/branches/release25-maint/Python/dynload_win.c ============================================================================== --- stackless/branches/release25-maint/Python/dynload_win.c (original) +++ stackless/branches/release25-maint/Python/dynload_win.c Tue May 8 11:04:01 2007 @@ -13,16 +13,8 @@ const struct filedescr _PyImport_DynLoadFiletab[] = { #ifdef _DEBUG {"_d.pyd", "rb", C_EXTENSION}, - /* Temporarily disable .dll, to avoid conflicts between sqlite3.dll - and the sqlite3 package. If this needs to be reverted for 2.5, - some other solution for the naming conflict must be found. - {"_d.dll", "rb", C_EXTENSION}, - */ #else {".pyd", "rb", C_EXTENSION}, - /* Likewise - {".dll", "rb", C_EXTENSION}, - */ #endif {0, 0} }; Modified: stackless/branches/release25-maint/Python/thread_nt.h ============================================================================== --- stackless/branches/release25-maint/Python/thread_nt.h (original) +++ stackless/branches/release25-maint/Python/thread_nt.h Tue May 8 11:04:01 2007 @@ -15,14 +15,14 @@ HANDLE hevent ; } NRMUTEX, *PNRMUTEX ; -typedef PVOID WINAPI interlocked_cmp_xchg_t(PVOID *dest, PVOID exc, PVOID comperand) ; +typedef LONG WINAPI interlocked_cmp_xchg_t(LONG volatile *dest, LONG exc, LONG comperand) ; /* Sorry mate, but we haven't got InterlockedCompareExchange in Win95! */ -static PVOID WINAPI -interlocked_cmp_xchg(PVOID *dest, PVOID exc, PVOID comperand) +static LONG WINAPI +interlocked_cmp_xchg(LONG volatile *dest, LONG exc, LONG comperand) { static LONG spinlock = 0 ; - PVOID result ; + LONG result ; DWORD dwSleep = 0; /* Acqire spinlock (yielding control to other threads if cant aquire for the moment) */ @@ -76,10 +76,12 @@ return mutex->hevent != NULL ; /* TRUE if the mutex is created */ } +#ifndef MS_WIN64 #ifdef InterlockedCompareExchange #undef InterlockedCompareExchange #endif #define InterlockedCompareExchange(dest,exchange,comperand) (ixchg((dest), (exchange), (comperand))) +#endif VOID DeleteNonRecursiveMutex(PNRMUTEX mutex) @@ -98,7 +100,7 @@ /* InterlockedIncrement(&mutex->owned) == 0 means that no thread currently owns the mutex */ if (!wait) { - if (InterlockedCompareExchange((PVOID *)&mutex->owned, (PVOID)0, (PVOID)-1) != (PVOID)-1) + if (InterlockedCompareExchange(&mutex->owned, 0, -1) != -1) return WAIT_TIMEOUT ; ret = WAIT_OBJECT_0 ; } @@ -202,12 +204,12 @@ * too many threads". */ dprintf(("%ld: PyThread_start_new_thread failed: %p errno %d\n", - PyThread_get_thread_ident(), rv, errno)); + PyThread_get_thread_ident(), (void*)rv, errno)); obj.id = -1; } else { dprintf(("%ld: PyThread_start_new_thread succeeded: %p\n", - PyThread_get_thread_ident(), rv)); + PyThread_get_thread_ident(), (void*)rv)); /* wait for thread to initialize, so we can get its id */ WaitForSingleObject(obj.done, INFINITE); assert(obj.id != -1); @@ -333,7 +335,7 @@ dprintf(("%ld: PyThread_release_lock(%p) called\n", PyThread_get_thread_ident(),aLock)); if (!(aLock && LeaveNonRecursiveMutex((PNRMUTEX) aLock))) - dprintf(("%ld: Could not PyThread_release_lock(%p) error: %l\n", PyThread_get_thread_ident(), aLock, GetLastError())); + dprintf(("%ld: Could not PyThread_release_lock(%p) error: %ld\n", PyThread_get_thread_ident(), aLock, GetLastError())); } /* minimum/maximum thread stack sizes supported */ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins