From tismer at centera.de Tue Dec 20 17:48:49 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 17:48:49 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/PCbuild bz2.vcproj, 1.2, 1.3 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/PCbuild In directory centera.de:/tmp/cvs-serv23351/src/2.3/dev/PCbuild Modified Files: bz2.vcproj Log Message: small update Index: bz2.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/PCbuild/bz2.vcproj,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** bz2.vcproj 28 Sep 2005 23:52:17 -0000 1.2 --- bz2.vcproj 20 Dec 2005 16:48:46 -0000 1.3 *************** *** 38,42 **** Update of /home/cvs/slpdev/src/2.3/dev/Stackless/core In directory centera.de:/tmp/cvs-serv14910/src/2.3/dev/Stackless/core Modified Files: stackless_tstate.h Log Message: small glitch in non thread build Index: stackless_tstate.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/stackless_tstate.h,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** stackless_tstate.h 20 Dec 2005 13:17:49 -0000 1.52 --- stackless_tstate.h 21 Dec 2005 15:36:25 -0000 1.53 *************** *** 88,93 **** #define STACKLESS_PYSTATE_ZAP __STACKLESS_PYSTATE_ZAP - #undef __STACKLESS_PYSTATE_NEW - #undef __STACKLESS_PYSTATE_ZAP - #endif --- 88,90 ---- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 14:17:51 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 14:17:51 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/PCbuild8 pythoncore.vcproj, 1.1, 1.2 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/PCbuild8 In directory centera.de:/tmp/cvs-serv14441/src/2.3/dev/PCbuild8 Modified Files: pythoncore.vcproj Log Message: ported x64 to Stackless 3.1 . There is still an issue with taskspeed that doesn't finish. Checking against MSVC 7.0 now... Index: pythoncore.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/PCbuild8/pythoncore.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pythoncore.vcproj 20 Dec 2005 11:19:01 -0000 1.1 --- pythoncore.vcproj 20 Dec 2005 13:17:48 -0000 1.2 *************** *** 437,769 **** > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- 437,481 ---- > *************** *** 773,777 **** > ! ! --- 496,501 ---- *************** *** 789,794 **** --- 505,510 ---- *************** *** 798,803 **** --- 514,519 ---- *************** *** 807,845 **** --- 564,569 ---- *************** *** 857,862 **** --- 573,578 ---- *************** *** 866,871 **** --- 582,587 ---- *************** *** 875,883 **** + + ! ! ! ! --- 641,645 ---- Name="VCCustomBuildTool" Description="assembling..." ! CommandLine="ml64 -c -Zi "-Fl$(IntDir)\$(InputName).lst" "-Fo$(IntDir)\$(InputName).obj" "$(InputPath)"" Outputs="$(IntDir)\$(InputName).obj" /> *************** *** 923,927 **** Name="VCCustomBuildTool" Description="assembling..." ! CommandLine="ml64 -c -Zi "-Fl$(IntDir)\$(InputName).lst" "-Fo$(IntDir)\$(InputName).obj" "$(InputPath)" " Outputs="$(IntDir)\$(InputName).obj" /> --- 651,655 ---- Name="VCCustomBuildTool" Description="assembling..." ! CommandLine="ml64 -c -Zi "-Fl$(IntDir)\$(InputName).lst" "-Fo$(IntDir)\$(InputName).obj" "$(InputPath)"" Outputs="$(IntDir)\$(InputName).obj" /> *************** *** 929,941 **** --- 657,669 ---- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Wed Dec 21 15:45:51 2005 From: tismer at centera.de (Christian Tismer) Date: Wed, 21 Dec 2005 15:45:51 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Objects fileobject.c, 1.5, 1.6 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Objects In directory centera.de:/tmp/cvs-serv12535/src/2.3/dev/Objects Modified Files: fileobject.c Log Message: forgot a small patch for fileobjects / VC 8.0 Index: fileobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Objects/fileobject.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** fileobject.c 20 Dec 2005 11:20:20 -0000 1.5 --- fileobject.c 21 Dec 2005 14:45:45 -0000 1.6 *************** *** 223,226 **** --- 223,230 ---- #endif if (NULL == f->f_fp && NULL != name) { + #if defined _MSC_VER && _MSC_VER >= 1400 + if (!verify_mode(mode)) + return NULL; /* c runtime asserts on bad mode, we don't want that. */ + #endif Py_BEGIN_ALLOW_THREADS f->f_fp = fopen(name, mode); _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Thu Dec 15 17:13:49 2005 From: tismer at centera.de (Christian Tismer) Date: Thu, 15 Dec 2005 17:13:49 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/Python modsupport.c, 1.1.1.3, 1.2 pythonrun.c, 1.15, 1.16 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/Python In directory centera.de:/tmp/cvs-serv23941/src/2.3/src/Python Modified Files: modsupport.c pythonrun.c Log Message: adopting good changes/fixes from CCP Index: modsupport.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Python/modsupport.c,v retrieving revision 1.1.1.3 retrieving revision 1.2 diff -C2 -d -r1.1.1.3 -r1.2 *** modsupport.c 8 Jan 2004 22:09:52 -0000 1.1.1.3 --- modsupport.c 15 Dec 2005 16:13:46 -0000 1.2 *************** *** 76,85 **** "module functions cannot set" " METH_CLASS or METH_STATIC"); return NULL; } v = PyCFunction_NewEx(ml, passthrough, n); ! if (v == NULL) return NULL; if (PyDict_SetItemString(d, ml->ml_name, v) != 0) { Py_DECREF(v); return NULL; --- 76,89 ---- "module functions cannot set" " METH_CLASS or METH_STATIC"); + Py_DECREF(n); return NULL; } v = PyCFunction_NewEx(ml, passthrough, n); ! if (v == NULL) { ! Py_DECREF(n); return NULL; + } if (PyDict_SetItemString(d, ml->ml_name, v) != 0) { + Py_DECREF(n); Py_DECREF(v); return NULL; *************** *** 87,90 **** --- 91,95 ---- Py_DECREF(v); } + Py_DECREF(n); //CCP fix, add those decrefs to n } if (doc != NULL) { Index: pythonrun.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Python/pythonrun.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** pythonrun.c 5 Apr 2004 17:17:36 -0000 1.15 --- pythonrun.c 15 Dec 2005 16:13:46 -0000 1.16 *************** *** 1698,1701 **** --- 1698,1705 ---- #else PyOS_sighandler_t handler; + #ifdef _WIN64 /* strict error handling on win64 */ + if (!(sig == SIGABRT || sig == SIGFPE || sig == SIGILL || sig == SIGINT || sig == SIGSEGV || sig == SIGTERM)) + return SIG_ERR; + #endif handler = signal(sig, SIG_IGN); signal(sig, handler); _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 12:19:03 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 12:19:03 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/PCbuild8 .cvsignore, NONE, 1.1 BUILDno.txt, NONE, 1.1 _bsddb.vcproj, NONE, 1.1 _csv.vcproj, NONE, 1.1 _socket.vcproj, NONE, 1.1 _sre.vcproj, NONE, 1.1 _ssl.mak, NONE, 1.1 _ssl.vcproj, NONE, 1.1 _symtable.vcproj, NONE, 1.1 _testcapi.vcproj, NONE, 1.1 _tkinter.vcproj, NONE, 1.1 build_ssl.py, NONE, 1.1 bz2.vcproj, NONE, 1.1 compression.py, NONE, 1.1 cstack.py, NONE, 1.1 datetime.vcproj, NONE, 1.1 installer.bmp, NONE, 1.1 make_versioninfo.vcproj, NONE, 1.1 mapfile.py, NONE, 1.1 mkversion.py, NONE, 1.1 mmap.vcproj, NONE, 1.1 parser.vcproj, NONE, 1.1 pcbuild.sln, NONE, 1.1 publish_binaries.py, NONE, 1.1 pyexpat.vcproj, NONE, 1.1 python.vcproj, NONE, 1.1 pythoncore.vcproj, NONE, 1.1 pythonw.vcproj, NONE, 1.1 readme.txt, NONE, 1.1 rmpyc.py, NONE, 1.1 rt.bat, NONE, 1.1 schedtest.py, NONE, 1.1 select.vcproj, NONE, 1.1 t.py, NONE, 1.1 unicodedata.vcproj, NONE, 1.1 uthread_ccp.py, NONE, 1.1 w9xpopen.vcproj, NONE, 1.1 winreg.vcproj, NONE, 1.1 winsound.vcproj, NONE, 1.1 zlib.vcproj, NONE, 1.1 Message-ID: _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 11:27:04 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 11:27:04 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/PCbuild8 pythoncore.vcproj, 1.2, 1.3 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/PCbuild8 In directory centera.de:/tmp/cvs-serv6379/src/2.3/src/PCbuild8 Modified Files: pythoncore.vcproj Log Message: more complete dependencies Index: pythoncore.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/pythoncore.vcproj,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** pythoncore.vcproj 19 Dec 2005 10:30:15 -0000 1.2 --- pythoncore.vcproj 20 Dec 2005 10:27:01 -0000 1.3 *************** *** 880,883 **** --- 880,907 ---- + + + + + + + + + + + + - - - - - - - - - - - - Update of /home/cvs/slpdev/src/2.3/src/PC In directory centera.de:/tmp/cvs-serv23512/src/2.3/src/PC Modified Files: getpathp.c Log Message: compatibility patches for 64 bit, partially taken from CCP Index: getpathp.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PC/getpathp.c,v retrieving revision 1.1.1.3 retrieving revision 1.2 diff -C2 -d -r1.1.1.3 -r1.2 *** getpathp.c 8 Jan 2004 22:09:50 -0000 1.1.1.3 --- getpathp.c 19 Dec 2005 14:26:41 -0000 1.2 *************** *** 628,633 **** start of the path in question - even if this is one character before the start of the buffer */ ! while (*look != DELIM && look >= module_search_path) look--; nchars = lookEnd-look; --- 628,634 ---- start of the path in question - even if this is one character before the start of the buffer + CCP Change: Fix, so that bound check is before dereferencing! */ ! while (look >= module_search_path && *look != DELIM) look--; nchars = lookEnd-look; _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon Dec 19 11:17:14 2005 From: tismer at centera.de (Christian Tismer) Date: Mon, 19 Dec 2005 11:17:14 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/PCbuild8 python_d_pure.log, 1.1, NONE python_d_pure.tmp, 1.1, NONE Message-ID: Update of /home/cvs/slpdev/src/2.3/src/PCbuild8 In directory centera.de:/tmp/cvs-serv12887/src/2.3/src/PCbuild8 Removed Files: python_d_pure.log python_d_pure.tmp Log Message: cleanup extra files --- python_d_pure.log DELETED --- --- python_d_pure.tmp DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon Dec 19 11:16:13 2005 From: tismer at centera.de (Christian Tismer) Date: Mon, 19 Dec 2005 11:16:13 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/PCbuild8 .cvsignore, NONE, 1.1 BUILDno.txt, NONE, 1.1 _bsddb.vcproj, NONE, 1.1 _csv.vcproj, NONE, 1.1 _socket.vcproj, NONE, 1.1 _sre.vcproj, NONE, 1.1 _ssl.mak, NONE, 1.1 _ssl.vcproj, NONE, 1.1 _symtable.vcproj, NONE, 1.1 _testcapi.vcproj, NONE, 1.1 _tkinter.vcproj, NONE, 1.1 build_ssl.py, NONE, 1.1 bz2.vcproj, NONE, 1.1 compression.py, NONE, 1.1 cstack.py, NONE, 1.1 datetime.vcproj, NONE, 1.1 installer.bmp, NONE, 1.1 make_versioninfo.vcproj, NONE, 1.1 mapfile.py, NONE, 1.1 mkversion.py, NONE, 1.1 mmap.vcproj, NONE, 1.1 parser.vcproj, NONE, 1.1 pcbuild.sln, NONE, 1.1 publish_binaries.py, NONE, 1.1 pyexpat.vcproj, NONE, 1.1 python.vcproj, NONE, 1.1 python_d_pure.log, NONE, 1.1 python_d_pure.tmp, NONE, 1.1 pythoncore.vcproj, NONE, 1.1 pythonw.vcproj, NONE, 1.1 readme.txt, NONE, 1.1 rmpyc.py, NONE, 1.1 rt.bat, NONE, 1.1 schedtest.py, NONE, 1.1 select.vcproj, NONE, 1.1 t.py, NONE, 1.1 unicodedata.vcproj, NONE, 1.1 uthread_ccp.py, NONE, 1.1 w9xpopen.vcproj, NONE, 1.1 winreg.vcproj, NONE, 1.1 winsound.vcproj, NONE, 1.1 zlib.vcproj, NONE, 1.1 Message-ID: _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 12:17:58 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 12:17:58 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/PCbuild8 - New directory, NONE, NONE Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/PCbuild8 In directory centera.de:/tmp/cvs-serv8843/PCbuild8 Log Message: Directory /home/cvs/slpdev/src/2.3/dev/PCbuild8 added to the repository --- NEW FILE: - New directory --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 18:45:55 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 18:45:55 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/PCbuild pcbuild.sln, 1.5, 1.6 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/PCbuild In directory centera.de:/tmp/cvs-serv26413/src/2.3/dev/PCbuild Modified Files: pcbuild.sln Log Message: testbench, again Index: pcbuild.sln =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/PCbuild/pcbuild.sln,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** pcbuild.sln 28 Sep 2005 23:52:17 -0000 1.5 --- pcbuild.sln 20 Dec 2005 17:45:52 -0000 1.6 *************** *** 14,21 **** EndProjectSection EndProject - Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testbench", "..\Stackless\testbench\testbench.vcproj", "{1A51B9C3-9EB5-43DF-BEAD-B93FD3DB8D85}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection - EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{4291AEB8-E892-4AAB-8287-8091D8F1F26F}" ProjectSection(ProjectDependencies) = postProject --- 14,17 ---- *************** *** 54,57 **** --- 50,57 ---- EndProjectSection EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testbench", "..\Stackless\testbench\testbench.vcproj", "{BA1DE273-F3C5-4251-99A5-34C7BFA8AFDC}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection + EndProject Global GlobalSection(SolutionConfiguration) = preSolution *************** *** 79,88 **** {65883DBD-76F2-4829-9020-71B054336B0D}.ReleaseOff.ActiveCfg = Release|Win32 {65883DBD-76F2-4829-9020-71B054336B0D}.ReleaseOff.Build.0 = Release|Win32 - {1A51B9C3-9EB5-43DF-BEAD-B93FD3DB8D85}.Debug.ActiveCfg = Debug|Win32 - {1A51B9C3-9EB5-43DF-BEAD-B93FD3DB8D85}.Debug.Build.0 = Debug|Win32 - {1A51B9C3-9EB5-43DF-BEAD-B93FD3DB8D85}.Release.ActiveCfg = Release|Win32 - {1A51B9C3-9EB5-43DF-BEAD-B93FD3DB8D85}.Release.Build.0 = Release|Win32 - {1A51B9C3-9EB5-43DF-BEAD-B93FD3DB8D85}.ReleaseOff.ActiveCfg = Release|Win32 - {1A51B9C3-9EB5-43DF-BEAD-B93FD3DB8D85}.ReleaseOff.Build.0 = Release|Win32 {4291AEB8-E892-4AAB-8287-8091D8F1F26F}.Debug.ActiveCfg = Debug|Win32 {4291AEB8-E892-4AAB-8287-8091D8F1F26F}.Debug.Build.0 = Debug|Win32 --- 79,82 ---- *************** *** 133,136 **** --- 127,136 ---- {D8A4E92F-9C78-42ED-B3B9-67572E5C2006}.ReleaseOff.ActiveCfg = Release|Win32 {D8A4E92F-9C78-42ED-B3B9-67572E5C2006}.ReleaseOff.Build.0 = Release|Win32 + {BA1DE273-F3C5-4251-99A5-34C7BFA8AFDC}.Debug.ActiveCfg = Debug|Win32 + {BA1DE273-F3C5-4251-99A5-34C7BFA8AFDC}.Debug.Build.0 = Debug|Win32 + {BA1DE273-F3C5-4251-99A5-34C7BFA8AFDC}.Release.ActiveCfg = Release|Win32 + {BA1DE273-F3C5-4251-99A5-34C7BFA8AFDC}.Release.Build.0 = Release|Win32 + {BA1DE273-F3C5-4251-99A5-34C7BFA8AFDC}.ReleaseOff.ActiveCfg = Release|Win32 + {BA1DE273-F3C5-4251-99A5-34C7BFA8AFDC}.ReleaseOff.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 14:17:51 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 14:17:51 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless stackless.h, 1.40, 1.41 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless In directory centera.de:/tmp/cvs-serv14441/src/2.3/dev/Stackless Modified Files: stackless.h Log Message: ported x64 to Stackless 3.1 . There is still an issue with taskspeed that doesn't finish. Checking against MSVC 7.0 now... Index: stackless.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/stackless.h,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** stackless.h 3 May 2004 16:53:39 -0000 1.40 --- stackless.h 20 Dec 2005 13:17:49 -0000 1.41 *************** *** 42,47 **** --- 42,51 ---- #elif defined(MS_WIN32) && !defined(MS_WIN64) && defined(_M_IX86) /* MS Visual Studio on X86 */ + #elif defined(_WIN64) && defined(_M_X64) + /* microsoft on 64 bit x64 thingies */ #elif defined(__GNUC__) && defined(__i386__) /* gcc on X86 */ + #elif defined(__GNUC__) && defined(__amd64__) + /* gcc on AMD64 */ #elif defined(__GNUC__) && defined(__PPC__) && defined(__linux__) /* gcc on PowerPC */ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon Dec 19 15:45:00 2005 From: tismer at centera.de (Christian Tismer) Date: Mon, 19 Dec 2005 15:45:00 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/PCbuild8 make_versioninfo.vcproj, 1.2, 1.3 pcbuild.sln, 1.1, 1.2 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/PCbuild8 In directory centera.de:/tmp/cvs-serv24216/src/2.3/src/PCbuild8 Modified Files: make_versioninfo.vcproj pcbuild.sln Log Message: make make_versioninfo work (should not go into x64) Index: make_versioninfo.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/make_versioninfo.vcproj,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** make_versioninfo.vcproj 19 Dec 2005 10:30:15 -0000 1.2 --- make_versioninfo.vcproj 19 Dec 2005 14:44:57 -0000 1.3 *************** *** 176,180 **** Name="VCLinkerTool" AdditionalDependencies="odbc32.lib odbccp32.lib" ! OutputFile=".\x64/make_versioninfo.exe" LinkIncremental="1" SuppressStartupBanner="true" --- 176,180 ---- Name="VCLinkerTool" AdditionalDependencies="odbc32.lib odbccp32.lib" ! OutputFile="./make_versioninfo.exe" LinkIncremental="1" SuppressStartupBanner="true" *************** *** 369,373 **** Name="VCLinkerTool" AdditionalDependencies="odbc32.lib odbccp32.lib" ! OutputFile="./x64/make_versioninfo_d.exe" LinkIncremental="1" SuppressStartupBanner="true" --- 369,373 ---- Name="VCLinkerTool" AdditionalDependencies="odbc32.lib odbccp32.lib" ! OutputFile="./make_versioninfo_d.exe" LinkIncremental="1" SuppressStartupBanner="true" Index: pcbuild.sln =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/pcbuild.sln,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pcbuild.sln 19 Dec 2005 10:16:10 -0000 1.1 --- pcbuild.sln 19 Dec 2005 14:44:57 -0000 1.2 *************** *** 26,31 **** {B4B91448-2CC0-481F-96FB-DFC044622266} = {B4B91448-2CC0-481F-96FB-DFC044622266} {DF47DB69-C4BE-4C2A-BCC1-10AE37753169} = {DF47DB69-C4BE-4C2A-BCC1-10AE37753169} - {000ADF8D-DE79-4362-B7DD-D00C6A020EF6} = {000ADF8D-DE79-4362-B7DD-D00C6A020EF6} {6FD6EE73-D769-4256-BF3A-1B6E162E509F} = {6FD6EE73-D769-4256-BF3A-1B6E162E509F} EndProjectSection EndProject --- 26,31 ---- {B4B91448-2CC0-481F-96FB-DFC044622266} = {B4B91448-2CC0-481F-96FB-DFC044622266} {DF47DB69-C4BE-4C2A-BCC1-10AE37753169} = {DF47DB69-C4BE-4C2A-BCC1-10AE37753169} {6FD6EE73-D769-4256-BF3A-1B6E162E509F} = {6FD6EE73-D769-4256-BF3A-1B6E162E509F} + {000ADF8D-DE79-4362-B7DD-D00C6A020EF6} = {000ADF8D-DE79-4362-B7DD-D00C6A020EF6} EndProjectSection EndProject *************** *** 267,276 **** {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Debug|Win32.ActiveCfg = Debug|Win32 {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Debug|Win32.Build.0 = Debug|Win32 ! {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Debug|x64.ActiveCfg = Debug|x64 ! {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Debug|x64.Build.0 = Debug|x64 {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Release|Win32.ActiveCfg = Release|Win32 {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Release|Win32.Build.0 = Release|Win32 ! {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Release|x64.ActiveCfg = Release|x64 ! {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Release|x64.Build.0 = Release|x64 {4FFA4C9A-0AC1-42BB-A186-57D25F46941A}.Debug|Win32.ActiveCfg = Debug|Win32 {4FFA4C9A-0AC1-42BB-A186-57D25F46941A}.Debug|Win32.Build.0 = Debug|Win32 --- 267,274 ---- {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Debug|Win32.ActiveCfg = Debug|Win32 {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Debug|Win32.Build.0 = Debug|Win32 ! {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Debug|x64.ActiveCfg = Debug|Win32 {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Release|Win32.ActiveCfg = Release|Win32 {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Release|Win32.Build.0 = Release|Win32 ! {D523EBFA-C258-4074-A7BA-07A5EDC52685}.Release|x64.ActiveCfg = Release|Win32 {4FFA4C9A-0AC1-42BB-A186-57D25F46941A}.Debug|Win32.ActiveCfg = Debug|Win32 {4FFA4C9A-0AC1-42BB-A186-57D25F46941A}.Debug|Win32.Build.0 = Debug|Win32 _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Thu Dec 15 17:13:49 2005 From: tismer at centera.de (Christian Tismer) Date: Thu, 15 Dec 2005 17:13:49 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src Makefile.pre.in, 1.26, 1.27 Message-ID: Update of /home/cvs/slpdev/src/2.3/src In directory centera.de:/tmp/cvs-serv23941/src/2.3/src Modified Files: Makefile.pre.in Log Message: adopting good changes/fixes from CCP Index: Makefile.pre.in =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Makefile.pre.in,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** Makefile.pre.in 7 Apr 2004 22:59:55 -0000 1.26 --- Makefile.pre.in 15 Dec 2005 16:13:42 -0000 1.27 *************** *** 528,531 **** --- 528,532 ---- Stackless/stackless.h \ Stackless/stacklesseval.h \ + Stackless/stacklessversion.h \ Stackless/stackless_api.h \ Stackless/stackless_frame.h \ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon Dec 19 11:14:00 2005 From: tismer at centera.de (Christian Tismer) Date: Mon, 19 Dec 2005 11:14:00 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/PCbuild8 - New directory, NONE, NONE Message-ID: Update of /home/cvs/slpdev/src/2.3/src/PCbuild8 In directory centera.de:/tmp/cvs-serv12669/PCbuild8 Log Message: Directory /home/cvs/slpdev/src/2.3/src/PCbuild8 added to the repository --- NEW FILE: - New directory --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 18:36:19 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 18:36:19 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/Stackless/testbench testbench.vcproj, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/Stackless/testbench In directory centera.de:/tmp/cvs-serv25658/src/2.3/src/Stackless/testbench Added Files: testbench.vcproj Log Message: explicitlz changed this test project to VC7.2 --- NEW FILE: testbench.vcproj --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 12:20:22 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 12:20:22 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/PC getpathp.c, 1.1.1.3, 1.2 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/PC In directory centera.de:/tmp/cvs-serv9091/src/2.3/dev/PC Modified Files: getpathp.c Log Message: added CCP changes for 64 bit / VC 8.0 compiler Index: getpathp.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/PC/getpathp.c,v retrieving revision 1.1.1.3 retrieving revision 1.2 diff -C2 -d -r1.1.1.3 -r1.2 *** getpathp.c 8 Jan 2004 22:09:50 -0000 1.1.1.3 --- getpathp.c 20 Dec 2005 11:20:20 -0000 1.2 *************** *** 628,633 **** start of the path in question - even if this is one character before the start of the buffer */ ! while (*look != DELIM && look >= module_search_path) look--; nchars = lookEnd-look; --- 628,634 ---- start of the path in question - even if this is one character before the start of the buffer + CCP Change: Fix, so that bound check is before dereferencing! */ ! while (look >= module_search_path && *look != DELIM) look--; nchars = lookEnd-look; _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 14:17:52 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 14:17:52 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/platf slp_platformselect.h, 1.5, 1.6 switch_x86_msvc.h, 1.33, 1.34 switch_amd64_unix.h, NONE, 1.1 switch_x64_masm.asm, NONE, 1.1 switch_x64_msvc.h, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/platf In directory centera.de:/tmp/cvs-serv14441/src/2.3/dev/Stackless/platf Modified Files: slp_platformselect.h switch_x86_msvc.h Added Files: switch_amd64_unix.h switch_x64_masm.asm switch_x64_msvc.h Log Message: ported x64 to Stackless 3.1 . There is still an issue with taskspeed that doesn't finish. Checking against MSVC 7.0 now... Index: slp_platformselect.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/platf/slp_platformselect.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** slp_platformselect.h 24 May 2004 01:40:17 -0000 1.5 --- slp_platformselect.h 20 Dec 2005 13:17:49 -0000 1.6 *************** *** 5,10 **** --- 5,14 ---- #if defined(MS_WIN32) && !defined(MS_WIN64) && defined(_M_IX86) #include "switch_x86_msvc.h" /* MS Visual Studio on X86 */ + #elif defined(MS_WIN64) && defined(_M_X64) + #include "switch_x64_msvc.h" /* MS Visual Studio on X64 */ #elif defined(__GNUC__) && defined(__i386__) #include "switch_x86_unix.h" /* gcc on X86 */ + #elif defined(__GNUC__) && defined(__amd64__) + #include "switch_amd64_unix.h" /* gcc on amd64 */ #elif defined(__GNUC__) && defined(__PPC__) && defined(__linux__) #include "switch_ppc_unix.h" /* gcc on PowerPC */ Index: switch_x86_msvc.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/platf/switch_x86_msvc.h,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** switch_x86_msvc.h 12 Jul 2004 18:56:55 -0000 1.33 --- switch_x86_msvc.h 20 Dec 2005 13:17:49 -0000 1.34 *************** *** 35,38 **** --- 35,40 ---- #define STACK_MAGIC 0 + #pragma optimize("", off) + static int slp_switch(void) --- NEW FILE: switch_amd64_unix.h --- /* * this is the internal transfer function. * * HISTORY * 01-Apr-04 Hye-Shik Chang * Ported from i386 to amd64. * 24-Nov-02 Christian Tismer * needed to add another magic constant to insure * that f in slp_eval_frame(PyFrameObject *f) * STACK_REFPLUS will probably be 1 in most cases. * gets included into the saved stack area. * 17-Sep-02 Christian Tismer * after virtualizing stack save/restore, the * stack size shrunk a bit. Needed to introduce * an adjustment STACK_MAGIC per platform. * 15-Sep-02 Gerd Woetzel * slightly changed framework for spark * 31-Avr-02 Armin Rigo * Added ebx, esi and edi register-saves. * 01-Mar-02 Samual M. Rushing * Ported from i386. */ #define STACK_REFPLUS 1 #ifdef SLP_EVAL /* #define STACK_MAGIC 3 */ /* the above works fine with gcc 2.96, but 2.95.3 wants this */ #define STACK_MAGIC 0 #define REGS_TO_SAVE "rdx", "rbx", "r12", "r13", "r14", "r15" static int slp_switch(void) { register long *stackref, stsizediff; __asm__ volatile ("" : : : REGS_TO_SAVE); __asm__ ("movq %%rsp, %0" : "=g" (stackref)); { SLP_SAVE_STATE(stackref, stsizediff); __asm__ volatile ( "addq %0, %%rsp\n" "addq %0, %%rbp\n" : : "r" (stsizediff) ); SLP_RESTORE_STATE(); return 0; } __asm__ volatile ("" : : : REGS_TO_SAVE); } #endif /* * further self-processing support */ /* * if you want to add self-inspection tools, place them * here. See the x86_msvc for the necessary defines. * These features are highly experimental und not * essential yet. */ --- NEW FILE: switch_x64_masm.asm --- ; ; stack switching code for MASM on x641 ; Kristjan Valur Jonsson, sept 2005 ; ;prototypes for our calls slp_save_state PROTO slp_restore_state PROTO pushxmm MACRO reg sub rsp, 16 .allocstack 16 movaps [rsp], reg ; faster than movups, but we must be aligned ; .savexmm128 reg, offset (don't know what offset is, no documentation) ENDM popxmm MACRO reg movaps reg, [rsp] ; faster than movups, but we must be aligned add rsp, 16 ENDM pushreg MACRO reg push reg .pushreg reg ENDM popreg MACRO reg pop reg ENDM .code slp_switch PROC FRAME ;realign stack to 16 bytes after return address push, makes the following faster sub rsp,8 .allocstack 8 pushxmm xmm15 pushxmm xmm14 pushxmm xmm13 pushxmm xmm12 pushxmm xmm11 pushxmm xmm10 pushxmm xmm9 pushxmm xmm8 pushxmm xmm7 pushxmm xmm6 pushreg r15 pushreg r14 pushreg r13 pushreg r12 pushreg rbp pushreg rbx pushreg rdi pushreg rsi sub rsp, 10h ;allocate the singlefunction argument (must be multiple of 16) .allocstack 10h .endprolog lea rcx, [rsp+10h] ;load stack base that we are saving call slp_save_state ;pass stackpointer, return offset in eax test rax, 1 ; an odd value means that we don't restore jnz NORESTORE ;actual stack switch: add rsp, rax call slp_restore_state xor rax, rax ;return 0 EXIT: add rsp, 10h popreg rsi popreg rdi popreg rbx popreg rbp popreg r12 popreg r13 popreg r14 popreg r15 popxmm xmm6 popxmm xmm7 popxmm xmm8 popxmm xmm9 popxmm xmm10 popxmm xmm11 popxmm xmm12 popxmm xmm13 popxmm xmm14 popxmm xmm15 add rsp, 8 ret NORESTORE: sar rax, 1 ; return value is -1 for error jmp EXIT slp_switch ENDP END --- NEW FILE: switch_x64_msvc.h --- /* * this is the internal transfer function. * * HISTORY * 24-Nov-02 Christian Tismer * needed to add another magic constant to insure * that f in slp_eval_frame(PyFrameObject *f) * STACK_REFPLUS will probably be 1 in most cases. * gets included into the saved stack area. * 26-Sep-02 Christian Tismer * again as a result of virtualized stack access, * the compiler used less registers. Needed to * explicit mention registers in order to get them saved. * Thanks to Jeff Senn for pointing this out and help. * 17-Sep-02 Christian Tismer * after virtualizing stack save/restore, the * stack size shrunk a bit. Needed to introduce * an adjustment STACK_MAGIC per platform. * 15-Sep-02 Gerd Woetzel * slightly changed framework for sparc * 01-Mar-02 Christian Tismer * Initial final version after lots of iterations for i386. */ #define alloca _alloca #define STACK_REFPLUS 1 #ifdef SLP_EVAL #define STACK_MAGIC 0 extern int slp_switch(void); /* defined in masm assembler */ /* These two are called from the assembler module */ SSIZE_T slp_save_state(intptr_t *ref) { SSIZE_T diff; SLP_SAVE_STATE(ref, diff); return diff; } void slp_restore_state(void) { SLP_RESTORE_STATE(); } #endif /* * further self-processing support */ /* we have IsBadReadPtr available, so we can peek at objects */ #define STACKLESS_SPY #ifdef IMPLEMENT_STACKLESSMODULE #include "Windows.h" #define CANNOT_READ_MEM(p, bytes) IsBadReadPtr(p, bytes) static int IS_ON_STACK(void*p) { int stackref; intptr_t stackbase = ((intptr_t)&stackref) & 0xfffff000; return (intptr_t)p >= stackbase && (intptr_t)p < stackbase + 0x00100000; } #endif _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 14:17:52 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 14:17:52 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/pickling safe_pickle.c, 1.7, 1.8 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/pickling In directory centera.de:/tmp/cvs-serv14441/src/2.3/dev/Stackless/pickling Modified Files: safe_pickle.c Log Message: ported x64 to Stackless 3.1 . There is still an issue with taskspeed that doesn't finish. Checking against MSVC 7.0 now... Index: safe_pickle.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/pickling/safe_pickle.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** safe_pickle.c 24 May 2004 17:42:14 -0000 1.7 --- safe_pickle.c 20 Dec 2005 13:17:49 -0000 1.8 *************** *** 99,103 **** _args = args; _pers_save = pers_save; ! ts->st.cstack_root = STACK_REFPLUS + (int*) &self; ret = slp_int_wrapper(slp_eval_frame((PyFrameObject *)cf)); return ret; --- 99,103 ---- _args = args; _pers_save = pers_save; ! ts->st.cstack_root = STACK_REFPLUS + (intptr_t *) &self; ret = slp_int_wrapper(slp_eval_frame((PyFrameObject *)cf)); return ret; _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon Dec 19 11:33:04 2005 From: tismer at centera.de (Christian Tismer) Date: Mon, 19 Dec 2005 11:33:04 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/Python pythonrun.c, 1.16, 1.17 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/Python In directory centera.de:/tmp/cvs-serv13533/src/2.3/src/Python Modified Files: pythonrun.c Log Message: added support for 64 bit amd processors. The unix version is from Hye-Chik Chang (thanks, sorry for waiting so long, not tested) The windows version is from CCPgames (thanks Kristjan), with some corrections from me. Index: pythonrun.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Python/pythonrun.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** pythonrun.c 15 Dec 2005 16:13:46 -0000 1.16 --- pythonrun.c 19 Dec 2005 10:33:02 -0000 1.17 *************** *** 1698,1702 **** #else PyOS_sighandler_t handler; ! #ifdef _WIN64 /* strict error handling on win64 */ if (!(sig == SIGABRT || sig == SIGFPE || sig == SIGILL || sig == SIGINT || sig == SIGSEGV || sig == SIGTERM)) return SIG_ERR; --- 1698,1702 ---- #else PyOS_sighandler_t handler; ! #if (_MSC_VER >= 1400) /* strict error handling on VC8.0 */ if (!(sig == SIGABRT || sig == SIGFPE || sig == SIGILL || sig == SIGINT || sig == SIGSEGV || sig == SIGTERM)) return SIG_ERR; _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 12:20:22 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 12:20:22 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Python modsupport.c, 1.1.1.3, 1.2 pythonrun.c, 1.23, 1.24 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Python In directory centera.de:/tmp/cvs-serv9091/src/2.3/dev/Python Modified Files: modsupport.c pythonrun.c Log Message: added CCP changes for 64 bit / VC 8.0 compiler Index: modsupport.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Python/modsupport.c,v retrieving revision 1.1.1.3 retrieving revision 1.2 diff -C2 -d -r1.1.1.3 -r1.2 *** modsupport.c 8 Jan 2004 22:09:52 -0000 1.1.1.3 --- modsupport.c 20 Dec 2005 11:20:20 -0000 1.2 *************** *** 76,85 **** "module functions cannot set" " METH_CLASS or METH_STATIC"); return NULL; } v = PyCFunction_NewEx(ml, passthrough, n); ! if (v == NULL) return NULL; if (PyDict_SetItemString(d, ml->ml_name, v) != 0) { Py_DECREF(v); return NULL; --- 76,89 ---- "module functions cannot set" " METH_CLASS or METH_STATIC"); + Py_DECREF(n); return NULL; } v = PyCFunction_NewEx(ml, passthrough, n); ! if (v == NULL) { ! Py_DECREF(n); return NULL; + } if (PyDict_SetItemString(d, ml->ml_name, v) != 0) { + Py_DECREF(n); Py_DECREF(v); return NULL; *************** *** 87,90 **** --- 91,95 ---- Py_DECREF(v); } + Py_DECREF(n); //CCP fix, add those decrefs to n } if (doc != NULL) { Index: pythonrun.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Python/pythonrun.c,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** pythonrun.c 6 Jun 2004 15:04:41 -0000 1.23 --- pythonrun.c 20 Dec 2005 11:20:20 -0000 1.24 *************** *** 1699,1702 **** --- 1699,1706 ---- #else PyOS_sighandler_t handler; + #if (_MSC_VER >= 1400) /* strict error handling on VC8.0 */ + if (!(sig == SIGABRT || sig == SIGFPE || sig == SIGILL || sig == SIGINT || sig == SIGSEGV || sig == SIGTERM)) + return SIG_ERR; + #endif handler = signal(sig, SIG_IGN); signal(sig, handler); _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 14:17:52 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 14:17:52 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/core slp_transfer.c, 1.28, 1.29 stackless_impl.h, 1.97, 1.98 stackless_structs.h, 1.67, 1.68 stackless_tstate.h, 1.51, 1.52 stacklesseval.c, 1.165, 1.166 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/core In directory centera.de:/tmp/cvs-serv14441/src/2.3/dev/Stackless/core Modified Files: slp_transfer.c stackless_impl.h stackless_structs.h stackless_tstate.h stacklesseval.c Log Message: ported x64 to Stackless 3.1 . There is still an issue with taskspeed that doesn't finish. Checking against MSVC 7.0 now... Index: slp_transfer.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/slp_transfer.c,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** slp_transfer.c 18 Jul 2004 23:20:12 -0000 1.28 --- slp_transfer.c 20 Dec 2005 13:17:49 -0000 1.29 *************** *** 23,39 **** static PyTaskletObject *_prev; #define SLP_SAVE_STATE(stackref, stsizediff) \ ! int stsizeb; \ ! \ stackref += STACK_MAGIC; \ if (_cstprev != NULL) { \ ! if (slp_cstack_new(_cstprev, stackref, _prev) == NULL) \ ! return -1; \ stsizeb = slp_cstack_save(*_cstprev); \ } \ else \ ! stsizeb = (_cst->startaddr - stackref) * sizeof(int*); \ ! if (_cst == NULL) return 0; \ ! stsizediff = stsizeb - (_cst->ob_size * sizeof(int*)); #define SLP_RESTORE_STATE() \ --- 23,39 ---- static PyTaskletObject *_prev; + #define __return(x) return (x) + #define SLP_SAVE_STATE(stackref, stsizediff) \ ! intptr_t stsizeb; \ stackref += STACK_MAGIC; \ if (_cstprev != NULL) { \ ! if (slp_cstack_new(_cstprev, stackref, _prev) == NULL) __return(-1); \ stsizeb = slp_cstack_save(*_cstprev); \ } \ else \ ! stsizeb = (_cst->startaddr - stackref) * sizeof(intptr_t); \ ! if (_cst == NULL) __return(0); \ ! stsizediff = stsizeb - (_cst->ob_size * sizeof(intptr_t)); #define SLP_RESTORE_STATE() \ *************** *** 42,49 **** --- 42,76 ---- } + // #define USE_MASM // CCP addition, define to use masm code + #ifdef USE_MASM + //ccp addition: make these functions, to be called from assembler + #define STACK_MAGIC 0 + + #undef __return + #define __return(x) exitcode = x; goto exit; + + int slp_save_state(intptr_t *stack){ + int exitcode; + SSIZE_T diff; + SLP_SAVE_STATE(stack, diff); + return diff; + exit: + /* hack: flag a problem by setting the value to odd */ + return exitcode | 1; + } + + void slp_restore_state(void){ + SLP_RESTORE_STATE(); + } + + extern int slp_switch(void); + + #else #define SLP_EVAL #include "platf/slp_platformselect.h" + #endif + static int climb_stack_and_transfer(PyCStackObject **cstprev, PyCStackObject *cst, *************** *** 57,67 **** */ PyThreadState *ts = PyThreadState_GET(); ! int probe; ! int needed = &probe - ts->st.cstack_base; ! /* in rare cases, the need might have vanished due to the recursion */ ! int * goobledigoobs; if (needed > 0) { ! goobledigoobs = alloca(needed * sizeof(int)); if (goobledigoobs == NULL) return -1; --- 84,93 ---- */ PyThreadState *ts = PyThreadState_GET(); ! 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; if (needed > 0) { ! goobledigoobs = alloca(needed * sizeof(intptr_t)); if (goobledigoobs == NULL) return -1; *************** *** 79,83 **** STACKLESS_ASSERT(); ! if ((int*) &ts > ts->st.cstack_base) return climb_stack_and_transfer(cstprev, cst, prev); if (cst == NULL || cst->ob_size == 0) --- 105,109 ---- STACKLESS_ASSERT(); ! if ((intptr_t *) &ts > ts->st.cstack_base) return climb_stack_and_transfer(cstprev, cst, prev); if (cst == NULL || cst->ob_size == 0) *************** *** 143,146 **** --- 169,174 ---- } + #if 0 + /* disabled by now. Also need support for x64 asm file... */ #include "platf/slp_switch_stack.h" *************** *** 151,154 **** --- 179,183 ---- return slp_switch_stack(); } + #endif #endif Index: stackless_impl.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/stackless_impl.h,v retrieving revision 1.97 retrieving revision 1.98 diff -C2 -d -r1.97 -r1.98 *** stackless_impl.h 28 Sep 2005 23:52:17 -0000 1.97 --- stackless_impl.h 20 Dec 2005 13:17:49 -0000 1.98 *************** *** 41,45 **** int *stackref, PyTaskletObject *task); ! PyAPI_FUNC(int) slp_cstack_save(PyCStackObject *cstprev); PyAPI_FUNC(void) slp_cstack_restore(PyCStackObject *cst); --- 41,45 ---- int *stackref, PyTaskletObject *task); ! PyAPI_FUNC(size_t) slp_cstack_save(PyCStackObject *cstprev); PyAPI_FUNC(void) slp_cstack_restore(PyCStackObject *cst); Index: stackless_structs.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/stackless_structs.h,v retrieving revision 1.67 retrieving revision 1.68 diff -C2 -d -r1.67 -r1.68 *** stackless_structs.h 19 Jan 2005 19:02:30 -0000 1.67 --- stackless_structs.h 20 Dec 2005 13:17:49 -0000 1.68 *************** *** 100,105 **** int nesting_level; PyThreadState *tstate; ! int *startaddr; ! int *stack[1]; } PyCStackObject; --- 100,105 ---- int nesting_level; PyThreadState *tstate; ! intptr_t *startaddr; ! intptr_t stack[1]; } PyCStackObject; Index: stackless_tstate.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/stackless_tstate.h,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** stackless_tstate.h 24 May 2004 01:01:20 -0000 1.51 --- stackless_tstate.h 20 Dec 2005 13:17:49 -0000 1.52 *************** *** 13,19 **** #endif /* the base address for hijacking stacks. XXX deprecating */ ! int *cstack_base; /* stack overflow check and init flag */ ! int *cstack_root; /* main tasklet */ struct _tasklet *main; --- 13,19 ---- #endif /* the base address for hijacking stacks. XXX deprecating */ ! intptr_t *cstack_base; /* stack overflow check and init flag */ ! intptr_t *cstack_root; /* main tasklet */ struct _tasklet *main; Index: stacklesseval.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/stacklesseval.c,v retrieving revision 1.165 retrieving revision 1.166 diff -C2 -d -r1.165 -r1.166 *** stacklesseval.c 19 Jan 2005 19:02:30 -0000 1.165 --- stacklesseval.c 20 Dec 2005 13:17:49 -0000 1.166 *************** *** 74,78 **** if (cstack_cachecount >= CSTACK_MAXCACHE) slp_cstack_cacheclear(); ! cst->startaddr = (int *) cstack_cache[cst->ob_size]; cstack_cache[cst->ob_size] = cst; ++cstack_cachecount; --- 74,78 ---- if (cstack_cachecount >= CSTACK_MAXCACHE) slp_cstack_cacheclear(); ! cst->startaddr = (intptr_t *) cstack_cache[cst->ob_size]; cstack_cache[cst->ob_size] = cst; ++cstack_cachecount; *************** *** 82,90 **** PyCStackObject * ! slp_cstack_new(PyCStackObject **cst, int *stackref, PyTaskletObject *task) { PyThreadState *ts = PyThreadState_GET(); ! int *stackbase = ts->st.cstack_base; ! int size = stackbase - stackref; assert(size >= 0); --- 82,90 ---- PyCStackObject * ! slp_cstack_new(PyCStackObject **cst, intptr_t *stackref, PyTaskletObject *task) { PyThreadState *ts = PyThreadState_GET(); ! intptr_t *stackbase = ts->st.cstack_base; ! ptrdiff_t size = stackbase - stackref; assert(size >= 0); *************** *** 115,122 **** } ! int slp_cstack_save(PyCStackObject *cstprev) { ! int stsizeb = (cstprev)->ob_size * sizeof(int*); memcpy((cstprev)->stack, (cstprev)->startaddr - --- 115,122 ---- } ! size_t slp_cstack_save(PyCStackObject *cstprev) { ! size_t stsizeb = (cstprev)->ob_size * sizeof(intptr_t); memcpy((cstprev)->stack, (cstprev)->startaddr - *************** *** 132,136 **** cst->task = NULL; memcpy(cst->startaddr - cst->ob_size, &cst->stack, ! (cst->ob_size) * sizeof(int*)); } --- 132,136 ---- cst->task = NULL; memcpy(cst->startaddr - cst->ob_size, &cst->stack, ! (cst->ob_size) * sizeof(intptr_t)); } *************** *** 237,247 **** */ PyThreadState *ts = PyThreadState_GET(); ! int probe; ! int needed = &probe - ts->st.cstack_base; /* in rare cases, the need might have vanished due to the recursion */ ! int * goobledigoobs; ! if (needed > 0) { ! goobledigoobs = alloca(needed * sizeof(int)); if (goobledigoobs == NULL) return NULL; --- 237,246 ---- */ PyThreadState *ts = PyThreadState_GET(); ! 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; if (needed > 0) { ! goobledigoobs = alloca(needed * sizeof(intptr_t)); if (goobledigoobs == NULL) return NULL; *************** *** 256,260 **** PyThreadState *ts = PyThreadState_GET(); PyFrameObject *fprev = f->f_back; ! int * stackref; if (fprev == NULL && ts->st.main == NULL) { --- 255,259 ---- PyThreadState *ts = PyThreadState_GET(); PyFrameObject *fprev = f->f_back; ! intptr_t * stackref; if (fprev == NULL && ts->st.main == NULL) { *************** *** 271,277 **** */ ! stackref = STACK_REFPLUS + (int*) &f; if (ts->st.cstack_base == NULL) ! ts->st.cstack_base = stackref-CSTACK_GOODGAP; if (stackref > ts->st.cstack_base) return climb_stack_and_eval_frame(f); --- 270,276 ---- */ ! stackref = STACK_REFPLUS + (intptr_t *) &f; if (ts->st.cstack_base == NULL) ! ts->st.cstack_base = stackref - CSTACK_GOODGAP; if (stackref > ts->st.cstack_base) return climb_stack_and_eval_frame(f); *************** *** 369,373 **** if (ts->st.cstack_root == NULL) { /* this is a toplevel call */ ! ts->st.cstack_root = STACK_REFPLUS + (int*) &f; retval = PyEval_EvalFrame(f, retval); return retval; --- 368,372 ---- if (ts->st.cstack_root == NULL) { /* this is a toplevel call */ ! ts->st.cstack_root = STACK_REFPLUS + (intptr_t *) &f; retval = PyEval_EvalFrame(f, retval); return retval; _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon Dec 19 15:26:43 2005 From: tismer at centera.de (Christian Tismer) Date: Mon, 19 Dec 2005 15:26:43 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/Stackless slp_transfer.c, 1.18, 1.19 stackless_impl.h, 1.78, 1.79 stackless_version.h, 1.42, 1.43 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/Stackless In directory centera.de:/tmp/cvs-serv23512/src/2.3/src/Stackless Modified Files: slp_transfer.c stackless_impl.h stackless_version.h Log Message: compatibility patches for 64 bit, partially taken from CCP Index: slp_transfer.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/slp_transfer.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** slp_transfer.c 19 Dec 2005 10:33:02 -0000 1.18 --- slp_transfer.c 19 Dec 2005 14:26:41 -0000 1.19 *************** *** 51,55 **** #define __return(x) exitcode = x; goto exit; ! int slp_save_state(int *stack){ int exitcode; SSIZE_T diff; --- 51,55 ---- #define __return(x) exitcode = x; goto exit; ! int slp_save_state(intptr_t *stack){ int exitcode; SSIZE_T diff; Index: stackless_impl.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/stackless_impl.h,v retrieving revision 1.78 retrieving revision 1.79 diff -C2 -d -r1.78 -r1.79 *** stackless_impl.h 19 Dec 2005 10:33:02 -0000 1.78 --- stackless_impl.h 19 Dec 2005 14:26:41 -0000 1.79 *************** *** 40,44 **** PyAPI_DATA(int) slp_try_stackless; ! PyAPI_FUNC(PyCStackObject *) slp_cstack_new(PyCStackObject **cst, int *stackref, PyTaskletObject *task); PyAPI_FUNC(size_t) slp_cstack_save(PyCStackObject *cstprev); PyAPI_FUNC(void) slp_cstack_restore(PyCStackObject *cst); --- 40,44 ---- PyAPI_DATA(int) slp_try_stackless; ! PyAPI_FUNC(PyCStackObject *) slp_cstack_new(PyCStackObject **cst, intptr_t *stackref, PyTaskletObject *task); PyAPI_FUNC(size_t) slp_cstack_save(PyCStackObject *cstprev); PyAPI_FUNC(void) slp_cstack_restore(PyCStackObject *cst); Index: stackless_version.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/stackless_version.h,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** stackless_version.h 19 Dec 2005 10:33:02 -0000 1.42 --- stackless_version.h 19 Dec 2005 14:26:41 -0000 1.43 *************** *** 1,7 **** /* * Stackless Python version string ! * created at Thu Dec 15 22:44:12 2005 by mkversion.py */ /* keep this entry up-to-date */ ! #define STACKLESS_VERSION "3.0 051215" --- 1,7 ---- /* * Stackless Python version string ! * created at Mon Dec 19 12:38:20 2005 by mkversion.py */ /* keep this entry up-to-date */ ! #define STACKLESS_VERSION "3.0 051219" _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 12:20:22 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 12:20:22 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Modules posixmodule.c, 1.3, 1.4 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Modules In directory centera.de:/tmp/cvs-serv9091/src/2.3/dev/Modules Modified Files: posixmodule.c Log Message: added CCP changes for 64 bit / VC 8.0 compiler Index: posixmodule.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Modules/posixmodule.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** posixmodule.c 14 Jan 2004 19:11:07 -0000 1.3 --- posixmodule.c 20 Dec 2005 11:20:19 -0000 1.4 *************** *** 4028,4032 **** case _O_WRONLY | _O_TEXT: /* Case for writing to child Stdin in text mode. */ ! fd1 = _open_osfhandle((long)hChildStdinWrDup, mode); f1 = _fdopen(fd1, "w"); f = PyFile_FromFile(f1, cmdstring, "w", _PyPclose); --- 4028,4032 ---- case _O_WRONLY | _O_TEXT: /* Case for writing to child Stdin in text mode. */ ! fd1 = _open_osfhandle((intptr_t)hChildStdinWrDup, mode); f1 = _fdopen(fd1, "w"); f = PyFile_FromFile(f1, cmdstring, "w", _PyPclose); *************** *** 4039,4043 **** case _O_RDONLY | _O_TEXT: /* Case for reading from child Stdout in text mode. */ ! fd1 = _open_osfhandle((long)hChildStdoutRdDup, mode); f1 = _fdopen(fd1, "r"); f = PyFile_FromFile(f1, cmdstring, "r", _PyPclose); --- 4039,4043 ---- case _O_RDONLY | _O_TEXT: /* Case for reading from child Stdout in text mode. */ ! fd1 = _open_osfhandle((intptr_t)hChildStdoutRdDup, mode); f1 = _fdopen(fd1, "r"); f = PyFile_FromFile(f1, cmdstring, "r", _PyPclose); *************** *** 4050,4054 **** case _O_RDONLY | _O_BINARY: /* Case for readinig from child Stdout in binary mode. */ ! fd1 = _open_osfhandle((long)hChildStdoutRdDup, mode); f1 = _fdopen(fd1, "rb"); f = PyFile_FromFile(f1, cmdstring, "rb", _PyPclose); --- 4050,4054 ---- case _O_RDONLY | _O_BINARY: /* Case for readinig from child Stdout in binary mode. */ ! fd1 = _open_osfhandle((intptr_t)hChildStdoutRdDup, mode); f1 = _fdopen(fd1, "rb"); f = PyFile_FromFile(f1, cmdstring, "rb", _PyPclose); *************** *** 4061,4065 **** case _O_WRONLY | _O_BINARY: /* Case for writing to child Stdin in binary mode. */ ! fd1 = _open_osfhandle((long)hChildStdinWrDup, mode); f1 = _fdopen(fd1, "wb"); f = PyFile_FromFile(f1, cmdstring, "wb", _PyPclose); --- 4061,4065 ---- case _O_WRONLY | _O_BINARY: /* Case for writing to child Stdin in binary mode. */ ! fd1 = _open_osfhandle((intptr_t)hChildStdinWrDup, mode); f1 = _fdopen(fd1, "wb"); f = PyFile_FromFile(f1, cmdstring, "wb", _PyPclose); *************** *** 4087,4093 **** } ! fd1 = _open_osfhandle((long)hChildStdinWrDup, mode); f1 = _fdopen(fd1, m2); ! fd2 = _open_osfhandle((long)hChildStdoutRdDup, mode); f2 = _fdopen(fd2, m1); p1 = PyFile_FromFile(f1, cmdstring, m2, _PyPclose); --- 4087,4093 ---- } ! fd1 = _open_osfhandle((intptr_t)hChildStdinWrDup, mode); f1 = _fdopen(fd1, m2); ! fd2 = _open_osfhandle((intptr_t)hChildStdoutRdDup, mode); f2 = _fdopen(fd2, m1); p1 = PyFile_FromFile(f1, cmdstring, m2, _PyPclose); *************** *** 4119,4127 **** } ! fd1 = _open_osfhandle((long)hChildStdinWrDup, mode); f1 = _fdopen(fd1, m2); ! fd2 = _open_osfhandle((long)hChildStdoutRdDup, mode); f2 = _fdopen(fd2, m1); ! fd3 = _open_osfhandle((long)hChildStderrRdDup, mode); f3 = _fdopen(fd3, m1); p1 = PyFile_FromFile(f1, cmdstring, m2, _PyPclose); --- 4119,4127 ---- } ! fd1 = _open_osfhandle((intptr_t)hChildStdinWrDup, mode); f1 = _fdopen(fd1, m2); ! fd2 = _open_osfhandle((intptr_t)hChildStdoutRdDup, mode); f2 = _fdopen(fd2, m1); ! fd3 = _open_osfhandle((intptr_t)hChildStderrRdDup, mode); f3 = _fdopen(fd3, m1); p1 = PyFile_FromFile(f1, cmdstring, m2, _PyPclose); _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 18:45:55 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 18:45:55 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/testbench testbench.vcproj, 1.3, 1.4 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/testbench In directory centera.de:/tmp/cvs-serv26413/src/2.3/dev/Stackless/testbench Modified Files: testbench.vcproj Log Message: testbench, again Index: testbench.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/testbench/testbench.vcproj,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** testbench.vcproj 20 Dec 2005 13:17:49 -0000 1.3 --- testbench.vcproj 20 Dec 2005 17:45:53 -0000 1.4 *************** *** 2,18 **** - - ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! --- 97,143 ---- BrowseInformation="1" WarningLevel="3" ! SuppressStartupBanner="TRUE" DebugInformationFormat="1" ! CompileAs="0"/> ! ! *************** *** 211,222 **** --- 215,219 ---- AdditionalIncludeDirectories="" PreprocessorDefinitions="" ! BrowseInformation="1"/> *************** *** 301,323 **** --- 221,238 ---- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 12:20:22 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 12:20:22 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Objects fileobject.c, 1.4, 1.5 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Objects In directory centera.de:/tmp/cvs-serv9091/src/2.3/dev/Objects Modified Files: fileobject.c Log Message: added CCP changes for 64 bit / VC 8.0 compiler Index: fileobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Objects/fileobject.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** fileobject.c 14 Jan 2004 19:11:08 -0000 1.4 --- fileobject.c 20 Dec 2005 11:20:20 -0000 1.5 *************** *** 146,149 **** --- 146,168 ---- } + #if defined _MSC_VER && _MSC_VER>=1400 + int verify_mode(const char *mode) + { + if (!strlen(mode)) return 1; + if (*mode != 'r' && *mode != 'w' && *mode != 'a') + goto ERR; + mode++; + if (*mode == '+') + mode++; + if (*mode == 'b') + mode++; + if (!*mode) + return 2; + ERR: + PyErr_SetString(PyExc_ValueError, "invalid mode"); + return 0; + } + #endif + static PyObject * open_the_file(PyFileObject *f, char *name, char *mode) _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon Dec 19 11:33:04 2005 From: tismer at centera.de (Christian Tismer) Date: Mon, 19 Dec 2005 11:33:04 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/Include pystate.h, 1.9, 1.10 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/Include In directory centera.de:/tmp/cvs-serv13533/src/2.3/src/Include Modified Files: pystate.h Log Message: added support for 64 bit amd processors. The unix version is from Hye-Chik Chang (thanks, sorry for waiting so long, not tested) The windows version is from CCPgames (thanks Kristjan), with some corrections from me. Index: pystate.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Include/pystate.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** pystate.h 14 Jan 2004 19:11:07 -0000 1.9 --- pystate.h 19 Dec 2005 10:33:02 -0000 1.10 *************** *** 6,9 **** --- 6,10 ---- #define Py_PYSTATE_H #ifdef STACKLESS + #include "stackless.h" #include "stackless_tstate.h" #endif _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon Dec 19 15:26:43 2005 From: tismer at centera.de (Christian Tismer) Date: Mon, 19 Dec 2005 15:26:43 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/Modules posixmodule.c, 1.3, 1.4 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/Modules In directory centera.de:/tmp/cvs-serv23512/src/2.3/src/Modules Modified Files: posixmodule.c Log Message: compatibility patches for 64 bit, partially taken from CCP Index: posixmodule.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Modules/posixmodule.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** posixmodule.c 14 Jan 2004 19:11:07 -0000 1.3 --- posixmodule.c 19 Dec 2005 14:26:40 -0000 1.4 *************** *** 4028,4032 **** case _O_WRONLY | _O_TEXT: /* Case for writing to child Stdin in text mode. */ ! fd1 = _open_osfhandle((long)hChildStdinWrDup, mode); f1 = _fdopen(fd1, "w"); f = PyFile_FromFile(f1, cmdstring, "w", _PyPclose); --- 4028,4032 ---- case _O_WRONLY | _O_TEXT: /* Case for writing to child Stdin in text mode. */ ! fd1 = _open_osfhandle((intptr_t)hChildStdinWrDup, mode); f1 = _fdopen(fd1, "w"); f = PyFile_FromFile(f1, cmdstring, "w", _PyPclose); *************** *** 4039,4043 **** case _O_RDONLY | _O_TEXT: /* Case for reading from child Stdout in text mode. */ ! fd1 = _open_osfhandle((long)hChildStdoutRdDup, mode); f1 = _fdopen(fd1, "r"); f = PyFile_FromFile(f1, cmdstring, "r", _PyPclose); --- 4039,4043 ---- case _O_RDONLY | _O_TEXT: /* Case for reading from child Stdout in text mode. */ ! fd1 = _open_osfhandle((intptr_t)hChildStdoutRdDup, mode); f1 = _fdopen(fd1, "r"); f = PyFile_FromFile(f1, cmdstring, "r", _PyPclose); *************** *** 4050,4054 **** case _O_RDONLY | _O_BINARY: /* Case for readinig from child Stdout in binary mode. */ ! fd1 = _open_osfhandle((long)hChildStdoutRdDup, mode); f1 = _fdopen(fd1, "rb"); f = PyFile_FromFile(f1, cmdstring, "rb", _PyPclose); --- 4050,4054 ---- case _O_RDONLY | _O_BINARY: /* Case for readinig from child Stdout in binary mode. */ ! fd1 = _open_osfhandle((intptr_t)hChildStdoutRdDup, mode); f1 = _fdopen(fd1, "rb"); f = PyFile_FromFile(f1, cmdstring, "rb", _PyPclose); *************** *** 4061,4065 **** case _O_WRONLY | _O_BINARY: /* Case for writing to child Stdin in binary mode. */ ! fd1 = _open_osfhandle((long)hChildStdinWrDup, mode); f1 = _fdopen(fd1, "wb"); f = PyFile_FromFile(f1, cmdstring, "wb", _PyPclose); --- 4061,4065 ---- case _O_WRONLY | _O_BINARY: /* Case for writing to child Stdin in binary mode. */ ! fd1 = _open_osfhandle((intptr_t)hChildStdinWrDup, mode); f1 = _fdopen(fd1, "wb"); f = PyFile_FromFile(f1, cmdstring, "wb", _PyPclose); *************** *** 4087,4093 **** } ! fd1 = _open_osfhandle((long)hChildStdinWrDup, mode); f1 = _fdopen(fd1, m2); ! fd2 = _open_osfhandle((long)hChildStdoutRdDup, mode); f2 = _fdopen(fd2, m1); p1 = PyFile_FromFile(f1, cmdstring, m2, _PyPclose); --- 4087,4093 ---- } ! fd1 = _open_osfhandle((intptr_t)hChildStdinWrDup, mode); f1 = _fdopen(fd1, m2); ! fd2 = _open_osfhandle((intptr_t)hChildStdoutRdDup, mode); f2 = _fdopen(fd2, m1); p1 = PyFile_FromFile(f1, cmdstring, m2, _PyPclose); *************** *** 4119,4127 **** } ! fd1 = _open_osfhandle((long)hChildStdinWrDup, mode); f1 = _fdopen(fd1, m2); ! fd2 = _open_osfhandle((long)hChildStdoutRdDup, mode); f2 = _fdopen(fd2, m1); ! fd3 = _open_osfhandle((long)hChildStderrRdDup, mode); f3 = _fdopen(fd3, m1); p1 = PyFile_FromFile(f1, cmdstring, m2, _PyPclose); --- 4119,4127 ---- } ! fd1 = _open_osfhandle((intptr_t)hChildStdinWrDup, mode); f1 = _fdopen(fd1, m2); ! fd2 = _open_osfhandle((intptr_t)hChildStdoutRdDup, mode); f2 = _fdopen(fd2, m1); ! fd3 = _open_osfhandle((intptr_t)hChildStderrRdDup, mode); f3 = _fdopen(fd3, m1); p1 = PyFile_FromFile(f1, cmdstring, m2, _PyPclose); _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 14:17:52 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 14:17:52 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/test taskspeed.py, 1.26, 1.27 test_pickle.py, 1.14, 1.15 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/test In directory centera.de:/tmp/cvs-serv14441/src/2.3/dev/Stackless/test Modified Files: taskspeed.py test_pickle.py Log Message: ported x64 to Stackless 3.1 . There is still an issue with taskspeed that doesn't finish. Checking against MSVC 7.0 now... Index: taskspeed.py =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/test/taskspeed.py,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** taskspeed.py 12 Jul 2004 18:56:55 -0000 1.26 --- taskspeed.py 20 Dec 2005 13:17:49 -0000 1.27 *************** *** 68,73 **** run() diff = clock() - start ! print "took %9.5f seconds, rate = %10d/s" % (diff, long(niter/diff)) ! cleanup() except StacklessError: print "could not run, this is not Stackless" --- 68,75 ---- run() diff = clock() - start ! if diff == 0: ! print 'no timing possible' ! else: ! print "took %9.5f seconds, rate = %10d/s" % (diff, niter/diff) except StacklessError: print "could not run, this is not Stackless" Index: test_pickle.py =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/test/test_pickle.py,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** test_pickle.py 3 May 2004 16:53:39 -0000 1.14 --- test_pickle.py 20 Dec 2005 13:17:49 -0000 1.15 *************** *** 37,41 **** print lev*" " + "leaving", lev+1 ! pickl = pickle print --- 37,43 ---- print lev*" " + "leaving", lev+1 ! pickl = pickle # note that the refcounts are correct with pickle.py ! # but also note that in 2.2, pickle seems broken for extension types ! # which are referencing themselves... print _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Wed Dec 21 15:45:51 2005 From: tismer at centera.de (Christian Tismer) Date: Wed, 21 Dec 2005 15:45:51 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/Objects fileobject.c, 1.5, 1.6 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/Objects In directory centera.de:/tmp/cvs-serv12535/src/2.3/src/Objects Modified Files: fileobject.c Log Message: forgot a small patch for fileobjects / VC 8.0 Index: fileobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Objects/fileobject.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** fileobject.c 19 Dec 2005 14:26:41 -0000 1.5 --- fileobject.c 21 Dec 2005 14:45:48 -0000 1.6 *************** *** 223,226 **** --- 223,230 ---- #endif if (NULL == f->f_fp && NULL != name) { + #if defined _MSC_VER && _MSC_VER >= 1400 + if (!verify_mode(mode)) + return NULL; /* c runtime asserts on bad mode, we don't want that. */ + #endif Py_BEGIN_ALLOW_THREADS f->f_fp = fopen(name, mode); _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Fri Dec 9 19:00:47 2005 From: tismer at centera.de (Christian Tismer) Date: Fri, 09 Dec 2005 19:00:47 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/module channelobject.c, 1.54, 1.55 taskletobject.c, 1.118, 1.119 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/module In directory centera.de:/tmp/cvs-serv13054/src/2.3/dev/Stackless/module Modified Files: channelobject.c taskletobject.c Log Message: updated a false comment on channel.send(): does no longer raise exceptions. This is possible though send_exception, only. Index: channelobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/module/channelobject.c,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** channelobject.c 9 Jul 2004 16:52:24 -0000 1.54 --- channelobject.c 9 Dec 2005 18:00:43 -0000 1.55 *************** *** 364,370 **** the sender will be blocked. Otherwise, the receiver will\n\ be activated immediately, and the sender is put at the end of\n\ ! the runnables list.\n\ ! Note that an exception instance sent will be raised at the receiver\n\ ! (see also channel.send_exception)"; static PyObject * --- 364,368 ---- the sender will be blocked. Otherwise, the receiver will\n\ be activated immediately, and the sender is put at the end of\n\ ! the runnables list."; static PyObject * Index: taskletobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/module/taskletobject.c,v retrieving revision 1.118 retrieving revision 1.119 diff -C2 -d -r1.118 -r1.119 *** taskletobject.c 28 Sep 2005 23:52:17 -0000 1.118 --- taskletobject.c 9 Dec 2005 18:00:43 -0000 1.119 *************** *** 944,948 **** noargs = PyTuple_New(0); STACKLESS_PROMOTE_ALL(); ! ret = impl_tasklet_raise_exception(task, PyExc_TaskletExit, noargs); STACKLESS_ASSERT(); --- 944,948 ---- noargs = PyTuple_New(0); STACKLESS_PROMOTE_ALL(); ! ret = impl_tasklet_raise_exception(task, PyExc_TaskletExit, noargs); STACKLESS_ASSERT(); _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon Dec 19 15:26:43 2005 From: tismer at centera.de (Christian Tismer) Date: Mon, 19 Dec 2005 15:26:43 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/Objects descrobject.c, 1.9, 1.10 fileobject.c, 1.4, 1.5 typeobject.c, 1.12, 1.13 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/Objects In directory centera.de:/tmp/cvs-serv23512/src/2.3/src/Objects Modified Files: descrobject.c fileobject.c typeobject.c Log Message: compatibility patches for 64 bit, partially taken from CCP Index: descrobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Objects/descrobject.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** descrobject.c 5 Apr 2004 17:17:36 -0000 1.9 --- descrobject.c 19 Dec 2005 14:26:41 -0000 1.10 *************** *** 963,969 **** --- 963,977 ---- } + static PyObject * + wrapper_self(wrapperobject *wp) + { + Py_INCREF(wp->self); + return wp->self; + } + static PyGetSetDef wrapper_getsets[] = { {"__name__", (getter)wrapper_name}, {"__doc__", (getter)wrapper_doc}, + {"__self__", (getter)wrapper_self}, {0} }; Index: fileobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Objects/fileobject.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** fileobject.c 14 Jan 2004 19:11:08 -0000 1.4 --- fileobject.c 19 Dec 2005 14:26:41 -0000 1.5 *************** *** 146,149 **** --- 146,168 ---- } + #if defined _MSC_VER && _MSC_VER>=1400 + int verify_mode(const char *mode) + { + if (!strlen(mode)) return 1; + if (*mode != 'r' && *mode != 'w' && *mode != 'a') + goto ERR; + mode++; + if (*mode == '+') + mode++; + if (*mode == 'b') + mode++; + if (!*mode) + return 2; + ERR: + PyErr_SetString(PyExc_ValueError, "invalid mode"); + return 0; + } + #endif + static PyObject * open_the_file(PyFileObject *f, char *name, char *mode) Index: typeobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Objects/typeobject.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** typeobject.c 5 Apr 2004 17:17:36 -0000 1.12 --- typeobject.c 19 Dec 2005 14:26:41 -0000 1.13 *************** *** 5231,5236 **** if (c != 0) return c; ! else ! return a - b; } --- 5231,5241 ---- if (c != 0) return c; ! else { ! /* CCP mod: don't truncate pointer diff */ ! /* return a-b; */ ! if (ab) return 1; ! return 0; ! } } _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon Dec 19 11:30:19 2005 From: tismer at centera.de (Christian Tismer) Date: Mon, 19 Dec 2005 11:30:19 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/PCbuild8 _bsddb.vcproj, 1.1, 1.2 _csv.vcproj, 1.1, 1.2 _socket.vcproj, 1.1, 1.2 _sre.vcproj, 1.1, 1.2 _symtable.vcproj, 1.1, 1.2 _testcapi.vcproj, 1.1, 1.2 _tkinter.vcproj, 1.1, 1.2 bz2.vcproj, 1.1, 1.2 datetime.vcproj, 1.1, 1.2 make_versioninfo.vcproj, 1.1, 1.2 mmap.vcproj, 1.1, 1.2 parser.vcproj, 1.1, 1.2 pyexpat.vcproj, 1.1, 1.2 python.vcproj, 1.1, 1.2 pythoncore.vcproj, 1.1, 1.2 pythonw.vcproj, 1.1, 1.2 readme.txt, 1.1, 1.2 select.vcproj, 1.1, 1.2 unicodedata.vcproj, 1.1, 1.2 w9xpopen.vcproj, 1.1, 1.2 winreg.vcproj, 1.1, 1.2 winsound.vcproj, 1.1, 1.2 zlib.vcproj, 1.1, 1.2 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/PCbuild8 In directory centera.de:/tmp/cvs-serv13399/src/2.3/src/PCbuild8 Modified Files: _bsddb.vcproj _csv.vcproj _socket.vcproj _sre.vcproj _symtable.vcproj _testcapi.vcproj _tkinter.vcproj bz2.vcproj datetime.vcproj make_versioninfo.vcproj mmap.vcproj parser.vcproj pyexpat.vcproj python.vcproj pythoncore.vcproj pythonw.vcproj readme.txt select.vcproj unicodedata.vcproj w9xpopen.vcproj winreg.vcproj winsound.vcproj zlib.vcproj Log Message: minor corrections plus some notes in readme Index: _bsddb.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/_bsddb.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** _bsddb.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- _bsddb.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 154,160 **** RuntimeLibrary="3" PrecompiledHeaderFile=".\x86-temp-debug\_bsddb/_bsddb.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 154,160 ---- RuntimeLibrary="3" PrecompiledHeaderFile=".\x86-temp-debug\_bsddb/_bsddb.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" *************** *** 352,358 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_bsddb/_bsddb.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 352,358 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_bsddb/_bsddb.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: _csv.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/_csv.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** _csv.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- _csv.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 349,355 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_csv/_csv.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 349,355 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_csv/_csv.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: _socket.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/_socket.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** _socket.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- _socket.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 349,355 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_socket/_socket.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 349,355 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_socket/_socket.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: _sre.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/_sre.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** _sre.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- _sre.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 349,355 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_sre/_sre.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 349,355 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_sre/_sre.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: _symtable.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/_symtable.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** _symtable.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- _symtable.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 347,353 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_symtable/_symtable.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 347,353 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_symtable/_symtable.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: _testcapi.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/_testcapi.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** _testcapi.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- _testcapi.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 155,161 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_testcapi/_testcapi.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 155,161 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_testcapi/_testcapi.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: _tkinter.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/_tkinter.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** _tkinter.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- _tkinter.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 158,164 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_tkinter/_tkinter.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 158,164 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\_tkinter/_tkinter.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: bz2.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/bz2.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** bz2.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- bz2.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 353,359 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\bz2/bz2.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 353,359 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\bz2/bz2.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: datetime.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/datetime.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** datetime.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- datetime.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 158,164 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\datetime/datetime.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 158,164 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\datetime/datetime.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: make_versioninfo.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/make_versioninfo.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** make_versioninfo.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- make_versioninfo.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 155,161 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\make_versioninfo/make_versioninfo.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 155,161 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\make_versioninfo/make_versioninfo.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: mmap.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/mmap.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mmap.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- mmap.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 347,353 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\mmap/mmap.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 347,353 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\mmap/mmap.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: parser.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/parser.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** parser.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- parser.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 157,163 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\parser/parser.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 157,163 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\parser/parser.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: pyexpat.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/pyexpat.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pyexpat.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- pyexpat.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 349,355 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\pyexpat/pyexpat.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 349,355 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\pyexpat/pyexpat.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: python.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/python.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** python.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- python.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 151,157 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\python/python.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 151,157 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\python/python.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: pythoncore.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/pythoncore.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pythoncore.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- pythoncore.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 163,169 **** PrecompiledHeaderFile=".\x86-temp-release\pythoncore/pythoncore.pch" AssemblerOutput="2" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 163,169 ---- PrecompiledHeaderFile=".\x86-temp-release\pythoncore/pythoncore.pch" AssemblerOutput="2" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: pythonw.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/pythonw.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pythonw.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- pythonw.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 343,349 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\pythonw/pythonw.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 343,349 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\pythonw/pythonw.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: readme.txt =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/readme.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** readme.txt 19 Dec 2005 10:16:10 -0000 1.1 --- readme.txt 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 1,7 **** ! Building Python using VC++ 6.0 or 5.0 ! ------------------------------------- ! This directory is used to build Python for Win32 platforms, e.g. Windows ! 95, 98 and NT. It requires Microsoft Visual C++ 6.x or 5.x. ! (For other Windows platforms and compilers, see ../PC/readme.txt.) All you need to do is open the workspace "pcbuild.dsw" in MSVC++, select --- 1,6 ---- ! Building Python using VC++ 8.0 ! ------------------------------ ! This directory is used to build Python for Win32 and win64 platforms. ! It requires Microsoft Visual C++ 8.x. All you need to do is open the workspace "pcbuild.dsw" in MSVC++, select *************** *** 9,314 **** and build the projects. ! The proper order to build subprojects: ! ! 1) pythoncore (this builds the main Python DLL and library files, ! python21.{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; see SUBPROJECTS below) ! ! When using the Debug setting, the output files have a _d added to ! their name: python21_d.dll, python_d.exe, parser_d.pyd, and so on. ! ! SUBPROJECTS ! ----------- ! These subprojects should build out of the box. Subprojects other than the ! main ones (pythoncore, python, pythonw) generally build a DLL (renamed to ! .pyd) from a specific module so that users don't have to load the code ! supporting that module unless they import the module. ! ! pythoncore ! .dll and .lib ! python ! .exe ! pythonw ! pythonw.exe, a variant of python.exe that doesn't pop up a DOS box ! _csv ! C support for the comma-separated values module ! _socket ! socketmodule.c ! _sre ! Unicode-aware regular expression engine ! _symtable ! the _symtable module, symtablemodule.c ! _testcapi ! tests of the Python C API, run via Lib/test/test_capi.py, and ! implemented by module Modules/_testcapimodule.c ! datetime ! datetimemodule.c ! mmap ! mmapmodule.c ! parser ! the parser module ! pyexpat ! Python wrapper for accelerated XML parsing, which incorporates stable ! code from the Expat project: http://sourceforge.net/projects/expat/ ! select ! selectmodule.c ! unicodedata ! large tables of Unicode data ! winreg ! Windows registry API ! winsound ! play sounds (typically .wav files) under Windows ! ! The following subprojects will generally NOT build out of the box. They ! wrap code Python doesn't control, and you'll need to download the base ! packages first and unpack them into siblings of PCbuilds's parent ! directory; for example, if your PCbuild is .......\dist\src\PCbuild\, ! unpack into new subdirectories of dist\. ! ! _tkinter ! Python wrapper for the Tk windowing system. Requires building ! Tcl/Tk first. Following are instructions for Tcl/Tk 8.4.3: ! ! Get source ! ---------- ! Go to ! http://prdownloads.sourceforge.net/tcl/ ! and download ! tcl843-src.zip ! tk843-src.zip ! Unzip into ! dist\tcl8.4.3\ ! dist\tk8.4.3\ ! respectively. ! ! Build Tcl first (done here w/ MSVC 6 on Win98SE) ! --------------- ! cd dist\tcl8.4.3\win ! run vcvars32.bat [necessary even on Win2K] ! nmake -f makefile.vc ! nmake -f makefile.vc INSTALLDIR=..\..\tcl84 install ! ! XXX Should we compile with OPTS=threads? ! ! XXX Some tests failed in "nmake -f makefile.vc test". ! XXX all.tcl: Total 10480 Passed 9743 Skipped 719 Failed 18 ! XXX ! XXX That was on Win98SE. On Win2K: ! XXX all.tcl Total 10480 Passed 9781 Skipped 698 Failed 1 ! ! Build Tk ! -------- ! cd dist\tk8.4.3\win ! nmake -f makefile.vc TCLDIR=..\..\tcl8.4.3 ! nmake -f makefile.vc TCLDIR=..\..\tcl8.4.3 INSTALLDIR=..\..\tcl84 install ! ! XXX Should we compile with OPTS=threads? ! ! XXX I have no idea whether "nmake -f makefile.vc test" passed or ! XXX failed. It popped up tons of little windows, and did lots of ! XXX stuff, and nothing blew up. ! ! XXX Our installer copies a lot of stuff out of the Tcl/Tk install ! XXX directory. Is all of that really needed for Python use of Tcl/Tk? ! ! Make sure the installer matches ! ------------------------------- ! Ensure that the Wise compiler vrbl _TCLDIR_ is set to the name of ! the common Tcl/Tk installation directory (tcl84 for the instructions ! above). This is needed so the installer can copy various Tcl/Tk ! files into the Python distribution. ! ! ! zlib ! Python wrapper for the zlib compression library. Get the source code ! for version 1.1.4 from a convenient mirror at: ! http://www.gzip.org/zlib/ ! Unpack into dist\zlib-1.1.4. ! A custom pre-link step in the zlib project settings should manage to ! build zlib-1.1.4\zlib.lib by magic before zlib.pyd (or zlib_d.pyd) is ! linked in PCbuild\. ! However, the zlib project is not smart enough to remove anything under ! zlib-1.1.4\ when you do a clean, so if you want to rebuild zlib.lib ! you need to clean up zlib-1.1.4\ by hand. ! ! bz2 ! Python wrapper for the libbz2 compression library. Homepage ! http://sources.redhat.com/bzip2/ ! Download the source tarball, bzip2-1.0.2.tar.gz. ! Unpack into dist\bzip2-1.0.2. WARNING: If you're using WinZip, you ! must disable its "TAR file smart CR/LF conversion" feature (under ! Options -> Configuration -> Miscellaneous -> Other) for the duration. ! ! Don't bother trying to use libbz2.dsp with MSVC. After 10 minutes ! of fiddling, I couldn't get it to work. Perhaps it works with ! MSVC 5 (I used MSVC 6). It's better to run the by-hand makefile ! anyway, because it runs a helpful test step at the end. ! ! cd into dist\bzip2-1.0.2, and run ! nmake -f makefile.msc ! [Note that if you're running Win9X, you'll need to run vcvars32.bat ! before running nmake (this batch file is in your MSVC installation). ! TODO: make this work like zlib (in particular, MSVC runs the prelink ! step in an enviroment that already has the correct envars set up). ! ] ! The make step shouldn't yield any warnings or errors, and should end ! by displaying 6 blocks each terminated with ! FC: no differences encountered ! If FC finds differences, see the warning abou WinZip above (when I ! first tried it, sample3.ref failed due to CRLF conversion). ! ! All of this managed to build bzip2-1.0.2\libbz2.lib, which the Python ! project links in. ! ! ! _bsddb ! Go to Sleepycat's download page: ! http://www.sleepycat.com/download/ ! ! and download version 4.1.25. The file name is db-4.1.25.NC.zip. ! XXX with or without strong cryptography? I picked "without". ! ! Unpack into ! dist\db-4.1.25 ! ! [If using WinZip to unpack the db-4.1.25.NC distro, that requires ! renaming the directory (to remove ".NC") after unpacking. ! ] ! ! Open ! dist\db-4.1.25\docs\index.html ! ! and follow the Windows instructions for building the Sleepycat ! software. Note that Berkeley_DB.dsw is in the build_win32 subdirectory. ! Build the Release version ("build_all -- Win32 Release"). ! ! XXX We're actually linking against Release_static\libdb41s.lib. ! XXX This yields the following warnings: ! """ ! Compiling... ! _bsddb.c ! Linking... ! Creating library ./_bsddb.lib and object ./_bsddb.exp ! LINK : warning LNK4049: locally defined symbol "_malloc" imported ! LINK : warning LNK4049: locally defined symbol "_free" imported ! LINK : warning LNK4049: locally defined symbol "_fclose" imported ! LINK : warning LNK4049: locally defined symbol "_fopen" imported ! _bsddb.pyd - 0 error(s), 4 warning(s) ! """ ! XXX This isn't encouraging, but I don't know what to do about it. ! ! To run extensive tests, pass "-u bsddb" to regrtest.py. test_bsddb3.py ! is then enabled. Running in verbose mode may be helpful. ! ! XXX The test_bsddb3 tests don't always pass, on Windows (according to ! XXX me) or on Linux (according to Barry). I had much better luck ! XXX on Win2K than on Win98SE. The common failure mode across platforms ! XXX is ! XXX DBAgainError: (11, 'Resource temporarily unavailable -- unable ! XXX to join the environment') ! XXX ! XXX and it appears timing-dependent. On Win2K I also saw this once: ! XXX ! XXX test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ... ! XXX Exception in thread reader 1: ! XXX Traceback (most recent call last): ! XXX File "C:\Code\python\lib\threading.py", line 411, in __bootstrap ! XXX self.run() ! XXX File "C:\Code\python\lib\threading.py", line 399, in run ! XXX apply(self.__target, self.__args, self.__kwargs) ! XXX File "C:\Code\python\lib\bsddb\test\test_thread.py", line 268, in ! XXX readerThread ! XXX rec = c.next() ! XXX DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed ! XXX to resolve a deadlock') ! XXX ! XXX I'm told that DBLockDeadlockError is expected at times. It ! XXX doesn't cause a test to fail when it happens (exceptions in ! XXX threads are invisible to unittest). ! ! ! _ssl ! Python wrapper for the secure sockets library. ! ! Get the latest source code for OpenSSL from ! http://www.openssl.org ! ! You (probably) don't want the "engine" code. For example, get ! openssl-0.9.7b.tar.gz ! not ! openssl-engine-0.9.7b.tar.gz ! ! Unpack into the "dist" directory, retaining the folder name from ! the archive - for example, the latest stable OpenSSL will install as ! dist/openssl-0.9.7b ! ! You can (theoretically) use any version of OpenSSL you like - the ! build process will automatically select the latest version. ! ! You must also install ActivePerl from ! http://www.activestate.com/Products/ActivePerl/ ! as this is used by the OpenSSL build process. Complain to them . ! ! The MSVC project simply invokes PCBuild/build_ssl.py to perform ! the build. This Python script locates and builds your OpenSSL ! installation, then invokes a simple makefile to build the final .pyd. ! ! Win9x users: see "Win9x note" below. ! ! build_ssl.py attempts to catch the most common errors (such as not ! being able to find OpenSSL sources, or not being able to find a Perl ! that works with OpenSSL) and give a reasonable error message. ! If you have a problem that doesn't seem to be handled correctly ! (eg, you know you have ActivePerl but we can't find it), please take ! a peek at build_ssl.py and suggest patches. Note that build_ssl.py ! should be able to be run directly from the command-line. ! ! build_ssl.py/MSVC isn't clever enough to clean OpenSSL - you must do ! this by hand. ! ! Win9x note: If, near the start of the build process, you see ! something like ! ! C:\Code\openssl-0.9.7b>set OPTS=no-asm ! Out of environment space ! ! then you're in trouble, and will probably also see these errors near ! the end of the process: ! ! NMAKE : fatal error U1073: don't know how to make ! 'crypto\md5\asm\m5_win32.asm' ! Stop. ! NMAKE : fatal error U1073: don't know how to make ! 'C:\Code\openssl-0.9.7b/out32/libeay32.lib' ! Stop. ! ! You need more environment space. Win9x only has room for 256 bytes ! by default, and especially after installing ActivePerl (which fiddles ! the PATH envar), you're likely to run out. KB Q230205 ! ! http://support.microsoft.com/default.aspx?scid=KB;en-us;q230205 ! ! explains how to edit CONFIG.SYS to cure this. ! ! ! 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. ! ! HTML Help ! --------- ! The compiled HTML help file is built from the HTML pages by the script ! Doc/tools/prechm.py. This creates project files which must be compiled ! with MS HTML Help Workshop. --- 8,16 ---- and build the projects. ! At the moment, the major purpose of tjis folder is to support 64 bit ! builds. The output of a build will appear in a subfolder x64. ! You can use it to build the standard win32 version as well. ! But note that support for both versions of this compiler is limited, ! and there are some tests not passing, due to incompatible library changes. ! For further comments on windows builds, see the PCbuild folder. Index: select.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/select.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** select.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- select.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 158,164 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\select/select.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 158,164 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\select/select.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: unicodedata.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/unicodedata.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** unicodedata.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- unicodedata.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 155,161 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\unicodedata/unicodedata.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 155,161 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\unicodedata/unicodedata.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: w9xpopen.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/w9xpopen.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** w9xpopen.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- w9xpopen.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 335,341 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\w9xpopen/w9xpopen.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 335,341 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\w9xpopen/w9xpopen.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: winreg.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/winreg.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** winreg.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- winreg.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 345,351 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\winreg/winreg.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 345,351 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\winreg/winreg.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: winsound.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/winsound.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** winsound.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- winsound.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 350,356 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\winsound/winsound.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 350,356 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\winsound/winsound.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" Index: zlib.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/PCbuild8/zlib.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** zlib.vcproj 19 Dec 2005 10:16:10 -0000 1.1 --- zlib.vcproj 19 Dec 2005 10:30:15 -0000 1.2 *************** *** 359,365 **** EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\zlib/zlib.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-($ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" --- 359,365 ---- EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\x86-temp-release\zlib/zlib.pch" ! AssemblerListingLocation=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ObjectFile=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" ! ProgramDataBaseFileName=".\$(PlatformName)-temp-$(ConfigurationName)\$(TargetName)/" WarningLevel="3" SuppressStartupBanner="true" _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon Dec 19 11:33:05 2005 From: tismer at centera.de (Christian Tismer) Date: Mon, 19 Dec 2005 11:33:05 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/Stackless channelobject.c, 1.40, 1.41 prickelpit.c, 1.56, 1.57 slp_platformselect.h, 1.3, 1.4 slp_transfer.c, 1.17, 1.18 stackless.h, 1.37, 1.38 stackless_impl.h, 1.77, 1.78 stackless_structs.h, 1.59, 1.60 stackless_tstate.h, 1.47, 1.48 stackless_version.h, 1.41, 1.42 stacklesseval.c, 1.138, 1.139 stacklessmodule.c, 1.160, 1.161 switch_x86_msvc.h, 1.30, 1.31 switch_amd64_unix.h, NONE, 1.1 switch_x64_masm.asm, NONE, 1.1 switch_x64_msvc.h, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/Stackless In directory centera.de:/tmp/cvs-serv13533/src/2.3/src/Stackless Modified Files: channelobject.c prickelpit.c slp_platformselect.h slp_transfer.c stackless.h stackless_impl.h stackless_structs.h stackless_tstate.h stackless_version.h stacklesseval.c stacklessmodule.c switch_x86_msvc.h Added Files: switch_amd64_unix.h switch_x64_masm.asm switch_x64_msvc.h Log Message: added support for 64 bit amd processors. The unix version is from Hye-Chik Chang (thanks, sorry for waiting so long, not tested) The windows version is from CCPgames (thanks Kristjan), with some corrections from me. Index: channelobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/channelobject.c,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** channelobject.c 27 Mar 2004 01:22:45 -0000 1.40 --- channelobject.c 19 Dec 2005 10:33:02 -0000 1.41 *************** *** 368,371 **** --- 368,373 ---- slp_channel_remove_specific(self, 1, sender); sender->flags.blocked = 0; + if (ts->st.current == sender) + ts->st.current = 0; /* CCP change */ slp_current_insert(sender); ts->st.current = sender; *************** *** 441,444 **** --- 443,448 ---- slp_channel_remove_specific(self, 1, sender); sender->flags.blocked = 0; + if (ts->st.current == sender) + ts->st.current = 0; /* CCP change */ slp_current_insert(sender); ts->st.current = sender; *************** *** 714,717 **** --- 718,723 ---- slp_channel_remove_specific(self, -1, receiver); receiver->flags.blocked = 0; + if (ts->st.current == receiver) + ts->st.current = 0; /* CCP change */ slp_current_insert(receiver); ts->st.current = receiver; *************** *** 786,791 **** slp_channel_remove_specific(self, -1, receiver); receiver->flags.blocked = 0; slp_current_insert(receiver); ! ts->st.current = receiver; } return NULL; --- 792,799 ---- slp_channel_remove_specific(self, -1, receiver); receiver->flags.blocked = 0; + if (ts->st.current == receiver) + ts->st.current = 0; /* we know that receiver was linked into channel, not current */ slp_current_insert(receiver); ! ts->st.current = receiver; } return NULL; Index: prickelpit.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/prickelpit.c,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** prickelpit.c 24 Mar 2004 16:27:08 -0000 1.56 --- prickelpit.c 19 Dec 2005 10:33:02 -0000 1.57 *************** *** 211,216 **** char msg[500]; PyErr_Clear(); ! sprintf(msg, "frame exec function at %08x is not registered!", ! (unsigned int)(void *)f->f_execute); PyErr_SetString(PyExc_ValueError, msg); valid = 0; --- 211,215 ---- char msg[500]; PyErr_Clear(); ! sprintf(msg, "frame exec function at %08p is not registered!", f->f_execute); PyErr_SetString(PyExc_ValueError, msg); valid = 0; Index: slp_platformselect.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/slp_platformselect.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** slp_platformselect.h 7 Oct 2002 21:42:33 -0000 1.3 --- slp_platformselect.h 19 Dec 2005 10:33:02 -0000 1.4 *************** *** 5,10 **** --- 5,14 ---- #if defined(MS_WIN32) && !defined(MS_WIN64) && defined(_M_IX86) #include "switch_x86_msvc.h" /* MS Visual Studio on X86 */ + #elif defined(MS_WIN64) && defined(_M_X64) + #include "switch_x64_msvc.h" /* MS Visual Studio on X64 */ #elif defined(__GNUC__) && defined(__i386__) #include "switch_x86_unix.h" /* gcc on X86 */ + #elif defined(__GNUC__) && defined(__amd64__) + #include "switch_amd64_unix.h" /* gcc on amd64 */ #elif defined(__GNUC__) && defined(__PPC__) && defined(__linux__) #include "switch_ppc_unix.h" /* gcc on PowerPC */ Index: slp_transfer.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/slp_transfer.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** slp_transfer.c 29 Mar 2004 00:04:45 -0000 1.17 --- slp_transfer.c 19 Dec 2005 10:33:02 -0000 1.18 *************** *** 23,37 **** static PyTaskletObject *_prev; #define SLP_SAVE_STATE(stackref, stsizediff) \ ! int stsizeb; \ stackref += STACK_MAGIC; \ if (_cstprev != NULL) { \ ! if (slp_cstack_new(_cstprev, stackref, _prev) == NULL) return -1; \ stsizeb = slp_cstack_save(*_cstprev); \ } \ else \ ! stsizeb = (_cst->startaddr - stackref) * sizeof(int*); \ ! if (_cst == NULL) return 0; \ ! stsizediff = stsizeb - (_cst->ob_size * sizeof(int*)); #define SLP_RESTORE_STATE() \ --- 23,39 ---- static PyTaskletObject *_prev; + #define __return(x) return (x) + #define SLP_SAVE_STATE(stackref, stsizediff) \ ! intptr_t stsizeb; \ stackref += STACK_MAGIC; \ if (_cstprev != NULL) { \ ! if (slp_cstack_new(_cstprev, stackref, _prev) == NULL) __return(-1); \ stsizeb = slp_cstack_save(*_cstprev); \ } \ else \ ! stsizeb = (_cst->startaddr - stackref) * sizeof(intptr_t); \ ! if (_cst == NULL) __return(0); \ ! stsizediff = stsizeb - (_cst->ob_size * sizeof(intptr_t)); #define SLP_RESTORE_STATE() \ *************** *** 41,48 **** --- 43,77 ---- } + // #define USE_MASM // CCP addition, define to use masm code + #ifdef USE_MASM + //ccp addition: make these functions, to be called from assembler + #define STACK_MAGIC 0 + + #undef __return + #define __return(x) exitcode = x; goto exit; + + int slp_save_state(int *stack){ + int exitcode; + SSIZE_T diff; + SLP_SAVE_STATE(stack, diff); + return diff; + exit: + /* hack: flag a problem by setting the value to odd */ + return exitcode | 1; + } + + void slp_restore_state(void){ + SLP_RESTORE_STATE(); + } + + extern int slp_switch(void); + + #else #define SLP_EVAL #include "slp_platformselect.h" + #endif + static int climb_stack_and_transfer(PyCStackObject **cstprev, PyCStackObject *cst, PyTaskletObject *prev) *************** *** 55,64 **** */ PyThreadState *ts = PyThreadState_GET(); ! int probe; ! int needed = &probe - ts->st.cstack_base; /* in rare cases, the need might have vanished due to the recursion */ ! int * goobledigoobs; if (needed > 0) { ! goobledigoobs = alloca(needed * sizeof(int)); if (goobledigoobs == NULL) return -1; --- 84,93 ---- */ PyThreadState *ts = PyThreadState_GET(); ! 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; if (needed > 0) { ! goobledigoobs = alloca(needed * sizeof(intptr_t)); if (goobledigoobs == NULL) return -1; *************** *** 75,79 **** STACKLESS_ASSERT(); ! if ((int*) &ts > ts->st.cstack_base) return climb_stack_and_transfer(cstprev, cst, prev); if (cst == NULL) --- 104,108 ---- STACKLESS_ASSERT(); ! if ((intptr_t *) &ts > ts->st.cstack_base) return climb_stack_and_transfer(cstprev, cst, prev); if (cst == NULL) Index: stackless.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/stackless.h,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** stackless.h 7 Oct 2002 21:42:33 -0000 1.37 --- stackless.h 19 Dec 2005 10:33:02 -0000 1.38 *************** *** 13,17 **** /**************************************************************************** ! Stackless Python Internal Configuration Some preliminary description can be found in the draft document readme.txt --- 13,17 ---- /**************************************************************************** ! Stackless Python Internal Configuration Some preliminary description can be found in the draft document readme.txt *************** *** 28,32 **** ****************************************************************************/ ! /* * every platform needs to define its own interface here. * If this isn't defined, stackless is simply not compiled in. --- 28,32 ---- ****************************************************************************/ ! /* * every platform needs to define its own interface here. * If this isn't defined, stackless is simply not compiled in. *************** *** 38,43 **** --- 38,47 ---- #if defined(MS_WIN32) && !defined(MS_WIN64) && defined(_M_IX86) /* MS Visual Studio on X86 */ + #elif defined(_WIN64) && defined(_M_X64) + /* microsoft on 64 bit x64 thingies */ #elif defined(__GNUC__) && defined(__i386__) /* gcc on X86 */ + #elif defined(__GNUC__) && defined(__amd64__) + /* gcc on AMD64 */ #elif defined(__GNUC__) && defined(__PPC__) && defined(__linux__) /* gcc on PowerPC */ Index: stackless_impl.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/stackless_impl.h,v retrieving revision 1.77 retrieving revision 1.78 diff -C2 -d -r1.77 -r1.78 *** stackless_impl.h 5 Apr 2004 19:09:18 -0000 1.77 --- stackless_impl.h 19 Dec 2005 10:33:02 -0000 1.78 *************** *** 2,16 **** #define STACKLESS_IMPL_H ! #include "Python.h" ! #ifdef STACKLESS - #ifdef __cplusplus extern "C" { #endif ! #include "structmember.h" ! #include "compile.h" ! #include "frameobject.h" #include "flextype.h" --- 2,14 ---- #define STACKLESS_IMPL_H ! #include "../include/Python.h" #ifdef STACKLESS #ifdef __cplusplus extern "C" { #endif ! #include "../include/structmember.h" ! #include "../include/compile.h" ! #include "../include/frameobject.h" #include "flextype.h" *************** *** 43,47 **** PyAPI_FUNC(PyCStackObject *) slp_cstack_new(PyCStackObject **cst, int *stackref, PyTaskletObject *task); ! PyAPI_FUNC(int) slp_cstack_save(PyCStackObject *cstprev); PyAPI_FUNC(void) slp_cstack_restore(PyCStackObject *cst); --- 41,45 ---- PyAPI_FUNC(PyCStackObject *) slp_cstack_new(PyCStackObject **cst, int *stackref, PyTaskletObject *task); ! PyAPI_FUNC(size_t) slp_cstack_save(PyCStackObject *cstprev); PyAPI_FUNC(void) slp_cstack_restore(PyCStackObject *cst); Index: stackless_structs.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/stackless_structs.h,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** stackless_structs.h 29 Mar 2004 00:04:45 -0000 1.59 --- stackless_structs.h 19 Dec 2005 10:33:02 -0000 1.60 *************** *** 92,96 **** } PyTaskletObject; - /*** important structures: cstack ***/ --- 92,95 ---- *************** *** 107,112 **** int nesting_level; PyThreadState *tstate; ! int *startaddr; ! int *stack[1]; } PyCStackObject; --- 106,111 ---- int nesting_level; PyThreadState *tstate; ! intptr_t *startaddr; ! intptr_t stack[1]; } PyCStackObject; Index: stackless_tstate.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/stackless_tstate.h,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** stackless_tstate.h 29 Mar 2004 00:04:45 -0000 1.47 --- stackless_tstate.h 19 Dec 2005 10:33:02 -0000 1.48 *************** *** 24,28 **** struct _cstack *cstack_chain; /* the base address for hijacking stacks */ ! int *cstack_base; /* flags of the running tasklet */ struct _tasklet_flags flags; --- 24,28 ---- struct _cstack *cstack_chain; /* the base address for hijacking stacks */ ! intptr_t *cstack_base; /* flags of the running tasklet */ struct _tasklet_flags flags; Index: stackless_version.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/stackless_version.h,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** stackless_version.h 7 Apr 2004 17:32:19 -0000 1.41 --- stackless_version.h 19 Dec 2005 10:33:02 -0000 1.42 *************** *** 1,7 **** /* * Stackless Python version string ! * created at Wed Apr 07 19:24:13 2004 by mkversion.py */ /* keep this entry up-to-date */ ! #define STACKLESS_VERSION "3.0 040407" --- 1,7 ---- /* * Stackless Python version string ! * created at Thu Dec 15 22:44:12 2005 by mkversion.py */ /* keep this entry up-to-date */ ! #define STACKLESS_VERSION "3.0 051215" Index: stacklesseval.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/stacklesseval.c,v retrieving revision 1.138 retrieving revision 1.139 diff -C2 -d -r1.138 -r1.139 *** stacklesseval.c 7 Apr 2004 17:32:19 -0000 1.138 --- stacklesseval.c 19 Dec 2005 10:33:02 -0000 1.139 *************** *** 25,29 **** int slp_enable_softswitch = 1; ! /* * flag whether the next call should try to be stackless. * The protocol is: This flag may be only set if the called --- 25,29 ---- int slp_enable_softswitch = 1; ! /* * flag whether the next call should try to be stackless. * The protocol is: This flag may be only set if the called *************** *** 76,80 **** if (cstack_cachecount >= CSTACK_MAXCACHE) slp_cstack_cacheclear(); ! cst->startaddr = (int *) cstack_cache[cst->ob_size]; cstack_cache[cst->ob_size] = cst; ++cstack_cachecount; --- 76,80 ---- if (cstack_cachecount >= CSTACK_MAXCACHE) slp_cstack_cacheclear(); ! cst->startaddr = (intptr_t *) cstack_cache[cst->ob_size]; cstack_cache[cst->ob_size] = cst; ++cstack_cachecount; *************** *** 84,93 **** PyCStackObject * ! slp_cstack_new(PyCStackObject **cst, int *stackref, PyTaskletObject *task) { PyThreadState *ts = PyThreadState_GET(); ! int *stackbase = ts->st.cstack_base; ! int size = stackbase - stackref; ! if (size < 0) { PyErr_SetString(PyExc_RuntimeError, "negative stack size"); return NULL; --- 84,93 ---- PyCStackObject * ! slp_cstack_new(PyCStackObject **cst, intptr_t *stackref, PyTaskletObject *task) { PyThreadState *ts = PyThreadState_GET(); ! intptr_t *stackbase = ts->st.cstack_base; ! ptrdiff_t size = stackbase - stackref; ! if (size < 0) { PyErr_SetString(PyExc_RuntimeError, "negative stack size"); return NULL; *************** *** 96,101 **** /* reuse it */ return *cst; ! } ! if (*cst != NULL) { if ((*cst)->task == task) --- 96,101 ---- /* reuse it */ return *cst; ! } ! if (*cst != NULL) { if ((*cst)->task == task) *************** *** 111,118 **** /* PyObject_NewVar is inlined */ *cst = (PyCStackObject *) ! PyObject_MALLOC(sizeof(PyCStackObject) + (size-1) * sizeof(int*)); if (*cst == NULL) return NULL; } ! (void) PyObject_INIT_VAR(*cst, &PyCStack_Type, size); (*cst)->startaddr = stackbase; --- 111,118 ---- /* PyObject_NewVar is inlined */ *cst = (PyCStackObject *) ! PyObject_MALLOC(sizeof(PyCStackObject) + (size-1) * sizeof(intptr_t)); if (*cst == NULL) return NULL; } ! (void) PyObject_INIT_VAR(*cst, &PyCStack_Type, (int)size); (*cst)->startaddr = stackbase; *************** *** 126,133 **** } ! int slp_cstack_save(PyCStackObject *cstprev) { ! int stsizeb = (cstprev)->ob_size * sizeof(int*); memcpy((cstprev)->stack, (cstprev)->startaddr - (cstprev)->ob_size, stsizeb); return stsizeb; --- 126,133 ---- } ! size_t slp_cstack_save(PyCStackObject *cstprev) { ! size_t stsizeb = (cstprev)->ob_size * sizeof(intptr_t); memcpy((cstprev)->stack, (cstprev)->startaddr - (cstprev)->ob_size, stsizeb); return stsizeb; *************** *** 139,143 **** /* mark task as no longer responsible for cstack instance */ cst->task = NULL; ! memcpy(cst->startaddr - cst->ob_size, &cst->stack, (cst->ob_size) * sizeof(int*)); } --- 139,143 ---- /* mark task as no longer responsible for cstack instance */ cst->task = NULL; ! memcpy(cst->startaddr - cst->ob_size, &cst->stack, (cst->ob_size) * sizeof(intptr_t)); } *************** *** 227,234 **** ts->st.initial_stub = NULL; } ! ++ts->st.serial; if (slp_transfer(&ts->st.initial_stub, NULL, NULL)) return -1; ! ts->st.initial_stub->serial = ts->st.serial; ! /* * from here, we always arrive with a compatible cstack * that also can be used by main, if it is running --- 227,233 ---- ts->st.initial_stub = NULL; } ! ts->st.serial_last_jump = ++ts->st.serial; if (slp_transfer(&ts->st.initial_stub, NULL, NULL)) return -1; ! /* * from here, we always arrive with a compatible cstack * that also can be used by main, if it is running *************** *** 236,239 **** --- 235,239 ---- * To insure that, it was necessary to re-create the * initial stub for *every* run of a new main. + * This will vanish with greenlet-like stack management. */ *************** *** 244,248 **** climb_stack_and_eval_frame(PyFrameObject *f) { ! /* * a similar case to climb_stack_and_transfer, * but here we need to incorporate a gap in the --- 244,248 ---- climb_stack_and_eval_frame(PyFrameObject *f) { ! /* * a similar case to climb_stack_and_transfer, * but here we need to incorporate a gap in the *************** *** 252,261 **** */ PyThreadState *ts = PyThreadState_GET(); ! int probe; ! int needed = &probe - ts->st.cstack_base; /* in rare cases, the need might have vanished due to the recursion */ ! int * goobledigoobs; if (needed > 0) { ! goobledigoobs = alloca(needed * sizeof(int)); if (goobledigoobs == NULL) return NULL; --- 252,261 ---- */ PyThreadState *ts = PyThreadState_GET(); ! 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; if (needed > 0) { ! goobledigoobs = alloca(needed * sizeof(intptr_t)); if (goobledigoobs == NULL) return NULL; *************** *** 270,274 **** PyThreadState *ts = PyThreadState_GET(); PyFrameObject *fprev = f->f_back; ! int * stackref; PyObject *result; --- 270,274 ---- PyThreadState *ts = PyThreadState_GET(); PyFrameObject *fprev = f->f_back; ! intptr_t *stackref; PyObject *result; *************** *** 276,280 **** /* this is the initial frame, so mark the stack base */ ! /* careful, this caused me a major headache. it is *not* sufficient to just check for fprev == NULL. --- 276,280 ---- /* this is the initial frame, so mark the stack base */ ! /* careful, this caused me a major headache. it is *not* sufficient to just check for fprev == NULL. *************** *** 286,292 **** */ ! stackref = STACK_REFPLUS + (int*) &f; if (ts->st.cstack_base == NULL) ! ts->st.cstack_base = stackref-CSTACK_GOODGAP; /* XXX */ if (stackref > ts->st.cstack_base) return climb_stack_and_eval_frame(f); --- 286,292 ---- */ ! stackref = STACK_REFPLUS + (intptr_t *) &f; if (ts->st.cstack_base == NULL) ! ts->st.cstack_base = stackref - CSTACK_GOODGAP; /* XXX */ if (stackref > ts->st.cstack_base) return climb_stack_and_eval_frame(f); *************** *** 359,363 **** PyFrameObject *gi_frame; ! /* True if generator is being executed. */ int gi_running; --- 359,363 ---- PyFrameObject *gi_frame; ! /* True if generator is being executed. */ int gi_running; *************** *** 406,410 **** /* initialize pickling of running generators */ if (!initialized) { ! if (slp_register_execute(&PyBaseFrame_Type, "gen_iternext_callback", gen_iternext_callback, REF_INVALID_EXEC(gen_iternext_callback)) ) { /* ignore reference, this is a very bad error */ --- 406,410 ---- /* initialize pickling of running generators */ if (!initialized) { ! if (slp_register_execute(&PyBaseFrame_Type, "gen_iternext_callback", gen_iternext_callback, REF_INVALID_EXEC(gen_iternext_callback)) ) { /* ignore reference, this is a very bad error */ *************** *** 524,528 **** } ! static PyObject * generator_new(PyTypeObject *type, PyObject *args, PyObject *kwds) --- 524,528 ---- } ! static PyObject * generator_new(PyTypeObject *type, PyObject *args, PyObject *kwds) *************** *** 536,540 **** return NULL; } ! if (!PyArg_ParseTuple(args, "O!i:generator", &PyFrame_Type, &f, &gi_running)) --- 536,540 ---- return NULL; } ! if (!PyArg_ParseTuple(args, "O!i:generator", &PyFrame_Type, &f, &gi_running)) *************** *** 669,673 **** PyObject *Py_UnwindToken = (PyObject *) &PyUnwindToken_Type; ! /* the frame dispatcher will execute frames and manage the frame stack until the "previous" frame reappears. --- 669,673 ---- PyObject *Py_UnwindToken = (PyObject *) &PyUnwindToken_Type; ! /* the frame dispatcher will execute frames and manage the frame stack until the "previous" frame reappears. *************** *** 683,690 **** ++ts->st.nesting_level; ! /* frame protocol: ! If a frame returns the Py_UnwindToken object, this ! indicates that a different frame will be run. Semantics of an appearing Py_UnwindToken: The true return value is in the f_retval field. --- 683,690 ---- ++ts->st.nesting_level; ! /* frame protocol: ! If a frame returns the Py_UnwindToken object, this ! indicates that a different frame will be run. Semantics of an appearing Py_UnwindToken: The true return value is in the f_retval field. *************** *** 709,713 **** slp_check_pending_irq(); if (result == Py_UnwindToken) { ! /* XXX this is a temporary bug fix. The protocol should again be explicit about the result value. */ result = ts->st.tempval; --- 709,713 ---- slp_check_pending_irq(); if (result == Py_UnwindToken) { ! /* XXX this is a temporary bug fix. The protocol should again be explicit about the result value. */ result = ts->st.tempval; *************** *** 736,740 **** } if (result == Py_UnwindToken) { ! /* XXX this is a temporary bug fix. The protocol should again be explicit about the result value. */ result = ts->st.tempval; --- 736,740 ---- } if (result == Py_UnwindToken) { ! /* XXX this is a temporary bug fix. The protocol should again be explicit about the result value. */ result = ts->st.tempval; Index: stacklessmodule.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/stacklessmodule.c,v retrieving revision 1.160 retrieving revision 1.161 diff -C2 -d -r1.160 -r1.161 *** stacklessmodule.c 2 Apr 2004 23:47:25 -0000 1.160 --- stacklessmodule.c 19 Dec 2005 10:33:02 -0000 1.161 *************** *** 236,240 **** PyStackless_RunWatchdog_M(long timeout) { ! return PyStackless_CallMethod_Main(slp_module, "run_watchdog", "(i)", timeout); } --- 236,240 ---- PyStackless_RunWatchdog_M(long timeout) { ! return PyStackless_CallMethod_Main(slp_module, "run", "(i)", timeout); } *************** *** 615,628 **** int i; if (v == Py_None) { ! return PyInt_FromLong((int)_peek); } if (PyCode_Check(v)) { ! return PyInt_FromLong((int)(((PyCodeObject*)v)->co_code)); } if (PyInt_Check(v) && PyInt_AS_LONG(v) == 0) { ! return PyInt_FromLong((int)(&PyEval_EvalFrame)); } if (!PyInt_Check(v)) goto noobject; ! o = (PyObject*) PyInt_AS_LONG(v); /* this is plain heuristics, use for now */ if (CANNOT_READ_MEM(o, sizeof(PyObject))) goto noobject; --- 615,628 ---- int i; if (v == Py_None) { ! return PyLong_FromLongLong((intptr_t)_peek); } if (PyCode_Check(v)) { ! return PyLong_FromLongLong((intptr_t)(((PyCodeObject*)v)->co_code)); } if (PyInt_Check(v) && PyInt_AS_LONG(v) == 0) { ! return PyLong_FromLongLong((intptr_t)(&PyEval_EvalFrame)); } if (!PyInt_Check(v)) goto noobject; ! o = (PyObject*) PyLong_AsLongLong(v); /* this is plain heuristics, use for now */ if (CANNOT_READ_MEM(o, sizeof(PyObject))) goto noobject; Index: switch_x86_msvc.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/switch_x86_msvc.h,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** switch_x86_msvc.h 7 Apr 2004 17:32:19 -0000 1.30 --- switch_x86_msvc.h 19 Dec 2005 10:33:02 -0000 1.31 *************** *** 31,34 **** --- 31,36 ---- #define STACK_MAGIC 0 + #pragma optimize("", off) + static int slp_switch(void) --- NEW FILE: switch_amd64_unix.h --- /* * this is the internal transfer function. * * HISTORY * 01-Apr-04 Hye-Shik Chang * Ported from i386 to amd64. * 24-Nov-02 Christian Tismer * needed to add another magic constant to insure * that f in slp_eval_frame(PyFrameObject *f) * STACK_REFPLUS will probably be 1 in most cases. * gets included into the saved stack area. * 17-Sep-02 Christian Tismer * after virtualizing stack save/restore, the * stack size shrunk a bit. Needed to introduce * an adjustment STACK_MAGIC per platform. * 15-Sep-02 Gerd Woetzel * slightly changed framework for spark * 31-Avr-02 Armin Rigo * Added ebx, esi and edi register-saves. * 01-Mar-02 Samual M. Rushing * Ported from i386. */ #define STACK_REFPLUS 1 #ifdef SLP_EVAL /* #define STACK_MAGIC 3 */ /* the above works fine with gcc 2.96, but 2.95.3 wants this */ #define STACK_MAGIC 0 #define REGS_TO_SAVE "rdx", "rbx", "r12", "r13", "r14", "r15" static int slp_switch(void) { register long *stackref, stsizediff; __asm__ volatile ("" : : : REGS_TO_SAVE); __asm__ ("movq %%rsp, %0" : "=g" (stackref)); { SLP_SAVE_STATE(stackref, stsizediff); __asm__ volatile ( "addq %0, %%rsp\n" "addq %0, %%rbp\n" : : "r" (stsizediff) ); SLP_RESTORE_STATE(); return 0; } __asm__ volatile ("" : : : REGS_TO_SAVE); } #endif /* * further self-processing support */ /* * if you want to add self-inspection tools, place them * here. See the x86_msvc for the necessary defines. * These features are highly experimental und not * essential yet. */ --- NEW FILE: switch_x64_masm.asm --- ; ; stack switching code for MASM on x641 ; Kristjan Valur Jonsson, sept 2005 ; ;prototypes for our calls slp_save_state PROTO slp_restore_state PROTO pushxmm MACRO reg sub rsp, 16 .allocstack 16 movaps [rsp], reg ; faster than movups, but we must be aligned ; .savexmm128 reg, offset (don't know what offset is, no documentation) ENDM popxmm MACRO reg movaps reg, [rsp] ; faster than movups, but we must be aligned add rsp, 16 ENDM pushreg MACRO reg push reg .pushreg reg ENDM popreg MACRO reg pop reg ENDM .code slp_switch PROC FRAME ;realign stack to 16 bytes after return address push, makes the following faster sub rsp,8 .allocstack 8 pushxmm xmm15 pushxmm xmm14 pushxmm xmm13 pushxmm xmm12 pushxmm xmm11 pushxmm xmm10 pushxmm xmm9 pushxmm xmm8 pushxmm xmm7 pushxmm xmm6 pushreg r15 pushreg r14 pushreg r13 pushreg r12 pushreg rbp pushreg rbx pushreg rdi pushreg rsi sub rsp, 10h ;allocate the singlefunction argument (must be multiple of 16) .allocstack 10h .endprolog lea rcx, [rsp+10h] ;load stack base that we are saving call slp_save_state ;pass stackpointer, return offset in eax test rax, 1 ; an odd value means that we don't restore jnz NORESTORE ;actual stack switch: add rsp, rax call slp_restore_state xor rax, rax ;return 0 EXIT: add rsp, 10h popreg rsi popreg rdi popreg rbx popreg rbp popreg r12 popreg r13 popreg r14 popreg r15 popxmm xmm6 popxmm xmm7 popxmm xmm8 popxmm xmm9 popxmm xmm10 popxmm xmm11 popxmm xmm12 popxmm xmm13 popxmm xmm14 popxmm xmm15 add rsp, 8 ret NORESTORE: sar rax, 1 ; return value is -1 for error jmp EXIT slp_switch ENDP END --- NEW FILE: switch_x64_msvc.h --- /* * this is the internal transfer function. * * HISTORY * 24-Nov-02 Christian Tismer * needed to add another magic constant to insure * that f in slp_eval_frame(PyFrameObject *f) * STACK_REFPLUS will probably be 1 in most cases. * gets included into the saved stack area. * 26-Sep-02 Christian Tismer * again as a result of virtualized stack access, * the compiler used less registers. Needed to * explicit mention registers in order to get them saved. * Thanks to Jeff Senn for pointing this out and help. * 17-Sep-02 Christian Tismer * after virtualizing stack save/restore, the * stack size shrunk a bit. Needed to introduce * an adjustment STACK_MAGIC per platform. * 15-Sep-02 Gerd Woetzel * slightly changed framework for sparc * 01-Mar-02 Christian Tismer * Initial final version after lots of iterations for i386. */ #define alloca _alloca #define STACK_REFPLUS 1 #ifdef SLP_EVAL #define STACK_MAGIC 0 extern int slp_switch(void); /* defined in masm assembler */ /* These two are called from the assembler module */ SSIZE_T slp_save_state(intptr_t *ref) { SSIZE_T diff; SLP_SAVE_STATE(ref, diff); return diff; } void slp_restore_state(void) { SLP_RESTORE_STATE(); } #endif /* * further self-processing support */ /* we have IsBadReadPtr available, so we can peek at objects */ #define STACKLESS_SPY #ifdef IMPLEMENT_STACKLESSMODULE #include "Windows.h" #define CANNOT_READ_MEM(p, bytes) IsBadReadPtr(p, bytes) static int IS_ON_STACK(void*p) { int stackref; intptr_t stackbase = ((intptr_t)&stackref) & 0xfffff000; return (intptr_t)p >= stackbase && (intptr_t)p < stackbase + 0x00100000; } #endif _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 22:39:15 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 22:39:15 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/module scheduling.c, 1.112, 1.113 taskletobject.c, 1.119, 1.120 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/module In directory centera.de:/tmp/cvs-serv4426/src/2.3/dev/Stackless/module Modified Files: scheduling.c taskletobject.c Log Message: making sure that tasklets from other threads are really finalized. This topic might be improved a bit - it is still not quite clear why we end up without cleaning up a thread's main early? Index: scheduling.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/module/scheduling.c,v retrieving revision 1.112 retrieving revision 1.113 diff -C2 -d -r1.112 -r1.113 *** scheduling.c 19 Jan 2005 19:02:31 -0000 1.112 --- scheduling.c 20 Dec 2005 21:39:12 -0000 1.113 *************** *** 1013,1016 **** --- 1013,1017 ---- } + prev->ob_type->tp_clear(prev); /* now it is safe to derefence prev */ Py_DECREF(prev); Index: taskletobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/module/taskletobject.c,v retrieving revision 1.119 retrieving revision 1.120 diff -C2 -d -r1.119 -r1.120 *** taskletobject.c 9 Dec 2005 18:00:43 -0000 1.119 --- taskletobject.c 20 Dec 2005 21:39:12 -0000 1.120 *************** *** 933,938 **** */ if (slp_get_frame(task) == NULL) { ! Py_INCREF(Py_None); ! return Py_None; } /* we might be called after exceptions are gone */ --- 933,941 ---- */ if (slp_get_frame(task) == NULL) { ! /* just clear it, typically a thread's main */ ! /* XXX not clear why this isn't covered in tasklet_end */ ! task->ob_type->tp_clear(task); ! Py_INCREF(Py_None); ! return Py_None; } /* we might be called after exceptions are gone */ *************** *** 973,977 **** int PyTasklet_GetBlocked(PyTaskletObject *task) { ! return task->flags.blocked; } --- 976,980 ---- int PyTasklet_GetBlocked(PyTaskletObject *task) { ! return task->flags.blocked; } _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue Dec 20 14:17:51 2005 From: tismer at centera.de (Christian Tismer) Date: Tue, 20 Dec 2005 14:17:51 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/testbench testbench.vcproj, 1.2, 1.3 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/testbench In directory centera.de:/tmp/cvs-serv14441/src/2.3/dev/Stackless/testbench Modified Files: testbench.vcproj Log Message: ported x64 to Stackless 3.1 . There is still an issue with taskspeed that doesn't finish. Checking against MSVC 7.0 now... Index: testbench.vcproj =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/testbench/testbench.vcproj,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** testbench.vcproj 30 Nov 2004 12:33:22 -0000 1.2 --- testbench.vcproj 20 Dec 2005 13:17:49 -0000 1.3 *************** *** 2,13 **** + + ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! --- 154,207 ---- BrowseInformation="1" WarningLevel="3" ! SuppressStartupBanner="true" DebugInformationFormat="1" ! CompileAs="0" ! /> ! ! *************** *** 146,154 **** --- 294,299 ---- AdditionalIncludeDirectories="" PreprocessorDefinitions="" ! BrowseInformation="1" ! /> *************** *** 220,237 **** --- 301,323 ---- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon Dec 19 11:33:04 2005 From: tismer at centera.de (Christian Tismer) Date: Mon, 19 Dec 2005 11:33:04 +0100 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/src/Stackless/test taskspeed.py, 1.19, 1.20 Message-ID: Update of /home/cvs/slpdev/src/2.3/src/Stackless/test In directory centera.de:/tmp/cvs-serv13533/src/2.3/src/Stackless/test Modified Files: taskspeed.py Log Message: added support for 64 bit amd processors. The unix version is from Hye-Chik Chang (thanks, sorry for waiting so long, not tested) The windows version is from CCPgames (thanks Kristjan), with some corrections from me. Index: taskspeed.py =================================================================== RCS file: /home/cvs/slpdev/src/2.3/src/Stackless/test/taskspeed.py,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** taskspeed.py 26 Mar 2004 18:52:39 -0000 1.19 --- taskspeed.py 19 Dec 2005 10:33:02 -0000 1.20 *************** *** 59,63 **** run() diff = clock() - start ! print "took %9.5f seconds, rate = %10d/s" % (diff, niter/diff) except StacklessError: print "could not run, this is not Stackless" --- 59,66 ---- run() diff = clock() - start ! if diff == 0: ! print 'no timing possible' ! else: ! print "took %9.5f seconds, rate = %10d/s" % (diff, niter/diff) except StacklessError: print "could not run, this is not Stackless" _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins