From alastair at codespeak.net Thu Mar 4 09:21:11 2004 From: alastair at codespeak.net (alastair at codespeak.net) Date: Thu, 4 Mar 2004 09:21:11 +0100 (MET) Subject: [pypy-svn] r3093 - pypy/trunk/doc/funding/negotiations Message-ID: <20040304082111.53AA45AF0F@thoth.codespeak.net> Author: alastair Date: Thu Mar 4 09:21:10 2004 New Revision: 3093 Added: pypy/trunk/doc/funding/negotiations/ pypy/trunk/doc/funding/negotiations/Pypy - Invitation to negotiations 1.tif (contents, props changed) pypy/trunk/doc/funding/negotiations/Pypy - Invitation to negotiations 2.tif (contents, props changed) pypy/trunk/doc/funding/negotiations/Pypy - Invitation to negotiations 3.tif (contents, props changed) pypy/trunk/doc/funding/negotiations/Pypy - Invitation to negotiations 4.tif (contents, props changed) Log: Scanned fax from the Commission added. Added: pypy/trunk/doc/funding/negotiations/Pypy - Invitation to negotiations 1.tif ============================================================================== Binary file. No diff available. Added: pypy/trunk/doc/funding/negotiations/Pypy - Invitation to negotiations 2.tif ============================================================================== Binary file. No diff available. Added: pypy/trunk/doc/funding/negotiations/Pypy - Invitation to negotiations 3.tif ============================================================================== Binary file. No diff available. Added: pypy/trunk/doc/funding/negotiations/Pypy - Invitation to negotiations 4.tif ============================================================================== Binary file. No diff available. From arigo at codespeak.net Sat Mar 6 18:57:19 2004 From: arigo at codespeak.net (arigo at codespeak.net) Date: Sat, 6 Mar 2004 18:57:19 +0100 (MET) Subject: [pypy-svn] r3138 - pypy/trunk/doc/devel Message-ID: <20040306175719.930C75A90B@thoth.codespeak.net> Author: arigo Date: Sat Mar 6 18:57:18 2004 New Revision: 3138 Modified: pypy/trunk/doc/devel/howtosvn.txt Log: Mention the ~/.subversion/servers file where we can select port 8080 for codespeak.net. Modified: pypy/trunk/doc/devel/howtosvn.txt ============================================================================== --- pypy/trunk/doc/devel/howtosvn.txt (original) +++ pypy/trunk/doc/devel/howtosvn.txt Sat Mar 6 18:57:18 2004 @@ -61,6 +61,8 @@ $ svn co http://codespeak.net/svn/pypy/trunk/src $ svn co http://codespeak.net/svn/pypy/trunk/doc +If you are behind a dump proxy this may or may not work; see below. + Once you've got the files checked out to your own system, you can use your favorite text editor to change to files. Be sure to read the coding-style_ and other documentation files before doing a lot of work on the source code. Before doing any work, make sure you're using the most recent update with:: $ svn up @@ -117,6 +119,18 @@ last resort to fix it if you've got a totally messed up local copy. Use this if you see error messages about ``locked`` files that you can't fix otherwise. +Circumventing proxies +---------------------------- + +Some proxies don't let extended HTTP commands through. If you have an error complaining about a bad request, you can ask subversion to use the alternate port 8080 to connect to codespeak.net by adding the following lines in a file ``~/.subversion/servers`` (on Unix at least):: + + [groups] + codespeak = codespeak.net + + [codespeak] + http-proxy-host = codespeak.net + http-proxy-port = 8080 + -------------------------------------------------------------------------------- From arigo at codespeak.net Mon Mar 8 17:28:22 2004 From: arigo at codespeak.net (arigo at codespeak.net) Date: Mon, 8 Mar 2004 17:28:22 +0100 (MET) Subject: [pypy-svn] r3173 - pypy/trunk/doc/funding/negotiations Message-ID: <20040308162822.2C09C5A90B@thoth.codespeak.net> Author: arigo Date: Mon Mar 8 17:28:17 2004 New Revision: 3173 Removed: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP-02.working Modified: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP-02.cpf Log: working... Modified: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP-02.cpf ============================================================================== --- pypy/trunk/doc/funding/negotiations/IST-2-004779-STP-02.cpf (original) +++ pypy/trunk/doc/funding/negotiations/IST-2-004779-STP-02.cpf Mon Mar 8 17:28:17 2004 @@ -4,6 +4,9 @@ @@ -103,6 +109,9 @@ @@ -296,10 +308,10 @@ DE148646973 - 0 - 0 + .00 + .00 - 0 + .00 @@ -324,7 +336,7 @@ 2 THE UNIVERSITY OF SOUTHAMPTON - U. SOUTHAMPTON + UOS UNIVERSITY ROAD, HIGHFIELD SO17 1BJ @@ -341,17 +353,17 @@ GB568630414 - 0 - 0 + .00 + .00 - 0 - 0 - - - + 99,000,000.00 + + 1202 + 405 + 797 AC - PRIV + GOV Y @@ -386,10 +398,10 @@ - 0 - 0 + .00 + .00 - 0 + .00 @@ -431,10 +443,10 @@ - 0 - 0 + .00 + .00 - 0 + .00 @@ -476,10 +488,10 @@ - 0 - 0 + .00 + .00 - 0 + .00 @@ -521,10 +533,10 @@ - 0 - 0 + .00 + .00 - 0 + .00 @@ -566,10 +578,10 @@ - 0 - 0 + .00 + .00 - 0 + .00 @@ -605,6 +617,9 @@ @@ -793,7 +811,7 @@ - + M @@ -832,7 +850,7 @@ - 0 + .00 @@ -841,13 +859,13 @@ 004779 2 - Leuschel - Michael A. - Prof. + FRETTON + Michael + MR. M - +442380593377 - +442380593045 - mal at ecs.soton.ac.uk + +442380593744 + +442380592195 + mjf2 at soton.ac.uk @@ -862,13 +880,13 @@ - Rigo - Armin - Dr. + LEUSCHEL + MICHAEL A + PROF M - - - ar at ecs.soton.ac.uk + 442380593377 + +442380593045 + mal at ecs.soton.ac.uk N @@ -879,11 +897,11 @@ - Academic staff + FACULTY ACCOUNTANT - Research staff + ACADEMIC STAFF - 0 + .00 @@ -934,7 +952,7 @@ - 0 + .00 @@ -985,7 +1003,7 @@ - 0 + .00 @@ -1036,7 +1054,7 @@ - 0 + .00 @@ -1087,7 +1105,7 @@ - 0 + .00 @@ -1138,7 +1156,7 @@ - 0 + .00 @@ -1160,6 +1178,9 @@ @@ -1367,6 +1391,9 @@ @@ -1507,40 +1537,40 @@ 1 DFKI AC - 315820 - 157910 - 0 - 0 - 78400 - 78400 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + 315,820.00 + 157,910.00 + .00 + .00 + 78,400.00 + 78,400.00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 004779 PYPY 2 - U. SOUTHAMPTON + UOS AC - 226800 - 226800 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + 226,800.00 + 226,800.00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 @@ -1549,19 +1579,19 @@ 3 MPIIB AC - 235200 - 235200 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + 235,200.00 + 235,200.00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 @@ -1570,19 +1600,19 @@ 4 PBF AC - 696200 - 696200 - 0 - 0 - 99600 - 99600 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + 696,200.00 + 696,200.00 + .00 + .00 + 99,600.00 + 99,600.00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 @@ -1591,19 +1621,19 @@ 5 STRAKT FC - 480800 - 240400 - 0 - 0 - 70400 - 70400 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + 480,800.00 + 240,400.00 + .00 + .00 + 70,400.00 + 70,400.00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 @@ -1612,19 +1642,19 @@ 6 LOGILAB FC - 286440 - 143220 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + 286,440.00 + 143,220.00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 @@ -1633,19 +1663,19 @@ 7 CM FC - 32400 - 16200 - 0 - 0 - 106000 - 106000 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + 32,400.00 + 16,200.00 + .00 + .00 + 106,000.00 + 106,000.00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 @@ -1665,6 +1695,9 @@ @@ -1720,8 +1756,8 @@ 1 1 - 0 - 0 + .00 + .00 @@ -1730,8 +1766,8 @@ 2 - 0 - 0 + .00 + .00 @@ -1740,8 +1776,8 @@ 3 - 0 - 0 + .00 + .00 @@ -1750,8 +1786,8 @@ 4 - 0 - 0 + .00 + .00 @@ -1760,8 +1796,8 @@ 5 - 0 - 0 + .00 + .00 @@ -1770,8 +1806,8 @@ 6 - 0 - 0 + .00 + .00 @@ -1780,8 +1816,8 @@ 7 - 0 - 0 + .00 + .00 @@ -1801,6 +1837,9 @@ @@ -2041,6 +2083,9 @@ @@ -2231,6 +2279,9 @@ @@ -2537,64 +2591,64 @@ - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 @@ -2607,64 +2661,64 @@ - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 @@ -2677,64 +2731,64 @@ - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 @@ -2747,64 +2801,64 @@ - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 @@ -2817,64 +2871,64 @@ - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 @@ -2887,64 +2941,64 @@ - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 @@ -2957,64 +3011,64 @@ - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 + .00 Deleted: /pypy/trunk/doc/funding/negotiations/IST-2-004779-STP-02.working ============================================================================== --- /pypy/trunk/doc/funding/negotiations/IST-2-004779-STP-02.working Mon Mar 8 17:28:17 2004 +++ (empty file) @@ -1,12 +0,0 @@ -Legal registration number -Total R&D expenditure -Number of R&D personnel -Number of researchers and engineers (Female, Male) - -check phone&fax numbers for mal: - +442380593377 - +442380593045 - -fill in phone&fax numbers for me: - +442380593122 - +442380593045 From arigo at codespeak.net Mon Mar 8 21:26:46 2004 From: arigo at codespeak.net (arigo at codespeak.net) Date: Mon, 8 Mar 2004 21:26:46 +0100 (MET) Subject: [pypy-svn] r3178 - pypy/trunk/doc/funding/negotiations Message-ID: <20040308202646.A41325A90B@thoth.codespeak.net> Author: arigo Date: Mon Mar 8 21:26:43 2004 New Revision: 3178 Modified: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP-02.cpf Log: final version, hopefully Modified: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP-02.cpf ============================================================================== --- pypy/trunk/doc/funding/negotiations/IST-2-004779-STP-02.cpf (original) +++ pypy/trunk/doc/funding/negotiations/IST-2-004779-STP-02.cpf Mon Mar 8 21:26:43 2004 @@ -7,6 +7,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 2 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=123 color="536870912" ) @@ -71,6 +72,7 @@ + ]]> @@ -112,6 +114,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=124 color="536870912" ) @@ -280,6 +283,7 @@ + ]]> @@ -308,10 +312,10 @@ DE148646973 - .00 - .00 + 0 + 0 - .00 + 0 @@ -353,18 +357,18 @@ GB568630414 - .00 - .00 + 0 + 0 - 99,000,000.00 - + 0 + 5000 1202 405 797 AC GOV - + NAO Y @@ -398,10 +402,10 @@ - .00 - .00 + 0 + 0 - .00 + 0 @@ -443,10 +447,10 @@ - .00 - .00 + 0 + 0 - .00 + 0 @@ -488,10 +492,10 @@ - .00 - .00 + 0 + 0 - .00 + 0 @@ -533,10 +537,10 @@ - .00 - .00 + 0 + 0 - .00 + 0 @@ -578,10 +582,10 @@ - .00 - .00 + 0 + 0 - .00 + 0 @@ -620,6 +624,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=127 color="536870912" ) @@ -799,6 +804,7 @@ + ]]> @@ -850,7 +856,7 @@ - .00 + 0 @@ -901,7 +907,7 @@ ACADEMIC STAFF - .00 + 0 @@ -952,7 +958,7 @@ - .00 + 0 @@ -1003,7 +1009,7 @@ - .00 + 0 @@ -1054,7 +1060,7 @@ - .00 + 0 @@ -1105,7 +1111,7 @@ - .00 + 0 @@ -1156,7 +1162,7 @@ - .00 + 0 @@ -1181,6 +1187,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=127 color="536870912" ) @@ -1285,6 +1292,7 @@ + ]]> @@ -1307,9 +1315,9 @@ PYPY 2 THE UNIVERSITY OF SOUTHAMPTON - Leuschel + Fretton 08-03-2004 - Michael A. + Michael @@ -1394,6 +1402,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 1 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=275 color="536870912" ) @@ -1526,6 +1535,7 @@ + ]]> @@ -1537,19 +1547,19 @@ 1 DFKI AC - 315,820.00 - 157,910.00 - .00 - .00 - 78,400.00 - 78,400.00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1558,19 +1568,19 @@ 2 UOS AC - 226,800.00 - 226,800.00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1579,19 +1589,19 @@ 3 MPIIB AC - 235,200.00 - 235,200.00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1600,19 +1610,19 @@ 4 PBF AC - 696,200.00 - 696,200.00 - .00 - .00 - 99,600.00 - 99,600.00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1621,19 +1631,19 @@ 5 STRAKT FC - 480,800.00 - 240,400.00 - .00 - .00 - 70,400.00 - 70,400.00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1642,19 +1652,19 @@ 6 LOGILAB FC - 286,440.00 - 143,220.00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1663,19 +1673,19 @@ 7 CM FC - 32,400.00 - 16,200.00 - .00 - .00 - 106,000.00 - 106,000.00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1698,6 +1708,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 1 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=242 color="536870912" ) @@ -1745,6 +1756,7 @@ + ]]> @@ -1756,8 +1768,8 @@ 1 1 - .00 - .00 + 0 + 0 @@ -1766,8 +1778,8 @@ 2 - .00 - .00 + 0 + 0 @@ -1776,8 +1788,8 @@ 3 - .00 - .00 + 0 + 0 @@ -1786,8 +1798,8 @@ 4 - .00 - .00 + 0 + 0 @@ -1796,8 +1808,8 @@ 5 - .00 - .00 + 0 + 0 @@ -1806,8 +1818,8 @@ 6 - .00 - .00 + 0 + 0 @@ -1816,8 +1828,8 @@ 7 - .00 - .00 + 0 + 0 @@ -1840,6 +1852,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 2 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=123 color="536870912" ) @@ -2018,6 +2031,7 @@ + ]]> @@ -2086,6 +2100,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=124 color="536870912" ) @@ -2159,6 +2174,7 @@ + ]]> @@ -2282,6 +2298,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=124 color="536870912" ) @@ -2576,6 +2593,7 @@ + ]]> @@ -2591,64 +2609,64 @@ - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -2661,64 +2679,64 @@ - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -2731,64 +2749,64 @@ - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -2801,64 +2819,64 @@ - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -2871,64 +2889,64 @@ - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -2941,64 +2959,64 @@ - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -3011,64 +3029,64 @@ - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 - .00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 From jum at codespeak.net Wed Mar 17 17:04:51 2004 From: jum at codespeak.net (jum at codespeak.net) Date: Wed, 17 Mar 2004 17:04:51 +0100 (MET) Subject: [pypy-svn] r3268 - pypy/trunk/doc/devel Message-ID: <20040317160451.D6B735AAE1@thoth.codespeak.net> Author: jum Date: Wed Mar 17 17:04:49 2004 New Revision: 3268 Modified: pypy/trunk/doc/devel/howtosvn.txt Log: Updated the MacOS X binary. Modified: pypy/trunk/doc/devel/howtosvn.txt ============================================================================== --- pypy/trunk/doc/devel/howtosvn.txt (original) +++ pypy/trunk/doc/devel/howtosvn.txt Wed Mar 17 17:04:49 2004 @@ -136,7 +136,7 @@ .. _website: http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B259403 .. _GUI: http://tortoisesvn.tigris.org/servlets/ProjectDocumentList?folderID=616 -.. _MacOS: http://codespeak.net/~jum/svn-1.0.0-darwin-ppc.tar.gz +.. _MacOS: http://codespeak.net/~jum/svn-1.0.1-darwin-ppc.tar.gz .. _versions: http://subversion.tigris.org/project_packages.html .. _Win: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=4B6140F9-2D36-4977-8FA1-6F8A0F5DCA8F From jacob at codespeak.net Mon Mar 22 21:52:27 2004 From: jacob at codespeak.net (jacob at codespeak.net) Date: Mon, 22 Mar 2004 21:52:27 +0100 (MET) Subject: [pypy-svn] r3303 - pypy/trunk/doc/funding/negotiations Message-ID: <20040322205227.7E4DE5AAC8@thoth.codespeak.net> Author: jacob Date: Mon Mar 22 21:52:21 2004 New Revision: 3303 Added: pypy/trunk/doc/funding/negotiations/A3_draft.xls (contents, props changed) pypy/trunk/doc/funding/negotiations/pypycuts.xls (contents, props changed) Log: Drafts Added: pypy/trunk/doc/funding/negotiations/A3_draft.xls ============================================================================== Binary file. No diff available. Added: pypy/trunk/doc/funding/negotiations/pypycuts.xls ============================================================================== Binary file. No diff available. From jacob at codespeak.net Mon Mar 22 22:39:12 2004 From: jacob at codespeak.net (jacob at codespeak.net) Date: Mon, 22 Mar 2004 22:39:12 +0100 (MET) Subject: [pypy-svn] r3304 - pypy/trunk/doc/funding/negotiations Message-ID: <20040322213912.A536D5AAC8@thoth.codespeak.net> Author: jacob Date: Mon Mar 22 22:39:07 2004 New Revision: 3304 Modified: pypy/trunk/doc/funding/negotiations/pypycuts.xls Log: Modified to reinstate WP 11 and 12. Modified: pypy/trunk/doc/funding/negotiations/pypycuts.xls ============================================================================== Binary files. No diff available. From jacob at codespeak.net Tue Mar 23 00:23:59 2004 From: jacob at codespeak.net (jacob at codespeak.net) Date: Tue, 23 Mar 2004 00:23:59 +0100 (MET) Subject: [pypy-svn] r3305 - pypy/trunk/doc/funding/negotiations Message-ID: <20040322232359.78DAA5AAC8@thoth.codespeak.net> Author: jacob Date: Tue Mar 23 00:23:56 2004 New Revision: 3305 Modified: pypy/trunk/doc/funding/negotiations/pypycuts.xls Log: Fixed a few bugs in the numbers. Modified: pypy/trunk/doc/funding/negotiations/pypycuts.xls ============================================================================== Binary files. No diff available. From hpk at codespeak.net Tue Mar 23 02:14:08 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Tue, 23 Mar 2004 02:14:08 +0100 (MET) Subject: [pypy-svn] r3306 - pypy/trunk/doc/funding/negotiations Message-ID: <20040323011408.636A85AAC8@thoth.codespeak.net> Author: hpk Date: Tue Mar 23 02:14:06 2004 New Revision: 3306 Added: pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt Log: a draft of notes complementary to the notes from the EU commission project officers. Added: pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt ============================================================================== --- (empty file) +++ pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt Tue Mar 23 02:14:06 2004 @@ -0,0 +1,67 @@ +Additional Notes from the negotation meeting on 16th of March +-------------------------------------------------------------- + +These are revised selected notes complementing Mr. van Rooys notes from +the negotiating meeting at 16th of March 2004. He is expected to +only select a subset of this notes and integrate it into his notes. + +- Laura Crughton -> Laura Creighton + +- beyond-state-of-the-art: Commission staff asked for clarification + regarding the first phase of the project, "reaching state of the art". + Members of the consortium acknowledged that the title is misleading as + the first phase already implements a research tool which goes well + beyond state of the art. It already is to provide a uniquely modular + and flexible very high level interpreter (VHLL) architecture + translated into a low level language yet maintaining compatibility + with an industrial strength language. + +- multithreading: Clarifications were requested from the commission + staff regarding the goals of multithreading and massive parallelism. + Members of the consortium refered to complicated issues in current + language implementations such as Java, Perl and Python itself. All + such industrial strength language implementations usually decide early + on a specific threading model. The PyPy project aims at providing a + way to allow making this decision much later and indepdently from + other aspects. Moreover, massive parallelism with millions of threads + are to become both practical and easy to program. Today, this is + not the case with practical languages. + +- tests: The PyPy projects intends to measure compliancy with the + C-implementation of Python by passing a multitude of tests. However, + it is not sufficiently clear which categories of tests are to be + selected from the current C-implementation. Members of the consortium + clarify that all tests (functional or unit) of the language + specification are to be passed while implementation details might be + left out. In a case of doubt the original Python developers will be + consulted. + +- AOP & logic programming: The commission staff requests clarifications + and a better explanation of the work packages on aspect oriented and + logic programming. Small Examples of what is to be achieved should be + given. + +- broader dissemination: The commission staff remarked that the current + DoW does not include dissemination to organizations and people outside + the python communities. The consortium intends to do workshops for + outside communities but this is currently not reflected in the list of + tasks and deliverables. Action: define tasks and deliverables + regarding dissemination to non-python communities. + +- F/OSS licenses: The consortium intends to release all source code + under the MIT license. The commision staff remarked that this open + license doesn't offer the same level of protection as the General + public license (GPL). The consortium declared that it is working + closely with communities where BSD style licenses are common and that + using the GPL would alienate many contributors. Moreover, businesses + with interests in the PyPy project want to be able to freely use the + code base in commercial projects. + +- "users": There is some confusion regarding the definition of "the + user". The so called end user of the PyPy project is an implementor + adapting it to domain specific environments. Moreover, other + researchers are likely to be users as well because the PyPy + implementation will support research and educational activities. The + line between such users and contributors is set up to be easy to + cross. However, end users of applications running on top of a PyPy + variant will usually not know about this fact. From sanxiyn at codespeak.net Tue Mar 23 15:51:12 2004 From: sanxiyn at codespeak.net (sanxiyn at codespeak.net) Date: Tue, 23 Mar 2004 15:51:12 +0100 (MET) Subject: [pypy-svn] r3330 - pypy/trunk/src/pypy/appspace Message-ID: <20040323145112.131DD5AAC9@thoth.codespeak.net> Author: sanxiyn Date: Tue Mar 23 15:51:10 2004 New Revision: 3330 Added: pypy/trunk/src/pypy/appspace/sre_parse.py Log: Import from Python 2.3.3. Added: pypy/trunk/src/pypy/appspace/sre_parse.py ============================================================================== --- (empty file) +++ pypy/trunk/src/pypy/appspace/sre_parse.py Tue Mar 23 15:51:10 2004 @@ -0,0 +1,739 @@ +# +# Secret Labs' Regular Expression Engine +# +# convert re-style regular expression to sre pattern +# +# Copyright (c) 1998-2001 by Secret Labs AB. All rights reserved. +# +# See the sre.py file for information on usage and redistribution. +# + +"""Internal support module for sre""" + +# XXX: show string offset and offending character for all errors + +# this module works under 1.5.2 and later. don't use string methods +import string, sys + +from sre_constants import * + +SPECIAL_CHARS = ".\\[{()*+?^$|" +REPEAT_CHARS = "*+?{" + +DIGITS = tuple("0123456789") + +OCTDIGITS = tuple("01234567") +HEXDIGITS = tuple("0123456789abcdefABCDEF") + +WHITESPACE = tuple(" \t\n\r\v\f") + +ESCAPES = { + r"\a": (LITERAL, ord("\a")), + r"\b": (LITERAL, ord("\b")), + r"\f": (LITERAL, ord("\f")), + r"\n": (LITERAL, ord("\n")), + r"\r": (LITERAL, ord("\r")), + r"\t": (LITERAL, ord("\t")), + r"\v": (LITERAL, ord("\v")), + r"\\": (LITERAL, ord("\\")) +} + +CATEGORIES = { + r"\A": (AT, AT_BEGINNING_STRING), # start of string + r"\b": (AT, AT_BOUNDARY), + r"\B": (AT, AT_NON_BOUNDARY), + r"\d": (IN, [(CATEGORY, CATEGORY_DIGIT)]), + r"\D": (IN, [(CATEGORY, CATEGORY_NOT_DIGIT)]), + r"\s": (IN, [(CATEGORY, CATEGORY_SPACE)]), + r"\S": (IN, [(CATEGORY, CATEGORY_NOT_SPACE)]), + r"\w": (IN, [(CATEGORY, CATEGORY_WORD)]), + r"\W": (IN, [(CATEGORY, CATEGORY_NOT_WORD)]), + r"\Z": (AT, AT_END_STRING), # end of string +} + +FLAGS = { + # standard flags + "i": SRE_FLAG_IGNORECASE, + "L": SRE_FLAG_LOCALE, + "m": SRE_FLAG_MULTILINE, + "s": SRE_FLAG_DOTALL, + "x": SRE_FLAG_VERBOSE, + # extensions + "t": SRE_FLAG_TEMPLATE, + "u": SRE_FLAG_UNICODE, +} + +# figure out best way to convert hex/octal numbers to integers +try: + int("10", 8) + atoi = int # 2.0 and later +except TypeError: + atoi = string.atoi # 1.5.2 + +class Pattern: + # master pattern object. keeps track of global attributes + def __init__(self): + self.flags = 0 + self.open = [] + self.groups = 1 + self.groupdict = {} + def opengroup(self, name=None): + gid = self.groups + self.groups = gid + 1 + if name is not None: + ogid = self.groupdict.get(name, None) + if ogid is not None: + raise error, ("redefinition of group name %s as group %d; " + "was group %d" % (repr(name), gid, ogid)) + self.groupdict[name] = gid + self.open.append(gid) + return gid + def closegroup(self, gid): + self.open.remove(gid) + def checkgroup(self, gid): + return gid < self.groups and gid not in self.open + +class SubPattern: + # a subpattern, in intermediate form + def __init__(self, pattern, data=None): + self.pattern = pattern + if data is None: + data = [] + self.data = data + self.width = None + def dump(self, level=0): + nl = 1 + for op, av in self.data: + print level*" " + op,; nl = 0 + if op == "in": + # member sublanguage + print; nl = 1 + for op, a in av: + print (level+1)*" " + op, a + elif op == "branch": + print; nl = 1 + i = 0 + for a in av[1]: + if i > 0: + print level*" " + "or" + a.dump(level+1); nl = 1 + i = i + 1 + elif type(av) in (type(()), type([])): + for a in av: + if isinstance(a, SubPattern): + if not nl: print + a.dump(level+1); nl = 1 + else: + print a, ; nl = 0 + else: + print av, ; nl = 0 + if not nl: print + def __repr__(self): + return repr(self.data) + def __len__(self): + return len(self.data) + def __delitem__(self, index): + del self.data[index] + def __getitem__(self, index): + return self.data[index] + def __setitem__(self, index, code): + self.data[index] = code + def __getslice__(self, start, stop): + return SubPattern(self.pattern, self.data[start:stop]) + def insert(self, index, code): + self.data.insert(index, code) + def append(self, code): + self.data.append(code) + def getwidth(self): + # determine the width (min, max) for this subpattern + if self.width: + return self.width + lo = hi = 0L + for op, av in self.data: + if op is BRANCH: + i = sys.maxint + j = 0 + for av in av[1]: + l, h = av.getwidth() + i = min(i, l) + j = max(j, h) + lo = lo + i + hi = hi + j + elif op is CALL: + i, j = av.getwidth() + lo = lo + i + hi = hi + j + elif op is SUBPATTERN: + i, j = av[1].getwidth() + lo = lo + i + hi = hi + j + elif op in (MIN_REPEAT, MAX_REPEAT): + i, j = av[2].getwidth() + lo = lo + long(i) * av[0] + hi = hi + long(j) * av[1] + elif op in (ANY, RANGE, IN, LITERAL, NOT_LITERAL, CATEGORY): + lo = lo + 1 + hi = hi + 1 + elif op == SUCCESS: + break + self.width = int(min(lo, sys.maxint)), int(min(hi, sys.maxint)) + return self.width + +class Tokenizer: + def __init__(self, string): + self.string = string + self.index = 0 + self.__next() + def __next(self): + if self.index >= len(self.string): + self.next = None + return + char = self.string[self.index] + if char[0] == "\\": + try: + c = self.string[self.index + 1] + except IndexError: + raise error, "bogus escape (end of line)" + char = char + c + self.index = self.index + len(char) + self.next = char + def match(self, char, skip=1): + if char == self.next: + if skip: + self.__next() + return 1 + return 0 + def get(self): + this = self.next + self.__next() + return this + def tell(self): + return self.index, self.next + def seek(self, index): + self.index, self.next = index + +def isident(char): + return "a" <= char <= "z" or "A" <= char <= "Z" or char == "_" + +def isdigit(char): + return "0" <= char <= "9" + +def isname(name): + # check that group name is a valid string + if not isident(name[0]): + return False + for char in name: + if not isident(char) and not isdigit(char): + return False + return True + +def _group(escape, groups): + # check if the escape string represents a valid group + try: + gid = atoi(escape[1:]) + if gid and gid < groups: + return gid + except ValueError: + pass + return None # not a valid group + +def _class_escape(source, escape): + # handle escape code inside character class + code = ESCAPES.get(escape) + if code: + return code + code = CATEGORIES.get(escape) + if code: + return code + try: + if escape[1:2] == "x": + # hexadecimal escape (exactly two digits) + while source.next in HEXDIGITS and len(escape) < 4: + escape = escape + source.get() + escape = escape[2:] + if len(escape) != 2: + raise error, "bogus escape: %s" % repr("\\" + escape) + return LITERAL, atoi(escape, 16) & 0xff + elif escape[1:2] in OCTDIGITS: + # octal escape (up to three digits) + while source.next in OCTDIGITS and len(escape) < 5: + escape = escape + source.get() + escape = escape[1:] + return LITERAL, atoi(escape, 8) & 0xff + if len(escape) == 2: + return LITERAL, ord(escape[1]) + except ValueError: + pass + raise error, "bogus escape: %s" % repr(escape) + +def _escape(source, escape, state): + # handle escape code in expression + code = CATEGORIES.get(escape) + if code: + return code + code = ESCAPES.get(escape) + if code: + return code + try: + if escape[1:2] == "x": + # hexadecimal escape + while source.next in HEXDIGITS and len(escape) < 4: + escape = escape + source.get() + if len(escape) != 4: + raise ValueError + return LITERAL, atoi(escape[2:], 16) & 0xff + elif escape[1:2] == "0": + # octal escape + while source.next in OCTDIGITS and len(escape) < 4: + escape = escape + source.get() + return LITERAL, atoi(escape[1:], 8) & 0xff + elif escape[1:2] in DIGITS: + # octal escape *or* decimal group reference (sigh) + if source.next in DIGITS: + escape = escape + source.get() + if (escape[1] in OCTDIGITS and escape[2] in OCTDIGITS and + source.next in OCTDIGITS): + # got three octal digits; this is an octal escape + escape = escape + source.get() + return LITERAL, atoi(escape[1:], 8) & 0xff + # got at least one decimal digit; this is a group reference + group = _group(escape, state.groups) + if group: + if not state.checkgroup(group): + raise error, "cannot refer to open group" + return GROUPREF, group + raise ValueError + if len(escape) == 2: + return LITERAL, ord(escape[1]) + except ValueError: + pass + raise error, "bogus escape: %s" % repr(escape) + +def _parse_sub(source, state, nested=1): + # parse an alternation: a|b|c + + items = [] + while 1: + items.append(_parse(source, state)) + if source.match("|"): + continue + if not nested: + break + if not source.next or source.match(")", 0): + break + else: + raise error, "pattern not properly closed" + + if len(items) == 1: + return items[0] + + subpattern = SubPattern(state) + + # check if all items share a common prefix + while 1: + prefix = None + for item in items: + if not item: + break + if prefix is None: + prefix = item[0] + elif item[0] != prefix: + break + else: + # all subitems start with a common "prefix". + # move it out of the branch + for item in items: + del item[0] + subpattern.append(prefix) + continue # check next one + break + + # check if the branch can be replaced by a character set + for item in items: + if len(item) != 1 or item[0][0] != LITERAL: + break + else: + # we can store this as a character set instead of a + # branch (the compiler may optimize this even more) + set = [] + for item in items: + set.append(item[0]) + subpattern.append((IN, set)) + return subpattern + + subpattern.append((BRANCH, (None, items))) + return subpattern + +def _parse(source, state): + # parse a simple pattern + + subpattern = SubPattern(state) + + while 1: + + if source.next in ("|", ")"): + break # end of subpattern + this = source.get() + if this is None: + break # end of pattern + + if state.flags & SRE_FLAG_VERBOSE: + # skip whitespace and comments + if this in WHITESPACE: + continue + if this == "#": + while 1: + this = source.get() + if this in (None, "\n"): + break + continue + + if this and this[0] not in SPECIAL_CHARS: + subpattern.append((LITERAL, ord(this))) + + elif this == "[": + # character set + set = [] +## if source.match(":"): +## pass # handle character classes + if source.match("^"): + set.append((NEGATE, None)) + # check remaining characters + start = set[:] + while 1: + this = source.get() + if this == "]" and set != start: + break + elif this and this[0] == "\\": + code1 = _class_escape(source, this) + elif this: + code1 = LITERAL, ord(this) + else: + raise error, "unexpected end of regular expression" + if source.match("-"): + # potential range + this = source.get() + if this == "]": + if code1[0] is IN: + code1 = code1[1][0] + set.append(code1) + set.append((LITERAL, ord("-"))) + break + elif this: + if this[0] == "\\": + code2 = _class_escape(source, this) + else: + code2 = LITERAL, ord(this) + if code1[0] != LITERAL or code2[0] != LITERAL: + raise error, "bad character range" + lo = code1[1] + hi = code2[1] + if hi < lo: + raise error, "bad character range" + set.append((RANGE, (lo, hi))) + else: + raise error, "unexpected end of regular expression" + else: + if code1[0] is IN: + code1 = code1[1][0] + set.append(code1) + + # XXX: should move set optimization to compiler! + if len(set)==1 and set[0][0] is LITERAL: + subpattern.append(set[0]) # optimization + elif len(set)==2 and set[0][0] is NEGATE and set[1][0] is LITERAL: + subpattern.append((NOT_LITERAL, set[1][1])) # optimization + else: + # XXX: should add charmap optimization here + subpattern.append((IN, set)) + + elif this and this[0] in REPEAT_CHARS: + # repeat previous item + if this == "?": + min, max = 0, 1 + elif this == "*": + min, max = 0, MAXREPEAT + + elif this == "+": + min, max = 1, MAXREPEAT + elif this == "{": + here = source.tell() + min, max = 0, MAXREPEAT + lo = hi = "" + while source.next in DIGITS: + lo = lo + source.get() + if source.match(","): + while source.next in DIGITS: + hi = hi + source.get() + else: + hi = lo + if not source.match("}"): + subpattern.append((LITERAL, ord(this))) + source.seek(here) + continue + if lo: + min = atoi(lo) + if hi: + max = atoi(hi) + if max < min: + raise error, "bad repeat interval" + else: + raise error, "not supported" + # figure out which item to repeat + if subpattern: + item = subpattern[-1:] + else: + item = None + if not item or (len(item) == 1 and item[0][0] == AT): + raise error, "nothing to repeat" + if item[0][0] in (MIN_REPEAT, MAX_REPEAT): + raise error, "multiple repeat" + if source.match("?"): + subpattern[-1] = (MIN_REPEAT, (min, max, item)) + else: + subpattern[-1] = (MAX_REPEAT, (min, max, item)) + + elif this == ".": + subpattern.append((ANY, None)) + + elif this == "(": + group = 1 + name = None + if source.match("?"): + group = 0 + # options + if source.match("P"): + # python extensions + if source.match("<"): + # named group: skip forward to end of name + name = "" + while 1: + char = source.get() + if char is None: + raise error, "unterminated name" + if char == ">": + break + name = name + char + group = 1 + if not isname(name): + raise error, "bad character in group name" + elif source.match("="): + # named backreference + name = "" + while 1: + char = source.get() + if char is None: + raise error, "unterminated name" + if char == ")": + break + name = name + char + if not isname(name): + raise error, "bad character in group name" + gid = state.groupdict.get(name) + if gid is None: + raise error, "unknown group name" + subpattern.append((GROUPREF, gid)) + continue + else: + char = source.get() + if char is None: + raise error, "unexpected end of pattern" + raise error, "unknown specifier: ?P%s" % char + elif source.match(":"): + # non-capturing group + group = 2 + elif source.match("#"): + # comment + while 1: + if source.next is None or source.next == ")": + break + source.get() + if not source.match(")"): + raise error, "unbalanced parenthesis" + continue + elif source.next in ("=", "!", "<"): + # lookahead assertions + char = source.get() + dir = 1 + if char == "<": + if source.next not in ("=", "!"): + raise error, "syntax error" + dir = -1 # lookbehind + char = source.get() + p = _parse_sub(source, state) + if not source.match(")"): + raise error, "unbalanced parenthesis" + if char == "=": + subpattern.append((ASSERT, (dir, p))) + else: + subpattern.append((ASSERT_NOT, (dir, p))) + continue + else: + # flags + if not source.next in FLAGS: + raise error, "unexpected end of pattern" + while source.next in FLAGS: + state.flags = state.flags | FLAGS[source.get()] + if group: + # parse group contents + if group == 2: + # anonymous group + group = None + else: + group = state.opengroup(name) + p = _parse_sub(source, state) + if not source.match(")"): + raise error, "unbalanced parenthesis" + if group is not None: + state.closegroup(group) + subpattern.append((SUBPATTERN, (group, p))) + else: + while 1: + char = source.get() + if char is None: + raise error, "unexpected end of pattern" + if char == ")": + break + raise error, "unknown extension" + + elif this == "^": + subpattern.append((AT, AT_BEGINNING)) + + elif this == "$": + subpattern.append((AT, AT_END)) + + elif this and this[0] == "\\": + code = _escape(source, this, state) + subpattern.append(code) + + else: + raise error, "parser error" + + return subpattern + +def parse(str, flags=0, pattern=None): + # parse 're' pattern into list of (opcode, argument) tuples + + source = Tokenizer(str) + + if pattern is None: + pattern = Pattern() + pattern.flags = flags + pattern.str = str + + p = _parse_sub(source, pattern, 0) + + tail = source.get() + if tail == ")": + raise error, "unbalanced parenthesis" + elif tail: + raise error, "bogus characters at end of regular expression" + + if flags & SRE_FLAG_DEBUG: + p.dump() + + if not (flags & SRE_FLAG_VERBOSE) and p.pattern.flags & SRE_FLAG_VERBOSE: + # the VERBOSE flag was switched on inside the pattern. to be + # on the safe side, we'll parse the whole thing again... + return parse(str, p.pattern.flags) + + return p + +def parse_template(source, pattern): + # parse 're' replacement string into list of literals and + # group references + s = Tokenizer(source) + p = [] + a = p.append + def literal(literal, p=p): + if p and p[-1][0] is LITERAL: + p[-1] = LITERAL, p[-1][1] + literal + else: + p.append((LITERAL, literal)) + sep = source[:0] + if type(sep) is type(""): + makechar = chr + else: + makechar = unichr + while 1: + this = s.get() + if this is None: + break # end of replacement string + if this and this[0] == "\\": + # group + if this == "\\g": + name = "" + if s.match("<"): + while 1: + char = s.get() + if char is None: + raise error, "unterminated group name" + if char == ">": + break + name = name + char + if not name: + raise error, "bad group name" + try: + index = atoi(name) + except ValueError: + if not isname(name): + raise error, "bad character in group name" + try: + index = pattern.groupindex[name] + except KeyError: + raise IndexError, "unknown group name" + a((MARK, index)) + elif len(this) > 1 and this[1] in DIGITS: + code = None + while 1: + group = _group(this, pattern.groups+1) + if group: + if (s.next not in DIGITS or + not _group(this + s.next, pattern.groups+1)): + code = MARK, group + break + elif s.next in OCTDIGITS: + this = this + s.get() + else: + break + if not code: + this = this[1:] + code = LITERAL, makechar(atoi(this[-6:], 8) & 0xff) + if code[0] is LITERAL: + literal(code[1]) + else: + a(code) + else: + try: + this = makechar(ESCAPES[this][1]) + except KeyError: + pass + literal(this) + else: + literal(this) + # convert template to groups and literals lists + i = 0 + groups = [] + literals = [] + for c, s in p: + if c is MARK: + groups.append((i, s)) + literals.append(None) + else: + literals.append(s) + i = i + 1 + return groups, literals + +def expand_template(template, match): + g = match.group + sep = match.string[:0] + groups, literals = template + literals = literals[:] + try: + for index, group in groups: + literals[index] = s = g(group) + if s is None: + raise IndexError + except IndexError: + raise error, "empty group" + return string.join(literals, sep) From sanxiyn at codespeak.net Tue Mar 23 15:58:47 2004 From: sanxiyn at codespeak.net (sanxiyn at codespeak.net) Date: Tue, 23 Mar 2004 15:58:47 +0100 (MET) Subject: [pypy-svn] r3332 - pypy/trunk/src/pypy/appspace Message-ID: <20040323145847.2041F5AAC9@thoth.codespeak.net> Author: sanxiyn Date: Tue Mar 23 15:58:43 2004 New Revision: 3332 Modified: pypy/trunk/src/pypy/appspace/sre_parse.py Log: This lets re.compile('a*') work on StdObjSpace. It didn't work before. (Check yourself.) It still does not work on TrivialObjSpace, but so what. The problem was that StdObjSpace does not handle __(get|set|del)slice__ special methods. However, those special methods are declared deprecated since 2.0. See Language Reference section 3.3.6. Perhaps this should be fixed in CPython too? Modified: pypy/trunk/src/pypy/appspace/sre_parse.py ============================================================================== --- pypy/trunk/src/pypy/appspace/sre_parse.py (original) +++ pypy/trunk/src/pypy/appspace/sre_parse.py Tue Mar 23 15:58:43 2004 @@ -135,11 +135,12 @@ def __delitem__(self, index): del self.data[index] def __getitem__(self, index): - return self.data[index] + if isinstance(index, slice): + return SubPattern(self.pattern, self.data[index]) + else: + return self.data[index] def __setitem__(self, index, code): self.data[index] = code - def __getslice__(self, start, stop): - return SubPattern(self.pattern, self.data[start:stop]) def insert(self, index, code): self.data.insert(index, code) def append(self, code): From jacob at codespeak.net Tue Mar 23 16:15:20 2004 From: jacob at codespeak.net (jacob at codespeak.net) Date: Tue, 23 Mar 2004 16:15:20 +0100 (MET) Subject: [pypy-svn] r3336 - pypy/trunk/doc/funding/negotiations Message-ID: <20040323151520.D56625AAC9@thoth.codespeak.net> Author: jacob Date: Tue Mar 23 16:15:17 2004 New Revision: 3336 Modified: pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt Log: Minor addition. Modified: pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt ============================================================================== --- pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt (original) +++ pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt Tue Mar 23 16:15:17 2004 @@ -28,13 +28,14 @@ not the case with practical languages. - tests: The PyPy projects intends to measure compliancy with the - C-implementation of Python by passing a multitude of tests. However, - it is not sufficiently clear which categories of tests are to be - selected from the current C-implementation. Members of the consortium - clarify that all tests (functional or unit) of the language - specification are to be passed while implementation details might be - left out. In a case of doubt the original Python developers will be - consulted. + C-implementation of Python by passing a multitude of tests. + However, it is not sufficiently clear which categories of tests are + to be selected from the current C-implementation. Members of the + consortium clarify that all tests (functional or unit) of the + language specification are to be passed while implementation details + might be left out. Determining exactly which tests have to be + passed is a task in WP05. In a case of doubt the original Python + developers will be consulted. - AOP & logic programming: The commission staff requests clarifications and a better explanation of the work packages on aspect oriented and @@ -49,7 +50,7 @@ regarding dissemination to non-python communities. - F/OSS licenses: The consortium intends to release all source code - under the MIT license. The commision staff remarked that this open + under the MIT license. The commission staff remarked that this open license doesn't offer the same level of protection as the General public license (GPL). The consortium declared that it is working closely with communities where BSD style licenses are common and that From hpk at codespeak.net Wed Mar 24 10:49:33 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 24 Mar 2004 10:49:33 +0100 (MET) Subject: [pypy-svn] r3360 - pypy/trunk/doc/funding/negotiations Message-ID: <20040324094933.D81545AAC9@thoth.codespeak.net> Author: hpk Date: Wed Mar 24 10:49:32 2004 New Revision: 3360 Added: pypy/trunk/doc/funding/negotiations/neg. meeting 16-3-04.doc (contents, props changed) Log: added the negotiation protocol from Mr. van Rooy Added: pypy/trunk/doc/funding/negotiations/neg. meeting 16-3-04.doc ============================================================================== Binary file. No diff available. From sanxiyn at codespeak.net Wed Mar 24 11:00:13 2004 From: sanxiyn at codespeak.net (sanxiyn at codespeak.net) Date: Wed, 24 Mar 2004 11:00:13 +0100 (MET) Subject: [pypy-svn] r3361 - pypy/trunk/src/pypy/module Message-ID: <20040324100013.1E40B5AAC9@thoth.codespeak.net> Author: sanxiyn Date: Wed Mar 24 11:00:12 2004 New Revision: 3361 Modified: pypy/trunk/src/pypy/module/sysinterp.py Log: Borrows some modules to run "import pickle". Modified: pypy/trunk/src/pypy/module/sysinterp.py ============================================================================== --- pypy/trunk/src/pypy/module/sysinterp.py (original) +++ pypy/trunk/src/pypy/module/sysinterp.py Wed Mar 24 11:00:12 2004 @@ -40,7 +40,8 @@ # steal them from Python. for fn in ['posix', 'nt', 'os2', 'mac', 'ce', 'riscos', 'cStringIO', 'itertools', 'math', - '_random', '_sre', 'time']: + '_random', '_sre', 'time', + 'marshal', 'struct', 'binascii']: if fn not in builtin_modules: try: builtin_modules[fn] = hack_cpython_module(fn) From hpk at codespeak.net Wed Mar 24 15:59:36 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 24 Mar 2004 15:59:36 +0100 (MET) Subject: [pypy-svn] r3369 - pypy/trunk/doc/funding Message-ID: <20040324145936.D60A55AAC9@thoth.codespeak.net> Author: hpk Date: Wed Mar 24 15:59:33 2004 New Revision: 3369 Modified: pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt Log: - minor enhancements to the infrastructure WP02 (which i am going to take on as a partner as it seems) Modified: pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt Wed Mar 24 15:59:33 2004 @@ -3,7 +3,7 @@ .. |title| replace:: Infrastructure and tools .. |wp| replace:: WP02 .. |start| replace:: 0 -.. |p1| replace:: PBF +.. |p1| replace:: Krekel .. |m1| replace:: 12 .. |p2| replace:: |e| .. |m2| replace:: |e| @@ -22,7 +22,8 @@ **Objectives** -Supporting the PyPy project by producing and enhancing the tools. +Supporting the PyPy project by producing and enhancing the tools for version +control of source code, communication, dissemination and distribution of information. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc @@ -35,7 +36,7 @@ - maintain the Subversion repository including notification hooks and pre/post-commit restrictions. -- provide access over http/https and ssh server +- provide access over http/https and ssh to the repository. - build extensions for automatic document extraction @@ -55,6 +56,9 @@ - Take care of regular repository backups. Design a strict backup policy suitable for the project, and adhere to it. +- setup and maintain mailing lists for development, consortium + and community communication. + - help with automated testing .. include:: wp-tableend.asc @@ -68,7 +72,8 @@ - D02.3 several website revisions -- D02.4 automated (unit-)testing framework with html/pdf reports +- D02.4 automated (unit-)testing framework with html/pdf reports, + released it to the open source community. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc From tismer at codespeak.net Wed Mar 24 16:37:55 2004 From: tismer at codespeak.net (tismer at codespeak.net) Date: Wed, 24 Mar 2004 16:37:55 +0100 (MET) Subject: [pypy-svn] r3372 - pypy/trunk/doc/funding Message-ID: <20040324153755.BE5C05AAC9@thoth.codespeak.net> Author: tismer Date: Wed Mar 24 16:37:53 2004 New Revision: 3372 Modified: pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt Log: repaired rest. Note: substitutions don't like trailing spaces. XXX report that as an error Modified: pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt Wed Mar 24 16:37:53 2004 @@ -3,7 +3,7 @@ .. |title| replace:: Infrastructure and tools .. |wp| replace:: WP02 .. |start| replace:: 0 -.. |p1| replace:: Krekel +.. |p1| replace:: Krekel .. |m1| replace:: 12 .. |p2| replace:: |e| .. |m2| replace:: |e| From hpk at codespeak.net Wed Mar 24 17:32:08 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 24 Mar 2004 17:32:08 +0100 (MET) Subject: [pypy-svn] r3375 - pypy/trunk/doc/funding Message-ID: <20040324163208.B03B15AAC9@thoth.codespeak.net> Author: hpk Date: Wed Mar 24 17:32:06 2004 New Revision: 3375 Modified: pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt pypy/trunk/doc/funding/B6.7.wp04_core.txt Log: - tried to fix the partners with WP04 according to the negotiations/pypycut.xls budget - added two deliverables two WP04 - fixed a formatting problem in wp02 Modified: pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt Wed Mar 24 17:32:06 2004 @@ -73,7 +73,7 @@ - D02.3 several website revisions - D02.4 automated (unit-)testing framework with html/pdf reports, - released it to the open source community. + released it to the open source community. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc Modified: pypy/trunk/doc/funding/B6.7.wp04_core.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp04_core.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp04_core.txt Wed Mar 24 17:32:06 2004 @@ -3,16 +3,16 @@ .. |title| replace:: The PyPy Core .. |wp| replace:: WP04 .. |start| replace:: 0 -.. |p1| replace:: PBF -.. |m1| replace:: 18 -.. |p2| replace:: MPI -.. |m2| replace:: 9 +.. |p1| replace:: Strakt +.. |m1| replace:: 6 +.. |p2| replace:: Tismer +.. |m2| replace:: 4 .. |p3| replace:: DFKI -.. |m3| replace:: 2 +.. |m3| replace:: 4 .. |p4| replace:: Logilab -.. |m4| replace:: 4 -.. |p5| replace:: |e| -.. |m5| replace:: |e| +.. |m4| replace:: 5 +.. |p5| replace:: Krekel +.. |m5| replace:: 3 .. |p6| replace:: |e| .. |m6| replace:: |e| @@ -47,8 +47,8 @@ **Task 3** -Implement a Python parser and bytecode compiler in -Python. +Implement a Python parser and bytecode compiler in Python. +Leverage existing research and implementation techniques. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc @@ -57,6 +57,9 @@ - D04.1 First partial Python Implementation running on top of CPython - D04.2 Complete Python implementation running on top of CPython +- D04.3 Report about the parser and bytecode compiler implementation. +- D04.4 Release PyPy as a research tool for experimental language + enhancements .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc From hpk at codespeak.net Wed Mar 24 17:37:14 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 24 Mar 2004 17:37:14 +0100 (MET) Subject: [pypy-svn] r3376 - pypy/trunk/doc/funding Message-ID: <20040324163714.0F6265AAC9@thoth.codespeak.net> Author: hpk Date: Wed Mar 24 17:37:10 2004 New Revision: 3376 Modified: pypy/trunk/doc/funding/B6.7.wp04_core.txt Log: ugh, fixed formatting bug (no trailing spaces after replace directive) Modified: pypy/trunk/doc/funding/B6.7.wp04_core.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp04_core.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp04_core.txt Wed Mar 24 17:37:10 2004 @@ -12,7 +12,7 @@ .. |p4| replace:: Logilab .. |m4| replace:: 5 .. |p5| replace:: Krekel -.. |m5| replace:: 3 +.. |m5| replace:: 3 .. |p6| replace:: |e| .. |m6| replace:: |e| From alastair at codespeak.net Wed Mar 24 18:48:58 2004 From: alastair at codespeak.net (alastair at codespeak.net) Date: Wed, 24 Mar 2004 18:48:58 +0100 (MET) Subject: [pypy-svn] r3377 - pypy/trunk/doc/funding/negotiations Message-ID: <20040324174858.B8A815AAC9@thoth.codespeak.net> Author: alastair Date: Wed Mar 24 18:48:56 2004 New Revision: 3377 Modified: pypy/trunk/doc/funding/negotiations/email-eu-1.txt Log: Fixed typos. Modified: pypy/trunk/doc/funding/negotiations/email-eu-1.txt ============================================================================== --- pypy/trunk/doc/funding/negotiations/email-eu-1.txt (original) +++ pypy/trunk/doc/funding/negotiations/email-eu-1.txt Wed Mar 24 18:48:56 2004 @@ -7,7 +7,7 @@ During the meeting on 16th of March 2004 the PyPy consortium was told that the cost model and budget of the PBF is not acceptable according -to the guidelines of the sixth framework programm. +to the guidelines of the sixth framework program. This doesn't impose a big problem to the project because it is - also contrary to our previous belief - possible that individuals enter the @@ -21,7 +21,7 @@ As a result, we now intend to bring the consortium into its final shape like follows: -1. MPI shall employ Samuele Pedronis, taking part in core work +1. MPI shall employ Samuele Pedroni, taking part in core work and will also bring in the end user view into the project. Discussion: We don't think there is any problem as MPI is @@ -29,11 +29,11 @@ -------------- or ---------------------- -1. The financers of AB Strakt have promised to provide matching funding +1. The financiers of AB Strakt have promised to provide matching funding for Samuele Pedroni. Samuele joins AB Strakt as an employee. Previously he was planned to work through the MPI at core parts of the PyPy project. Thankfully, through AB Strakt he can still work at the - work packages previously assigned to MPI and PBF respecitvely. + work packages previously assigned to MPI and PBF respectively. Discussion: Samuele Pedroni is an important member of the project. We can't see that this change should pose any problems. @@ -52,7 +52,7 @@ distribute an average of 4 travel grants to each sprint. Half of these grants will go to people who are deemed to further the project technically, while half of the grants will be directed - towards diseminating knowledge about the project in the Python + towards disseminating knowledge about the project in the Python community. While the former grants may go to a single individual on multiple occasions, the latter shall be restricted to once per individual. A grant will cover economy travel, modest lodgings and @@ -62,14 +62,14 @@ expenses for the actual working time of the sponsored participants. This will contribute a total of 14 man months to the project, some of which will contribute to the technical goals and some which will - contribute to the disemination goals. For this, we want to make the + contribute to the dissemination goals. For this, we want to make the PBF a partner in appropriate working packages. b) The PBF is allowed to pay individual organisations for up to a total of 5 man months of time for infrastructure and dissemination tasks. Each man month will be paid for at a fixed rate of 7000 Euro. Each such contractor shall be selected from the membership of - the PBF and the wider european python community by the project + the PBF and the wider European python community by the project management board in collaboration with the PyPy-SIG of the PBF. No single contractor may receive more than 10.000 Euro. The time contributed in the item a) above shall be considered to be matching @@ -101,15 +101,15 @@ This limits flat grants to a maximum of 7% of the total project budget. -Under 6.1 Annex 1, 6.1.1 - Personell, First item, third sub-item, it +Under 6.1 Annex 1, 6.1.1 - Personnel, First item, third sub-item, it appears that the contract can specify a provision that allows subcontracting as specified in 3 b) above. -We believe that the procedure for selecting subcontractors as outlined -above fulfills the requirements in 2.2.1.1 for transparency and equal +We believe that the procedure for selecting sub-contractors as outlined +above fulfils the requirements in 2.2.1.1 for transparency and equal treatment. -As we understand it, by expicitly spelling out the provisions under item +As we understand it, by explicitly spelling out the provisions under item 3 above, we are in full compliance with the Guide to Financial Issues. If you agree to the proposed consortium and cost model scheme above we will From alastair at codespeak.net Wed Mar 24 19:46:44 2004 From: alastair at codespeak.net (alastair at codespeak.net) Date: Wed, 24 Mar 2004 19:46:44 +0100 (MET) Subject: [pypy-svn] r3378 - pypy/trunk/doc/funding/negotiations Message-ID: <20040324184644.2B3345AAC9@thoth.codespeak.net> Author: alastair Date: Wed Mar 24 19:46:36 2004 New Revision: 3378 Modified: pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt Log: Typos and more action oriented exposition. Modified: pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt ============================================================================== --- pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt (original) +++ pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt Wed Mar 24 19:46:36 2004 @@ -1,33 +1,36 @@ -Additional Notes from the negotation meeting on 16th of March +Additional Notes from the negotiation meeting on 16th of March -------------------------------------------------------------- -These are revised selected notes complementing Mr. van Rooys notes from +These are revised selected notes complementing Mr. van Rooy's notes from the negotiating meeting at 16th of March 2004. He is expected to only select a subset of this notes and integrate it into his notes. - Laura Crughton -> Laura Creighton -- beyond-state-of-the-art: Commission staff asked for clarification +- Beyond-State-Of-The-Art: Commission staff asked for clarification regarding the first phase of the project, "reaching state of the art". Members of the consortium acknowledged that the title is misleading as - the first phase already implements a research tool which goes well - beyond state of the art. It already is to provide a uniquely modular - and flexible very high level interpreter (VHLL) architecture - translated into a low level language yet maintaining compatibility - with an industrial strength language. - -- multithreading: Clarifications were requested from the commission - staff regarding the goals of multithreading and massive parallelism. - Members of the consortium refered to complicated issues in current + the first phase already implements a research tool which goes well beyond + state of the art and the DoW already explains how the modular + architecture for the interpreter to be developed within the first phase + is a significant advance on the current approaches in that area. + + Action: Rename the first phase. + +- Multi-Threading: Clarifications were requested from the commission + staff regarding the goals of multi-threading and massive parallelism. + Members of the consortium referred to complicated issues in current language implementations such as Java, Perl and Python itself. All such industrial strength language implementations usually decide early on a specific threading model. The PyPy project aims at providing a - way to allow making this decision much later and indepdently from + way to allow making this decision much later and independently from other aspects. Moreover, massive parallelism with millions of threads are to become both practical and easy to program. Today, this is - not the case with practical languages. + not the case with practical languages. -- tests: The PyPy projects intends to measure compliancy with the + Action: The DoW will be modified to clarify this issue. + +- Tests: The PyPy projects intends to measure compliance with the C-implementation of Python by passing a multitude of tests. However, it is not sufficiently clear which categories of tests are to be selected from the current C-implementation. Members of the @@ -37,17 +40,25 @@ passed is a task in WP05. In a case of doubt the original Python developers will be consulted. + Action: The DoW will be modified to make it clearer what type of tests we + are referring to and the definition of WP05 will specify the test + selection process. + - AOP & logic programming: The commission staff requests clarifications and a better explanation of the work packages on aspect oriented and logic programming. Small Examples of what is to be achieved should be given. -- broader dissemination: The commission staff remarked that the current - DoW does not include dissemination to organizations and people outside + Action: The relevant section of the DoW will be extended. + +- Broader Dissemination: The commission staff remarked that the current + DoW does not include dissemination to organisations and people outside the python communities. The consortium intends to do workshops for outside communities but this is currently not reflected in the list of - tasks and deliverables. Action: define tasks and deliverables - regarding dissemination to non-python communities. + tasks and deliverables. + + Action: We will define tasks and deliverables that we use as vehicles for + dissemination to people outside the Python community. - F/OSS licenses: The consortium intends to release all source code under the MIT license. The commission staff remarked that this open @@ -58,7 +69,10 @@ with interests in the PyPy project want to be able to freely use the code base in commercial projects. -- "users": There is some confusion regarding the definition of "the + Action: The DoW will include a justification of the license + chosen. Compatibility with the GPL will be addressed. + +- "Users": There is some confusion regarding the definition of "the user". The so called end user of the PyPy project is an implementor adapting it to domain specific environments. Moreover, other researchers are likely to be users as well because the PyPy @@ -66,3 +80,5 @@ line between such users and contributors is set up to be easy to cross. However, end users of applications running on top of a PyPy variant will usually not know about this fact. + + Action: The DoW will be modified to avoid this confusion. From alastair at codespeak.net Wed Mar 24 20:22:28 2004 From: alastair at codespeak.net (alastair at codespeak.net) Date: Wed, 24 Mar 2004 20:22:28 +0100 (MET) Subject: [pypy-svn] r3379 - pypy/trunk/doc/funding/negotiations Message-ID: <20040324192228.BAD265AAC9@thoth.codespeak.net> Author: alastair Date: Wed Mar 24 20:22:27 2004 New Revision: 3379 Modified: pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt Log: Fixed bad style. Modified: pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt ============================================================================== --- pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt (original) +++ pypy/trunk/doc/funding/negotiations/negotiation_notes-1.txt Wed Mar 24 20:22:27 2004 @@ -49,7 +49,7 @@ logic programming. Small Examples of what is to be achieved should be given. - Action: The relevant section of the DoW will be extended. + Action: The relevant sections of the DoW will be extended. - Broader Dissemination: The commission staff remarked that the current DoW does not include dissemination to organisations and people outside @@ -57,8 +57,8 @@ outside communities but this is currently not reflected in the list of tasks and deliverables. - Action: We will define tasks and deliverables that we use as vehicles for - dissemination to people outside the Python community. + Action: The DoW will define tasks and deliverables that will be used as + vehicles for dissemination to people outside the Python community. - F/OSS licenses: The consortium intends to release all source code under the MIT license. The commission staff remarked that this open From pedronis at codespeak.net Wed Mar 24 22:58:18 2004 From: pedronis at codespeak.net (pedronis at codespeak.net) Date: Wed, 24 Mar 2004 22:58:18 +0100 (MET) Subject: [pypy-svn] r3385 - pypy/trunk/doc/funding Message-ID: <20040324215818.A016E5AAC9@thoth.codespeak.net> Author: pedronis Date: Wed Mar 24 22:58:15 2004 New Revision: 3385 Modified: pypy/trunk/doc/funding/B6.7.wp03_synchronisation.txt Log: clarified tasks, added report as deliverable Modified: pypy/trunk/doc/funding/B6.7.wp03_synchronisation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp03_synchronisation.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp03_synchronisation.txt Wed Mar 24 22:58:15 2004 @@ -4,7 +4,7 @@ .. |wp| replace:: WP03 .. |start| replace:: 0 .. |p1| replace:: USH -.. |m1| replace:: 12 +.. |m1| replace:: 9 .. |p2| replace:: |e| .. |m2| replace:: |e| .. |p3| replace:: |e| @@ -48,7 +48,8 @@ existing C extensions. Support a subset of the CPython API. Facilitate porting of more involved extensions. -Adjust existing interface generators to target PyPy. +Investigate adjusting existing interface generators (in particular SWIG, used e.g +by wxPython, subversion bindings and other popular extensions) to target PyPy. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc @@ -56,7 +57,8 @@ **Deliverables** - D03.1 A version of PyPy that supports a subset of the CPython API -- D03.2 A guide describing the porting of C extensions to PyPy +- D03.2 A report on the feasibility of supporting full C-extensions compatibility +- D03.3 A guide describing the porting of C extensions to PyPy .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc From hpk at codespeak.net Wed Mar 24 23:27:19 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 24 Mar 2004 23:27:19 +0100 (MET) Subject: [pypy-svn] r3386 - pypy/trunk/doc/funding Message-ID: <20040324222719.F25B05AAC9@thoth.codespeak.net> Author: hpk Date: Wed Mar 24 23:27:19 2004 New Revision: 3386 Modified: pypy/trunk/doc/funding/B6.7.wp05_translation.txt Log: - added a report deliverable to WP05 - adjusted the partners to match the current pypypcuts.xls document Modified: pypy/trunk/doc/funding/B6.7.wp05_translation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp05_translation.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp05_translation.txt Wed Mar 24 23:27:19 2004 @@ -4,15 +4,15 @@ .. |wp| replace:: WP05 .. |start| replace:: 0 .. |p1| replace:: STRAKT -.. |m1| replace:: 18 -.. |p2| replace:: MPI -.. |m2| replace:: 9 +.. |m1| replace:: 15 +.. |p2| replace:: DFKI +.. |m2| replace:: 2 .. |p3| replace:: USH .. |m3| replace:: 9 -.. |p4| replace:: PBF -.. |m4| replace:: 3 -.. |p5| replace:: |e| -.. |m5| replace:: |e| +.. |p4| replace:: Tismer +.. |m4| replace:: 2 +.. |p5| replace:: Krekel +.. |m5| replace:: 1 .. |p6| replace:: |e| .. |m6| replace:: |e| @@ -58,7 +58,9 @@ **Deliverables** - D05.1 Tool chain for translating and compiling arbitrary RPython programs -- D05.2 A compiled, self-contained version of PyPy +- D05.2 Release a compiled, self-contained version of PyPy +- D05.3 Report about solved and remaining problems regarding the + design of RPython and its translation. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc @@ -66,11 +68,12 @@ **Milestones and Expected Result** - Complete implementation of Python, conforming to the language - definition and passing all relevant[*]_ tests of the official Python test suite. + definition and passing all language compliancy [*]_ tests of the official Python test suite. .. [*] CPython contains some tests that depend on implementation details. The exact line between a language feature and an implementation detail might at times be hard to draw precisely, but in all cases this only concerns a - minorily of the tests (less than 10%). + minority of the tests. In case of doubt the original python developers will be + consulted. .. include:: wp-tableend.asc From hpk at codespeak.net Wed Mar 24 23:37:25 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 24 Mar 2004 23:37:25 +0100 (MET) Subject: [pypy-svn] r3387 - pypy/trunk/doc/funding Message-ID: <20040324223725.1A4C35AAC9@thoth.codespeak.net> Author: hpk Date: Wed Mar 24 23:37:21 2004 New Revision: 3387 Modified: pypy/trunk/doc/funding/B6.7.wp05_translation.txt Log: fixed silly formatting bugs (argl!) Modified: pypy/trunk/doc/funding/B6.7.wp05_translation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp05_translation.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp05_translation.txt Wed Mar 24 23:37:21 2004 @@ -5,14 +5,14 @@ .. |start| replace:: 0 .. |p1| replace:: STRAKT .. |m1| replace:: 15 -.. |p2| replace:: DFKI +.. |p2| replace:: DFKI .. |m2| replace:: 2 .. |p3| replace:: USH .. |m3| replace:: 9 .. |p4| replace:: Tismer .. |m4| replace:: 2 -.. |p5| replace:: Krekel -.. |m5| replace:: 1 +.. |p5| replace:: Krekel +.. |m5| replace:: 1 .. |p6| replace:: |e| .. |m6| replace:: |e| From hpk at codespeak.net Thu Mar 25 00:02:53 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Thu, 25 Mar 2004 00:02:53 +0100 (MET) Subject: [pypy-svn] r3388 - pypy/trunk/doc/funding Message-ID: <20040324230253.171635AAC9@thoth.codespeak.net> Author: hpk Date: Thu Mar 25 00:02:51 2004 New Revision: 3388 Modified: pypy/trunk/doc/funding/B6.7.wp05_translation.txt Log: - wp05: target translation aspects such as memory management and threading models explicitely (because we talk about that in B6.0, our implementation plan) - i think WP05 might still need to address deliverables other than a C runtime because we also talk about that in B6.0 Modified: pypy/trunk/doc/funding/B6.7.wp05_translation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp05_translation.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp05_translation.txt Thu Mar 25 00:02:51 2004 @@ -51,6 +51,8 @@ In order to give a working environment to the translated RPython program, build the low-level-specific runtime components of PyPy. For the C PyPy runtime, important parts can be directly re-used from CPython. +However, certain aspects such as memory management and threading models +are to be implemented in a modular way. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc @@ -58,9 +60,9 @@ **Deliverables** - D05.1 Tool chain for translating and compiling arbitrary RPython programs -- D05.2 Release a compiled, self-contained version of PyPy -- D05.3 Report about solved and remaining problems regarding the - design of RPython and its translation. +- D05.2 Release a compiled, self-contained modular version of PyPy +- D05.3 Publish solved and remaining problems regarding RPython and + memory management/threading models as translation aspects. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc From hpk at codespeak.net Thu Mar 25 00:08:47 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Thu, 25 Mar 2004 00:08:47 +0100 (MET) Subject: [pypy-svn] r3389 - pypy/trunk/doc/funding Message-ID: <20040324230847.CF64B5AAC9@thoth.codespeak.net> Author: hpk Date: Thu Mar 25 00:08:46 2004 New Revision: 3389 Modified: pypy/trunk/doc/funding/B6.7.wp06_core_optimisations.txt Log: wp06: - fixed partner/time allocation - specified publication of statistics Modified: pypy/trunk/doc/funding/B6.7.wp06_core_optimisations.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp06_core_optimisations.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp06_core_optimisations.txt Thu Mar 25 00:08:46 2004 @@ -4,9 +4,9 @@ .. |wp| replace:: WP06 .. |start| replace:: 9 .. |p1| replace:: USH -.. |m1| replace:: 15 -.. |p2| replace:: MPI -.. |m2| replace:: 9 +.. |m1| replace:: 12 +.. |p2| replace:: |e| +.. |m2| replace:: |e| .. |p3| replace:: |e| .. |m3| replace:: |e| .. |p4| replace:: |e| @@ -57,7 +57,8 @@ **Deliverables** -- D06.1 Publication of statistics +- D06.1 Publication of performance statistics for different + implementations of core objects - D06.2 Publication of novel heuristic techniques .. include:: wp-tableend.asc @@ -65,6 +66,6 @@ **Milestones and Expected Result** -- Better performance for all non-trivial executed programs +- Measurably better performance for non-trivial programs. .. include:: wp-tableend.asc From hpk at codespeak.net Thu Mar 25 00:16:48 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Thu, 25 Mar 2004 00:16:48 +0100 (MET) Subject: [pypy-svn] r3390 - pypy/trunk/doc/funding Message-ID: <20040324231648.379E95AAC9@thoth.codespeak.net> Author: hpk Date: Thu Mar 25 00:16:47 2004 New Revision: 3390 Modified: pypy/trunk/doc/funding/B6.7.wp07_translator_optimisations.txt Log: WP07 (translation optimizations): - fixed time/partner allocation - added a report about practical applications of the new techonlogy Modified: pypy/trunk/doc/funding/B6.7.wp07_translator_optimisations.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp07_translator_optimisations.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp07_translator_optimisations.txt Thu Mar 25 00:16:47 2004 @@ -3,12 +3,12 @@ .. |title| replace:: Translator Optimizations .. |wp| replace:: WP07 .. |start| replace:: 9 -.. |p1| replace:: PBF -.. |m1| replace:: 22 -.. |p2| replace:: |e| -.. |m2| replace:: |e| -.. |p3| replace:: |e| -.. |m3| replace:: |e| +.. |p1| replace:: Tismer +.. |m1| replace:: 9 +.. |p2| replace:: Krekel +.. |m2| replace:: 4 +.. |p3| replace:: USH +.. |m3| replace:: 3 .. |p4| replace:: |e| .. |m4| replace:: |e| .. |p5| replace:: |e| @@ -45,8 +45,7 @@ **Task 2** Study approaches concerning code size vs. speed trade-offs. -Implement and compare different object layout and memory management strategy -or strategies. +Implement and compare different object layout and memory management strategies. Enhance multimethod dispatching. Implement schemes of pointer tagging. Create reports and merge the results back into the optimization effort. @@ -57,8 +56,9 @@ **Deliverables** -- D07.1 A version of PyPy that supports Real-time massive parallelism -- D07.2 Report on optimisation results submitted as publications +- D07.1 Release a version of PyPy that supports real-time massive parallelism +- D07.2 Publish optimisation results +- D07.3 Report about practical usages of massive parallelism .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc From pedronis at codespeak.net Thu Mar 25 00:24:17 2004 From: pedronis at codespeak.net (pedronis at codespeak.net) Date: Thu, 25 Mar 2004 00:24:17 +0100 (MET) Subject: [pypy-svn] r3391 - pypy/trunk/doc/funding Message-ID: <20040324232417.8E8045AAC9@thoth.codespeak.net> Author: pedronis Date: Thu Mar 25 00:24:16 2004 New Revision: 3391 Modified: pypy/trunk/doc/funding/B6.7.wp12_validations.txt Log: - fixed time/partner allocation Modified: pypy/trunk/doc/funding/B6.7.wp12_validations.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp12_validations.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp12_validations.txt Thu Mar 25 00:24:16 2004 @@ -3,10 +3,10 @@ .. |title| replace:: Implement Security, Distribution and Persistence .. |wp| replace:: WP12 .. |start| replace:: 18 -.. |p1| replace:: PBF -.. |m1| replace:: 12 +.. |p1| replace:: USH +.. |m1| replace:: 3 .. |p2| replace:: STRAKT -.. |m2| replace:: 12 +.. |m2| replace:: 10 .. |p3| replace:: |e| .. |m3| replace:: |e| .. |p4| replace:: |e| @@ -53,7 +53,7 @@ **Deliverables** -- D12.1 A PyPy version which supports secure restricted execution of arbitrary Python programs +- D12.1 A PyPy version which supports secure restricted execution of Python programs - D12.2 A PyPy version which supports distributed execution of arbitrary Python programs From hpk at codespeak.net Thu Mar 25 00:50:06 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Thu, 25 Mar 2004 00:50:06 +0100 (MET) Subject: [pypy-svn] r3392 - pypy/trunk/doc/funding Message-ID: <20040324235006.BC4115AAC9@thoth.codespeak.net> Author: hpk Date: Thu Mar 25 00:50:05 2004 New Revision: 3392 Modified: pypy/trunk/doc/funding/B6.7.wp08_dynamic_optimisation.txt Log: WP08: - fix timer/partner allocation - add a publication about the new JIT architecture we are going to do (arent't we :-) Modified: pypy/trunk/doc/funding/B6.7.wp08_dynamic_optimisation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp08_dynamic_optimisation.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp08_dynamic_optimisation.txt Thu Mar 25 00:50:05 2004 @@ -4,11 +4,11 @@ .. |wp| replace:: WP08 .. |start| replace:: 9 .. |p1| replace:: STRAKT -.. |m1| replace:: 18 -.. |p2| replace:: MPI +.. |m1| replace:: 17 +.. |p2| replace:: Tismer .. |m2| replace:: 9 -.. |p3| replace:: PBF -.. |m3| replace:: 9 +.. |p3| replace:: |e| +.. |m3| replace:: |e| .. |p4| replace:: |e| .. |m4| replace:: |e| .. |p5| replace:: |e| @@ -54,7 +54,9 @@ **Deliverables** - D08.1 A processor back-end supporting Intel(tm) i386 and PowerPC -- D08.2 A Just-In-Time compiler for PyPy +- D08.2 Release A Just-In-Time compiler for PyPy +- D08.3 Publish a report about the new JIT architecture and how its + techniques can be applied to languages other than Python/PyPy. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc From pedronis at codespeak.net Thu Mar 25 00:53:42 2004 From: pedronis at codespeak.net (pedronis at codespeak.net) Date: Thu, 25 Mar 2004 00:53:42 +0100 (MET) Subject: [pypy-svn] r3393 - pypy/trunk/doc/funding Message-ID: <20040324235342.3D2365AAC9@thoth.codespeak.net> Author: pedronis Date: Thu Mar 25 00:53:40 2004 New Revision: 3393 Modified: pypy/trunk/doc/funding/B6.7.wp12_validations.txt Log: rewording for deliverables Modified: pypy/trunk/doc/funding/B6.7.wp12_validations.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp12_validations.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp12_validations.txt Thu Mar 25 00:53:40 2004 @@ -53,11 +53,11 @@ **Deliverables** -- D12.1 A PyPy version which supports secure restricted execution of Python programs +- D12.1 Release an experimental PyPy version which supports secure restricted execution of Python programs -- D12.2 A PyPy version which supports distributed execution of arbitrary Python programs +- D12.2 Release an experimental PyPy version which supports distributed execution of arbitrary Python programs -- D12.3 A PyPy version which supports persistent execution of arbitrary Python programs +- D12.3 Release an experimental PyPy version which supports persistent execution of arbitrary Python programs .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc From hpk at codespeak.net Thu Mar 25 00:54:31 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Thu, 25 Mar 2004 00:54:31 +0100 (MET) Subject: [pypy-svn] r3394 - pypy/trunk/doc/funding Message-ID: <20040324235431.863DB5AAC9@thoth.codespeak.net> Author: hpk Date: Thu Mar 25 00:54:26 2004 New Revision: 3394 Modified: pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt Log: WP02: - added a "release scheme" task and deliverable - the problem is a bit that WP02 is very detailed but then it can ... what do you think? Modified: pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt Thu Mar 25 00:54:26 2004 @@ -38,6 +38,8 @@ - provide access over http/https and ssh to the repository. +- setup support for releasing different versions of Python + - build extensions for automatic document extraction - maintain/setup mailing lists @@ -68,12 +70,13 @@ - D02.1 configuring, installation of all development tools (subversion, apache2, mailman, backup, roundup, ...) -- D02.2 http-server to present runtime/introspection information aiding debugging and understanding of PyPy internals +- D02.2 introduce and document a release scheme for PyPy versions + +- D02.3 http-server to present runtime/introspection information aiding debugging and understanding of PyPy internals -- D02.3 several website revisions +- D02.4 several website revisions -- D02.4 automated (unit-)testing framework with html/pdf reports, - released it to the open source community. +- D02.5 release automated (unit-)testing framework with html/pdf reports, .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc From hpk at codespeak.net Thu Mar 25 00:56:13 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Thu, 25 Mar 2004 00:56:13 +0100 (MET) Subject: [pypy-svn] r3395 - pypy/trunk/doc/funding Message-ID: <20040324235613.D1CF55AAC9@thoth.codespeak.net> Author: hpk Date: Thu Mar 25 00:56:11 2004 New Revision: 3395 Modified: pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt Log: ups :-) Modified: pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt Thu Mar 25 00:56:11 2004 @@ -38,7 +38,7 @@ - provide access over http/https and ssh to the repository. -- setup support for releasing different versions of Python +- setup support for releasing different versions of PyPy - build extensions for automatic document extraction From hpk at codespeak.net Thu Mar 25 12:12:26 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Thu, 25 Mar 2004 12:12:26 +0100 (MET) Subject: [pypy-svn] r3405 - pypy/trunk/doc/funding/negotiations Message-ID: <20040325111226.6AF385AAC9@thoth.codespeak.net> Author: hpk Date: Thu Mar 25 12:12:24 2004 New Revision: 3405 Modified: pypy/trunk/doc/funding/negotiations/email-eu-1.txt Log: improved the draft mail (hope we didnt interfere with each other, Alastair) the main thing is that in the first paragraphs i introduced some more explanation and reasoning about what we are going to do. I do think we should not just shift money and partners around but talk about our intentions. Modified: pypy/trunk/doc/funding/negotiations/email-eu-1.txt ============================================================================== --- pypy/trunk/doc/funding/negotiations/email-eu-1.txt (original) +++ pypy/trunk/doc/funding/negotiations/email-eu-1.txt Thu Mar 25 12:12:24 2004 @@ -6,29 +6,27 @@ Dear Mr van Roy, Dear Mr. Lacroix, During the meeting on 16th of March 2004 the PyPy consortium was told -that the cost model and budget of the PBF is not acceptable according -to the guidelines of the sixth framework program. - -This doesn't impose a big problem to the project because it is - also -contrary to our previous belief - possible that individuals enter the -consortium. We believe this is due to the new rule that partners are -liable to each other. - -[Moreover, we were able to get the Max Planck Institute back into the -consortium: after more discussion they now agree to take budget cuts -similar to those of the other partners in the consortium.] +that the cost model and budget of the PBF is not acceptable within the +sixth framework program. Originally the PBF was to take on two +responsilibites: deploying certain people for core work and connecting +the project to open source and business communities. + +For the first part we can substitute by bringing in three of the +individuals as consortium partners. The fourth person is to be employed +by AB Strakt. We didn't know before that it was possible to have +individuals as consortium partners. It's still a bit unfortunate +because it seems to be harder now to bring in specific experts +later on. + +But the second responsibility and role should stay with the PBF: +connecting and disseminating to open source and business communities. +Also Implementing an industrial strength beyond-state-of the-art language +platform means we have to collaborate with as many experts as possible to +reduce the risk of failing. As a result, we now intend to bring the consortium into its final shape like follows: -1. MPI shall employ Samuele Pedroni, taking part in core work - and will also bring in the end user view into the project. - - Discussion: We don't think there is any problem as MPI is - an acknowledged partner in many EU projects. - - -------------- or ---------------------- - 1. The financiers of AB Strakt have promised to provide matching funding for Samuele Pedroni. Samuele joins AB Strakt as an employee. Previously he was planned to work through the MPI at core parts of the PyPy @@ -40,7 +38,8 @@ 2. Christian Tismer, Alex Martelli and Holger Krekel shall enter the project as individual contractors using the FCF model. All three of - them work as independent contractors for a long time. They provide + them work as independent contractors for a long time and are active + in business, research and education communities. They provide matching funding through savings, part time consultancy work and reduced income. Their normal costs plus 20% overheads are to be specified in the budget. @@ -89,7 +88,7 @@ specify direct costs, it does not have the means to identify indirect costs. -The PBF is no longer responsible for core activities in the project, +The PBF is no longer directly responsible for core activities in the project, and its budget is 7% of the entire project budget. We hope this will be reasonable from a financial control point of view. From hpk at codespeak.net Thu Mar 25 19:06:13 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Thu, 25 Mar 2004 19:06:13 +0100 (MET) Subject: [pypy-svn] r3423 - pypy/trunk/doc/funding/negotiations Message-ID: <20040325180613.C36375AAC9@thoth.codespeak.net> Author: hpk Date: Thu Mar 25 19:06:05 2004 New Revision: 3423 Modified: pypy/trunk/doc/funding/negotiations/email-eu-1.txt Log: - yet another improvement: don't claim that anything else than the PBF question is "minor" - bring point 2. into the "statement" / "discussion" form. Modified: pypy/trunk/doc/funding/negotiations/email-eu-1.txt ============================================================================== --- pypy/trunk/doc/funding/negotiations/email-eu-1.txt (original) +++ pypy/trunk/doc/funding/negotiations/email-eu-1.txt Thu Mar 25 19:06:05 2004 @@ -24,8 +24,7 @@ platform means we have to collaborate with as many experts as possible to reduce the risk of failing. -As a result, we now intend to bring the consortium into its final -shape like follows: +As a result, all partners agree to the following consortium shape: 1. The financiers of AB Strakt have promised to provide matching funding for Samuele Pedroni. Samuele joins AB Strakt as an employee. Previously @@ -37,13 +36,14 @@ can't see that this change should pose any problems. 2. Christian Tismer, Alex Martelli and Holger Krekel shall enter the - project as individual contractors using the FCF model. All three of - them work as independent contractors for a long time and are active - in business, research and education communities. They provide + project as individual contractors using the FCF model. They provide matching funding through savings, part time consultancy work and reduced income. Their normal costs plus 20% overheads are to be specified in the budget. + Discssion: All three of them worked as independent contractors for a + long time and are active in business, research and education communities. + 3. the PBF will use the AC model and receives a flat grant of 94700 Euro to be allocated as follows: @@ -112,7 +112,7 @@ 3 above, we are in full compliance with the Guide to Financial Issues. If you agree to the proposed consortium and cost model scheme above we will -prepare all papers and also solve the more minor points raised at our -negotiation meeting until 2nd of April. +prepare the CPF's accordingly and produce a new DoW and also respond to your +other actions until 2nd of April. thanks, From sanxiyn at codespeak.net Sun Mar 28 14:53:30 2004 From: sanxiyn at codespeak.net (sanxiyn at codespeak.net) Date: Sun, 28 Mar 2004 14:53:30 +0200 (MEST) Subject: [pypy-svn] r3456 - pypy/trunk/src/pypy/appspace Message-ID: <20040328125330.3CCB55A131@thoth.codespeak.net> Author: sanxiyn Date: Sun Mar 28 14:53:28 2004 New Revision: 3456 Modified: pypy/trunk/src/pypy/appspace/sre_parse.py Log: re.compile works on TrivialObjSpace. Iterating over object which define __getitem__ is broken in TrivialObjSpace. Work around it. Modified: pypy/trunk/src/pypy/appspace/sre_parse.py ============================================================================== --- pypy/trunk/src/pypy/appspace/sre_parse.py (original) +++ pypy/trunk/src/pypy/appspace/sre_parse.py Sun Mar 28 14:53:28 2004 @@ -132,6 +132,8 @@ return repr(self.data) def __len__(self): return len(self.data) + def __iter__(self): + return iter(self.data) def __delitem__(self, index): del self.data[index] def __getitem__(self, index): From sanxiyn at codespeak.net Sun Mar 28 16:10:30 2004 From: sanxiyn at codespeak.net (sanxiyn at codespeak.net) Date: Sun, 28 Mar 2004 16:10:30 +0200 (MEST) Subject: [pypy-svn] r3458 - pypy/trunk/src/pypy/appspace Message-ID: <20040328141030.AABFA5A131@thoth.codespeak.net> Author: sanxiyn Date: Sun Mar 28 16:10:28 2004 New Revision: 3458 Removed: pypy/trunk/src/pypy/appspace/os.py Log: Since dir() works now, rocco's workaround is no more needed. Deleted: /pypy/trunk/src/pypy/appspace/os.py ============================================================================== --- /pypy/trunk/src/pypy/appspace/os.py Sun Mar 28 16:10:28 2004 +++ (empty file) @@ -1,659 +0,0 @@ -r"""OS routines for Mac, DOS, NT, or Posix depending on what system we're on. - -!! This file has been copied practicaly verbatim from the CPython source. -!! See http://www.python.org/2.3.2/license.html for licensing info. - -This exports: - - all functions from posix, nt, os2, mac, or ce, e.g. unlink, stat, etc. - - os.path is one of the modules posixpath, ntpath, or macpath - - os.name is 'posix', 'nt', 'os2', 'mac', 'ce' or 'riscos' - - os.curdir is a string representing the current directory ('.' or ':') - - os.pardir is a string representing the parent directory ('..' or '::') - - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\') - - os.extsep is the extension separator ('.' or '/') - - os.altsep is the alternate pathname separator (None or '/') - - os.pathsep is the component separator used in $PATH etc - - os.linesep is the line separator in text files ('\r' or '\n' or '\r\n') - - os.defpath is the default search path for executables - -Programs that import and use 'os' stand a better chance of being -portable between different platforms. Of course, they must then -only use functions that are defined by all platforms (e.g., unlink -and opendir), and leave all pathname manipulation to os.path -(e.g., split and join). -""" - -#' - -import sys - -_names = sys.builtin_module_names - -# Note: more names are added to __all__ later. -__all__ = ["altsep", "curdir", "pardir", "sep", "pathsep", "linesep", - "defpath", "name", "path"] - -def _get_exports_list(module): - try: - return list(module.__all__) - except AttributeError: - return [n for n in module.__dict__.keys() if n[0] != '_'] - -if 'posix' in _names: - name = 'posix' - linesep = '\n' - from posix import * - try: - from posix import _exit - except ImportError: - pass - import posixpath as path - - import posix - __all__.extend(_get_exports_list(posix)) - del posix - -elif 'nt' in _names: - name = 'nt' - linesep = '\r\n' - from nt import * - try: - from nt import _exit - except ImportError: - pass - import ntpath as path - - import nt - __all__.extend(_get_exports_list(nt)) - del nt - -elif 'os2' in _names: - name = 'os2' - linesep = '\r\n' - from os2 import * - try: - from os2 import _exit - except ImportError: - pass - if sys.version.find('EMX GCC') == -1: - import ntpath as path - else: - import os2emxpath as path - - import os2 - __all__.extend(_get_exports_list(os2)) - del os2 - -elif 'mac' in _names: - name = 'mac' - linesep = '\r' - from mac import * - try: - from mac import _exit - except ImportError: - pass - import macpath as path - - import mac - __all__.extend(_get_exports_list(mac)) - del mac - -elif 'ce' in _names: - name = 'ce' - linesep = '\r\n' - from ce import * - try: - from ce import _exit - except ImportError: - pass - # We can use the standard Windows path. - import ntpath as path - - import ce - __all__.extend(_get_exports_list(ce)) - del ce - -elif 'riscos' in _names: - name = 'riscos' - linesep = '\n' - from riscos import * - try: - from riscos import _exit - except ImportError: - pass - import riscospath as path - - import riscos - __all__.extend(_get_exports_list(riscos)) - del riscos - -else: - raise ImportError, 'no os specific module found' - -sys.modules['os.path'] = path -from os.path import curdir, pardir, sep, pathsep, defpath, extsep, altsep - -del _names - -#' - -# Super directory utilities. -# (Inspired by Eric Raymond; the doc strings are mostly his) - -def makedirs(name, mode=0777): - """makedirs(path [, mode=0777]) - - Super-mkdir; create a leaf directory and all intermediate ones. - Works like mkdir, except that any intermediate path segment (not - just the rightmost) will be created if it does not exist. This is - recursive. - - """ - head, tail = path.split(name) - if not tail: - head, tail = path.split(head) - if head and tail and not path.exists(head): - makedirs(head, mode) - mkdir(name, mode) - -def removedirs(name): - """removedirs(path) - - Super-rmdir; remove a leaf directory and empty all intermediate - ones. Works like rmdir except that, if the leaf directory is - successfully removed, directories corresponding to rightmost path - segments will be pruned away until either the whole path is - consumed or an error occurs. Errors during this latter phase are - ignored -- they generally mean that a directory was not empty. - - """ - rmdir(name) - head, tail = path.split(name) - if not tail: - head, tail = path.split(head) - while head and tail: - try: - rmdir(head) - except error: - break - head, tail = path.split(head) - -def renames(old, new): - """renames(old, new) - - Super-rename; create directories as necessary and delete any left - empty. Works like rename, except creation of any intermediate - directories needed to make the new pathname good is attempted - first. After the rename, directories corresponding to rightmost - path segments of the old name will be pruned way until either the - whole path is consumed or a nonempty directory is found. - - Note: this function can fail with the new directory structure made - if you lack permissions needed to unlink the leaf directory or - file. - - """ - head, tail = path.split(new) - if head and tail and not path.exists(head): - makedirs(head) - rename(old, new) - head, tail = path.split(old) - if head and tail: - try: - removedirs(head) - except error: - pass - -__all__.extend(["makedirs", "removedirs", "renames"]) - -def walk(top, topdown=True, onerror=None): - """Directory tree generator. - - For each directory in the directory tree rooted at top (including top - itself, but excluding '.' and '..'), yields a 3-tuple - - dirpath, dirnames, filenames - - dirpath is a string, the path to the directory. dirnames is a list of - the names of the subdirectories in dirpath (excluding '.' and '..'). - filenames is a list of the names of the non-directory files in dirpath. - Note that the names in the lists are just names, with no path components. - To get a full path (which begins with top) to a file or directory in - dirpath, do os.path.join(dirpath, name). - - If optional arg 'topdown' is true or not specified, the triple for a - directory is generated before the triples for any of its subdirectories - (directories are generated top down). If topdown is false, the triple - for a directory is generated after the triples for all of its - subdirectories (directories are generated bottom up). - - When topdown is true, the caller can modify the dirnames list in-place - (e.g., via del or slice assignment), and walk will only recurse into the - subdirectories whose names remain in dirnames; this can be used to prune - the search, or to impose a specific order of visiting. Modifying - dirnames when topdown is false is ineffective, since the directories in - dirnames have already been generated by the time dirnames itself is - generated. - - By default errors from the os.listdir() call are ignored. If - optional arg 'onerror' is specified, it should be a function; it - will be called with one argument, an os.error instance. It can - report the error to continue with the walk, or raise the exception - to abort the walk. Note that the filename is available as the - filename attribute of the exception object. - - Caution: if you pass a relative pathname for top, don't change the - current working directory between resumptions of walk. walk never - changes the current directory, and assumes that the client doesn't - either. - - Example: - - from os.path import join, getsize - for root, dirs, files in walk('python/Lib/email'): - print root, "consumes", - print sum([getsize(join(root, name)) for name in files]), - print "bytes in", len(files), "non-directory files" - if 'CVS' in dirs: - dirs.remove('CVS') # don't visit CVS directories - """ - - from os.path import join, isdir, islink - - # We may not have read permission for top, in which case we can't - # get a list of the files the directory contains. os.path.walk - # always suppressed the exception then, rather than blow up for a - # minor reason when (say) a thousand readable directories are still - # left to visit. That logic is copied here. - try: - # Note that listdir and error are globals in this module due - # to earlier import-*. - names = listdir(top) - except error, err: - if onerror is not None: - onerror(err) - return - - dirs, nondirs = [], [] - for name in names: - if isdir(join(top, name)): - dirs.append(name) - else: - nondirs.append(name) - - if topdown: - yield top, dirs, nondirs - for name in dirs: - path = join(top, name) - if not islink(path): - for x in walk(path, topdown, onerror): - yield x - if not topdown: - yield top, dirs, nondirs - -__all__.append("walk") - -# Make sure os.environ exists, at least -try: - environ -except NameError: - environ = {} - -def execl(file, *args): - """execl(file, *args) - - Execute the executable file with argument list args, replacing the - current process. """ - execv(file, args) - -def execle(file, *args): - """execle(file, *args, env) - - Execute the executable file with argument list args and - environment env, replacing the current process. """ - env = args[-1] - execve(file, args[:-1], env) - -def execlp(file, *args): - """execlp(file, *args) - - Execute the executable file (which is searched for along $PATH) - with argument list args, replacing the current process. """ - execvp(file, args) - -def execlpe(file, *args): - """execlpe(file, *args, env) - - Execute the executable file (which is searched for along $PATH) - with argument list args and environment env, replacing the current - process. """ - env = args[-1] - execvpe(file, args[:-1], env) - -def execvp(file, args): - """execp(file, args) - - Execute the executable file (which is searched for along $PATH) - with argument list args, replacing the current process. - args may be a list or tuple of strings. """ - _execvpe(file, args) - -def execvpe(file, args, env): - """execvpe(file, args, env) - - Execute the executable file (which is searched for along $PATH) - with argument list args and environment env , replacing the - current process. - args may be a list or tuple of strings. """ - _execvpe(file, args, env) - -__all__.extend(["execl","execle","execlp","execlpe","execvp","execvpe"]) - -def _execvpe(file, args, env=None): - from errno import ENOENT, ENOTDIR - - if env is not None: - func = execve - argrest = (args, env) - else: - func = execv - argrest = (args,) - env = environ - - head, tail = path.split(file) - if head: - func(file, *argrest) - return - if 'PATH' in env: - envpath = env['PATH'] - else: - envpath = defpath - PATH = envpath.split(pathsep) - saved_exc = None - saved_tb = None - for dir in PATH: - fullname = path.join(dir, file) - try: - func(fullname, *argrest) - except error, e: - tb = sys.exc_info()[2] - if (e.errno != ENOENT and e.errno != ENOTDIR - and saved_exc is None): - saved_exc = e - saved_tb = tb - if saved_exc: - raise error, saved_exc, saved_tb - raise error, e, tb - -# Change environ to automatically call putenv() if it exists -try: - # This will fail if there's no putenv - putenv -except NameError: - pass -else: - import UserDict - - # Fake unsetenv() for Windows - # not sure about os2 here but - # I'm guessing they are the same. - - if name in ('os2', 'nt'): - def unsetenv(key): - putenv(key, "") - - if name == "riscos": - # On RISC OS, all env access goes through getenv and putenv - from riscosenviron import _Environ - elif name in ('os2', 'nt'): # Where Env Var Names Must Be UPPERCASE - # But we store them as upper case - class _Environ(UserDict.IterableUserDict): - def __init__(self, environ): - UserDict.UserDict.__init__(self) - data = self.data - for k, v in environ.items(): - data[k.upper()] = v - def __setitem__(self, key, item): - putenv(key, item) - self.data[key.upper()] = item - def __getitem__(self, key): - return self.data[key.upper()] - try: - unsetenv - except NameError: - def __delitem__(self, key): - del self.data[key.upper()] - else: - def __delitem__(self, key): - unsetenv(key) - del self.data[key.upper()] - def has_key(self, key): - return key.upper() in self.data - def __contains__(self, key): - return key.upper() in self.data - def get(self, key, failobj=None): - return self.data.get(key.upper(), failobj) - def update(self, dict): - for k, v in dict.items(): - self[k] = v - def copy(self): - return dict(self) - - else: # Where Env Var Names Can Be Mixed Case - class _Environ(UserDict.IterableUserDict): - def __init__(self, environ): - UserDict.UserDict.__init__(self) - self.data = environ - def __setitem__(self, key, item): - putenv(key, item) - self.data[key] = item - def update(self, dict): - for k, v in dict.items(): - self[k] = v - try: - unsetenv - except NameError: - pass - else: - def __delitem__(self, key): - unsetenv(key) - del self.data[key] - def copy(self): - return dict(self) - - - environ = _Environ(environ) - -def getenv(key, default=None): - """Get an environment variable, return None if it doesn't exist. - The optional second argument can specify an alternate default.""" - return environ.get(key, default) -__all__.append("getenv") - -def _exists(name): - try: - eval(name) - return True - except NameError: - return False - -# Supply spawn*() (probably only for Unix) -if _exists("fork") and not _exists("spawnv") and _exists("execv"): - - P_WAIT = 0 - P_NOWAIT = P_NOWAITO = 1 - - # XXX Should we support P_DETACH? I suppose it could fork()**2 - # and close the std I/O streams. Also, P_OVERLAY is the same - # as execv*()? - - def _spawnvef(mode, file, args, env, func): - # Internal helper; func is the exec*() function to use - pid = fork() - if not pid: - # Child - try: - if env is None: - func(file, args) - else: - func(file, args, env) - except: - _exit(127) - else: - # Parent - if mode == P_NOWAIT: - return pid # Caller is responsible for waiting! - while 1: - wpid, sts = waitpid(pid, 0) - if WIFSTOPPED(sts): - continue - elif WIFSIGNALED(sts): - return -WTERMSIG(sts) - elif WIFEXITED(sts): - return WEXITSTATUS(sts) - else: - raise error, "Not stopped, signaled or exited???" - - def spawnv(mode, file, args): - """spawnv(mode, file, args) -> integer - -Execute file with arguments from args in a subprocess. -If mode == P_NOWAIT return the pid of the process. -If mode == P_WAIT return the process's exit code if it exits normally; -otherwise return -SIG, where SIG is the signal that killed it. """ - return _spawnvef(mode, file, args, None, execv) - - def spawnve(mode, file, args, env): - """spawnve(mode, file, args, env) -> integer - -Execute file with arguments from args in a subprocess with the -specified environment. -If mode == P_NOWAIT return the pid of the process. -If mode == P_WAIT return the process's exit code if it exits normally; -otherwise return -SIG, where SIG is the signal that killed it. """ - return _spawnvef(mode, file, args, env, execve) - - # Note: spawnvp[e] is't currently supported on Windows - - def spawnvp(mode, file, args): - """spawnvp(mode, file, args) -> integer - -Execute file (which is looked for along $PATH) with arguments from -args in a subprocess. -If mode == P_NOWAIT return the pid of the process. -If mode == P_WAIT return the process's exit code if it exits normally; -otherwise return -SIG, where SIG is the signal that killed it. """ - return _spawnvef(mode, file, args, None, execvp) - - def spawnvpe(mode, file, args, env): - """spawnvpe(mode, file, args, env) -> integer - -Execute file (which is looked for along $PATH) with arguments from -args in a subprocess with the supplied environment. -If mode == P_NOWAIT return the pid of the process. -If mode == P_WAIT return the process's exit code if it exits normally; -otherwise return -SIG, where SIG is the signal that killed it. """ - return _spawnvef(mode, file, args, env, execvpe) - -if _exists("spawnv"): - # These aren't supplied by the basic Windows code - # but can be easily implemented in Python - - def spawnl(mode, file, *args): - """spawnl(mode, file, *args) -> integer - -Execute file with arguments from args in a subprocess. -If mode == P_NOWAIT return the pid of the process. -If mode == P_WAIT return the process's exit code if it exits normally; -otherwise return -SIG, where SIG is the signal that killed it. """ - return spawnv(mode, file, args) - - def spawnle(mode, file, *args): - """spawnle(mode, file, *args, env) -> integer - -Execute file with arguments from args in a subprocess with the -supplied environment. -If mode == P_NOWAIT return the pid of the process. -If mode == P_WAIT return the process's exit code if it exits normally; -otherwise return -SIG, where SIG is the signal that killed it. """ - env = args[-1] - return spawnve(mode, file, args[:-1], env) - -if _exists("spawnvp"): - # At the moment, Windows doesn't implement spawnvp[e], - # so it won't have spawnlp[e] either. - def spawnlp(mode, file, *args): - """spawnlp(mode, file, *args) -> integer - -Execute file (which is looked for along $PATH) with arguments from -args in a subprocess with the supplied environment. -If mode == P_NOWAIT return the pid of the process. -If mode == P_WAIT return the process's exit code if it exits normally; -otherwise return -SIG, where SIG is the signal that killed it. """ - return spawnvp(mode, file, args) - - def spawnlpe(mode, file, *args): - """spawnlpe(mode, file, *args, env) -> integer - -Execute file (which is looked for along $PATH) with arguments from -args in a subprocess with the supplied environment. -If mode == P_NOWAIT return the pid of the process. -If mode == P_WAIT return the process's exit code if it exits normally; -otherwise return -SIG, where SIG is the signal that killed it. """ - env = args[-1] - return spawnvpe(mode, file, args[:-1], env) - - - __all__.extend(["spawnlp","spawnlpe","spawnv", "spawnve","spawnvp", - "spawnvpe","spawnl","spawnle",]) - - -# Supply popen2 etc. (for Unix) -if _exists("fork"): - if not _exists("popen2"): - def popen2(cmd, mode="t", bufsize=-1): - import popen2 - stdout, stdin = popen2.popen2(cmd, bufsize) - return stdin, stdout - __all__.append("popen2") - - if not _exists("popen3"): - def popen3(cmd, mode="t", bufsize=-1): - import popen2 - stdout, stdin, stderr = popen2.popen3(cmd, bufsize) - return stdin, stdout, stderr - __all__.append("popen3") - - if not _exists("popen4"): - def popen4(cmd, mode="t", bufsize=-1): - import popen2 - stdout, stdin = popen2.popen4(cmd, bufsize) - return stdin, stdout - __all__.append("popen4") - -import copy_reg as _copy_reg - -def _make_stat_result(tup, dict): - return stat_result(tup, dict) - -def _pickle_stat_result(sr): - (type, args) = sr.__reduce__() - return (_make_stat_result, args) - -try: - _copy_reg.pickle(stat_result, _pickle_stat_result, _make_stat_result) -except NameError: # stat_result may not exist - pass - -def _make_statvfs_result(tup, dict): - return statvfs_result(tup, dict) - -def _pickle_statvfs_result(sr): - (type, args) = sr.__reduce__() - return (_make_statvfs_result, args) - -try: - _copy_reg.pickle(statvfs_result, _pickle_statvfs_result, - _make_statvfs_result) -except NameError: # statvfs_result may not exist - pass From sanxiyn at codespeak.net Sun Mar 28 16:43:34 2004 From: sanxiyn at codespeak.net (sanxiyn at codespeak.net) Date: Sun, 28 Mar 2004 16:43:34 +0200 (MEST) Subject: [pypy-svn] r3459 - in pypy/trunk/src: goal pypy/module Message-ID: <20040328144334.EE4D15A131@thoth.codespeak.net> Author: sanxiyn Date: Sun Mar 28 16:43:33 2004 New Revision: 3459 Added: pypy/trunk/src/goal/pydoc-goal.py pypy/trunk/src/goal/pydoc-pregoal.py Modified: pypy/trunk/src/pypy/module/sysinterp.py pypy/trunk/src/pypy/module/sysmodule.py Log: Borrowed 'imp' module. Set dummy values for sys.executable, sys.prefix, sys.version. And pydoc-pregoal.py is working! Caution: it takes 25 seconds to finish in TrivialObjSpace. pydoc-goal.py is long away. Added: pypy/trunk/src/goal/pydoc-goal.py ============================================================================== --- (empty file) +++ pypy/trunk/src/goal/pydoc-goal.py Sun Mar 28 16:43:33 2004 @@ -0,0 +1,2 @@ +import pydoc +pydoc.help(pydoc) Added: pypy/trunk/src/goal/pydoc-pregoal.py ============================================================================== --- (empty file) +++ pypy/trunk/src/goal/pydoc-pregoal.py Sun Mar 28 16:43:33 2004 @@ -0,0 +1,3 @@ +import os +os.error = OSError +import pydoc Modified: pypy/trunk/src/pypy/module/sysinterp.py ============================================================================== --- pypy/trunk/src/pypy/module/sysinterp.py (original) +++ pypy/trunk/src/pypy/module/sysinterp.py Sun Mar 28 16:43:33 2004 @@ -23,7 +23,6 @@ w_contents = space.newdict(contents) return Module(space, space.wrap(modname), w_contents) - # ____________________________________________________________ # # List of built-in modules. @@ -40,7 +39,7 @@ # steal them from Python. for fn in ['posix', 'nt', 'os2', 'mac', 'ce', 'riscos', 'cStringIO', 'itertools', 'math', - '_random', '_sre', 'time', + '_random', '_sre', 'time', 'imp', 'marshal', 'struct', 'binascii']: if fn not in builtin_modules: try: Modified: pypy/trunk/src/pypy/module/sysmodule.py ============================================================================== --- pypy/trunk/src/pypy/module/sysmodule.py (original) +++ pypy/trunk/src/pypy/module/sysmodule.py Sun Mar 28 16:43:33 2004 @@ -14,3 +14,8 @@ # Functions from interpreter-level from __interplevel__ import displayhook, _getframe + +# Dummy +executable = '' +prefix = '' +version = '0.0.0 (not released yet)' From hpk at codespeak.net Sun Mar 28 18:37:24 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Sun, 28 Mar 2004 18:37:24 +0200 (MEST) Subject: [pypy-svn] r3460 - pypy/trunk/doc/funding/negotiations Message-ID: <20040328163724.09A055A0F4@thoth.codespeak.net> Author: hpk Date: Sun Mar 28 18:37:24 2004 New Revision: 3460 Modified: pypy/trunk/doc/funding/negotiations/email-eu-1.txt Log: small improvement to the english phrasing (at least as much as i know about it :-) Modified: pypy/trunk/doc/funding/negotiations/email-eu-1.txt ============================================================================== --- pypy/trunk/doc/funding/negotiations/email-eu-1.txt (original) +++ pypy/trunk/doc/funding/negotiations/email-eu-1.txt Sun Mar 28 18:37:24 2004 @@ -20,9 +20,9 @@ But the second responsibility and role should stay with the PBF: connecting and disseminating to open source and business communities. -Also Implementing an industrial strength beyond-state-of the-art language -platform means we have to collaborate with as many experts as possible to -reduce the risk of failing. +Please note that implementing an industrial strength beyond-state-of +the-art language platform means we have to collaborate with as many +experts as possible to reduce the risk of failing. As a result, all partners agree to the following consortium shape: From sanxiyn at codespeak.net Mon Mar 29 02:52:02 2004 From: sanxiyn at codespeak.net (sanxiyn at codespeak.net) Date: Mon, 29 Mar 2004 02:52:02 +0200 (MEST) Subject: [pypy-svn] r3461 - pypy/trunk/src/pypy/module Message-ID: <20040329005202.CCA4F5A0F4@thoth.codespeak.net> Author: sanxiyn Date: Mon Mar 29 02:52:01 2004 New Revision: 3461 Modified: pypy/trunk/src/pypy/module/sysinterp.py Log: urllib imports and works. urllib2 not yet. Modified: pypy/trunk/src/pypy/module/sysinterp.py ============================================================================== --- pypy/trunk/src/pypy/module/sysinterp.py (original) +++ pypy/trunk/src/pypy/module/sysinterp.py Mon Mar 29 02:52:01 2004 @@ -39,7 +39,7 @@ # steal them from Python. for fn in ['posix', 'nt', 'os2', 'mac', 'ce', 'riscos', 'cStringIO', 'itertools', 'math', - '_random', '_sre', 'time', 'imp', + '_random', '_sre', 'time', 'imp', '_socket', 'errno', 'marshal', 'struct', 'binascii']: if fn not in builtin_modules: try: From sanxiyn at codespeak.net Mon Mar 29 03:38:12 2004 From: sanxiyn at codespeak.net (sanxiyn at codespeak.net) Date: Mon, 29 Mar 2004 03:38:12 +0200 (MEST) Subject: [pypy-svn] r3462 - pypy/trunk/src/pypy Message-ID: <20040329013812.805095A0F4@thoth.codespeak.net> Author: sanxiyn Date: Mon Mar 29 03:38:07 2004 New Revision: 3462 Modified: pypy/trunk/src/pypy/TODO Log: super() on TODO list. It's everywhere and now hard to avoid. Modified: pypy/trunk/src/pypy/TODO ============================================================================== --- pypy/trunk/src/pypy/TODO (original) +++ pypy/trunk/src/pypy/TODO Mon Mar 29 03:38:07 2004 @@ -1,7 +1,10 @@ -* provide an importer that can import packages - consider PEP 302, new import hooks try to write as much as - possible in app-level how would PyPy import CPython extension when - it runs on top of CPython? +* Provide an importer that can import packages. + Consider PEP 302, new import hooks. + Try to write as much as possible in app-level. + How would PyPy import CPython extensions? + +* Implements super. Guido's paper, descrintro, has a pure Python + implementation. Let it run on PyPy. (as of r3461, it doesn't run.) * slicing with assigments & more small things lst[::-2] = lst2 From sanxiyn at codespeak.net Mon Mar 29 03:46:08 2004 From: sanxiyn at codespeak.net (sanxiyn at codespeak.net) Date: Mon, 29 Mar 2004 03:46:08 +0200 (MEST) Subject: [pypy-svn] r3463 - pypy/trunk/src/pypy/appspace Message-ID: <20040329014608.A61995A0F4@thoth.codespeak.net> Author: sanxiyn Date: Mon Mar 29 03:46:07 2004 New Revision: 3463 Added: pypy/trunk/src/pypy/appspace/random.py Log: Imports random.py version 1.60 from CPython CVS. Added: pypy/trunk/src/pypy/appspace/random.py ============================================================================== --- (empty file) +++ pypy/trunk/src/pypy/appspace/random.py Mon Mar 29 03:46:07 2004 @@ -0,0 +1,805 @@ +"""Random variable generators. + + integers + -------- + uniform within range + + sequences + --------- + pick random element + pick random sample + generate random permutation + + distributions on the real line: + ------------------------------ + uniform + normal (Gaussian) + lognormal + negative exponential + gamma + beta + pareto + Weibull + + distributions on the circle (angles 0 to 2pi) + --------------------------------------------- + circular uniform + von Mises + +General notes on the underlying Mersenne Twister core generator: + +* The period is 2**19937-1. +* It is one of the most extensively tested generators in existence +* Without a direct way to compute N steps forward, the + semantics of jumpahead(n) are weakened to simply jump + to another distant state and rely on the large period + to avoid overlapping sequences. +* The random() method is implemented in C, executes in + a single Python step, and is, therefore, threadsafe. + +""" + +from warnings import warn as _warn +from types import MethodType as _MethodType, BuiltinMethodType as _BuiltinMethodType +from math import log as _log, exp as _exp, pi as _pi, e as _e +from math import sqrt as _sqrt, acos as _acos, cos as _cos, sin as _sin +from math import floor as _floor + +__all__ = ["Random","seed","random","uniform","randint","choice","sample", + "randrange","shuffle","normalvariate","lognormvariate", + "expovariate","vonmisesvariate","gammavariate", + "gauss","betavariate","paretovariate","weibullvariate", + "getstate","setstate","jumpahead", "WichmannHill", "getrandbits"] + +NV_MAGICCONST = 4 * _exp(-0.5)/_sqrt(2.0) +TWOPI = 2.0*_pi +LOG4 = _log(4.0) +SG_MAGICCONST = 1.0 + _log(4.5) +BPF = 53 # Number of bits in a float + +# Translated by Guido van Rossum from C source provided by +# Adrian Baddeley. Adapted by Raymond Hettinger for use with +# the Mersenne Twister core generator. + +import _random + +class Random(_random.Random): + """Random number generator base class used by bound module functions. + + Used to instantiate instances of Random to get generators that don't + share state. Especially useful for multi-threaded programs, creating + a different instance of Random for each thread, and using the jumpahead() + method to ensure that the generated sequences seen by each thread don't + overlap. + + Class Random can also be subclassed if you want to use a different basic + generator of your own devising: in that case, override the following + methods: random(), seed(), getstate(), setstate() and jumpahead(). + Optionally, implement a getrandombits() method so that randrange() + can cover arbitrarily large ranges. + + """ + + VERSION = 2 # used by getstate/setstate + + def __init__(self, x=None): + """Initialize an instance. + + Optional argument x controls seeding, as for Random.seed(). + """ + + self.seed(x) + self.gauss_next = None + + def seed(self, a=None): + """Initialize internal state from hashable object. + + None or no argument seeds from current time. + + If a is not None or an int or long, hash(a) is used instead. + """ + + if a is None: + import time + a = long(time.time() * 256) # use fractional seconds + super(Random, self).seed(a) + self.gauss_next = None + + def getstate(self): + """Return internal state; can be passed to setstate() later.""" + return self.VERSION, super(Random, self).getstate(), self.gauss_next + + def setstate(self, state): + """Restore internal state from object returned by getstate().""" + version = state[0] + if version == 2: + version, internalstate, self.gauss_next = state + super(Random, self).setstate(internalstate) + else: + raise ValueError("state with version %s passed to " + "Random.setstate() of version %s" % + (version, self.VERSION)) + +## ---- Methods below this point do not need to be overridden when +## ---- subclassing for the purpose of using a different core generator. + +## -------------------- pickle support ------------------- + + def __getstate__(self): # for pickle + return self.getstate() + + def __setstate__(self, state): # for pickle + self.setstate(state) + + def __reduce__(self): + return self.__class__, (), self.getstate() + +## -------------------- integer methods ------------------- + + def randrange(self, start, stop=None, step=1, int=int, default=None, + maxwidth=1L< 0: + if istart >= maxwidth: + return self._randbelow(istart) + return int(self.random() * istart) + raise ValueError, "empty range for randrange()" + + # stop argument supplied. + istop = int(stop) + if istop != stop: + raise ValueError, "non-integer stop for randrange()" + width = istop - istart + if step == 1 and width > 0: + # Note that + # int(istart + self.random()*width) + # instead would be incorrect. For example, consider istart + # = -2 and istop = 0. Then the guts would be in + # -2.0 to 0.0 exclusive on both ends (ignoring that random() + # might return 0.0), and because int() truncates toward 0, the + # final result would be -1 or 0 (instead of -2 or -1). + # istart + int(self.random()*width) + # would also be incorrect, for a subtler reason: the RHS + # can return a long, and then randrange() would also return + # a long, but we're supposed to return an int (for backward + # compatibility). + + if width >= maxwidth: + return int(istart + self._randbelow(width)) + return int(istart + int(self.random()*width)) + if step == 1: + raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop, width) + + # Non-unit step argument supplied. + istep = int(step) + if istep != step: + raise ValueError, "non-integer step for randrange()" + if istep > 0: + n = (width + istep - 1) / istep + elif istep < 0: + n = (width + istep + 1) / istep + else: + raise ValueError, "zero step for randrange()" + + if n <= 0: + raise ValueError, "empty range for randrange()" + + if n >= maxwidth: + return istart + self._randbelow(n) + return istart + istep*int(self.random() * n) + + def randint(self, a, b): + """Return random integer in range [a, b], including both end points. + """ + + return self.randrange(a, b+1) + + def _randbelow(self, n, _log=_log, int=int, _maxwidth=1L< n-1 > 2**(k-2) + r = getrandbits(k) + while r >= n: + r = getrandbits(k) + return r + if n >= _maxwidth: + _warn("Underlying random() generator does not supply \n" + "enough bits to choose from a population range this large") + return int(self.random() * n) + +## -------------------- sequence methods ------------------- + + def choice(self, seq): + """Choose a random element from a non-empty sequence.""" + return seq[int(self.random() * len(seq))] + + def shuffle(self, x, random=None, int=int): + """x, random=random.random -> shuffle list x in place; return None. + + Optional arg random is a 0-argument function returning a random + float in [0.0, 1.0); by default, the standard random.random. + + Note that for even rather small len(x), the total number of + permutations of x is larger than the period of most random number + generators; this implies that "most" permutations of a long + sequence can never be generated. + """ + + if random is None: + random = self.random + for i in reversed(xrange(1, len(x))): + # pick an element in x[:i+1] with which to exchange x[i] + j = int(random() * (i+1)) + x[i], x[j] = x[j], x[i] + + def sample(self, population, k): + """Chooses k unique random elements from a population sequence. + + Returns a new list containing elements from the population while + leaving the original population unchanged. The resulting list is + in selection order so that all sub-slices will also be valid random + samples. This allows raffle winners (the sample) to be partitioned + into grand prize and second place winners (the subslices). + + Members of the population need not be hashable or unique. If the + population contains repeats, then each occurrence is a possible + selection in the sample. + + To choose a sample in a range of integers, use xrange as an argument. + This is especially fast and space efficient for sampling from a + large population: sample(xrange(10000000), 60) + """ + + # Sampling without replacement entails tracking either potential + # selections (the pool) in a list or previous selections in a + # dictionary. + + # When the number of selections is small compared to the + # population, then tracking selections is efficient, requiring + # only a small dictionary and an occasional reselection. For + # a larger number of selections, the pool tracking method is + # preferred since the list takes less space than the + # dictionary and it doesn't suffer from frequent reselections. + + n = len(population) + if not 0 <= k <= n: + raise ValueError, "sample larger than population" + random = self.random + _int = int + result = [None] * k + if n < 6 * k: # if n len list takes less space than a k len dict + pool = list(population) + for i in xrange(k): # invariant: non-selected at [0,n-i) + j = _int(random() * (n-i)) + result[i] = pool[j] + pool[j] = pool[n-i-1] # move non-selected item into vacancy + else: + try: + n > 0 and (population[0], population[n//2], population[n-1]) + except (TypeError, KeyError): # handle sets and dictionaries + population = tuple(population) + selected = {} + for i in xrange(k): + j = _int(random() * n) + while j in selected: + j = _int(random() * n) + result[i] = selected[j] = population[j] + return result + +## -------------------- real-valued distributions ------------------- + +## -------------------- uniform distribution ------------------- + + def uniform(self, a, b): + """Get a random number in the range [a, b).""" + return a + (b-a) * self.random() + +## -------------------- normal distribution -------------------- + + def normalvariate(self, mu, sigma): + """Normal distribution. + + mu is the mean, and sigma is the standard deviation. + + """ + # mu = mean, sigma = standard deviation + + # Uses Kinderman and Monahan method. Reference: Kinderman, + # A.J. and Monahan, J.F., "Computer generation of random + # variables using the ratio of uniform deviates", ACM Trans + # Math Software, 3, (1977), pp257-260. + + random = self.random + while True: + u1 = random() + u2 = 1.0 - random() + z = NV_MAGICCONST*(u1-0.5)/u2 + zz = z*z/4.0 + if zz <= -_log(u2): + break + return mu + z*sigma + +## -------------------- lognormal distribution -------------------- + + def lognormvariate(self, mu, sigma): + """Log normal distribution. + + If you take the natural logarithm of this distribution, you'll get a + normal distribution with mean mu and standard deviation sigma. + mu can have any value, and sigma must be greater than zero. + + """ + return _exp(self.normalvariate(mu, sigma)) + +## -------------------- exponential distribution -------------------- + + def expovariate(self, lambd): + """Exponential distribution. + + lambd is 1.0 divided by the desired mean. (The parameter would be + called "lambda", but that is a reserved word in Python.) Returned + values range from 0 to positive infinity. + + """ + # lambd: rate lambd = 1/mean + # ('lambda' is a Python reserved word) + + random = self.random + u = random() + while u <= 1e-7: + u = random() + return -_log(u)/lambd + +## -------------------- von Mises distribution -------------------- + + def vonmisesvariate(self, mu, kappa): + """Circular data distribution. + + mu is the mean angle, expressed in radians between 0 and 2*pi, and + kappa is the concentration parameter, which must be greater than or + equal to zero. If kappa is equal to zero, this distribution reduces + to a uniform random angle over the range 0 to 2*pi. + + """ + # mu: mean angle (in radians between 0 and 2*pi) + # kappa: concentration parameter kappa (>= 0) + # if kappa = 0 generate uniform random angle + + # Based upon an algorithm published in: Fisher, N.I., + # "Statistical Analysis of Circular Data", Cambridge + # University Press, 1993. + + # Thanks to Magnus Kessler for a correction to the + # implementation of step 4. + + random = self.random + if kappa <= 1e-6: + return TWOPI * random() + + a = 1.0 + _sqrt(1.0 + 4.0 * kappa * kappa) + b = (a - _sqrt(2.0 * a))/(2.0 * kappa) + r = (1.0 + b * b)/(2.0 * b) + + while True: + u1 = random() + + z = _cos(_pi * u1) + f = (1.0 + r * z)/(r + z) + c = kappa * (r - f) + + u2 = random() + + if not (u2 >= c * (2.0 - c) and u2 > c * _exp(1.0 - c)): + break + + u3 = random() + if u3 > 0.5: + theta = (mu % TWOPI) + _acos(f) + else: + theta = (mu % TWOPI) - _acos(f) + + return theta + +## -------------------- gamma distribution -------------------- + + def gammavariate(self, alpha, beta): + """Gamma distribution. Not the gamma function! + + Conditions on the parameters are alpha > 0 and beta > 0. + + """ + + # alpha > 0, beta > 0, mean is alpha*beta, variance is alpha*beta**2 + + # Warning: a few older sources define the gamma distribution in terms + # of alpha > -1.0 + if alpha <= 0.0 or beta <= 0.0: + raise ValueError, 'gammavariate: alpha and beta must be > 0.0' + + random = self.random + if alpha > 1.0: + + # Uses R.C.H. Cheng, "The generation of Gamma + # variables with non-integral shape parameters", + # Applied Statistics, (1977), 26, No. 1, p71-74 + + ainv = _sqrt(2.0 * alpha - 1.0) + bbb = alpha - LOG4 + ccc = alpha + ainv + + while True: + u1 = random() + if not 1e-7 < u1 < .9999999: + continue + u2 = 1.0 - random() + v = _log(u1/(1.0-u1))/ainv + x = alpha*_exp(v) + z = u1*u1*u2 + r = bbb+ccc*v-x + if r + SG_MAGICCONST - 4.5*z >= 0.0 or r >= _log(z): + return x * beta + + elif alpha == 1.0: + # expovariate(1) + u = random() + while u <= 1e-7: + u = random() + return -_log(u) * beta + + else: # alpha is between 0 and 1 (exclusive) + + # Uses ALGORITHM GS of Statistical Computing - Kennedy & Gentle + + while True: + u = random() + b = (_e + alpha)/_e + p = b*u + if p <= 1.0: + x = pow(p, 1.0/alpha) + else: + # p > 1 + x = -_log((b-p)/alpha) + u1 = random() + if not (((p <= 1.0) and (u1 > _exp(-x))) or + ((p > 1) and (u1 > pow(x, alpha - 1.0)))): + break + return x * beta + +## -------------------- Gauss (faster alternative) -------------------- + + def gauss(self, mu, sigma): + """Gaussian distribution. + + mu is the mean, and sigma is the standard deviation. This is + slightly faster than the normalvariate() function. + + Not thread-safe without a lock around calls. + + """ + + # When x and y are two variables from [0, 1), uniformly + # distributed, then + # + # cos(2*pi*x)*sqrt(-2*log(1-y)) + # sin(2*pi*x)*sqrt(-2*log(1-y)) + # + # are two *independent* variables with normal distribution + # (mu = 0, sigma = 1). + # (Lambert Meertens) + # (corrected version; bug discovered by Mike Miller, fixed by LM) + + # Multithreading note: When two threads call this function + # simultaneously, it is possible that they will receive the + # same return value. The window is very small though. To + # avoid this, you have to use a lock around all calls. (I + # didn't want to slow this down in the serial case by using a + # lock here.) + + random = self.random + z = self.gauss_next + self.gauss_next = None + if z is None: + x2pi = random() * TWOPI + g2rad = _sqrt(-2.0 * _log(1.0 - random())) + z = _cos(x2pi) * g2rad + self.gauss_next = _sin(x2pi) * g2rad + + return mu + z*sigma + +## -------------------- beta -------------------- +## See +## http://sourceforge.net/bugs/?func=detailbug&bug_id=130030&group_id=5470 +## for Ivan Frohne's insightful analysis of why the original implementation: +## +## def betavariate(self, alpha, beta): +## # Discrete Event Simulation in C, pp 87-88. +## +## y = self.expovariate(alpha) +## z = self.expovariate(1.0/beta) +## return z/(y+z) +## +## was dead wrong, and how it probably got that way. + + def betavariate(self, alpha, beta): + """Beta distribution. + + Conditions on the parameters are alpha > -1 and beta} > -1. + Returned values range between 0 and 1. + + """ + + # This version due to Janne Sinkkonen, and matches all the std + # texts (e.g., Knuth Vol 2 Ed 3 pg 134 "the beta distribution"). + y = self.gammavariate(alpha, 1.) + if y == 0: + return 0.0 + else: + return y / (y + self.gammavariate(beta, 1.)) + +## -------------------- Pareto -------------------- + + def paretovariate(self, alpha): + """Pareto distribution. alpha is the shape parameter.""" + # Jain, pg. 495 + + u = 1.0 - self.random() + return 1.0 / pow(u, 1.0/alpha) + +## -------------------- Weibull -------------------- + + def weibullvariate(self, alpha, beta): + """Weibull distribution. + + alpha is the scale parameter and beta is the shape parameter. + + """ + # Jain, pg. 499; bug fix courtesy Bill Arms + + u = 1.0 - self.random() + return alpha * pow(-_log(u), 1.0/beta) + +## -------------------- Wichmann-Hill ------------------- + +class WichmannHill(Random): + + VERSION = 1 # used by getstate/setstate + + def seed(self, a=None): + """Initialize internal state from hashable object. + + None or no argument seeds from current time. + + If a is not None or an int or long, hash(a) is used instead. + + If a is an int or long, a is used directly. Distinct values between + 0 and 27814431486575L inclusive are guaranteed to yield distinct + internal states (this guarantee is specific to the default + Wichmann-Hill generator). + """ + + if a is None: + # Initialize from current time + import time + a = long(time.time() * 256) + + if not isinstance(a, (int, long)): + a = hash(a) + + a, x = divmod(a, 30268) + a, y = divmod(a, 30306) + a, z = divmod(a, 30322) + self._seed = int(x)+1, int(y)+1, int(z)+1 + + self.gauss_next = None + + def random(self): + """Get the next random number in the range [0.0, 1.0).""" + + # Wichman-Hill random number generator. + # + # Wichmann, B. A. & Hill, I. D. (1982) + # Algorithm AS 183: + # An efficient and portable pseudo-random number generator + # Applied Statistics 31 (1982) 188-190 + # + # see also: + # Correction to Algorithm AS 183 + # Applied Statistics 33 (1984) 123 + # + # McLeod, A. I. (1985) + # A remark on Algorithm AS 183 + # Applied Statistics 34 (1985),198-200 + + # This part is thread-unsafe: + # BEGIN CRITICAL SECTION + x, y, z = self._seed + x = (171 * x) % 30269 + y = (172 * y) % 30307 + z = (170 * z) % 30323 + self._seed = x, y, z + # END CRITICAL SECTION + + # Note: on a platform using IEEE-754 double arithmetic, this can + # never return 0.0 (asserted by Tim; proof too long for a comment). + return (x/30269.0 + y/30307.0 + z/30323.0) % 1.0 + + def getstate(self): + """Return internal state; can be passed to setstate() later.""" + return self.VERSION, self._seed, self.gauss_next + + def setstate(self, state): + """Restore internal state from object returned by getstate().""" + version = state[0] + if version == 1: + version, self._seed, self.gauss_next = state + else: + raise ValueError("state with version %s passed to " + "Random.setstate() of version %s" % + (version, self.VERSION)) + + def jumpahead(self, n): + """Act as if n calls to random() were made, but quickly. + + n is an int, greater than or equal to 0. + + Example use: If you have 2 threads and know that each will + consume no more than a million random numbers, create two Random + objects r1 and r2, then do + r2.setstate(r1.getstate()) + r2.jumpahead(1000000) + Then r1 and r2 will use guaranteed-disjoint segments of the full + period. + """ + + if not n >= 0: + raise ValueError("n must be >= 0") + x, y, z = self._seed + x = int(x * pow(171, n, 30269)) % 30269 + y = int(y * pow(172, n, 30307)) % 30307 + z = int(z * pow(170, n, 30323)) % 30323 + self._seed = x, y, z + + def __whseed(self, x=0, y=0, z=0): + """Set the Wichmann-Hill seed from (x, y, z). + + These must be integers in the range [0, 256). + """ + + if not type(x) == type(y) == type(z) == int: + raise TypeError('seeds must be integers') + if not (0 <= x < 256 and 0 <= y < 256 and 0 <= z < 256): + raise ValueError('seeds must be in range(0, 256)') + if 0 == x == y == z: + # Initialize from current time + import time + t = long(time.time() * 256) + t = int((t&0xffffff) ^ (t>>24)) + t, x = divmod(t, 256) + t, y = divmod(t, 256) + t, z = divmod(t, 256) + # Zero is a poor seed, so substitute 1 + self._seed = (x or 1, y or 1, z or 1) + + self.gauss_next = None + + def whseed(self, a=None): + """Seed from hashable object's hash code. + + None or no argument seeds from current time. It is not guaranteed + that objects with distinct hash codes lead to distinct internal + states. + + This is obsolete, provided for compatibility with the seed routine + used prior to Python 2.1. Use the .seed() method instead. + """ + + if a is None: + self.__whseed() + return + a = hash(a) + a, x = divmod(a, 256) + a, y = divmod(a, 256) + a, z = divmod(a, 256) + x = (x + a) % 256 or 1 + y = (y + a) % 256 or 1 + z = (z + a) % 256 or 1 + self.__whseed(x, y, z) + +## -------------------- test program -------------------- + +def _test_generator(n, func, args): + import time + print n, 'times', func.__name__ + total = 0.0 + sqsum = 0.0 + smallest = 1e10 + largest = -1e10 + t0 = time.time() + for i in range(n): + x = func(*args) + total += x + sqsum = sqsum + x*x + smallest = min(x, smallest) + largest = max(x, largest) + t1 = time.time() + print round(t1-t0, 3), 'sec,', + avg = total/n + stddev = _sqrt(sqsum/n - avg*avg) + print 'avg %g, stddev %g, min %g, max %g' % \ + (avg, stddev, smallest, largest) + + +def _test(N=2000): + _test_generator(N, random, ()) + _test_generator(N, normalvariate, (0.0, 1.0)) + _test_generator(N, lognormvariate, (0.0, 1.0)) + _test_generator(N, vonmisesvariate, (0.0, 1.0)) + _test_generator(N, gammavariate, (0.01, 1.0)) + _test_generator(N, gammavariate, (0.1, 1.0)) + _test_generator(N, gammavariate, (0.1, 2.0)) + _test_generator(N, gammavariate, (0.5, 1.0)) + _test_generator(N, gammavariate, (0.9, 1.0)) + _test_generator(N, gammavariate, (1.0, 1.0)) + _test_generator(N, gammavariate, (2.0, 1.0)) + _test_generator(N, gammavariate, (20.0, 1.0)) + _test_generator(N, gammavariate, (200.0, 1.0)) + _test_generator(N, gauss, (0.0, 1.0)) + _test_generator(N, betavariate, (3.0, 3.0)) + +# Create one instance, seeded from current time, and export its methods +# as module-level functions. The functions share state across all uses +#(both in the user's code and in the Python libraries), but that's fine +# for most programs and is easier for the casual user than making them +# instantiate their own Random() instance. + +_inst = Random() +seed = _inst.seed +random = _inst.random +uniform = _inst.uniform +randint = _inst.randint +choice = _inst.choice +randrange = _inst.randrange +sample = _inst.sample +shuffle = _inst.shuffle +normalvariate = _inst.normalvariate +lognormvariate = _inst.lognormvariate +expovariate = _inst.expovariate +vonmisesvariate = _inst.vonmisesvariate +gammavariate = _inst.gammavariate +gauss = _inst.gauss +betavariate = _inst.betavariate +paretovariate = _inst.paretovariate +weibullvariate = _inst.weibullvariate +getstate = _inst.getstate +setstate = _inst.setstate +jumpahead = _inst.jumpahead +getrandbits = _inst.getrandbits + +if __name__ == '__main__': + _test() From sanxiyn at codespeak.net Mon Mar 29 03:57:14 2004 From: sanxiyn at codespeak.net (sanxiyn at codespeak.net) Date: Mon, 29 Mar 2004 03:57:14 +0200 (MEST) Subject: [pypy-svn] r3464 - pypy/trunk/src/pypy/appspace Message-ID: <20040329015714.48B1D5A0F4@thoth.codespeak.net> Author: sanxiyn Date: Mon Mar 29 03:57:13 2004 New Revision: 3464 Removed: pypy/trunk/src/pypy/appspace/random.py Log: oops. Deleted: /pypy/trunk/src/pypy/appspace/random.py ============================================================================== --- /pypy/trunk/src/pypy/appspace/random.py Mon Mar 29 03:57:13 2004 +++ (empty file) @@ -1,805 +0,0 @@ -"""Random variable generators. - - integers - -------- - uniform within range - - sequences - --------- - pick random element - pick random sample - generate random permutation - - distributions on the real line: - ------------------------------ - uniform - normal (Gaussian) - lognormal - negative exponential - gamma - beta - pareto - Weibull - - distributions on the circle (angles 0 to 2pi) - --------------------------------------------- - circular uniform - von Mises - -General notes on the underlying Mersenne Twister core generator: - -* The period is 2**19937-1. -* It is one of the most extensively tested generators in existence -* Without a direct way to compute N steps forward, the - semantics of jumpahead(n) are weakened to simply jump - to another distant state and rely on the large period - to avoid overlapping sequences. -* The random() method is implemented in C, executes in - a single Python step, and is, therefore, threadsafe. - -""" - -from warnings import warn as _warn -from types import MethodType as _MethodType, BuiltinMethodType as _BuiltinMethodType -from math import log as _log, exp as _exp, pi as _pi, e as _e -from math import sqrt as _sqrt, acos as _acos, cos as _cos, sin as _sin -from math import floor as _floor - -__all__ = ["Random","seed","random","uniform","randint","choice","sample", - "randrange","shuffle","normalvariate","lognormvariate", - "expovariate","vonmisesvariate","gammavariate", - "gauss","betavariate","paretovariate","weibullvariate", - "getstate","setstate","jumpahead", "WichmannHill", "getrandbits"] - -NV_MAGICCONST = 4 * _exp(-0.5)/_sqrt(2.0) -TWOPI = 2.0*_pi -LOG4 = _log(4.0) -SG_MAGICCONST = 1.0 + _log(4.5) -BPF = 53 # Number of bits in a float - -# Translated by Guido van Rossum from C source provided by -# Adrian Baddeley. Adapted by Raymond Hettinger for use with -# the Mersenne Twister core generator. - -import _random - -class Random(_random.Random): - """Random number generator base class used by bound module functions. - - Used to instantiate instances of Random to get generators that don't - share state. Especially useful for multi-threaded programs, creating - a different instance of Random for each thread, and using the jumpahead() - method to ensure that the generated sequences seen by each thread don't - overlap. - - Class Random can also be subclassed if you want to use a different basic - generator of your own devising: in that case, override the following - methods: random(), seed(), getstate(), setstate() and jumpahead(). - Optionally, implement a getrandombits() method so that randrange() - can cover arbitrarily large ranges. - - """ - - VERSION = 2 # used by getstate/setstate - - def __init__(self, x=None): - """Initialize an instance. - - Optional argument x controls seeding, as for Random.seed(). - """ - - self.seed(x) - self.gauss_next = None - - def seed(self, a=None): - """Initialize internal state from hashable object. - - None or no argument seeds from current time. - - If a is not None or an int or long, hash(a) is used instead. - """ - - if a is None: - import time - a = long(time.time() * 256) # use fractional seconds - super(Random, self).seed(a) - self.gauss_next = None - - def getstate(self): - """Return internal state; can be passed to setstate() later.""" - return self.VERSION, super(Random, self).getstate(), self.gauss_next - - def setstate(self, state): - """Restore internal state from object returned by getstate().""" - version = state[0] - if version == 2: - version, internalstate, self.gauss_next = state - super(Random, self).setstate(internalstate) - else: - raise ValueError("state with version %s passed to " - "Random.setstate() of version %s" % - (version, self.VERSION)) - -## ---- Methods below this point do not need to be overridden when -## ---- subclassing for the purpose of using a different core generator. - -## -------------------- pickle support ------------------- - - def __getstate__(self): # for pickle - return self.getstate() - - def __setstate__(self, state): # for pickle - self.setstate(state) - - def __reduce__(self): - return self.__class__, (), self.getstate() - -## -------------------- integer methods ------------------- - - def randrange(self, start, stop=None, step=1, int=int, default=None, - maxwidth=1L< 0: - if istart >= maxwidth: - return self._randbelow(istart) - return int(self.random() * istart) - raise ValueError, "empty range for randrange()" - - # stop argument supplied. - istop = int(stop) - if istop != stop: - raise ValueError, "non-integer stop for randrange()" - width = istop - istart - if step == 1 and width > 0: - # Note that - # int(istart + self.random()*width) - # instead would be incorrect. For example, consider istart - # = -2 and istop = 0. Then the guts would be in - # -2.0 to 0.0 exclusive on both ends (ignoring that random() - # might return 0.0), and because int() truncates toward 0, the - # final result would be -1 or 0 (instead of -2 or -1). - # istart + int(self.random()*width) - # would also be incorrect, for a subtler reason: the RHS - # can return a long, and then randrange() would also return - # a long, but we're supposed to return an int (for backward - # compatibility). - - if width >= maxwidth: - return int(istart + self._randbelow(width)) - return int(istart + int(self.random()*width)) - if step == 1: - raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop, width) - - # Non-unit step argument supplied. - istep = int(step) - if istep != step: - raise ValueError, "non-integer step for randrange()" - if istep > 0: - n = (width + istep - 1) / istep - elif istep < 0: - n = (width + istep + 1) / istep - else: - raise ValueError, "zero step for randrange()" - - if n <= 0: - raise ValueError, "empty range for randrange()" - - if n >= maxwidth: - return istart + self._randbelow(n) - return istart + istep*int(self.random() * n) - - def randint(self, a, b): - """Return random integer in range [a, b], including both end points. - """ - - return self.randrange(a, b+1) - - def _randbelow(self, n, _log=_log, int=int, _maxwidth=1L< n-1 > 2**(k-2) - r = getrandbits(k) - while r >= n: - r = getrandbits(k) - return r - if n >= _maxwidth: - _warn("Underlying random() generator does not supply \n" - "enough bits to choose from a population range this large") - return int(self.random() * n) - -## -------------------- sequence methods ------------------- - - def choice(self, seq): - """Choose a random element from a non-empty sequence.""" - return seq[int(self.random() * len(seq))] - - def shuffle(self, x, random=None, int=int): - """x, random=random.random -> shuffle list x in place; return None. - - Optional arg random is a 0-argument function returning a random - float in [0.0, 1.0); by default, the standard random.random. - - Note that for even rather small len(x), the total number of - permutations of x is larger than the period of most random number - generators; this implies that "most" permutations of a long - sequence can never be generated. - """ - - if random is None: - random = self.random - for i in reversed(xrange(1, len(x))): - # pick an element in x[:i+1] with which to exchange x[i] - j = int(random() * (i+1)) - x[i], x[j] = x[j], x[i] - - def sample(self, population, k): - """Chooses k unique random elements from a population sequence. - - Returns a new list containing elements from the population while - leaving the original population unchanged. The resulting list is - in selection order so that all sub-slices will also be valid random - samples. This allows raffle winners (the sample) to be partitioned - into grand prize and second place winners (the subslices). - - Members of the population need not be hashable or unique. If the - population contains repeats, then each occurrence is a possible - selection in the sample. - - To choose a sample in a range of integers, use xrange as an argument. - This is especially fast and space efficient for sampling from a - large population: sample(xrange(10000000), 60) - """ - - # Sampling without replacement entails tracking either potential - # selections (the pool) in a list or previous selections in a - # dictionary. - - # When the number of selections is small compared to the - # population, then tracking selections is efficient, requiring - # only a small dictionary and an occasional reselection. For - # a larger number of selections, the pool tracking method is - # preferred since the list takes less space than the - # dictionary and it doesn't suffer from frequent reselections. - - n = len(population) - if not 0 <= k <= n: - raise ValueError, "sample larger than population" - random = self.random - _int = int - result = [None] * k - if n < 6 * k: # if n len list takes less space than a k len dict - pool = list(population) - for i in xrange(k): # invariant: non-selected at [0,n-i) - j = _int(random() * (n-i)) - result[i] = pool[j] - pool[j] = pool[n-i-1] # move non-selected item into vacancy - else: - try: - n > 0 and (population[0], population[n//2], population[n-1]) - except (TypeError, KeyError): # handle sets and dictionaries - population = tuple(population) - selected = {} - for i in xrange(k): - j = _int(random() * n) - while j in selected: - j = _int(random() * n) - result[i] = selected[j] = population[j] - return result - -## -------------------- real-valued distributions ------------------- - -## -------------------- uniform distribution ------------------- - - def uniform(self, a, b): - """Get a random number in the range [a, b).""" - return a + (b-a) * self.random() - -## -------------------- normal distribution -------------------- - - def normalvariate(self, mu, sigma): - """Normal distribution. - - mu is the mean, and sigma is the standard deviation. - - """ - # mu = mean, sigma = standard deviation - - # Uses Kinderman and Monahan method. Reference: Kinderman, - # A.J. and Monahan, J.F., "Computer generation of random - # variables using the ratio of uniform deviates", ACM Trans - # Math Software, 3, (1977), pp257-260. - - random = self.random - while True: - u1 = random() - u2 = 1.0 - random() - z = NV_MAGICCONST*(u1-0.5)/u2 - zz = z*z/4.0 - if zz <= -_log(u2): - break - return mu + z*sigma - -## -------------------- lognormal distribution -------------------- - - def lognormvariate(self, mu, sigma): - """Log normal distribution. - - If you take the natural logarithm of this distribution, you'll get a - normal distribution with mean mu and standard deviation sigma. - mu can have any value, and sigma must be greater than zero. - - """ - return _exp(self.normalvariate(mu, sigma)) - -## -------------------- exponential distribution -------------------- - - def expovariate(self, lambd): - """Exponential distribution. - - lambd is 1.0 divided by the desired mean. (The parameter would be - called "lambda", but that is a reserved word in Python.) Returned - values range from 0 to positive infinity. - - """ - # lambd: rate lambd = 1/mean - # ('lambda' is a Python reserved word) - - random = self.random - u = random() - while u <= 1e-7: - u = random() - return -_log(u)/lambd - -## -------------------- von Mises distribution -------------------- - - def vonmisesvariate(self, mu, kappa): - """Circular data distribution. - - mu is the mean angle, expressed in radians between 0 and 2*pi, and - kappa is the concentration parameter, which must be greater than or - equal to zero. If kappa is equal to zero, this distribution reduces - to a uniform random angle over the range 0 to 2*pi. - - """ - # mu: mean angle (in radians between 0 and 2*pi) - # kappa: concentration parameter kappa (>= 0) - # if kappa = 0 generate uniform random angle - - # Based upon an algorithm published in: Fisher, N.I., - # "Statistical Analysis of Circular Data", Cambridge - # University Press, 1993. - - # Thanks to Magnus Kessler for a correction to the - # implementation of step 4. - - random = self.random - if kappa <= 1e-6: - return TWOPI * random() - - a = 1.0 + _sqrt(1.0 + 4.0 * kappa * kappa) - b = (a - _sqrt(2.0 * a))/(2.0 * kappa) - r = (1.0 + b * b)/(2.0 * b) - - while True: - u1 = random() - - z = _cos(_pi * u1) - f = (1.0 + r * z)/(r + z) - c = kappa * (r - f) - - u2 = random() - - if not (u2 >= c * (2.0 - c) and u2 > c * _exp(1.0 - c)): - break - - u3 = random() - if u3 > 0.5: - theta = (mu % TWOPI) + _acos(f) - else: - theta = (mu % TWOPI) - _acos(f) - - return theta - -## -------------------- gamma distribution -------------------- - - def gammavariate(self, alpha, beta): - """Gamma distribution. Not the gamma function! - - Conditions on the parameters are alpha > 0 and beta > 0. - - """ - - # alpha > 0, beta > 0, mean is alpha*beta, variance is alpha*beta**2 - - # Warning: a few older sources define the gamma distribution in terms - # of alpha > -1.0 - if alpha <= 0.0 or beta <= 0.0: - raise ValueError, 'gammavariate: alpha and beta must be > 0.0' - - random = self.random - if alpha > 1.0: - - # Uses R.C.H. Cheng, "The generation of Gamma - # variables with non-integral shape parameters", - # Applied Statistics, (1977), 26, No. 1, p71-74 - - ainv = _sqrt(2.0 * alpha - 1.0) - bbb = alpha - LOG4 - ccc = alpha + ainv - - while True: - u1 = random() - if not 1e-7 < u1 < .9999999: - continue - u2 = 1.0 - random() - v = _log(u1/(1.0-u1))/ainv - x = alpha*_exp(v) - z = u1*u1*u2 - r = bbb+ccc*v-x - if r + SG_MAGICCONST - 4.5*z >= 0.0 or r >= _log(z): - return x * beta - - elif alpha == 1.0: - # expovariate(1) - u = random() - while u <= 1e-7: - u = random() - return -_log(u) * beta - - else: # alpha is between 0 and 1 (exclusive) - - # Uses ALGORITHM GS of Statistical Computing - Kennedy & Gentle - - while True: - u = random() - b = (_e + alpha)/_e - p = b*u - if p <= 1.0: - x = pow(p, 1.0/alpha) - else: - # p > 1 - x = -_log((b-p)/alpha) - u1 = random() - if not (((p <= 1.0) and (u1 > _exp(-x))) or - ((p > 1) and (u1 > pow(x, alpha - 1.0)))): - break - return x * beta - -## -------------------- Gauss (faster alternative) -------------------- - - def gauss(self, mu, sigma): - """Gaussian distribution. - - mu is the mean, and sigma is the standard deviation. This is - slightly faster than the normalvariate() function. - - Not thread-safe without a lock around calls. - - """ - - # When x and y are two variables from [0, 1), uniformly - # distributed, then - # - # cos(2*pi*x)*sqrt(-2*log(1-y)) - # sin(2*pi*x)*sqrt(-2*log(1-y)) - # - # are two *independent* variables with normal distribution - # (mu = 0, sigma = 1). - # (Lambert Meertens) - # (corrected version; bug discovered by Mike Miller, fixed by LM) - - # Multithreading note: When two threads call this function - # simultaneously, it is possible that they will receive the - # same return value. The window is very small though. To - # avoid this, you have to use a lock around all calls. (I - # didn't want to slow this down in the serial case by using a - # lock here.) - - random = self.random - z = self.gauss_next - self.gauss_next = None - if z is None: - x2pi = random() * TWOPI - g2rad = _sqrt(-2.0 * _log(1.0 - random())) - z = _cos(x2pi) * g2rad - self.gauss_next = _sin(x2pi) * g2rad - - return mu + z*sigma - -## -------------------- beta -------------------- -## See -## http://sourceforge.net/bugs/?func=detailbug&bug_id=130030&group_id=5470 -## for Ivan Frohne's insightful analysis of why the original implementation: -## -## def betavariate(self, alpha, beta): -## # Discrete Event Simulation in C, pp 87-88. -## -## y = self.expovariate(alpha) -## z = self.expovariate(1.0/beta) -## return z/(y+z) -## -## was dead wrong, and how it probably got that way. - - def betavariate(self, alpha, beta): - """Beta distribution. - - Conditions on the parameters are alpha > -1 and beta} > -1. - Returned values range between 0 and 1. - - """ - - # This version due to Janne Sinkkonen, and matches all the std - # texts (e.g., Knuth Vol 2 Ed 3 pg 134 "the beta distribution"). - y = self.gammavariate(alpha, 1.) - if y == 0: - return 0.0 - else: - return y / (y + self.gammavariate(beta, 1.)) - -## -------------------- Pareto -------------------- - - def paretovariate(self, alpha): - """Pareto distribution. alpha is the shape parameter.""" - # Jain, pg. 495 - - u = 1.0 - self.random() - return 1.0 / pow(u, 1.0/alpha) - -## -------------------- Weibull -------------------- - - def weibullvariate(self, alpha, beta): - """Weibull distribution. - - alpha is the scale parameter and beta is the shape parameter. - - """ - # Jain, pg. 499; bug fix courtesy Bill Arms - - u = 1.0 - self.random() - return alpha * pow(-_log(u), 1.0/beta) - -## -------------------- Wichmann-Hill ------------------- - -class WichmannHill(Random): - - VERSION = 1 # used by getstate/setstate - - def seed(self, a=None): - """Initialize internal state from hashable object. - - None or no argument seeds from current time. - - If a is not None or an int or long, hash(a) is used instead. - - If a is an int or long, a is used directly. Distinct values between - 0 and 27814431486575L inclusive are guaranteed to yield distinct - internal states (this guarantee is specific to the default - Wichmann-Hill generator). - """ - - if a is None: - # Initialize from current time - import time - a = long(time.time() * 256) - - if not isinstance(a, (int, long)): - a = hash(a) - - a, x = divmod(a, 30268) - a, y = divmod(a, 30306) - a, z = divmod(a, 30322) - self._seed = int(x)+1, int(y)+1, int(z)+1 - - self.gauss_next = None - - def random(self): - """Get the next random number in the range [0.0, 1.0).""" - - # Wichman-Hill random number generator. - # - # Wichmann, B. A. & Hill, I. D. (1982) - # Algorithm AS 183: - # An efficient and portable pseudo-random number generator - # Applied Statistics 31 (1982) 188-190 - # - # see also: - # Correction to Algorithm AS 183 - # Applied Statistics 33 (1984) 123 - # - # McLeod, A. I. (1985) - # A remark on Algorithm AS 183 - # Applied Statistics 34 (1985),198-200 - - # This part is thread-unsafe: - # BEGIN CRITICAL SECTION - x, y, z = self._seed - x = (171 * x) % 30269 - y = (172 * y) % 30307 - z = (170 * z) % 30323 - self._seed = x, y, z - # END CRITICAL SECTION - - # Note: on a platform using IEEE-754 double arithmetic, this can - # never return 0.0 (asserted by Tim; proof too long for a comment). - return (x/30269.0 + y/30307.0 + z/30323.0) % 1.0 - - def getstate(self): - """Return internal state; can be passed to setstate() later.""" - return self.VERSION, self._seed, self.gauss_next - - def setstate(self, state): - """Restore internal state from object returned by getstate().""" - version = state[0] - if version == 1: - version, self._seed, self.gauss_next = state - else: - raise ValueError("state with version %s passed to " - "Random.setstate() of version %s" % - (version, self.VERSION)) - - def jumpahead(self, n): - """Act as if n calls to random() were made, but quickly. - - n is an int, greater than or equal to 0. - - Example use: If you have 2 threads and know that each will - consume no more than a million random numbers, create two Random - objects r1 and r2, then do - r2.setstate(r1.getstate()) - r2.jumpahead(1000000) - Then r1 and r2 will use guaranteed-disjoint segments of the full - period. - """ - - if not n >= 0: - raise ValueError("n must be >= 0") - x, y, z = self._seed - x = int(x * pow(171, n, 30269)) % 30269 - y = int(y * pow(172, n, 30307)) % 30307 - z = int(z * pow(170, n, 30323)) % 30323 - self._seed = x, y, z - - def __whseed(self, x=0, y=0, z=0): - """Set the Wichmann-Hill seed from (x, y, z). - - These must be integers in the range [0, 256). - """ - - if not type(x) == type(y) == type(z) == int: - raise TypeError('seeds must be integers') - if not (0 <= x < 256 and 0 <= y < 256 and 0 <= z < 256): - raise ValueError('seeds must be in range(0, 256)') - if 0 == x == y == z: - # Initialize from current time - import time - t = long(time.time() * 256) - t = int((t&0xffffff) ^ (t>>24)) - t, x = divmod(t, 256) - t, y = divmod(t, 256) - t, z = divmod(t, 256) - # Zero is a poor seed, so substitute 1 - self._seed = (x or 1, y or 1, z or 1) - - self.gauss_next = None - - def whseed(self, a=None): - """Seed from hashable object's hash code. - - None or no argument seeds from current time. It is not guaranteed - that objects with distinct hash codes lead to distinct internal - states. - - This is obsolete, provided for compatibility with the seed routine - used prior to Python 2.1. Use the .seed() method instead. - """ - - if a is None: - self.__whseed() - return - a = hash(a) - a, x = divmod(a, 256) - a, y = divmod(a, 256) - a, z = divmod(a, 256) - x = (x + a) % 256 or 1 - y = (y + a) % 256 or 1 - z = (z + a) % 256 or 1 - self.__whseed(x, y, z) - -## -------------------- test program -------------------- - -def _test_generator(n, func, args): - import time - print n, 'times', func.__name__ - total = 0.0 - sqsum = 0.0 - smallest = 1e10 - largest = -1e10 - t0 = time.time() - for i in range(n): - x = func(*args) - total += x - sqsum = sqsum + x*x - smallest = min(x, smallest) - largest = max(x, largest) - t1 = time.time() - print round(t1-t0, 3), 'sec,', - avg = total/n - stddev = _sqrt(sqsum/n - avg*avg) - print 'avg %g, stddev %g, min %g, max %g' % \ - (avg, stddev, smallest, largest) - - -def _test(N=2000): - _test_generator(N, random, ()) - _test_generator(N, normalvariate, (0.0, 1.0)) - _test_generator(N, lognormvariate, (0.0, 1.0)) - _test_generator(N, vonmisesvariate, (0.0, 1.0)) - _test_generator(N, gammavariate, (0.01, 1.0)) - _test_generator(N, gammavariate, (0.1, 1.0)) - _test_generator(N, gammavariate, (0.1, 2.0)) - _test_generator(N, gammavariate, (0.5, 1.0)) - _test_generator(N, gammavariate, (0.9, 1.0)) - _test_generator(N, gammavariate, (1.0, 1.0)) - _test_generator(N, gammavariate, (2.0, 1.0)) - _test_generator(N, gammavariate, (20.0, 1.0)) - _test_generator(N, gammavariate, (200.0, 1.0)) - _test_generator(N, gauss, (0.0, 1.0)) - _test_generator(N, betavariate, (3.0, 3.0)) - -# Create one instance, seeded from current time, and export its methods -# as module-level functions. The functions share state across all uses -#(both in the user's code and in the Python libraries), but that's fine -# for most programs and is easier for the casual user than making them -# instantiate their own Random() instance. - -_inst = Random() -seed = _inst.seed -random = _inst.random -uniform = _inst.uniform -randint = _inst.randint -choice = _inst.choice -randrange = _inst.randrange -sample = _inst.sample -shuffle = _inst.shuffle -normalvariate = _inst.normalvariate -lognormvariate = _inst.lognormvariate -expovariate = _inst.expovariate -vonmisesvariate = _inst.vonmisesvariate -gammavariate = _inst.gammavariate -gauss = _inst.gauss -betavariate = _inst.betavariate -paretovariate = _inst.paretovariate -weibullvariate = _inst.weibullvariate -getstate = _inst.getstate -setstate = _inst.setstate -jumpahead = _inst.jumpahead -getrandbits = _inst.getrandbits - -if __name__ == '__main__': - _test() From sanxiyn at codespeak.net Mon Mar 29 04:15:16 2004 From: sanxiyn at codespeak.net (sanxiyn at codespeak.net) Date: Mon, 29 Mar 2004 04:15:16 +0200 (MEST) Subject: [pypy-svn] r3465 - pypy/trunk/src/goal Message-ID: <20040329021516.F330E5A0F4@thoth.codespeak.net> Author: sanxiyn Date: Mon Mar 29 04:15:15 2004 New Revision: 3465 Added: pypy/trunk/src/goal/http-and-html.py Log: HTTP and HTML test. As of r3464, works in TrivialObjSpace (slow). StdObjSpace cannot import random because of super. htmllib imports mimetools, mimetools imports tempfile, tempfile imports random. So it does not work now. Added: pypy/trunk/src/goal/http-and-html.py ============================================================================== --- (empty file) +++ pypy/trunk/src/goal/http-and-html.py Mon Mar 29 04:15:15 2004 @@ -0,0 +1,9 @@ +url = 'http://www.python.org/' +html = 'python.html' +import urllib +content = urllib.urlopen(url).read() +file(html, 'w').write(content) +import htmllib +htmllib.test([html]) +import os +os.remove(html) From sanxiyn at codespeak.net Mon Mar 29 04:21:54 2004 From: sanxiyn at codespeak.net (sanxiyn at codespeak.net) Date: Mon, 29 Mar 2004 04:21:54 +0200 (MEST) Subject: [pypy-svn] r3466 - pypy/trunk/src/pypy Message-ID: <20040329022154.BDFA65A0F4@thoth.codespeak.net> Author: sanxiyn Date: Mon Mar 29 04:21:49 2004 New Revision: 3466 Modified: pypy/trunk/src/pypy/TODO Log: more TODO Modified: pypy/trunk/src/pypy/TODO ============================================================================== --- pypy/trunk/src/pypy/TODO (original) +++ pypy/trunk/src/pypy/TODO Mon Mar 29 04:21:49 2004 @@ -6,6 +6,8 @@ * Implements super. Guido's paper, descrintro, has a pure Python implementation. Let it run on PyPy. (as of r3461, it doesn't run.) +* Supports traceback. At least sys.exc_info. (Many modules expect it.) + * slicing with assigments & more small things lst[::-2] = lst2 From alastair at codespeak.net Mon Mar 29 16:28:01 2004 From: alastair at codespeak.net (alastair at codespeak.net) Date: Mon, 29 Mar 2004 16:28:01 +0200 (MEST) Subject: [pypy-svn] r3495 - pypy/trunk/doc/funding/negotiations Message-ID: <20040329142801.123155A142@thoth.codespeak.net> Author: alastair Date: Mon Mar 29 16:27:58 2004 New Revision: 3495 Modified: pypy/trunk/doc/funding/negotiations/email-eu-1.txt Log: Added an explantion of the dynamic role of the PBF. Modified: pypy/trunk/doc/funding/negotiations/email-eu-1.txt ============================================================================== --- pypy/trunk/doc/funding/negotiations/email-eu-1.txt (original) +++ pypy/trunk/doc/funding/negotiations/email-eu-1.txt Mon Mar 29 16:27:58 2004 @@ -3,13 +3,14 @@ based currently on an earlier draft from Jacob and some work from Holger. ------------------------------------------------------------------ -Dear Mr van Roy, Dear Mr. Lacroix, +Dear Mr van Rooy, Dear Mr. Lacroix, -During the meeting on 16th of March 2004 the PyPy consortium was told -that the cost model and budget of the PBF is not acceptable within the -sixth framework program. Originally the PBF was to take on two -responsilibites: deploying certain people for core work and connecting -the project to open source and business communities. +During the meeting on 16th of March 2004 the PyPy consortium was told that +the cost model and budget of the PBF is not acceptable within the sixth +framework program. Originally the PBF was to take on three +responsilibites: deploying certain people for core work, connecting the +project to open source and business communities, and bringing in new people +from the external developer community to cope with unforseen eventualities. For the first part we can substitute by bringing in three of the individuals as consortium partners. The fourth person is to be employed @@ -18,11 +19,16 @@ because it seems to be harder now to bring in specific experts later on. -But the second responsibility and role should stay with the PBF: -connecting and disseminating to open source and business communities. -Please note that implementing an industrial strength beyond-state-of -the-art language platform means we have to collaborate with as many -experts as possible to reduce the risk of failing. +The second responsibility and role should stay with the PBF: connecting and +disseminating to open source and business communities. Please note that +implementing an industrial strength beyond-state-of the-art language +platform means we have to collaborate with as many experts as possible to +reduce the risk of failing. + +The third responsibility, acting as a means to bring known developers into +the project if, for example, of the core developers were to fall ill, is +going to be hard to duplicate with the same flexibility and we may have use +more bureaucratic instruments such as a contract amendment. As a result, all partners agree to the following consortium shape: From hpk at codespeak.net Tue Mar 30 20:51:01 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Tue, 30 Mar 2004 20:51:01 +0200 (MEST) Subject: [pypy-svn] r3534 - pypy/trunk/doc/funding Message-ID: <20040330185101.15B1F5A142@thoth.codespeak.net> Author: hpk Date: Tue Mar 30 20:50:59 2004 New Revision: 3534 Modified: pypy/trunk/doc/funding/B6.7.wp12_validations.txt Log: - changed plurals to singular - specified security a bit Modified: pypy/trunk/doc/funding/B6.7.wp12_validations.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp12_validations.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp12_validations.txt Tue Mar 30 20:50:59 2004 @@ -32,13 +32,13 @@ **Task 1** -Analyze and implement security models at the language level. Implement -the "RExec" restricted execution model. (It was removed from the official -Python implementation because it was too hard to maintain.) +Analyze and implement an "restricted execution" or sandbox model at the language +level. (It was removed from the official Python implementation because it was too +hard to maintain.) **Task 2** -Analyze and implement distributed execution models at the language level. +Analyze and implement a distributed execution model at the language level. Implement network-transparent execution of Python programs. (Typical libraries require programs to be aware of the remote execution model.) From arigo at codespeak.net Tue Mar 30 21:31:54 2004 From: arigo at codespeak.net (arigo at codespeak.net) Date: Tue, 30 Mar 2004 21:31:54 +0200 (MEST) Subject: [pypy-svn] r3535 - pypy/trunk/doc/funding Message-ID: <20040330193154.C59F75A142@thoth.codespeak.net> Author: arigo Date: Tue Mar 30 21:31:54 2004 New Revision: 3535 Modified: pypy/trunk/doc/funding/B6.7.wp04_core.txt Log: Replanning the % of the tests. Modified: pypy/trunk/doc/funding/B6.7.wp04_core.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp04_core.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp04_core.txt Tue Mar 30 21:31:54 2004 @@ -66,7 +66,14 @@ **Milestones and Expected Result** -- M1 A partial Python implementation that passses 75% of the official - Python test suite that don't depend on extension modules. +- M1 A partial Python implementation that passes 90% of the official + Python test suite for core language features, i.e. not depending on + library-level C extension modules (the C part of the "standard + library"). + +- Providing a substitute for all C modules is a long-term project + involving the wider community. By the end of Phases 2 and 3 of the + project we expect to have all major (commonly used) modules + reimplemented. .. include:: wp-tableend.asc From hpk at codespeak.net Tue Mar 30 21:45:22 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Tue, 30 Mar 2004 21:45:22 +0200 (MEST) Subject: [pypy-svn] r3536 - pypy/trunk/doc/funding Message-ID: <20040330194522.9AFA25A142@thoth.codespeak.net> Author: hpk Date: Tue Mar 30 21:45:21 2004 New Revision: 3536 Modified: pypy/trunk/doc/funding/B6.7.wp04_core.txt Log: - trying to be a bit more specific - a bit of rewording to armin's last changes Modified: pypy/trunk/doc/funding/B6.7.wp04_core.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp04_core.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp04_core.txt Tue Mar 30 21:45:21 2004 @@ -40,15 +40,16 @@ **Task 2** -Port the built-in Python library to PyPy -(functions, types and modules currently implemented in C). -Decide on a case-by-case basis which features are to -be implemented using RPython or just general Python. +Port the Python "builtin" library of types, functions and +classes to PyPy (most of them are currently implemented in C). +Research and decide on a case-by-case basis how to implement +each of the 100 builtin objects within PyPy in a simple and +efficient way. **Task 3** -Implement a Python parser and bytecode compiler in Python. -Leverage existing research and implementation techniques. +Implement a Python parser and bytecode compiler in Python by +leveraging existing research and implementation work. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc @@ -59,7 +60,7 @@ - D04.2 Complete Python implementation running on top of CPython - D04.3 Report about the parser and bytecode compiler implementation. - D04.4 Release PyPy as a research tool for experimental language - enhancements + enhancements .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc @@ -71,9 +72,10 @@ library-level C extension modules (the C part of the "standard library"). -- Providing a substitute for all C modules is a long-term project - involving the wider community. By the end of Phases 2 and 3 of the - project we expect to have all major (commonly used) modules - reimplemented. +- Providing a substitute for the many existing C modules will be an + ongoing effort neccessarily involving the wider python communities. + By the end of Phases 2 and 3 of the project we expect to have the most + commonly used modules reimplemented or - if technically not feasible - + matched with equivalent functionality in PyPy. .. include:: wp-tableend.asc From jacob at codespeak.net Tue Mar 30 22:35:22 2004 From: jacob at codespeak.net (jacob at codespeak.net) Date: Tue, 30 Mar 2004 22:35:22 +0200 (MEST) Subject: [pypy-svn] r3537 - pypy/trunk/doc/funding/negotiations Message-ID: <20040330203522.8025B5A142@thoth.codespeak.net> Author: jacob Date: Tue Mar 30 22:35:21 2004 New Revision: 3537 Modified: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf Log: Updated CPFs for Strakt and PBF. Modified: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf ============================================================================== --- pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf (original) +++ pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf Tue Mar 30 22:35:21 2004 @@ -4,6 +4,7 @@ @@ -103,6 +105,7 @@ @@ -296,10 +300,10 @@ DE148646973 - 14.200.000,00 - 30.300.000,00 + 14 + 30 2002 - 14.000.000,00 + 14 277 137 26 @@ -341,11 +345,11 @@ GB568630414 - ,00 - ,00 + 0 + 0 - ,00 - 5.000 + 0 + 0 1202 405 797 @@ -386,10 +390,10 @@ - - + 0 + 0 - + 0 @@ -431,11 +435,11 @@ - ,00 - ,00 + 1000 + 1000 - ,00 - + 100 + 1 0 0 0 @@ -448,7 +452,7 @@ N NC - + N 888016623 Y @@ -476,10 +480,10 @@ 556609-2473 - 1.100.000,00 - 4.800.000,00 + 1100000 + 4800000 2003 - ,00 + 800000 17 12 1 @@ -521,10 +525,10 @@ FR09 432 746 19 - ,00 - ,00 + 0 + 0 - ,00 + 0 10 9 1 @@ -566,10 +570,10 @@ - 160.000,00 - 50.000,00 + 160 + 50 2003 - ,00 + 0 2 @@ -605,6 +609,7 @@ @@ -832,7 +838,7 @@ CFO Project Leader - + 0 @@ -883,7 +889,7 @@ ACADEMIC STAFF - ,00 + 0 @@ -934,7 +940,7 @@ - + 0 @@ -985,7 +991,7 @@ SIG Chair - ,00 + 0 @@ -1022,7 +1028,7 @@ +46 31 7490880 +46 31 7490881 - + N @@ -1036,7 +1042,7 @@ CTO - ,00 + 0 @@ -1087,7 +1093,7 @@ President and CEO - ,00 + 0 @@ -1138,7 +1144,7 @@ Project Leader - ,00 + 0 @@ -1160,6 +1166,7 @@ @@ -1307,10 +1315,10 @@ PYPY 4 PYTHON BUSINESS FORUM - + Hall?n - - + Jacob + Y @@ -1319,10 +1327,10 @@ PYPY 5 AB STRAKT - + Per-?ke - - + Olsson + Y @@ -1367,6 +1375,7 @@ @@ -1507,19 +1517,19 @@ 1 DFKI FC - 158.998,00 - 79.499,00 - ,00 - ,00 - 39.200,00 - 39.200,00 - - - - - - - + 158 + 79 + 0 + 0 + 39 + 39 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1528,19 +1538,19 @@ 2 UOS AC - 192.541,00 - 192.541,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 + 192 + 192 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1549,19 +1559,19 @@ 3 MPIIB AC - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - - - - - - - + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1570,19 +1580,19 @@ 4 PBF AC - 713.724,00 - 713.724,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 + 713 + 713 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1591,19 +1601,19 @@ 5 STRAKT FC - 276.784,00 - 138.392,00 - ,00 - ,00 - 34.000,00 - 34.000,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 + 276 + 138 + 0 + 0 + 34 + 34 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1612,19 +1622,19 @@ 6 LOGILAB FC - 192.192,00 - 96.096,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 + 192 + 96 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1633,19 +1643,19 @@ 7 CM FC - 76.480,00 - 38.240,00 - ,00 - ,00 - 21.200,00 - 21.200,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 + 76 + 38 + 0 + 0 + 21 + 21 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1665,6 +1675,7 @@ @@ -1720,8 +1732,8 @@ 1 1 - - + 0 + 0 @@ -1730,8 +1742,8 @@ 2 - - + 0 + 0 @@ -1740,8 +1752,8 @@ 3 - - + 0 + 0 @@ -1750,8 +1762,8 @@ 4 - - + 0 + 0 @@ -1760,8 +1772,8 @@ 5 - - + 0 + 0 @@ -1770,8 +1782,8 @@ 6 - - + 0 + 0 @@ -1780,8 +1792,8 @@ 7 - - + 0 + 0 @@ -1801,6 +1813,7 @@ @@ -2041,6 +2055,7 @@ @@ -2231,6 +2247,7 @@ @@ -2537,64 +2555,64 @@ 12 N EUR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -2607,64 +2625,64 @@ - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -2677,64 +2695,64 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -2747,64 +2765,64 @@ - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -2817,64 +2835,64 @@ - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -2887,64 +2905,64 @@ 22 Y EUR - ,00 - ,00 - ,00 - ,00 - 759.507,00 - 1.372.309,00 - 4.100,00 - 4.000,00 - ,00 - ,00 - ,00 - 4.393.516,00 - 10.304.507,00 - ,00 - 1.634.131,00 - 7.177.865,00 - ,00 - ,00 - 50.000,00 - 50.000,00 - ,00 - ,00 - -12.105,00 - ,00 - 964.557,00 - -12.105,00 - ,00 - ,00 - ,00 - ,00 - 8.354.137,00 - 8.990.631,00 - ,00 - 563.608,00 - 31.667.615,00 - 22.320.283,00 - ,00 - ,00 - ,00 - ,00 - 93.614,00 - 98.302,00 - 6.302.907,00 - 74.168,00 - 24.427.259,00 - 15.999.151,00 - ,00 - ,00 - 120.922,00 - 3.075,00 - ,00 - ,00 - ,00 - 63.397,00 - -2,00 - 43.743,00 - ,00 - ,00 + 0 + 0 + 0 + 0 + 759 + 1 + 4 + 4 + 0 + 0 + 0 + 4 + 10 + 0 + 1 + 7 + 0 + 0 + 50 + 50 + 0 + 0 + -12 + 0 + 964 + -12 + 0 + 0 + 0 + 0 + 8 + 8 + 0 + 563 + 31 + 22 + 0 + 0 + 0 + 0 + 93 + 98 + 6 + 74 + 24 + 15 + 0 + 0 + 120 + 3 + 0 + 0 + 0 + 63 + -2 + 43 + 0 + 0 @@ -2957,64 +2975,64 @@ - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 - ,00 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 From hpk at codespeak.net Tue Mar 30 22:49:05 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Tue, 30 Mar 2004 22:49:05 +0200 (MEST) Subject: [pypy-svn] r3538 - pypy/trunk/doc/funding Message-ID: <20040330204905.544725A142@thoth.codespeak.net> Author: hpk Date: Tue Mar 30 22:49:04 2004 New Revision: 3538 Modified: pypy/trunk/doc/funding/B6.7.wp05_translation.txt Log: - largely reworked WP05 because the EU is dubious about the amount of man-month we spent for core packages. - *much* more empahsis on research results and publications - after all they said they don't want to just fund some opensource developers and we *are* researching new ways of doing language implementations ... Modified: pypy/trunk/doc/funding/B6.7.wp05_translation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp05_translation.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp05_translation.txt Tue Mar 30 22:49:04 2004 @@ -36,13 +36,16 @@ Create a code analysis tool for a subset of the Python language (RPython). Coordinate the definition of RPython -with WP04_, being the implementation language of the core. +with WP04_, being the implementation language for most +of the core. At the core of this task lies the research and +implementation of full "abstract interpretation" by reusing +the unmodified PyPy interpreter with a special object space. **Task 2** Produce a tool chain, capable of extracting the RPython byte code from the core, translating it into low-level -code (C, ...), and compiling it. +code (with C beeing the primary target) and compiling it. Use the data gathered in Task 1 to drive the translation process. @@ -59,23 +62,31 @@ **Deliverables** -- D05.1 Tool chain for translating and compiling arbitrary RPython programs -- D05.2 Release a compiled, self-contained modular version of PyPy -- D05.3 Publish solved and remaining problems regarding RPython and +- D05.1 Publish a report about translating a very-high-level description + of a language into low level code by building on "abstract interpretation" and + PyPy's design in particular. +- D05.2 Release a compiled, self-contained modular version of PyPy. +- D05.3 Publish solutions and open challenges regarding the implementation of memory management/threading models as translation aspects. +- D05.4 Publish an overview paper about the success of encapsulating low level + language aspects as well defined parts of the translation phase. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc **Milestones and Expected Result** -- Complete implementation of Python, conforming to the language - definition and passing all language compliancy [*]_ tests of the official Python test suite. - -.. [*] CPython contains some tests that depend on implementation - details. The exact line between a language feature and an implementation detail - might at times be hard to draw precisely, but in all cases this only concerns a - minority of the tests. In case of doubt the original python developers will be - consulted. +- Complete implementation of the Python language, conforming to the + language definition and passing all language compliancy [*]_ tests of + the official Python test suite. + +- Research Results on encapsulating low level language aspects as parts + of a translation from very-high-level into low-level code. + +.. [*] Some of the the many hundred CPython language tests actually test + implementation details like e.g. memory management. The exact line + between a language feature and an implementation detail is at times + hard to draw. In case of doubt the original CPython developers will + be consulted for clarification. .. include:: wp-tableend.asc From arigo at codespeak.net Tue Mar 30 23:38:43 2004 From: arigo at codespeak.net (arigo at codespeak.net) Date: Tue, 30 Mar 2004 23:38:43 +0200 (MEST) Subject: [pypy-svn] r3540 - pypy/trunk/doc/funding Message-ID: <20040330213843.7411C5A142@thoth.codespeak.net> Author: arigo Date: Tue Mar 30 23:38:42 2004 New Revision: 3540 Modified: pypy/trunk/doc/funding/B6.7.wp03_synchronisation.txt pypy/trunk/doc/funding/B6.7.wp08_dynamic_optimisation.txt Log: Exchanging some man-months between USH and Tismer so that USH is present in WP08, where MPI left. Modified: pypy/trunk/doc/funding/B6.7.wp03_synchronisation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp03_synchronisation.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp03_synchronisation.txt Tue Mar 30 23:38:42 2004 @@ -4,9 +4,9 @@ .. |wp| replace:: WP03 .. |start| replace:: 0 .. |p1| replace:: USH -.. |m1| replace:: 9 -.. |p2| replace:: |e| -.. |m2| replace:: |e| +.. |m1| replace:: 3 +.. |p2| replace:: Tismer +.. |m2| replace:: 6 .. |p3| replace:: |e| .. |m3| replace:: |e| .. |p4| replace:: |e| Modified: pypy/trunk/doc/funding/B6.7.wp08_dynamic_optimisation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp08_dynamic_optimisation.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp08_dynamic_optimisation.txt Tue Mar 30 23:38:42 2004 @@ -6,9 +6,9 @@ .. |p1| replace:: STRAKT .. |m1| replace:: 17 .. |p2| replace:: Tismer -.. |m2| replace:: 9 -.. |p3| replace:: |e| -.. |m3| replace:: |e| +.. |m2| replace:: 3 +.. |p3| replace:: USH +.. |m3| replace:: 6 .. |p4| replace:: |e| .. |m4| replace:: |e| .. |p5| replace:: |e| From arigo at codespeak.net Tue Mar 30 23:44:56 2004 From: arigo at codespeak.net (arigo at codespeak.net) Date: Tue, 30 Mar 2004 23:44:56 +0200 (MEST) Subject: [pypy-svn] r3541 - pypy/trunk/doc/funding Message-ID: <20040330214456.DC1905A142@thoth.codespeak.net> Author: arigo Date: Tue Mar 30 23:44:56 2004 New Revision: 3541 Modified: pypy/trunk/doc/funding/B6.7.wp12_validations.txt Log: Strakt is the project leader on this WP; USH was not part of this WP originally, so cannot be leader. Modified: pypy/trunk/doc/funding/B6.7.wp12_validations.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp12_validations.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp12_validations.txt Tue Mar 30 23:44:56 2004 @@ -3,10 +3,10 @@ .. |title| replace:: Implement Security, Distribution and Persistence .. |wp| replace:: WP12 .. |start| replace:: 18 -.. |p1| replace:: USH -.. |m1| replace:: 3 -.. |p2| replace:: STRAKT -.. |m2| replace:: 10 +.. |p1| replace:: STRAKT +.. |m1| replace:: 10 +.. |p2| replace:: USH +.. |m2| replace:: 3 .. |p3| replace:: |e| .. |m3| replace:: |e| .. |p4| replace:: |e| From arigo at codespeak.net Wed Mar 31 00:24:18 2004 From: arigo at codespeak.net (arigo at codespeak.net) Date: Wed, 31 Mar 2004 00:24:18 +0200 (MEST) Subject: [pypy-svn] r3542 - pypy/trunk/doc/funding Message-ID: <20040330222418.DCBD35A142@thoth.codespeak.net> Author: arigo Date: Wed Mar 31 00:24:18 2004 New Revision: 3542 Modified: pypy/trunk/doc/funding/B1.0_objectives.txt pypy/trunk/doc/funding/B6.0_detailed_implementation.txt pypy/trunk/doc/funding/B6.7.wp13_integration_config.txt Log: Rephrase "user" to "language user". Modified: pypy/trunk/doc/funding/B1.0_objectives.txt ============================================================================== --- pypy/trunk/doc/funding/B1.0_objectives.txt (original) +++ pypy/trunk/doc/funding/B1.0_objectives.txt Wed Mar 31 00:24:18 2004 @@ -6,7 +6,8 @@ --------------------------- Current language implementations are static and hard to modify by -users. Even the implementations of open-source dynamic languages have +programmers that use them ("language users"). +Even the implementations of open-source dynamic languages have non-flexible designs crafted by a small group of developers. While designing a good programming language is no easy task, often application developers seek more support and configurability of their @@ -53,7 +54,7 @@ encapsulates computational operations on objects, separated from the bytecode interpreter. A number of features, most of which are hard to implement as application-level libraries, can become part of the -language in a manageable and user-configurable way if they are +language in a manageable and language-user-configurable way if they are implemented modularly as Object Spaces. For example: * choice of memory and threading model @@ -249,8 +250,9 @@ direct translation. Finally we expect to develop automatic interpreter build tools that allow -choices about aspects, predefined or user-supplied modifications -and extensions to be made from the language user. +choices about aspects, modifications and extensions to be made by the +language user, and that enable advanced programmers to develop and +integrate their own aspects and extensions to the language. ---------------------------------------------- Modified: pypy/trunk/doc/funding/B6.0_detailed_implementation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.0_detailed_implementation.txt (original) +++ pypy/trunk/doc/funding/B6.0_detailed_implementation.txt Wed Mar 31 00:24:18 2004 @@ -422,8 +422,8 @@ It is expected that most of the applications described above will still be relatively experimental when the project ends. It is also expected that the -extreme flexibility will lead to a potentially large number of different -end-user configurations of PyPy. Thus our essential goal, beyond validating +extreme flexibility will lead to the deployment of a potentially large number +of different configurations of PyPy. Thus our essential goal, beyond validating our techniques and showing what can be done and how it benefits from integration with the language, is to make this knowledge available and easy-to-use for contributors and third-parties. Modified: pypy/trunk/doc/funding/B6.7.wp13_integration_config.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp13_integration_config.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp13_integration_config.txt Wed Mar 31 00:24:18 2004 @@ -58,7 +58,7 @@ **Milestones and Expected Result** -- A stable release of PyPy enabling a wide range of users to +- A stable release of PyPy enabling a wide range of language users to experiment and develop using it as a flexible and highly-optimizable Python implementation. From pedronis at codespeak.net Wed Mar 31 01:32:08 2004 From: pedronis at codespeak.net (pedronis at codespeak.net) Date: Wed, 31 Mar 2004 01:32:08 +0200 (MEST) Subject: [pypy-svn] r3544 - pypy/trunk/doc/funding Message-ID: <20040330233208.2A6CD5A142@thoth.codespeak.net> Author: pedronis Date: Wed Mar 31 01:32:07 2004 New Revision: 3544 Modified: pypy/trunk/doc/funding/B4.resources.txt pypy/trunk/doc/funding/B5.0_manage_bea.txt Log: resync ReST text files with the edits that produced negotiations/PyPy-Ta.sxw Modified: pypy/trunk/doc/funding/B4.resources.txt ============================================================================== --- pypy/trunk/doc/funding/B4.resources.txt (original) +++ pypy/trunk/doc/funding/B4.resources.txt Wed Mar 31 01:32:07 2004 @@ -154,39 +154,6 @@ N?ringslivscentrum, Elmo Leather, Learning Tree International, FSO, Semcon, Lundsbergs Internatskola,Galaxenis -**Max-Planck Institut f?r Infektionsbiologie** - -:: - - Role: Technical Partner - Country: Germany - Contact: Mark Achtman - -The Max-Planck Institut f?r Infektionsbiologie -(http://www.mpiib-berlin.mpg.de) contains over 200 scientific and -technical staff, including a small bioinformatics group, and is -dedicated to basic research on problems relating to infectious -diseases. The institute performs molecular biological, cell biological -and immunological research on multiple bacterial pathogens, that are -variously responsible for millions of deaths per year due to -tuberculosis, dysentery, meningitis and other diseases. Within the -institute, a research group of 7 scientists led by Dr. Mark Achtman -(http://www.mpiib-berlin.mpg.de/institut/molecular01.htm) concentrates -on reconstructing the evolution of bacterial pathogens. Approaches -from the fields of bioinformatics, population genetics and theoretical -biology are used to elucidate signals within DNA sequences of bacteria -from epidemiologically relevant collections. In recent years, the -group has demonstrated that certain bacterial pathogens evolved only -very recently while others have accompanied the spread of anatomically -modern humans throughout the last 200,000 years. These analyses are -performed in a heterogeneous network of Windows and UNIX workstations -and data is stored in a variety of different database systems. Global -WEB-based publication of data within the databases -(http://web.mpiib-berlin.mpg.de) will be greatly expanded in the -immediate future. The group uses Python extensively for its -bioinformatics analyses, will help in the development of PyPy and will -act as a test site to evaluate increased performance within its -bioinformatics activities. Sub-contracting --------------- @@ -398,20 +365,6 @@ ensuring smooth communication between the project and the FP6 project officer. -Max Planck Institut -+++++++++++++++++++ -will showcase how to apply the results of the project in the research -environment. The institute currently leverages the speed of development -with Python but would be able to solve a wider range of problems with -a faster version of the language. - -MPI will bring Samuele Pedroni to the project. - -Samuele Pedroni is the main developer of Jython, an implementation of -Python that uses the Java Virtual Machine. He is an expert on how to -generate code for different virtual machines. He brings experience in -this field and a creative mind to the project. - University of Southampton +++++++++++++++++++++++++ is the employer of Armin Rigo, who is the lead architect of the whole @@ -505,7 +458,7 @@ Ability to deliver ++++++++++++++++++ -DFKI, Logilab, Max Planck Institut and University of Southampton have +DFKI, Logilab, and University of Southampton have already successfully participated in EU projects, so their ability to deliver on another project should not be in doubt. Modified: pypy/trunk/doc/funding/B5.0_manage_bea.txt ============================================================================== --- pypy/trunk/doc/funding/B5.0_manage_bea.txt (original) +++ pypy/trunk/doc/funding/B5.0_manage_bea.txt Wed Mar 31 01:32:07 2004 @@ -251,7 +251,7 @@ Representatives in the technical board: - Armin Rigo, University of Southampton -- Samuele Pedroni, MPI +- Samuele Pedroni - Holger Krekel, PBF - Christian Tismer, PBF From pedronis at codespeak.net Wed Mar 31 01:45:53 2004 From: pedronis at codespeak.net (pedronis at codespeak.net) Date: Wed, 31 Mar 2004 01:45:53 +0200 (MEST) Subject: [pypy-svn] r3545 - pypy/trunk/doc/funding Message-ID: <20040330234553.A5E625AFCB@thoth.codespeak.net> Author: pedronis Date: Wed Mar 31 01:45:52 2004 New Revision: 3545 Modified: pypy/trunk/doc/funding/B6.7.wp04_core.txt pypy/trunk/doc/funding/B6.7.wp05_translation.txt pypy/trunk/doc/funding/B6.7.wp07_translator_optimisations.txt pypy/trunk/doc/funding/B6.7.wp08_dynamic_optimisation.txt pypy/trunk/doc/funding/B6.7.wp12_validations.txt Log: right milestones labeling M*, so far the labels in the ReST text files were not updated to reflect the timing in the Gantt chart and the corresponding fixing in the WPs that was done for the original proposal. Modified: pypy/trunk/doc/funding/B6.7.wp04_core.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp04_core.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp04_core.txt Wed Mar 31 01:45:52 2004 @@ -67,7 +67,7 @@ **Milestones and Expected Result** -- M1 A partial Python implementation that passes 90% of the official +- A partial Python implementation that passes 90% of the official Python test suite for core language features, i.e. not depending on library-level C extension modules (the C part of the "standard library"). Modified: pypy/trunk/doc/funding/B6.7.wp05_translation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp05_translation.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp05_translation.txt Wed Mar 31 01:45:52 2004 @@ -76,7 +76,7 @@ **Milestones and Expected Result** -- Complete implementation of the Python language, conforming to the +- M1 Complete implementation of the Python language, conforming to the language definition and passing all language compliancy [*]_ tests of the official Python test suite. Modified: pypy/trunk/doc/funding/B6.7.wp07_translator_optimisations.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp07_translator_optimisations.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp07_translator_optimisations.txt Wed Mar 31 01:45:52 2004 @@ -65,7 +65,7 @@ **Milestones and Expected Result** -- M3 High performance PyPy, together with WP08_. Outperform the +- M2 High performance PyPy, together with WP08_. Outperform the state-of-the art (Psyco, Stackless). .. include:: wp-tableend.asc Modified: pypy/trunk/doc/funding/B6.7.wp08_dynamic_optimisation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp08_dynamic_optimisation.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp08_dynamic_optimisation.txt Wed Mar 31 01:45:52 2004 @@ -63,7 +63,7 @@ **Milestones and Expected Result** -- M3 High performance PyPy, together with WP07_. Outperform the +- M2 High performance PyPy, together with WP07_. Outperform the state-of-the art (Psyco, Stackless). .. include:: wp-tableend.asc Modified: pypy/trunk/doc/funding/B6.7.wp12_validations.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp12_validations.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp12_validations.txt Wed Mar 31 01:45:52 2004 @@ -64,6 +64,6 @@ **Milestones and Expected Result** -- M4 Validation of the flexibility of PyPy with respect to key middleware requirements +- M3 Validation of the flexibility of PyPy with respect to key middleware requirements .. include:: wp-tableend.asc From alastair at codespeak.net Wed Mar 31 11:16:14 2004 From: alastair at codespeak.net (alastair at codespeak.net) Date: Wed, 31 Mar 2004 11:16:14 +0200 (MEST) Subject: [pypy-svn] r3546 - pypy/trunk/doc/funding/negotiations Message-ID: <20040331091614.1449D5A142@thoth.codespeak.net> Author: alastair Date: Wed Mar 31 11:16:12 2004 New Revision: 3546 Added: pypy/trunk/doc/funding/negotiations/presentatn-bxl-2004-03-16.pdf pypy/trunk/doc/funding/negotiations/presentatn-bxl-2004-03-16.sxi (contents, props changed) Log: Presentation of the project to the Project Officer covering the points he had asked for in an email. Added: pypy/trunk/doc/funding/negotiations/presentatn-bxl-2004-03-16.pdf ============================================================================== Files (empty file) and pypy/trunk/doc/funding/negotiations/presentatn-bxl-2004-03-16.pdf Wed Mar 31 11:16:12 2004 differ Added: pypy/trunk/doc/funding/negotiations/presentatn-bxl-2004-03-16.sxi ============================================================================== Binary file. No diff available. From hpk at codespeak.net Wed Mar 31 13:59:59 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 31 Mar 2004 13:59:59 +0200 (MEST) Subject: [pypy-svn] r3551 - pypy/trunk/doc/funding Message-ID: <20040331115959.8E2F15A142@thoth.codespeak.net> Author: hpk Date: Wed Mar 31 13:59:58 2004 New Revision: 3551 Modified: pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt Log: minor modifcation (and test checkin from windows) Modified: pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp02_maintenance.txt Wed Mar 31 13:59:58 2004 @@ -50,7 +50,7 @@ - maintain and enhance website infrastructure -- perform backups for all relevant information/code +- perform backups for all relevant information and sourcecode - setup a mirror repository which is kept up-to-date and which can be used readonly in case of failure of the main repository. From hpk at codespeak.net Wed Mar 31 14:24:41 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 31 Mar 2004 14:24:41 +0200 (MEST) Subject: [pypy-svn] r3553 - pypy/trunk/doc/funding/negotiations Message-ID: <20040331122441.5E07B5A142@thoth.codespeak.net> Author: hpk Date: Wed Mar 31 14:24:40 2004 New Revision: 3553 Modified: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf Log: first version of my CPF (Participant 8, Holger Krekel) Modified: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf ============================================================================== --- pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf (original) +++ pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf Wed Mar 31 14:24:40 2004 @@ -5,6 +5,7 @@ @@ -106,6 +108,7 @@ @@ -591,6 +595,51 @@ 888016618 N + + + 004779 + PYPY + 8 + Dipl.Inf. Holger Krekel + Tax number 30/124/04270 + Holger Krekel + + Steinbergstr. 42 + 31139 + DE + Hildesheim + + + OTH + Y + 4 + PBF + + + + + + 110000 + + 2001 + + 1 + 1 + 0 + 1 + FCF + + PRIV + + + N + N + C + free software consultant and computer scientist + N + + N + @@ -610,6 +659,7 @@ @@ -1148,6 +1199,57 @@ + + + 004779 + PYPY + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1167,6 +1269,7 @@ @@ -1357,6 +1461,18 @@ + + + 004779 + PYPY + 8 + Dipl.Inf. Holger Krekel + + + + + + @@ -1376,6 +1492,7 @@ @@ -1657,6 +1775,27 @@ 0 0 + + + 004779 + PYPY + 8 + Holger Krekel + FCF + + + + + + + + + + + + + + @@ -1676,6 +1815,7 @@ @@ -1814,6 +1955,7 @@ @@ -2056,6 +2199,7 @@ @@ -2229,6 +2374,20 @@ + + + 004779 + PYPY + 8 + + + + + + + + + @@ -2248,6 +2407,7 @@ @@ -3034,6 +3195,76 @@ 0 0 + + + 004779 + PYPY + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From hpk at codespeak.net Wed Mar 31 15:20:49 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 31 Mar 2004 15:20:49 +0200 (MEST) Subject: [pypy-svn] r3558 - pypy/trunk/doc/funding/negotiations Message-ID: <20040331132049.EB7095A142@thoth.codespeak.net> Author: hpk Date: Wed Mar 31 15:20:49 2004 New Revision: 3558 Modified: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf Log: added some more information removed dependency on PBF (because i don'T have legal decision power or do i through beeing appointed as PyPy-SIG chairman?) Modified: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf ============================================================================== --- pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf (original) +++ pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf Wed Mar 31 15:20:49 2004 @@ -6,6 +6,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 2 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=123 color="536870912" ) @@ -69,6 +70,7 @@ htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" ) + ]]> @@ -109,6 +111,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=124 color="536870912" ) @@ -276,6 +279,7 @@ htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" ) + ]]> @@ -611,18 +615,18 @@ OTH - Y - 4 - PBF + N + + 110000 - + 0 2001 - + 0 1 1 0 @@ -660,6 +664,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=127 color="536870912" ) @@ -838,6 +843,7 @@ htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" ) + ]]> @@ -1204,13 +1210,13 @@ 004779 PYPY 8 - - - - - - - + Krekel + Holger + Mr. + M + +49 5121 47247 + +49 5121 691082 + hpk at trillke.net @@ -1218,7 +1224,7 @@ - + Holger Krekel @@ -1242,12 +1248,12 @@ - + senior consultant - - - + N + 0 + N @@ -1270,6 +1276,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=127 color="536870912" ) @@ -1373,6 +1380,7 @@ htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" ) + ]]> @@ -1467,10 +1475,10 @@ PYPY 8 Dipl.Inf. Holger Krekel - + Krekel - - + holger + N @@ -1493,6 +1501,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 1 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=275 color="536870912" ) @@ -1624,6 +1633,7 @@ htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" ) + ]]> @@ -1782,19 +1792,19 @@ 8 Holger Krekel FCF - - - - - - - - - - - - - + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -1816,6 +1826,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 1 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=242 color="536870912" ) @@ -1862,6 +1873,7 @@ htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" ) + ]]> @@ -1956,6 +1968,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 2 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=123 color="536870912" ) @@ -2133,6 +2146,7 @@ htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" ) + ]]> @@ -2200,6 +2214,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=124 color="536870912" ) @@ -2272,6 +2287,7 @@ htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" ) + ]]> @@ -2408,6 +2424,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=124 color="536870912" ) @@ -2701,6 +2718,7 @@ htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" ) + ]]> @@ -3206,64 +3224,64 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 From jacob at codespeak.net Wed Mar 31 16:03:16 2004 From: jacob at codespeak.net (jacob at codespeak.net) Date: Wed, 31 Mar 2004 16:03:16 +0200 (MEST) Subject: [pypy-svn] r3562 - pypy/trunk/doc/funding/negotiations Message-ID: <20040331140316.7C95C5A142@thoth.codespeak.net> Author: jacob Date: Wed Mar 31 16:03:15 2004 New Revision: 3562 Modified: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf Log: Added Alex Modified: pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf ============================================================================== --- pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf (original) +++ pypy/trunk/doc/funding/negotiations/IST-2-004779-STP.cpf Wed Mar 31 16:03:15 2004 @@ -7,6 +7,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 2 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=123 color="536870912" ) @@ -71,6 +72,7 @@ + ]]> @@ -112,6 +114,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=124 color="536870912" ) @@ -280,6 +283,7 @@ + ]]> @@ -644,6 +648,51 @@ N + + + 004779 + PYPY + 9 + Dottor Ingegner Alessandro Martelli + 6232 + Alex Martelli + + via Barontini 27 + 40138 + IT + Bologna + www.aleax.it + + IND + N + + + + + + + 0224 225 1201 + 130000 + + 2003 + 10000 + 1 + 1 + 0 + 1 + FCF + Albo degli Ingegneri della Provincia di Bologna + PRIV + + + N + N + C + Professional Consultant + N + + N + @@ -665,6 +714,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=127 color="536870912" ) @@ -844,6 +894,7 @@ + ]]> @@ -1256,6 +1307,57 @@ N + + + 004779 + PYPY + 9 + Martelli + Alessandro + Dott. + M + +39 335 6956461 + +39 051 250434 + aleaxit at yahoo,com + + + + + + + + Central Office + + + + + + + Martelli + Alessandro + Dott. + M + +39 335 6956461 + +39 051 250434 + + N + + + + + + + + + + Sole owner + + Sole owner + + + + + @@ -1277,6 +1379,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=127 color="536870912" ) @@ -1381,6 +1484,7 @@ + ]]> @@ -1481,6 +1585,18 @@ N + + + 004779 + PYPY + 9 + Dottor Ingegner Alessandro Martelli + Martelli + + Alessandro + + + @@ -1502,6 +1618,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 1 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=275 color="536870912" ) @@ -1634,6 +1751,7 @@ + ]]> @@ -1806,6 +1924,27 @@ 0 0 + + + 004779 + PYPY + 9 + Alex Martelli + FCF + + + + + + + + + + + + + + @@ -1827,6 +1966,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 1 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=242 color="536870912" ) @@ -1874,6 +2014,7 @@ + ]]> @@ -1969,6 +2110,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 2 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=123 color="536870912" ) @@ -2147,6 +2289,7 @@ + ]]> @@ -2215,6 +2358,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=124 color="536870912" ) @@ -2288,6 +2432,7 @@ + ]]> @@ -2404,6 +2549,20 @@ + + + 004779 + PYPY + 9 + + + + + + + + + @@ -2425,6 +2584,7 @@ + release 7; datawindow(units=1 timer_interval=0 color=16777215 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print.margin.right = 24 print.margin.top = 24 print.margin.bottom = 24 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) header(height=124 color="536870912" ) @@ -2719,6 +2879,7 @@ + ]]> @@ -3283,6 +3444,76 @@ 0 0 + + + 004779 + PYPY + 9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From hpk at codespeak.net Wed Mar 31 17:50:22 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 31 Mar 2004 17:50:22 +0200 (MEST) Subject: [pypy-svn] r3566 - pypy/trunk/doc/funding Message-ID: <20040331155022.30C355A142@thoth.codespeak.net> Author: hpk Date: Wed Mar 31 17:50:21 2004 New Revision: 3566 Modified: pypy/trunk/doc/funding/B6.0_detailed_implementation.txt Log: - reworked WP09 and WP10 references in B6.0 - added some examples to explain what can be expected from carrying out WP09/WP10 - still missing are the references to Mozart, aosd.net and citeseer that Nicolas mentioned in issue 42. - this was done on a joint session from Armin, Samuele and me PLEASE CHECK, especially Alastair and Nico, that what we wrote works for you. And please just correct and extend it as you deem appropriate. Modified: pypy/trunk/doc/funding/B6.0_detailed_implementation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.0_detailed_implementation.txt (original) +++ pypy/trunk/doc/funding/B6.0_detailed_implementation.txt Wed Mar 31 17:50:21 2004 @@ -282,9 +282,9 @@ logic programming. An inference engine already exists in the python-logic libraries. Successful integration of these concepts, far from regular imperative programming, would provide a validation of the level of - flexibility we achieved in Phase 1. It would also provide an essential - starting point for WP10_, described below. - + flexibility we achieved in Phase 1. Similarily, WP10_ will experiment with + OO concepts not originally present in Python, like aspect-oriented + programming and design-by-contract. Phase 3 ------- @@ -382,16 +382,37 @@ Language-level extensions +++++++++++++++++++++++++ -WP10_ will base itself on the language extensions developed in WP09_. +WP09_ and WP10_ are language-level extensions in the sense that they introduce new features usually present as libraries directly into the interpreter itself. A major goal of the PyPy project is to enable people to carry out more of their programming tasks in Python without having to resort to other -programming languages. We will therefore exploit the optimisations in the +programming languages. We will therefore exploit the architecture and the +optimisations of the PyPy implementation and the constructs for constraints and search to enhance the object model, thus offering in Python what can currently only -be found in other object-oriented languages. In particular, we will offer -the ability to compose program functionality with aspects and to design -object-oriented programs through contracts. +be found in some other object-oriented languages. In particular: + +WP10_ will offer the ability to compose program functionality with aspects and to design +object-oriented programs through contract. +For example, today to add aspects like logging or design-by-contract to +functions you have to add a wrapper or another layer on top of existing +definitions, a process which is clumsy and fragile and thus impractical. +Instead it would be preferable to be able to hook into the internals of +an interpreter and extend its behaviour, e.g. the method invocation +mecanisms. Specifically, WP10_ will experiment with having first-class +hooks for checking arguments and return values, or supporting +efficiently "around/after and before" behaviours like the similar +concepts in the Common Lisp Object System. + +WP09_ will explore the integration of logic programming techniques. For +example, today to use a constrain solver like the one from the +python-logic libraries, you have to ressort to an unfamiliar custom +syntax. These libraries would be much more useful if they were better +integrated with the language. WP09_ will specifically experiment with +rewriting parts of the python-logic libraries in RPython and enhance the +syntax to support them, with the goal of supporting Semantic Web +applications. + Interpreter adaptations +++++++++++++++++++++++ From tismer at codespeak.net Wed Mar 31 20:36:15 2004 From: tismer at codespeak.net (tismer at codespeak.net) Date: Wed, 31 Mar 2004 20:36:15 +0200 (MEST) Subject: [pypy-svn] r3568 - pypy/trunk/doc/funding Message-ID: <20040331183615.55DAC5A142@thoth.codespeak.net> Author: tismer Date: Wed Mar 31 20:36:13 2004 New Revision: 3568 Modified: pypy/trunk/doc/funding/B4.3_participants.asc Log: dropped Tomek since he request to beleft out of the funding. Modified: pypy/trunk/doc/funding/B4.3_participants.asc ============================================================================== --- pypy/trunk/doc/funding/B4.3_participants.asc (original) +++ pypy/trunk/doc/funding/B4.3_participants.asc Wed Mar 31 20:36:13 2004 @@ -137,10 +137,3 @@ author of the Stackless Python extension to be merged into PyPy, and belongs to the founders of the PyPy project. -Tomasz Meka: Born 1976 in Poland. Currently studying computer science on the -Technical University in Berlin. He is going to write his diploma thesis on Pypy -- about implementing Scheme on top of Pypy. He has a strong background about web -programming (python, zope, perl), now is working in dai-lab on the Technical -University and is reimplementing the parser and compiler for the agent- -controling language JADL. His passions: programming, traveling, philosophy. -XXX will be augmented a little XXX From tismer at codespeak.net Wed Mar 31 21:28:10 2004 From: tismer at codespeak.net (tismer at codespeak.net) Date: Wed, 31 Mar 2004 21:28:10 +0200 (MEST) Subject: [pypy-svn] r3569 - pypy/trunk/doc/funding/makedoc Message-ID: <20040331192810.995415AFCB@thoth.codespeak.net> Author: tismer Date: Wed Mar 31 21:28:10 2004 New Revision: 3569 Added: pypy/trunk/doc/funding/makedoc/part_b_2004_04_02.sxw (contents, props changed) Modified: pypy/trunk/doc/funding/makedoc/makedoc.py pypy/trunk/doc/funding/makedoc/prep_part_b.sxw Log: added part_b_2004_04_02.sxw to leave the original OOo document intact. Changed macros and scripts to reflect that. Modified: pypy/trunk/doc/funding/makedoc/makedoc.py ============================================================================== --- pypy/trunk/doc/funding/makedoc/makedoc.py (original) +++ pypy/trunk/doc/funding/makedoc/makedoc.py Wed Mar 31 21:28:10 2004 @@ -203,7 +203,7 @@ os.unlink(name) if name.endswith(".txt"): os.unlink(os.path.splitext(name)[0]+".html") - os.system("python zipmod.py part_b.sxw") + os.system("python zipmod.py part_b_2004_04_02.sxw") if __name__ == "__main__": make_doc() \ No newline at end of file Added: pypy/trunk/doc/funding/makedoc/part_b_2004_04_02.sxw ============================================================================== Binary file. No diff available. Modified: pypy/trunk/doc/funding/makedoc/prep_part_b.sxw ============================================================================== Binary files. No diff available. From tismer at codespeak.net Wed Mar 31 21:44:38 2004 From: tismer at codespeak.net (tismer at codespeak.net) Date: Wed, 31 Mar 2004 21:44:38 +0200 (MEST) Subject: [pypy-svn] r3572 - in pypy/trunk/doc/funding: . makedoc oldstuff Message-ID: <20040331194438.48E455AFCC@thoth.codespeak.net> Author: tismer Date: Wed Mar 31 21:44:37 2004 New Revision: 3572 Added: pypy/trunk/doc/funding/build.py pypy/trunk/doc/funding/oldstuff/ pypy/trunk/doc/funding/oldstuff/B4.0_resources.asc (props changed) - copied unchanged from r3568, pypy/trunk/doc/funding/B4.0_resources.asc pypy/trunk/doc/funding/oldstuff/B4.1_subcontracting.asc (props changed) - copied unchanged from r3568, pypy/trunk/doc/funding/B4.1_subcontracting.asc pypy/trunk/doc/funding/oldstuff/B4.2_other_countries.asc (props changed) - copied unchanged from r3568, pypy/trunk/doc/funding/B4.2_other_countries.asc pypy/trunk/doc/funding/oldstuff/B4.3_participants.asc - copied unchanged from r3568, pypy/trunk/doc/funding/B4.3_participants.asc pypy/trunk/doc/funding/oldstuff/B4.4_quality_SMEs.asc - copied unchanged from r3568, pypy/trunk/doc/funding/B4.4_quality_SMEs.asc pypy/trunk/doc/funding/oldstuff/B4.5_resources.asc - copied unchanged from r3568, pypy/trunk/doc/funding/B4.5_resources.asc pypy/trunk/doc/funding/oldstuff/B4.6_finance.asc - copied unchanged from r3568, pypy/trunk/doc/funding/B4.6_finance.asc pypy/trunk/doc/funding/oldstuff/B4.7_effort_form.asc - copied unchanged from r3568, pypy/trunk/doc/funding/B4.7_effort_form.asc Removed: pypy/trunk/doc/funding/B4.0_resources.asc pypy/trunk/doc/funding/B4.1_subcontracting.asc pypy/trunk/doc/funding/B4.2_other_countries.asc pypy/trunk/doc/funding/B4.3_participants.asc pypy/trunk/doc/funding/B4.4_quality_SMEs.asc pypy/trunk/doc/funding/B4.5_resources.asc pypy/trunk/doc/funding/B4.6_finance.asc pypy/trunk/doc/funding/B4.7_effort_form.asc Modified: pypy/trunk/doc/funding/B4.resources.txt pypy/trunk/doc/funding/crossreferences.asc pypy/trunk/doc/funding/makedoc/part_b_2004_04_02.sxw Log: moved old B4 asc files into oldstuff. Removed Tomek from B4.resources.txt. Added a small build script to the funding dir, just to update the plain html files. (XXX is there a way to make this work on all machines?) Created the new document for today in makedoc. Deleted: /pypy/trunk/doc/funding/B4.0_resources.asc ============================================================================== --- /pypy/trunk/doc/funding/B4.0_resources.asc Wed Mar 31 21:44:37 2004 +++ (empty file) @@ -1,93 +0,0 @@ -:DELETE:BEGIN - -B.4 The consortium and project resources - -Describe the role of the participants and the specific skills of each -of them. Show how the participants are suited and committed to the -tasks assigned to them; show the complementarity between -participants. Describe how the opportunity of involving SMEs has been -addressed. Describe the resources, human and material, that will be -deployed for the implementation of the project. Include a STREP -Project Effort Form, as shown below, covering the full duration of the -project. Demonstrate how the project will mobilise the critical mass -of resources (personnel, equipment, finance... ) necessary for -success; and show that the overall financial plan for the project is -adequate. - -(Recommended length ? five pages) - -:DELETE:END - -The consortium and project resources -===================================== - -FIXME_LAURA FIXME_HOLGER check below information - -**DFKI** - - Role: Project Coordinator & Technical Partner - Country: Germany - Contact: Alastair Burt - - Skills, Commitment, Resources: - - -**AB Strakt** - - Role: Project Management & Technical Partner - Country: Sweden - Contact: Jacob Hall?n - - Skills, Commitment, Resources: - - -**University of Southampton** - - Role: Technical Partner - Country: United Kingdom - Contact: Armin Rigo - - Skills, Commitment, Resources: - - -**Python Business Forum** - - Role: Technical Partner - Country: Europe - Contact: Holger Krekel - - Skills, Commitment, Resources: - -**Logilab** - - Role: Technical Partner - Country: France - Contact: Nicolas Chauvat - - Skills, Commitment, Resources: - Logilab specializes in the use of Python for advanced computing, artificial - intelligence and knowledge manipulation. Logilab works for large public and - private entities in France and Europe, including Commissariat ? l'Energie - Atomique, Electricit? De France, SNECMA, etc. Logilab was involved in two - IST projects before, ASWAD (free software workflows for public administration) - and KIDDANET (web filtering for kids based on machine learning techniques). - - For over three years, Logilab has been dedicating resources to high-profile - projects such as intelligent agents, natural language processing and - semantic web applications. Several are already available as free software. - - Logilab is commited to free software and has been contributing to the free - software and Python communities since its creation in 2000, in part through - its Logilab.Org website. - - Logilab is currently steadily growing and is expected to reach the size of - 10 people by the end of 2003. Logilab's role in the project as a technical - partner will be to contribute to the implementation of the new interpreter, - port its existing projects (logic and aspect-oriented programming, static - checking, etc.) to the new interpreter using object-spaces and develop for - embedded devices. - - -**Interested developers** - -tomek meka, christian tismer, michael hudson, tim peters, alex martelli, dinu gherman, anna ravenscroft, gunter janton, samuele pedroni Deleted: /pypy/trunk/doc/funding/B4.1_subcontracting.asc ============================================================================== --- /pypy/trunk/doc/funding/B4.1_subcontracting.asc Wed Mar 31 21:44:37 2004 +++ (empty file) @@ -1,25 +0,0 @@ -FIXME_LAURA - -:DELETE:BEGIN - -B.4.1 Sub-contracting: - -If any part of the work is foreseen to be sub-contracted by the -participant responsible for it, describe the work involved and explain -why a sub-contract approach has been chosen for it. - -(Recommended length ? one page) - -:DELETE:END - -FIXME_LAURA yes, I have to write this. Get figures from KPMG - -Sub-contracting -================= - -I am going to run my accounting figures though the AB Strakt -bookkeeper, as part of my management duties. She is a contractor -who consults regularly to AB Strakt. Aside from that I don't -see that we will have any need for sub-contracting. Possibly to get -final stamps of approval on the books from KPMG our accounting -firm. This is the sort of thing that AB Strakt does all the time. Deleted: /pypy/trunk/doc/funding/B4.2_other_countries.asc ============================================================================== --- /pypy/trunk/doc/funding/B4.2_other_countries.asc Wed Mar 31 21:44:37 2004 +++ (empty file) @@ -1,20 +0,0 @@ -FIXME_LAURA -- discuss role of PBF in mitigating Samuele's and Tim's -problem? phone call to Belgium to ask this happening. - -:DELETE:BEGIN - -B.4.2 Other countries : - -If one or more of the participants is based outside of the EU Member -and Associated states, explain in terms of the project's objectives -why this/these participants have been included, describe the level of -importance of their contribution to the project. - -(Recommended length ? one page). - -:DELETE:END - -Other countries -================= - -(section cannot be empty for ReST) Deleted: /pypy/trunk/doc/funding/B4.3_participants.asc ============================================================================== --- /pypy/trunk/doc/funding/B4.3_participants.asc Wed Mar 31 21:44:37 2004 +++ (empty file) @@ -1,139 +0,0 @@ -:DELETE:BEGIN - -FIXME EVERYBODY -- CVs -FIXME JACOB -FIXME LAURA MAKE SURE THIS GETS DONE -B.4.3 Description of the participants - -Short description of the participating organisations including: - -? The expertise and experience of the organisation, - -? Short CVs of the key persons to be involved indicating relevant - experience, expertise and involvement in other EC projects. (Each - CV no more than 10 lines) Remember that you cannot contractually - commit to these specific persons being assigned so you should state - that these named people or their equivalent will be assigned - -The CV of the nominated Project Manager is of particular importance. -You have to show that he has experience of successful international -project management. Emphasise this aspect. - -:DELETE:END - -Description of the participants ----------------------------------- - -Jacob Hall?n, 45, comes to his position as co-founder and CTO of AB Strakt from -being a Technical Manager and international standards expert at the LIBRIS -Department of the Royal Library. He was the LIBRIS representative in the EU -funded ONE-2 project. Before this, he was the CEO of NetGuide Scandinavia AB, -one of the first internet services companies in Sweden. Mr Hall?n has also been -a Computer Science and Programming teacher and an army officer. Throughout his -career he has been managing projects varying from 1200 participant conventions -down to 3 person development projects. He has also done electronics development -and microcontroller programming, winning two innovation awards in the process. -Mr Hall?n is chairman of the Python Business Forum. - -Armin Rigo was born in 1976 in Lausanne, Switzerland. He is a researcher at the -University of Southampton (UK). He studied Mathematics at the University of -Lausanne and obtained his Ph.D. in Logic and Set Theory at the Free University -of Brussels. He is the main author of several commercial, open source and -research programs and contributed to a number of them, most notably in the -fields of computer graphics and 3D modelling, education, and programming -languages. He recently developed in the Psyco project novel techniques for -efficient interpretation of dynamic programming languages. He is also a member -and contributor of the TUNES Project for a Free Reflective Computing System. - -Holger Krekel, born 1969 in Frankfurt a.M., began in 1985 to work as a lead -programmer producing games for Electronic Arts. He went to university, gave -courses in Prolog, C, Assembler, mathematics and assisted in numerical -computing. He got his degree "magna cum laude". He consulted for Volkswagen, -large German banks and the chairman of the EU-founded CEN/ISSS workshop who -contracted him to prototype integration of OpenSource software. He implemented -an opensource transaction service on top of TAO/CORBA and published several -articles about Free projects. In 2001 he joined the Python community, published -an interactive tool, took part in Zope3 development and some of the first coding -Sprints in Europe and became one of the initiators of the PyPy project. - -Tim Peters: Over 20 years top-tier industrial experience in programming language -implementation and high-performance computing. 1979-1988, Cray Research: -Compiler development, Group leader--common back-end optimization group. 1988- -1994, Kendall Square Research (KSR), Compiler and Library development, -Architecture and FPU design. 1994-2000, Dragon Systems: Developed core speech -recognition system for portable devices; scalable, large-scale telephone speech -recognition; and award-winning PhoneQuery Toolkit product. 2000 to present: -Zope Corporation: Development--Core technologies underlying Zope's leading -content management framework; Python core. Python: first port of Python to 64- -bit platform (KSR-1); POSIX pthreads support; algorithmic and optimization -expertise; elected Director of Python Software Foundation (PSF) since its -inception. - -Alex Martelli: Best-selling author of *Python in a Nutshell*. Co-editor of -*Python Cookbook* . ActiveState 2002 "Activators' Choice" award. PSF member, -Python langauge developer, PBF board member. Currently works for AB Strakt, -developing the CAPS framework. Also consults for other firms on Python and O-O -design, teaching, coding, feasibility studies, interfacing. 1989-2002, Cad.Lab -(think3, Inc): innovative component architecture for web-enabling existing GUI- -oriented apps; Event Manager, interfacing, proprietary protocols. Taught -Computer Programming and Numerical Analysis, Ferrara University. 1981-1989, IBM -Research: 3 Outstanding Technical Achievement awards, voice recognition, image -processing. "Laurea" 1980, Electronic Engineering, Bologna University, 100/100 -magna cum laude. - -Samuele Pedroni: Born 1974 in Switzerland. Dipl. Math. ETH Zurich (1999) His -thesis was awarded by the ETH Polya Fond. Between 1999-2001 he worked as -teaching/published research assistant at the Institute of Theor. CS of the ETHZ. -He was designer on the state-of-the-art genetic programming framework for Java -JRGP, becoming involved in Jython (the industry-strength Java re-implemetation -of Python). He is now a main developer of Jython, working on internals, -compilers and Java integration, and was author of Jython Essentials (O'Reilly, -2002). He is also involved on the ongoing design of Python. For his -contributions to Python/Jython he has been nominated member of the PSF. He -brings to the project his know-how on languages, re-implementation/design of -Python, reflection, lookup and dispatch optimization. - -Laura Creighton: Co-founder and lead investor of AB Strakt, Treasurer of the -PBF. Studied Physics (csc minor) at the University of Toronto, and later -instructed there in Physics and Computer Science, while simultaneously working -for the Canadian Armed Forces, teaching programming to non-programmers, and -assisting with research in Human Factors Engineering and Learning Techniques. -Moving to the US, she consulted for software companies and government -institutions, taught Unix, project management, and interpersonal relations, and -wrote a geophysical simulation system. She brings strong connections in -financial and government sectors, and was an Open Source advocate before the -term was coined. Her passions: programming, empowerment of average citizens, -and the Open Society. - -Beatrice D?ring studied teaching/pedagogy at the University of Karlstad in -Sweden. She was recruited into the IT-industry to work as a project manager for -large scale education projects for the company NetGuide Scandinavia, Gothenburg. -Since 1998 she has been working with education and development project -management and management of education and consultant departements, implementing -Open Source strategies and Agile development methods. Beatrice also teaches -project management, leadership and communication courses for Learning Tree -International. - -Anna Ravenscroft: Started programming with Python in 2002, presenting papers on -teaching Python, serving as track chair at EuroPython and OSCON, writing and -technical-editing books and articles. Before 2002, Instruction Administrator for -a public transport company, managing projects, teaching, developing course -material, creating websites. Earlier, Office Manager for a small training -company, creating and editing training documents and administering the firm's NT -LAN. Up to 1994, Distribution Coordinator for a large Financial Services -company, providing field communications and training for a sales force of 7500. -In the 1980's, served as Psychological Operations Specialist in the US Army, -receiving an Honors Degree in Russian. Education: Liberal Arts, Univ. of MN. - -Christian Tismer: Born 1956 in Jena, Germany, studied Math, Physics and -Informatics at the Free University of Berlin, diploma on Adaptive Huffman -Coding. He has been working for Pharmaceutic Research companies for more than 10 -years, doing statistical evaluations, EEG and EMG recording, signal analysis, -networking, report generation and automation. He wrote his first multitasking -system in 1985 for DOS, continuous 32 channel EEG recording and visualisation on -a 286 machine. Later, he worked on Netscape plugins, document automation, Web -and database applications. Converted to Python in 1997, founded Python Starship, -became Python core developer. He translates Python books into German, is the -author of the Stackless Python extension to be merged into PyPy, and belongs to -the founders of the PyPy project. - Deleted: /pypy/trunk/doc/funding/B4.4_quality_SMEs.asc ============================================================================== --- /pypy/trunk/doc/funding/B4.4_quality_SMEs.asc Wed Mar 31 21:44:37 2004 +++ (empty file) @@ -1,135 +0,0 @@ -Quality of partnership, involvement of users and SMEs -===================================================== - -Roles ------ -While all the partners except Changemaker have staff with Python -programming skills that will enable them to fulfill computer program -development in the various tasks of the project, each partner brings -unique skills or functions, without which the project is not complete. - -DFKI -++++ -has pervious experience of being a project coordinator in EU projects, -ensuring smooth communication between the project and the FP6 project -officer. - -Max Planck Institut -+++++++++++++++++++ -will showcase how to apply the results of the project in the research -environment. The insitute currently leverages the speed of development -with Python but would be able to solve a wider range of problems with -a faster version of the language. - -University of Southampton -+++++++++++++++++++++++++ -is the employer of Armin Rigo, who is the lead architect of the whole -project as well as the author of Psyco, the blueprint for how to do -optimisation in Pypy. - -FIXME: Where does Samuele go? -+++++++++++++++++++++++++++++ -Samuele Pedroni is the main developer of Jython, an implementation of -Python that uses the Java Virtual Machine. He is an expert on how to -generate code for different virtual machines. He brings experience in -this field and a creative mind to the project. - -Strakt -++++++ -brings manangement knowhow and entrepreneurial skills to the project -as well as showcasing how to apply the results of the project in a -major business application. - -Strakt will also bring Tim Peters to the project. Tim has for several -years been a core developer of the present major implementation of -Python, what we call CPython. Apart from being an outstanding -programmer, Tim has intimate knowledge about all the details of the -Python language definition. - -With 12 full time and 6 part time employees, Strakt is an SME -representative. - -Alex Martelli (FIXME: Where does Alex go? PBF?) -+++++++++++++++++++++++++++++++++++++++++++++++ - -Being a prolific writer and popular speaker as well as a Python -programmer, Alex is uniquely suited for widely disseminating the -progress and the results of the project. - -Technischen Universit?t Berlin -++++++++++++++++++++++++++++++ -will have Tomasz Meka doing his diploma work for a Computer Science -degree. We believe that the Pypy project opens up new avenues for -studies and research from undergraduate level to advanced researchers. -We hope to verify this through Tomeks work in the project. - -Changemaker -+++++++++++ -adds rare project management skills by managing not only the project, -but the learning processes of the project participants as well as the -group dynamics between the different members. We intend to document -and disseminate the management of change throughout the project. -Changemaker is also the contact point for Axis Communications, who -will showcase how to integrate Pypy in an embedded device. - -Logilab -+++++++ -focuses on constraints and aspect oriented programming and will verify -that Pypy is extensible with specialised language features. - -With 6 full time employees, Logilab is an SME representative. - -Python Business Forum -+++++++++++++++++++++ -is an industry organisation for companies where Python is a central -part of the business model. The PBF is registered as a non-profit -organisation under Swedish law. It has approximately 50 SME -members. The Forum has a board, which focuses on administration and -strategic issues, while the main activities occur in Special Interest -Groups (SIGs). Each SIG controls its own activities but reports to the -board in financial matters. - -The PBF will form a Pypy SIG with **Holger Krekel** as chairman to -handle its involvement in the project. - -The PBF brings a number of SME parties to the project who will be -eager to apply Pypy to their various products. The selection of which -products and companies that should do validations will be made later -in the project, since it is impossible to tell which ones will produce -the most useful results when validations starts some 24 months from -now. - -**Holger Krekel** will also be an active PBF representative in the -project, with a focus on devlopment, packaging and dissemination -tools. He will also be a main contributor in matters of systems -architecture. - -**Christian Tismer** will join the project under the auspices of the -PBF. Chritian is the developer of Stackless Python, which is the -blueprint for how we intend to implement persistant threads. - -Ability to deliver ------------------- -DFKI, Logilab, Max Planck Intitut and University of Southampton have -already successfully participated in EU projects, so their ability to -deliver on another project should not be in doubt. - -Strakt, Tismer and Martelli have all recently produced substantial -products, which show their capability to handle large undertakings. - -Krekel has demonstrated his ability to deliver results during the -prototype phase that has preceeded this application. For the rest of -the PBF, it should be noted that the chairman of the SIG is a member -of the project, as well as 3 of the members of the PBF board; -Creighton, Hall?n and Martelli. The stated merits of these people and -their respective organisations should vouch for the PBF fulfilling its -undertakings. - -Changemaker has a number of documented successful projects. Further -details can be found under B 5.1. - -A special circumstance is that several of the project participants -have already collaborated in developing a proof of concept for -Pypy. This means that the ability to collaborate and to deliver -results has already been tested under circumstances that are very -similar to what they will be during the project. Deleted: /pypy/trunk/doc/funding/B4.5_resources.asc ============================================================================== --- /pypy/trunk/doc/funding/B4.5_resources.asc Wed Mar 31 21:44:37 2004 +++ (empty file) @@ -1,9 +0,0 @@ -B.4.5 Resources to be deployed - -Show how the project will mobilise the critical mass of resources -(personnel, equipment, finance...) necessary for success. - -FIXME_LAURA: i (holger) moved the sprint information now completly -to B5.* because i don't think it belongs here. Can you restate what -is needed here? A description of the involvement of the Python community -and the audience we are reaching and who will be contributing? Deleted: /pypy/trunk/doc/funding/B4.6_finance.asc ============================================================================== --- /pypy/trunk/doc/funding/B4.6_finance.asc Wed Mar 31 21:44:37 2004 +++ (empty file) @@ -1,4 +0,0 @@ -B.4.6 Overall Financial Plan - -Show that the overall financial plan for the project is adequate. -FIXME_LAURA Deleted: /pypy/trunk/doc/funding/B4.7_effort_form.asc ============================================================================== --- /pypy/trunk/doc/funding/B4.7_effort_form.asc Wed Mar 31 21:44:37 2004 +++ (empty file) @@ -1,49 +0,0 @@ -FIXME_NICO (get from Gantt?) - -In B4.7 (below) do not identify any activities as "demonstration" -i.e. leave that section blank. - -B.4.7 STREP Project Effort Form - -Full duration of project (insert person-months for activities in which -partners are involved) - -Project acronym - - - - Short Names - Partner 1 - Partner 2 - Partner 3 - Partner 4 - Partner 5 - etc - TOTAL PARTNERS - - - WP name - WP name - WP name - etc - Total research/innovation - - - - Demonstration activities - WP name - WP name - WP name - etc - Total demonstration - - - - Consortium management activities - WP name - WP name - WP name - etc - Total management - - - TOTAL ACTIVITIES Modified: pypy/trunk/doc/funding/B4.resources.txt ============================================================================== --- pypy/trunk/doc/funding/B4.resources.txt (original) +++ pypy/trunk/doc/funding/B4.resources.txt Wed Mar 31 21:44:37 2004 @@ -317,17 +317,6 @@ books into German, is the author of the Stackless Python extension to be merged into PyPy, and belongs to the founders of the PyPy project. -**Tomasz Meka**: Born 1976 in Poland. Currently studying computer science -on the Technical University in Berlin. He is going to write his -diploma thesis on PyPy - about implementing Scheme on top of PyPy. He -has a strong background about web programming (Python, Zope, Perl), -now is working in dai-lab on the Technical University and is -reimplementing the parser and compiler for the agent- controlling -language JADL. He also wrote a book in Polish about programming -the keyboard, joystick and the mouse. He is the founder and -programmer of the fantasy portal gildia.com. His passions: programming, -traveling, philosophy. - **Nicolas Chauvat**: He completed his studies of engineering (spec. Robotics) at Ecole Centrale Paris and computer science (Artificial Intelligence) at Universit? Paris 6. Worked as a researcher in industrial and academic Added: pypy/trunk/doc/funding/build.py ============================================================================== --- (empty file) +++ pypy/trunk/doc/funding/build.py Wed Mar 31 21:44:37 2004 @@ -0,0 +1,2 @@ +import os +os.system("python d:/python22/docutils/tools/buildhtml.py --no-xml-declaration") \ No newline at end of file Modified: pypy/trunk/doc/funding/crossreferences.asc ============================================================================== --- pypy/trunk/doc/funding/crossreferences.asc (original) +++ pypy/trunk/doc/funding/crossreferences.asc Wed Mar 31 21:44:37 2004 @@ -13,4 +13,4 @@ .. _WP13: B6.7.wp13_integration_config.html .. _WP14: B6.7.wp14_documentation.html -.. |e| unicode:: 0x20 .. doesn't work with plain spaces \ No newline at end of file +.. |e| unicode:: 0x20 .. doesn't work with plain spaces Modified: pypy/trunk/doc/funding/makedoc/part_b_2004_04_02.sxw ============================================================================== Binary files. No diff available. From pedronis at codespeak.net Wed Mar 31 21:51:55 2004 From: pedronis at codespeak.net (pedronis at codespeak.net) Date: Wed, 31 Mar 2004 21:51:55 +0200 (MEST) Subject: [pypy-svn] r3573 - in pypy/trunk/doc/funding: . oldstuff Message-ID: <20040331195155.3685D5AFCD@thoth.codespeak.net> Author: pedronis Date: Wed Mar 31 21:51:54 2004 New Revision: 3573 Added: pypy/trunk/doc/funding/oldstuff/B2.0.0_new_relevance.asc - copied unchanged from r3572, pypy/trunk/doc/funding/B2.0.0_new_relevance.asc pypy/trunk/doc/funding/oldstuff/alastair_abstract.asc - copied unchanged from r3572, pypy/trunk/doc/funding/alastair_abstract.asc pypy/trunk/doc/funding/oldstuff/b2.asc - copied unchanged from r3572, pypy/trunk/doc/funding/b2.asc pypy/trunk/doc/funding/oldstuff/old_abstract.asc - copied unchanged from r3572, pypy/trunk/doc/funding/old_abstract.asc Removed: pypy/trunk/doc/funding/B2.0.0_new_relevance.asc pypy/trunk/doc/funding/alastair_abstract.asc pypy/trunk/doc/funding/b2.asc pypy/trunk/doc/funding/old_abstract.asc Log: moved some old texts to oldstuff. Deleted: /pypy/trunk/doc/funding/B2.0.0_new_relevance.asc ============================================================================== --- /pypy/trunk/doc/funding/B2.0.0_new_relevance.asc Wed Mar 31 21:51:54 2004 +++ (empty file) @@ -1,210 +0,0 @@ -FIXME_LAURA: proof-read this, insert new direction SWOT job -:DELETE:BEGIN -FIXME_LAURA: proof-read this - -Relevance to the Objectives of the IST Priority --------------------------------------------------- - -The PyPy project will build a flexible, modular, context-aware -implementation of the Open Source programming language Python. In -doing so it will take advantage of the known European strengths in -formal methods and languages outlined in the June 2002 report: 'IST -Advisory Group Software Technologies, Embedded Systems and Distributed -Systems: A European strategy towards an Ambient Intelligent -Environment'. It will go beyond the state of the Art in computer -languages, and produce a runtime system which is much better suited -for the development and deployment of networked, embedded, and mobile -devices than any existing language available today. In doing so -it will adhere to the syntax of the popular programming language, thus -requiring no re-training for the tens of thousands of European Python -programmers. To improve an existing programming language with the -explicit goals of making it more suitable for European industry can -only have a positive effect on European competitiveness. - -Because PyPy will be released as Open Source, it will contribute -towards the goals of openness and trust. Python is the most -widely used European-designed computer language. Its development -started in 1990, at CWI, Centrum voor Wiskunde en Informatica, the -National Research Institute for Mathematics and Computer Science in -the Netherlands, it will strenghten our leadership in the area of -innovative language design, and increase world-wide awareness of this -fact. - -Thus PyPy is position to be at the heart of the knowledge economy and -provide a viable alternative to American closed source language -monopolies, while increasing innovation and competitiveness in -European businesses and industry and to contributing to the greater -well-being of all European citizens. - - - -:DELETE:END - -Relevance to the Objectives of the IST Priority --------------------------------------------------- - -The IST thematic priority will contribute directly to realising -European policies for the knowledge society as agreed at the Lisbon -Council of 2000, the Stockholm Council of 2001, the Seville Council of -2002, and as reflected in the e-Europe Action Plan. - - The main targets of IST in FP6 are - - - solving 'trust and confidence' problems so as to improve - dependability of technologies, infrastructures and applications. - -PyPy can contribute to this goal because it is an Open Source -language. Open Source programs are more widely trusted than -proprietary alternatives because they are transparent. Any person -having any doubts or questions about the technology can simply read -the code and find out what it does, unlike with a closed-source -language where one can only hope it does what you want. Moreover, -Python is an extremely readable language. Readability was one of its -design goals. This makes maintaining Python programs substatially -easier than similar program in less readable languages. It is the -maintainability of computer programs which most directly effects their -actual and perceived reliability. - -Moreover, there is a significant risk in relying on proprietary -closed source programs. Should one have any problem with the program, -you are completely dependent upon the programs manufacturer to fix -it. But the manufacturer will only fix it if it is in his commercial -interest to do so. The authors of this proposal who live in Sweden -are extremely tired of using software which believes that one can -live without the last three letters of the Swedish alphabet :XXX. -When the source is freely available, then should the manufacturer -not believe your problems to be worth his while, you can always -change things yourself, or hire somebody else to do so. Thus rather -than 'trusting the manufacturer because you have no choice' you -can 'trust yourself to always be able to fix it should it go wrong'. -This second form of trust is far more durable and useful. - - - strengthening social cohesion by providing efficient, - intelligent and easy to use systems. - -Social cohesion is strengthened when technological advances are no -longer the exclusive domain of a technological elite, but readily -accessible by all members of society. The best way to achieve such a -goal is to have the participation of all members of society in the -design and implementation of new technological advances. They will -prevent our future devices from arriving with user interfaces that -present a 'nerds only' barrier. In the field of software, this means -more than simply providing programs which are easy to use -- it -also means providing languages which are easier for non-programmers -to learn. - -Python's development started in 1990, at Centrum voor Wiskunde en -Informatica (CWI), the National Research Institute for Mathematics and -Computer Science in the Netherlands. It built on the lessons learned -in designing ABC. Both of these languages are explicitly designed to -be easier for non-programmers and non-technical people to learn. Python -has been extremely successful in such goals, see XXX CP4E, especially -among women. Python is widely used as a first programming language. -We will explore this further in section 7, but for here suffice it -to say that Python meets such goals as much as is possible for a -computer language. - -Again, the simple benefit of being able to type your name correctly, -when it contains letters outside of the English 26, provides a sense -of belonging -- or perhaps it is only that when you cannot type your -name you feel excluded, unappreciated, or unwanted. - - - enabling sustainable growth and improving competitiveness both of - large and small businesses as well as the efficiency and transparency - of governments. - -Governments have been embracing Open Source in recent times in a big -way. To the extent that they will demand programs developed in an -Open Source Language, for reasons of transparency, reliability, and -national security they will benefit from the existence of PyPy as an -Open Source language choice. - -Moreover, the PyPy Consortium includes the Python Business Forum, an -international trade association of SMEs who develop using the Python -programming language. Since SMEs are the main engines for innovation, -growth, and competitiveness in the IT sector, by supporting these -SMEs, and improving the language they use to develop one can directly -have a positive effect on competitiveness. Moreover, syngeries can be -developed between the SMEs and academia, and SME and large industrial -players. Disseminating knowledge to these SMEs is a primary goal of -this proposal, and a major focus of our efforts. They are poised to -fully exploit the new language implementation because they will be -among its developers, and beneficiaries of a focussed effort in -knowledge dissemination. - -Thirdly, a Consortium member in this proposal is the Swedish SME AB -Strakt, whose new product, *CAPS Upphandling*, is a full-featured, -transparent, government procurement system promoting the efficiency of -government throughout the tender process. AB Strakt is interested in -PyPy in large part because it will improve its commercial offering. -The governments and large businesses which are its primary market will -thus benefit indirectly from an improved Python. - - - harnessing the computing and knowledge management resources - across Europe and bringing them to the desktop of any - researcher, engineer or other end user. - -Open source standards increase interoperability, which make such -resources easier to share. FIXME_ALASTAIR Now talk about Semantic Web - -Again, quoting from the IST workprogramme, this requires progress in -three main technology building blocks: - -ena - pushing the limits of miniaturisation and minimising the costs - and power consumption of microelectronic components and - micro-systems. - -Smaller systems need software developed in languages that have a -small footprint. PyPy will be there. - - - developing mobile, wireless, optical and broadband communication - infrastructures as well as software and computing technologies - that are reliable, pervasive, interoperable and can be adapted - to accommodate new applications and services. Europe's strengths - both in communication technologies and in embedded software and - systems provide a clear opportunity to lead and contribute to - the development of the next generation of products and - services. The development of open standards and open source - software will be encouraged when appropriate to ensure - interoperability of solutions and to further innovation. - -This is PyPy in a nutshell. An Open Source language that is explicitly -designed for the next generation of products and services. FIXME_SAMUELE -quote from the work package??? - -- Developing user friendly interfaces which are intuitive, can - interpret all our senses such as speech, vision and touch and - that understand our gestures and various languages. This should - be coupled with more powerful and flexible knowledge - technologies that are semantic-based and context-aware. They - should prepare for the next generation Web and make access to, - and creation of digital content more effective and more - creative. - -FIXME_ALASTAIR SEmantic web, -FIXME_NICO Narval? where does constraint programming go? - -Links and Complimentary with Other Programmes -+++++++++++++++++++++++++++++++++++++++++++++++++ -FIXME_ARMIN FIXME_NICO FIXME_ALASTAIR FIXME_BEA -Talk about your projects. - -Contribution to Community Social Objectives -+++++++++++++++++++++++++++++++++++++++++++++++ - -FIXME_LAURA ask Michel - -Contributiuon to EC Policies -++++++++++++++++++++++++++++++++ - -There will be transfer of knowledge from research to industry through -the participation of software developing SMEs. Thus the SMEs in the -project will benefit from the cutting-edge, high level research results. -Since the SMEs are in a hurry to commercialise products which use this -research, the academics will see that their research is not wasted -- -locked into tiny languages which have little effect outside of the -academic community. A specialising Just in Time Compiler for Python, -designed for the use of networked and embedded systems will have -immediate effect in reinforcing European dominance in this demanding -competitive field, and thus contribute to the employment of people -in desirable jobs in a rapidly growing field. Deleted: /pypy/trunk/doc/funding/alastair_abstract.asc ============================================================================== --- /pypy/trunk/doc/funding/alastair_abstract.asc Wed Mar 31 21:51:54 2004 +++ (empty file) @@ -1,42 +0,0 @@ - Main goals - - The main goal is to use innovative implementation techniques and - innovative development techniques to produce a better version of the - popular programming language Python. The new Python will maintain the - semantics of the current implementation but will have the following - benefits: it will be more easily customised and extended, it will be - more portable, it is expected to be more efficient, and it will cover - more programming paradigms in a way that respects the simplicity of the - underlying language. In addition, the project will document and refine - the existing open source development model in the Python - community. Although targetted principally at Python, most of the - techniques will also be applicable to other high level languages. - - The approach - - The project will achieve its goals principally by building on the - strengths of the current open source developer community. In - particular, it will potentiate existing volunteer initiatives that are - working on novel implementation techniques, working within the current - informal framework of design consultation, open source code - repositories and periodic coding workshops. The project will connect - this developer community with relevant experts in academia. It will - also make use of the existing non-profit organisation of Python firms - to bind end users into the design and trialling of the extended Python - implementation. Technically, the project will refine and implement an - innovative approach to language implementation, based on object spaces, - that allows implementation techniques to be integrated in a modular - way. - - Concrete results - - Much anecdotal, and some empirical, evidence suggests that Python is - one of the easiest programming languages to learn and is one of the - languages in which one can code up a given algorithm the fastest. For - these reasons, it is particularly popular among those people whose main - competence lies beyond computer science and for whom programming is a - secondary activity, that is to say most of the people on the - planet. The goal of this project is to enable even more people to - program in Python and ensure that more people will never need to learn - any other language than Python. They will, instead, be able to - concentrate on getting their job done. Deleted: /pypy/trunk/doc/funding/b2.asc ============================================================================== --- /pypy/trunk/doc/funding/b2.asc Wed Mar 31 21:51:54 2004 +++ (empty file) @@ -1,192 +0,0 @@ -First look at the SWOT table from 'IST Advisory Group: Software technologies, -embedded systems and distributed systems: A European strategy towards an -Ambient Intelligent environment' - - -This table describes the situation nicely. However, it falls short of -having a strategy for addressing the problem presented. We have one. - -Our intent is to use the strength in the Open Source Software development -community (7) and some strong SMEs (8) to combat the Threat of US players -dominating in development platforms(1). In doing so our principal goal -will be to overcome Weakness (1) -- Inadequate Structure and Weak Culture -for transferring and exploiting university research results, fragmentation -of academic efforts. That's the weakness we are most familiar with, and -the one we believe we know how to fix. - -To put it another way, 'Why is that so much of our research effort -comes to nothing? Why do the Americans, and not us, take our research -to market? What exactly is it that goes wrong somewhere between making the -prototype and making the successful company?' - -The answer, we believe, is an inadequate understanding of what it takes -to become successful. In Europe there is a crucial blindness as to -what it takes to be successful in the marketplace. Technological -superiority we have oodles of. It's in the marketplace where we fail. -And this is in large part because people in Europe still believe that -good technology sells itself. This is almost never the case. - -The Americans know that. This is their big secret. And nobody knows this -better than the Open Source movement. We routinely create programs that -are much better than those that are commercially available. And then -what? Nothing, mostly. This problem in European competitiveness is -our problem as well. - -Over time we have learned, the hard way, that being technologically -excellent is the easy part of the job. Getting to market is the hard -part of the job. We believe tthat the European Commission understands -this problem very well. We do not, however, believe that the EC knows -how to solve it. Searching over proposals, we found very few Open -Source ones. This is unsurprising. Perhaps without intending it, -the EC has made participation by Open Source companies more difficult -that it needs to. - -From our outsider's perspective, we see that the EC thinks that it should -plough money into some hopeful line of research, and group some large -industries with some academics, in the hope that the large industries -will use the research in some of their current projects. There is -some sincere effort to get SMEs involved, but almost exclusively as -consumers of research. Small manufacturers, in particular, seem to -be the 'ideal SME' that the EC envisioned when crafting its plan. - -We would like the opportunity to show you an alternative way to attack -the problem, one that comes from the Open Source and Agile Programming -world. - -First of all, you must start with some SME entrepreneurs and some -professional educators or communicators. They are essential to your -eventual success, and they need to be on board even before you begin -your first technical expedition. This is because the first thing to -do is to start with a marketing/educating effort. You need to do this -in order to attract the best people to your project. This is a common -problem in the Open Source world. Some businesses have embraced -Open Source, primarily out of greed. They hope to have other people -develop their software, for free, thus saving them the cost of hiring -developers. They 'hang up a shingle' -- in other words make a -web page, and make a few announcements, and then sit back astonished -when nobody comes. In the Open Source world, it is not the case that -'if you build it, they will come'. There are companies who do -succeed at this. - -The PyPy development team did things differently. We first decided to -make a prototype. This has taken us most of the year 2003, because we -have only been able to do this on our vacations -- about 5 weeks -total. We did this for 2 reasons. The first is that we were quite -aware that we were going to ask you for money to enable us to work -full time creating something useful that had never been done before. -It would be embarassing and shameful to then fail, because we asked to -do something that could not be done. A prototype would allow us to -test our novel concept of Object Spaces. If they did not work, then -our whole idea was unsound. - -Moreover, this would give us the time to greatly publicise our project, -and attract the best people to it. We happen to be some of the biggest -fish in the Python-World Pond, but we made sure that we invited others, -including Guido van Rossum, the biggest fish of all to our development -Sprints. We worked on our process ensuring that we could work together, -and that no unexpected personality clashes or conflicts would derail -the project. We went to conference, after conference, after conference -and gave papers and informal talks about what we intended to do. We -made our own website, set up some mailing lists, and discussed things -not only there, but in the 'python in education' mailing list, the -'marketing python' (this one is about increasing the market share of -Python) mailing list, in the Python developer's list, and in the -newsgroup comp.lang.python. We hung out on our own internet relay -chat line on irc.freenode.net and answered questions of whoever -dropped by. We held open Sprints, and let anybody who was interested -participate. - -We made an enormous splash. We are now an extremely high profile -open source project. We are being watched. If we fail, we will do -it quite publically. - -Why, you might ask, would we go to all that trouble? Because, unlike -some projects you know, where 'getting the EU funding' is all that -really matters, and what you do to get it, is secondary -- we find the -EU funding only a means to our goal. This is because our goal is -multi-facetted. - -First of all there is the straight-forward technical goal. We want to -make an extremely novel specialising compiler for the Python programming -language. This goal is technically quite formidable, and requires -sophisticated expertise. - -Second of all, those of us who write software using Python hope that -our software will itself be improved. This is a commercial interest -for the PBF, a large stakeholder. - -Third of all, there is the marketing goal. We want to make Python -the most used language on the planet. And that is a much harder goal. -We had to successfully attract the best people to the project, without -causing a crisis that would 'fork the project' -- producing 2 hostile -camps who each point at each other saying 'Mine's the real Python'. -When we are done making PyPy we want to immediately capture the -existing user baser of 175,000. <-- should we make an appendix of how -we calculate that? And then we want to go after those Visual Basic, -Java, and C++ programmers out there. Python is currently ranked only -the sixth most popular language on the planet. We would like to become -number one. - -And fourth of all, we want to be the reference project for future -collaboration between the Open Source and the Agile programming -communities, and the EU. We think that both groups need each other. -The EU, in its statement clearly recognises the fact. But it seems, -to us, unsure how to do this. And there are significant risks which -the EU seems to want to take with one hand, while want to prevent -with its other. - -For instance, it is not enough to merely have some SMEs involved, in -some small token way. That will only marginalise them. You will lose -the very ones you want to attract, those with true entrepreeurial -spirit, and keep those who are only after a safe and satisfactory life -at the government trough. If you would like your project adequately -disseminated, you must involve the SMEs all through the project. - -But this is hard to achieve. The smallest SMEs cannot afford to -dedicate a full person to the project, and will find the paperwork -crushing. The project cannot afford to rely on a key player who could -be bought or go bankrupt or become too overworked to contribute at any -moment of time. What then? There is, of course, a solution. If SMEs -banded together, and shared resources, they could function like a -large company. This has worked successfully for Swedish farmers, and -we believed it could work well for software companies as well. With -large enough numbers, you can spread the risk around. While at any -time any PBF member could be in a state of transition, they won't all -be, and somebody equivalent could be found to take the place of -somebody who was temporarily unavailable. - -This, however, is only possible if great effort is taken at all times to -keep the process open and transparent. There must be no secrets. You -cannot get a replacement on a dime unless you are constantly educating -your larger community. Otherwise, getting up to speed would take too -long and the project would fail. Aside from the usual web pages, -conferences, irc channels, and mailing lists, you must make targetted -FIXME BEA what do you call them? And host open Sprints, keep your -source open and availabel for download at all times, and use a -process based FIXME BEA is this correct? Agile development model that -is robust in the possibility of change. - -This is hard. This is very hard. It requires trust, and courage, and -the sort of Egoless programming which is trained, not read about. It is -what the EC has claimed it wants, but which it has not fostered. - -Thus, from our point of view, we see our relevance to the IST program -as 2-fold. First of all we are going to give you the AmbiIntelligent -FIXME_LAURA correct jargon?development platform for networked and -mobile devices that you believe is essential to European competitivness. - -But what we also intend to do is to deliver a model of how you can -actually get the Open Source community to work with you -- and, of -course while we deliver the OS community to you, we are also going to -deliver you to them -- we are going to take special effort to document -and publicise _you_ to _them_. We are going to teach 'how to crack -the system and get the EU to pay for you to develop marvels without -demanding that you lose your soul'. Because, when it comes down to it, -that is what the OS community wants most. A chance to make a difference, -change the world, and make it a better place. - -If you accept this proposal, and our way of software development, we -will only be the first in a long line of successful Open Source projects -that produce the marvels you ask for. And we will stick around and -teach anybody who comes by exactly how we did it. - Deleted: /pypy/trunk/doc/funding/old_abstract.asc ============================================================================== --- /pypy/trunk/doc/funding/old_abstract.asc Wed Mar 31 21:51:54 2004 +++ (empty file) @@ -1,33 +0,0 @@ -The PyPy project will build a portable, fast, flexible, context-aware -programming platform supporting Very-High Level Languages (VHLL) to -yield significant productivity gains in software development. PyPy's -flexible, modular runtime system will be well-suited for networked, -embedded, and mobile devices. - -VHLLs' high semantic level can help extend context-awareness, beyond -the basics (time, location, identity), to a wider variety of context -information and actions. However, VHLLs can often produce slow or large -application and supporting code, hampering their use for small devices. -We will solve this problem via the innovative concept of ObjectSpaces, -high-level formulations of language interpreter components. Explicit, -clear separation of parts yields modularity and flexibility. -ObjectSpaces are themselves coded in a VHLL and can be specialised for -execution speed, memory consumption, or other parameters. - -PyPy will use and target the widely-used Open Source programming -language Python, first developed in 1990 at CWI (Centrum voor Wiskunde -en Informatica) in the Netherlands. By producing the new reference -version of the language, we will have a large impact on the estimated -175,000 Python programmers worldwide. Emphasizing simplicity and -readability, Python has wider appeal among non-programmers, and -particularly among women, than languages perceived as needing extensive -mathematical training and ability. An improved Python can thus help -somewhat in promoting social cohesion and gender equality. - -PyPy will leverage known European strengths in formal methods and -languages, operating by a novel Agile Software Development methodology -for distributed development, including short, high-productivity -meetings known as "Sprints". Systematic efforts to spread the knowledge -produced by the project among academics, SMEs, industry, and other -interested parties, will ensure the project's results and achievements -are fully exploited. From hpk at codespeak.net Wed Mar 31 23:22:11 2004 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 31 Mar 2004 23:22:11 +0200 (MEST) Subject: [pypy-svn] r3593 - pypy/trunk/doc/funding/negotiations Message-ID: <20040331212211.198F35A142@thoth.codespeak.net> Author: hpk Date: Wed Mar 31 23:22:10 2004 New Revision: 3593 Added: pypy/trunk/doc/funding/negotiations/reponses_2nd_april.txt Log: - a first draft of a "action->response" document. - i am currently thinking about incorporating the changelog in there - it's really just a first draft (with lots of gaps) and probably has ReST errors (to lazy to test right now) Added: pypy/trunk/doc/funding/negotiations/reponses_2nd_april.txt ============================================================================== --- (empty file) +++ pypy/trunk/doc/funding/negotiations/reponses_2nd_april.txt Wed Mar 31 23:22:10 2004 @@ -0,0 +1,109 @@ +======================================================================== +Responses to Actions put up in the Meeting notes from 16th of March 2004 +======================================================================== + + +Action: the involvement and funding mechanism of PBF should be fully described + +The project coordinator sent a mail on 31th of March detailing the +future role of the PBF within the PyPy research project. At the same +time, participants formerly supposed to work through the PBF are now to +enter the consortium. + + + +Action: in first instance no workpackages should be removed +as savings should be obtained through economizing the work planning. + +After the withdrawal of MPI and the budget pressure there wasn't +enough time to discuss the complete work-plan with all consortium +partners. The consortium has now revisited each work package description +and provides a much better and more consistent work plan, now. We were +able to retain all Workpackages and tasks by beeing more specific +about the exact deliverables and tasks. As a result each of the partners +in the consortium now had to accept a higher risk and responsbility +for producing all deliverables. + +The consortium intends to interact early and often with specific +communities and individuals. This should lead to a much better +mobilization of resources. + + + +Action: provide fully completed and quality checked CPFs. + +We have much improved and completed the CPFs. The project office's +responses to our consortium-proposal (sent by the PyPy project +coorindator on 29th of March) may make further changes neccessary, +though. + + + +*Action*: Also the reduction of the end-user involvement represents already +a reduction in work and required budget._ + +We still plan to involve end-users on various levels. + +(...) + + + +Action: the body text should be preserved, and a full tracing to +workpackages should be ensured (adding tasks, subtasks, and defined +output). If traceability is not clear, there may come a request to add a +line stating the body text should be considered + +We have now fully traced especially the B1 objectives and B6.0 detailed implementation +chapters in the Workpackage descriptions and deliverables. + +TOBEDONE + + + + +Action: An explanation on how the envisaged work goes beyond the +state-of-the-art (both in theoretical concepts and solutions and in the +practical implementation should be provided, and how this contributes to +development beyond the Python domain). + +TOBEDONE + + + +Action: the coordination and management model should be clarified. + +TOBEDONE + + +Action: Rename the first phase. + +The first phase has been renamed to "Providing a novel language research tool" + + +TOBEDONE + + +Action: The DoW will be modified to clarify this [multithreading] issue. + +TOBEDONE + +Action: The DoW will be modified to make it clearer what type of tests we are +referring to + +The definition of WP05 specifies the test selection process. +... + + + +Action: The relevant [AOP/logic] sections of the DoW will be extended. + +TOBEDONE + + +Action: The DoW will define tasks and deliverables that will be used as vehicles for dissemination to people outside the Python community. + + +Action: The DoW will include a justification of the license chosen. Compatibility with the GPL will be addressed. + + +Action: The DoW will be modified to avoid this [user] confusion. From pedronis at codespeak.net Wed Mar 31 23:25:01 2004 From: pedronis at codespeak.net (pedronis at codespeak.net) Date: Wed, 31 Mar 2004 23:25:01 +0200 (MEST) Subject: [pypy-svn] r3595 - pypy/trunk/doc/funding Message-ID: <20040331212501.313BC5AFCC@thoth.codespeak.net> Author: pedronis Date: Wed Mar 31 23:25:00 2004 New Revision: 3595 Modified: pypy/trunk/doc/funding/B6.7.wp14_documentation.txt Log: - preliminary fix timer/partner allocation Modified: pypy/trunk/doc/funding/B6.7.wp14_documentation.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp14_documentation.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp14_documentation.txt Wed Mar 31 23:25:00 2004 @@ -4,8 +4,8 @@ .. |wp| replace:: WP14 .. |start| replace:: 0 .. |p1| replace:: CM -.. |m1| replace:: 12 -.. |p2| replace:: PBF +.. |m1| replace:: 11 +.. |p2| replace:: Martelli .. |m2| replace:: 12 .. |p3| replace:: |e| .. |m3| replace:: |e| From pedronis at codespeak.net Wed Mar 31 23:28:09 2004 From: pedronis at codespeak.net (pedronis at codespeak.net) Date: Wed, 31 Mar 2004 23:28:09 +0200 (MEST) Subject: [pypy-svn] r3598 - pypy/trunk/doc/funding Message-ID: <20040331212809.796AE5AFCC@thoth.codespeak.net> Author: pedronis Date: Wed Mar 31 23:28:08 2004 New Revision: 3598 Modified: pypy/trunk/doc/funding/B6.7.wp13_integration_config.txt Log: - fix timer/partner allocation Modified: pypy/trunk/doc/funding/B6.7.wp13_integration_config.txt ============================================================================== --- pypy/trunk/doc/funding/B6.7.wp13_integration_config.txt (original) +++ pypy/trunk/doc/funding/B6.7.wp13_integration_config.txt Wed Mar 31 23:28:08 2004 @@ -3,14 +3,14 @@ .. |title| replace:: Integration and Configuration .. |wp| replace:: WP13 .. |start| replace:: 18 -.. |p1| replace:: MPI -.. |m1| replace:: 12 -.. |p2| replace:: PBF -.. |m2| replace:: 6 -.. |p3| replace:: |e| -.. |m3| replace:: |e| -.. |p4| replace:: |e| -.. |m4| replace:: |e| +.. |p1| replace:: STRAKT +.. |m1| replace:: 2 +.. |p2| replace:: Krekel +.. |m2| replace:: 4 +.. |p3| replace:: DKFI +.. |m3| replace:: 4 +.. |p4| replace:: Martelli +.. |m4| replace:: 2 .. |p5| replace:: |e| .. |m5| replace:: |e| .. |p6| replace:: |e|