[pypy-svn] pypy release-1.4.1: Copy the trunk's directory "pypy/tool/release" to this branch.
arigo
commits-noreply at bitbucket.org
Tue Dec 28 20:59:08 CET 2010
Author: Armin Rigo <arigo at tunes.org>
Branch: release-1.4.1
Changeset: r40259:eadbef5f39ca
Date: 2010-12-28 20:58 +0100
http://bitbucket.org/pypy/pypy/changeset/eadbef5f39ca/
Log: Copy the trunk's directory "pypy/tool/release" to this branch.
diff --git a/pypy/tool/release/package.py b/pypy/tool/release/package.py
--- a/pypy/tool/release/package.py
+++ b/pypy/tool/release/package.py
@@ -19,7 +19,7 @@
if sys.version_info < (2,6): py.test.skip("requires 2.6 so far")
-USE_TARFILE_MODULE = sys.platform == 'win32'
+USE_ZIPFILE_MODULE = sys.platform == 'win32'
def ignore_patterns(*patterns):
"""Function that can be used as copytree() ignore parameter.
@@ -40,14 +40,26 @@
copy_to_dir = None, override_pypy_c = None):
basedir = py.path.local(basedir)
if sys.platform == 'win32':
- basename = 'pypy-c.exe'
+ # Can't rename a DLL
+ if override_pypy_c is not None:
+ rename_pypy_c = py.path.local(override_pypy_c).purebasename
+ pypy_c_dir = py.path.local(override_pypy_c).dirname
+ else:
+ pypy_c_dir = basedir.join('pypy', 'translator', 'goal')
+ pypy_c = pypy_c_dir.join(rename_pypy_c + '.exe')
+ libpypy_c = pypy_c_dir.join('lib' + rename_pypy_c + '.dll')
+ binaries = [(pypy_c, pypy_c.basename),
+ (libpypy_c, libpypy_c.basename),
+ (pypy_c_dir.join('libexpat.dll'), 'libexpat.dll')]
else:
basename = 'pypy-c'
- if override_pypy_c is None:
- pypy_c = basedir.join('pypy', 'translator', 'goal', basename)
- else:
- pypy_c = py.path.local(override_pypy_c)
+ if override_pypy_c is None:
+ pypy_c = basedir.join('pypy', 'translator', 'goal', basename)
+ else:
+ pypy_c = py.path.local(override_pypy_c)
+ binaries = [(pypy_c, rename_pypy_c)]
if not pypy_c.check():
+ print pypy_c
raise PyPyCNotFound('Please compile pypy first, using translate.py')
builddir = udir.ensure("build", dir=True)
pypydir = builddir.ensure(name, dir=True)
@@ -72,28 +84,47 @@
spdir = pypydir.ensure('site-packages', dir=True)
shutil.copy(str(basedir.join('site-packages', 'README')), str(spdir))
#
- pypydir.ensure('bin', dir=True)
- archive_pypy_c = pypydir.join('bin', rename_pypy_c)
- shutil.copy(str(pypy_c), str(archive_pypy_c))
+ if sys.platform == 'win32':
+ bindir = pypydir
+ else:
+ bindir = pypydir.join('bin')
+ bindir.ensure(dir=True)
+ for source, target in binaries:
+ archive = bindir.join(target)
+ shutil.copy(str(source), str(archive))
old_dir = os.getcwd()
try:
os.chdir(str(builddir))
- os.system("strip -x " + str(archive_pypy_c)) # ignore errors
- if USE_TARFILE_MODULE:
- import tarfile
- tf = tarfile.open(str(builddir.join(name + '.tar.bz2')), 'w:bz2')
- tf.add(name)
- tf.close()
+ #
+ # 'strip' fun: see https://codespeak.net/issue/pypy-dev/issue587
+ for source, target in binaries:
+ if sys.platform == 'win32':
+ pass
+ elif sys.platform == 'darwin':
+ os.system("strip -x " + str(bindir.join(target))) # ignore errors
+ else:
+ os.system("strip " + str(bindir.join(target))) # ignore errors
+ #
+ if USE_ZIPFILE_MODULE:
+ import zipfile
+ archive = str(builddir.join(name + '.zip'))
+ zf = zipfile.ZipFile(archive, 'w',
+ compression=zipfile.ZIP_DEFLATED)
+ for (dirpath, dirnames, filenames) in os.walk(name):
+ for fnname in filenames:
+ filename = os.path.join(dirpath, fnname)
+ zf.write(filename)
+ zf.close()
else:
- e = os.system('tar cvjf ' + str(builddir.join(name + '.tar.bz2')) +
- " " + name)
+ archive = str(builddir.join(name + '.tar.bz2'))
+ e = os.system('tar cvjf ' + archive + " " + name)
if e:
raise OSError('"tar" returned exit status %r' % e)
finally:
os.chdir(old_dir)
if copy_to_dir is not None:
- print "Copying to %s" % copy_to_dir
- shutil.copy(str(builddir.join(name + '.tar.bz2')), copy_to_dir)
+ print "Copying %s to %s" % (archive, copy_to_dir)
+ shutil.copy(archive, str(copy_to_dir))
return builddir # for tests
if __name__ == '__main__':
diff --git a/pypy/tool/win32-build.bat b/pypy/tool/win32-build.bat
deleted file mode 100644
--- a/pypy/tool/win32-build.bat
+++ /dev/null
@@ -1,38 +0,0 @@
-setlocal
-
-set ROOTDIR=%~dp0..\..
-cd %ROOTDIR%
-
-set ZIPEXE=zip
-set PYTHON=c:\python26\python.exe
-set TRANSLATE=pypy/translator/goal/translate.py
-set TRANSLATEOPTS=--batch
-set TARGET=pypy/translator/goal/targetpypystandalone
-set TARGETOPTS=
-
-copy /y ..\expat-2.0.1\win32\bin\release\libexpat.dll .
-
-call :make_pypy pypy-1.2-win32.zip pypy.exe -Ojit
-call :make_pypy pypy-1.2-win32-nojit.zip pypy-nojit.exe
-call :make_pypy pypy-1.2-win32-stackless.zip pypy-stackless.exe --stackless
-REM call :make_pypy pypy-1.2-win32-sandbox.zip pypy-sandbox.exe --sandbox
-
-goto :EOF
-
-REM =========================================
-:make_pypy
-REM make_pypy subroutine
-REM %1 is the zip filename
-REM %2 is pypy.exe filename
-REM %3 and others are the translation options
-
-set ZIPFILE=%1
-set PYPYEXE=%2
-set EXTRAOPTS=%3 %4 %5 %6 %7 %8 %9
-
-%PYTHON% %TRANSLATE% --output=%PYPYEXE% %TRANSLATEOPTS% %EXTRAOPTS% %TARGET% %TARGETOPTS%
-del %ZIPFILE%
-del /s pypy\lib\*.pyc lib-python\*.pyc
-%ZIPEXE% %ZIPFILE% %PYPYEXE% *.dll
-%ZIPEXE% -r %ZIPFILE% pypy\lib lib-python
-%ZIPEXE% -d %ZIPFILE% lib-python\2.5.2\plat-*
diff --git a/pypy/tool/release/test/test_package.py b/pypy/tool/release/test/test_package.py
--- a/pypy/tool/release/test/test_package.py
+++ b/pypy/tool/release/test/test_package.py
@@ -1,38 +1,56 @@
import py
from pypy.tool.autopath import pypydir
-from pypy.tool.release.package import package
+from pypy.tool.release import package
from pypy.module.sys.version import CPYTHON_VERSION
-import tarfile, os
+import tarfile, zipfile, os, sys
def test_dir_structure(test='test'):
# make sure we have sort of pypy-c
- pypy_c = py.path.local(pypydir).join('translator', 'goal', 'pypy-c')
+ if sys.platform == 'win32':
+ basename = 'pypy-c.exe'
+ rename_pypy_c = 'pypy-c'
+ else:
+ basename = 'pypy-c'
+ rename_pypy_c = 'pypy'
+ pypy_c = py.path.local(pypydir).join('translator', 'goal', basename)
if not pypy_c.check():
os.system("echo faked_pypy_c> %s" % (pypy_c,))
fake_pypy_c = True
else:
fake_pypy_c = False
try:
- builddir = package(py.path.local(pypydir).dirpath(), test)
+ builddir = package.package(py.path.local(pypydir).dirpath(), test,
+ rename_pypy_c)
prefix = builddir.join(test)
cpyver = '%d.%d.%d' % CPYTHON_VERSION[:3]
assert prefix.join('lib-python', cpyver, 'test').check()
- assert prefix.join('bin', 'pypy').check()
+ if sys.platform == 'win32':
+ assert prefix.join('pypy-c.exe').check()
+ else:
+ assert prefix.join('bin', 'pypy').check()
assert prefix.join('lib_pypy', 'syslog.py').check()
assert not prefix.join('lib_pypy', 'py').check()
assert not prefix.join('lib_pypy', 'ctypes_configure').check()
assert prefix.join('LICENSE').check()
assert prefix.join('README').check()
- th = tarfile.open(str(builddir.join('%s.tar.bz2' % test)))
- assert th.getmember('%s/lib_pypy/syslog.py' % test)
+ if package.USE_ZIPFILE_MODULE:
+ zh = zipfile.ZipFile(str(builddir.join('%s.zip' % test)))
+ assert zh.open('%s/lib_pypy/syslog.py' % test)
+ else:
+ th = tarfile.open(str(builddir.join('%s.tar.bz2' % test)))
+ assert th.getmember('%s/lib_pypy/syslog.py' % test)
# the headers file could be not there, because they are copied into
# trunk/include only during translation
includedir = py.path.local(pypydir).dirpath().join('include')
def check_include(name):
if includedir.join(name).check(file=True):
- assert th.getmember('%s/include/%s' % (test, name))
+ member = '%s/include/%s' % (test, name)
+ if package.USE_ZIPFILE_MODULE:
+ assert zh.open(member)
+ else:
+ assert th.getmember(member)
check_include('Python.h')
check_include('modsupport.inl')
check_include('pypy_decl.h')
@@ -40,11 +58,11 @@
if fake_pypy_c:
pypy_c.remove()
-def test_with_tarfile_module():
+def test_with_zipfile_module():
from pypy.tool.release import package
- prev = package.USE_TARFILE_MODULE
+ prev = package.USE_ZIPFILE_MODULE
try:
- package.USE_TARFILE_MODULE = True
- test_dir_structure(test='testtarfile')
+ package.USE_ZIPFILE_MODULE = True
+ test_dir_structure(test='testzipfile')
finally:
- package.USE_TARFILE_MODULE = prev
+ package.USE_ZIPFILE_MODULE = prev
diff --git a/pypy/tool/release/make_release.py b/pypy/tool/release/make_release.py
--- a/pypy/tool/release/make_release.py
+++ b/pypy/tool/release/make_release.py
@@ -4,7 +4,8 @@
into release packages. Note: you must run apropriate buildbots first and
make sure there are no failures. Use force-builds.py from the same directory.
-Usage: make_release.py release/<release name> release_version
+Usage: make_release.py <branchname> <version>
+ e.g.: make_release.py release-1.4.1 1.4.1
"""
import autopath
@@ -20,6 +21,7 @@
import shutil
BASEURL = 'http://buildbot.pypy.org/nightly/'
+PAUSE = False
def browse_nightly(branch,
baseurl=BASEURL,
@@ -32,12 +34,12 @@
dom = minidom.parseString(xml)
refs = [node.getAttribute('href') for node in dom.getElementsByTagName('a')
if 'pypy' in node.getAttribute('href')]
- # all refs are of form: pypy-{type}-{revision}-{platform}.tar.bz2
- r = re.compile('pypy-c-([\w\d]+)-(\d+)-([\w\d]+).tar.bz2$')
+ # all refs are of form: pypy-c-{type}-{revnum}-{hghash}-{platform}.tar.bz2
+ r = re.compile('pypy-c-([\w\d]+)-(\d+)-([0-9a-f]+)-([\w\d]+).tar.bz2$')
d = {}
for ref in refs:
- kind, rev, platform = r.match(ref).groups()
- rev = int(rev)
+ kind, revnum, hghash, platform = r.match(ref).groups()
+ rev = int(revnum)
try:
lastrev, _ = d[(kind, platform)]
except KeyError:
@@ -51,8 +53,10 @@
tmpdir = udir.join('download')
tmpdir.ensure(dir=True)
alltars = []
+ olddir = os.getcwd()
try:
os.chdir(str(tmpdir))
+ print 'Using tmpdir', str(tmpdir)
for (kind, platform), (rev, name) in to_download.iteritems():
if platform == 'win32':
print 'Ignoring %s, windows unsupported' % name
@@ -64,20 +68,23 @@
t = tarfile.open(str(tmpdir.join(name)))
dirname = t.getmembers()[0].name
t.extractall(path=str(tmpdir))
- os.system('mv %s %s' % (str(tmpdir.join(dirname)),
- str(tmpdir.join('pypy-%s' % release))))
if kind == 'jit':
kind = ''
else:
kind = '-' + kind
- olddir = os.getcwd()
- name = 'pypy-%s-%s%s.tar.bz2' % (release, platform, kind)
+ topdirname = 'pypy-%s-%s%s' % (release, platform, kind)
+ os.system('mv %s %s' % (str(tmpdir.join(dirname)),
+ str(tmpdir.join(topdirname))))
+ if PAUSE:
+ print 'Pausing, press Enter...'
+ raw_input()
+ name = '%s.tar.bz2' % topdirname
print "Building %s" % name
t = tarfile.open(name, 'w:bz2')
- t.add('pypy-%s' % release)
+ t.add(topdirname)
alltars.append(name)
t.close()
- shutil.rmtree(str(tmpdir.join('pypy-' + release)))
+ shutil.rmtree(str(tmpdir.join(topdirname)))
for name in alltars:
print "Uploading %s" % name
os.system('scp %s codespeak.net:/www/pypy.org/htdocs/download' % name)
diff --git a/pypy/tool/release/test/test_make_release.py b/pypy/tool/release/test/test_make_release.py
--- a/pypy/tool/release/test/test_make_release.py
+++ b/pypy/tool/release/test/test_make_release.py
@@ -6,6 +6,6 @@
def test_browse_nightly():
res = browse_nightly('branch', override_xml=XML)
- assert res[('jit', 'linux')] == (75362, 'pypy-c-jit-75362-linux.tar.bz2')
+ assert res[('jit', 'linux')] == (40170, 'pypy-c-jit-40170-c407c9dc5382-linux.tar.bz2')
assert len(res) == 6
- assert res[('nojit', 'linux64')] == (75362, u'pypy-c-nojit-75362-linux64.tar.bz2')
+ assert res[('nojit', 'linux64')] == (40170, 'pypy-c-nojit-40170-c407c9dc5382-linux64.tar.bz2')
diff --git a/pypy/tool/release/test/nightly.xml b/pypy/tool/release/test/nightly.xml
--- a/pypy/tool/release/test/nightly.xml
+++ b/pypy/tool/release/test/nightly.xml
@@ -1,94 +1,143 @@
-
-<html>
- <head>
- <title>Directory listing for /nightly/release/1.3.x/</title>
- <style>
- .even-dir { background-color: #efe0ef }
- .even { background-color: #eee }
- .odd-dir {background-color: #f0d0ef }
- .odd { background-color: #dedede }
- .icon { text-align: center }
- .listing {
- margin-left: auto;
- margin-right: auto;
- width: 50%;
- padding: 0.1em;
- }
-
- body { border: 0; padding: 0; margin: 0; background-color: #efefef; }
- h1 {padding: 0.1em; background-color: #777; color: white; border-bottom: thin white dashed;}
-
- </style>
- </head>
- <body>
- <h1>Directory listing for /nightly/release/1.3.x/
- </h1>
- <table>
- <tr pattern="listHeader">
- <th>Filename</th>
- <th>Content type</th>
- <th>Content encoding</th>
- </tr>
- <tr class="even">
- <td><a href="pypy-c-jit-75357-linux.tar.bz2">pypy-c-jit-75357-linux.tar.bz2</a></td>
- <td>[application/x-tar]</td>
- <td>[bzip2]</td>
- </tr>
- <tr class="odd">
- <td><a href="pypy-c-jit-75357-win32.tar.bz2">pypy-c-jit-75357-win32.tar.bz2</a></td>
- <td>[application/x-tar]</td>
- <td>[bzip2]</td>
- </tr>
- <tr class="even">
- <td><a href="pypy-c-jit-75362-linux.tar.bz2">pypy-c-jit-75362-linux.tar.bz2</a></td>
- <td>[application/x-tar]</td>
- <td>[bzip2]</td>
- </tr>
- <tr class="odd">
- <td><a href="pypy-c-jit-75362-win32.tar.bz2">pypy-c-jit-75362-win32.tar.bz2</a></td>
- <td>[application/x-tar]</td>
- <td>[bzip2]</td>
- </tr>
- <tr class="even">
- <td><a href="pypy-c-nojit-75357-linux.tar.bz2">pypy-c-nojit-75357-linux.tar.bz2</a></td>
- <td>[application/x-tar]</td>
- <td>[bzip2]</td>
- </tr>
- <tr class="odd">
- <td><a href="pypy-c-nojit-75357-linux64.tar.bz2">pypy-c-nojit-75357-linux64.tar.bz2</a></td>
- <td>[application/x-tar]</td>
- <td>[bzip2]</td>
- </tr>
- <tr class="even">
- <td><a href="pypy-c-nojit-75357-win32.tar.bz2">pypy-c-nojit-75357-win32.tar.bz2</a></td>
- <td>[application/x-tar]</td>
- <td>[bzip2]</td>
- </tr>
- <tr class="odd">
- <td><a href="pypy-c-nojit-75362-linux.tar.bz2">pypy-c-nojit-75362-linux.tar.bz2</a></td>
- <td>[application/x-tar]</td>
- <td>[bzip2]</td>
- </tr>
- <tr class="even">
- <td><a href="pypy-c-nojit-75362-linux64.tar.bz2">pypy-c-nojit-75362-linux64.tar.bz2</a></td>
- <td>[application/x-tar]</td>
- <td>[bzip2]</td>
- </tr>
- <tr class="odd">
- <td><a href="pypy-c-nojit-75362-win32.tar.bz2">pypy-c-nojit-75362-win32.tar.bz2</a></td>
- <td>[application/x-tar]</td>
- <td>[bzip2]</td>
- </tr>
- <tr class="even">
- <td><a href="pypy-c-stackless-75357-linux.tar.bz2">pypy-c-stackless-75357-linux.tar.bz2</a></td>
- <td>[application/x-tar]</td>
- <td>[bzip2]</td>
- </tr>
- <tr class="odd">
- <td><a href="pypy-c-stackless-75362-linux.tar.bz2">pypy-c-stackless-75362-linux.tar.bz2</a></td>
- <td>[application/x-tar]</td>
- <td>[bzip2]</td>
- </tr>
- </table>
- </body>
+ <html>
+<head>
+<title>Directory listing for /nightly/trunk/</title>
+<style>
+.even { background-color: #eee }
+.odd { background-color: #dedede }
+.even-passed { background-color: #caffd8 }
+.odd-passed { background-color: #a3feba }
+.even-failed { background-color: #ffbbbb }
+.odd-failed { background-color: #ff9797 }
+
+.summary_link {
+ color: black;
+ text-decoration: none;
+}
+.summary_link:hover {
+ color: blue;
+ text-decoration: underline;
+}
+
+.icon { text-align: center }
+.listing {
+ margin-left: auto;
+ margin-right: auto;
+ width: 50%;
+ padding: 0.1em;
+ }
+
+body { border: 0; padding: 0; margin: 0; background-color: #efefef; }
+h1 {padding: 0.1em; background-color: #777; color: white; border-bottom: thin white dashed;}
+td,th {padding-left: 0.5em; padding-right: 0.5em; }
+
+</style>
+</head>
+
+<body>
+<h1>Directory listing for /nightly/trunk/</h1>
+
+<table>
+ <thead>
+ <tr>
+
+ <th>Filename</th>
+ <th>Size</th>
+ <th>Date</th>
+ <th><i>own</i> tests</th>
+ <th><i>applevel</i> tests</th>
+
+ </tr>
+ </thead>
+ <tbody>
+<tr class="odd">
+ <td><a href="pypy-c-jit-40170-c407c9dc5382-linux.tar.bz2">pypy-c-jit-40170-c407c9dc5382-linux.tar.bz2</a></td>
+ <td>8M</td>
+ <td>2010-12-22</td>
+ <td class="odd-failed"><a class="summary_link" href="/summary?category=linux32&branch=%3Ctrunk%3E&recentrev=40170:c407c9dc5382">16561, 1 F, 2089 s, 4 x</a></td>
+
+ <td class="odd-passed"><a class="summary_link" href="/summary?category=linux32&branch=%3Ctrunk%3E&recentrev=40170:c407c9dc5382">3488, 0 F, 1542 s, 1 x</a></td>
+</tr>
+<tr class="even">
+ <td><a href="pypy-c-jit-40170-c407c9dc5382-linux64.tar.bz2">pypy-c-jit-40170-c407c9dc5382-linux64.tar.bz2</a></td>
+ <td>9M</td>
+ <td>2010-12-22</td>
+ <td class="even-failed"><a class="summary_link" href="/summary?category=linux64&branch=%3Ctrunk%3E&recentrev=40170:c407c9dc5382">16216, 3 F, 2417 s, 4 x</a></td>
+
+ <td class="even-passed"><a class="summary_link" href="/summary?category=linux64&branch=%3Ctrunk%3E&recentrev=40170:c407c9dc5382">3483, 0 F, 1547 s, 1 x</a></td>
+</tr>
+<tr class="odd">
+ <td><a href="pypy-c-jit-40170-c407c9dc5382-osx64.tar.bz2">pypy-c-jit-40170-c407c9dc5382-osx64.tar.bz2</a></td>
+ <td>10M</td>
+ <td>2010-12-22</td>
+ <td class="odd">None</td>
+
+ <td class="odd">None</td>
+</tr>
+<tr class="even">
+ <td><a href="pypy-c-nojit-40170-c407c9dc5382-linux.tar.bz2">pypy-c-nojit-40170-c407c9dc5382-linux.tar.bz2</a></td>
+ <td>7M</td>
+ <td>2010-12-22</td>
+ <td class="even-failed"><a class="summary_link" href="/summary?category=linux32&branch=%3Ctrunk%3E&recentrev=40170:c407c9dc5382">16561, 1 F, 2089 s, 4 x</a></td>
+
+ <td class="even-passed"><a class="summary_link" href="/summary?category=linux32&branch=%3Ctrunk%3E&recentrev=40170:c407c9dc5382">3377, 0 F, 1542 s, 1 x</a></td>
+</tr>
+<tr class="odd">
+ <td><a href="pypy-c-nojit-40170-c407c9dc5382-linux64.tar.bz2">pypy-c-nojit-40170-c407c9dc5382-linux64.tar.bz2</a></td>
+ <td>8M</td>
+ <td>2010-12-22</td>
+ <td class="odd-failed"><a class="summary_link" href="/summary?category=linux64&branch=%3Ctrunk%3E&recentrev=40170:c407c9dc5382">16216, 3 F, 2417 s, 4 x</a></td>
+
+ <td class="odd-passed"><a class="summary_link" href="/summary?category=linux64&branch=%3Ctrunk%3E&recentrev=40170:c407c9dc5382">3372, 0 F, 1547 s, 1 x</a></td>
+</tr>
+<tr class="even">
+ <td><a href="pypy-c-stackless-40170-c407c9dc5382-linux.tar.bz2">pypy-c-stackless-40170-c407c9dc5382-linux.tar.bz2</a></td>
+ <td>10M</td>
+ <td>2010-12-22</td>
+ <td class="even-failed"><a class="summary_link" href="/summary?category=linux32&branch=%3Ctrunk%3E&recentrev=40170:c407c9dc5382">16561, 1 F, 2089 s, 4 x</a></td>
+
+ <td class="even-passed"><a class="summary_link" href="/summary?category=linux32-stackless&branch=%3Ctrunk%3E&recentrev=40170:c407c9dc5382">3221, 0 F, 1401 s, 1 x</a></td>
+</tr>
+<tr class="odd">
+ <td><a href="pypy-c-jit-40149-cd083843b67a-linux.tar.bz2">pypy-c-jit-40149-cd083843b67a-linux.tar.bz2</a></td>
+ <td>10M</td>
+ <td>2010-12-21</td>
+ <td class="odd-passed"><a class="summary_link" href="/summary?category=linux32&branch=%3Ctrunk%3E&recentrev=40149:cd083843b67a">16561, 0 F, 2088 s, 4 x</a></td>
+
+ <td class="odd-passed"><a class="summary_link" href="/summary?category=linux32&branch=%3Ctrunk%3E&recentrev=40149:cd083843b67a">3488, 0 F, 1542 s, 1 x</a></td>
+</tr>
+<tr class="even">
+ <td><a href="pypy-c-jit-40149-cd083843b67a-linux64.tar.bz2">pypy-c-jit-40149-cd083843b67a-linux64.tar.bz2</a></td>
+ <td>11M</td>
+ <td>2010-12-21</td>
+ <td class="even-passed"><a class="summary_link" href="/summary?category=linux64&branch=%3Ctrunk%3E&recentrev=40149:cd083843b67a">16219, 0 F, 2415 s, 4 x</a></td>
+
+ <td class="even-passed"><a class="summary_link" href="/summary?category=linux64&branch=%3Ctrunk%3E&recentrev=40149:cd083843b67a">3483, 0 F, 1547 s, 1 x</a></td>
+</tr>
+<tr class="odd">
+ <td><a href="pypy-c-nojit-40149-cd083843b67a-linux.tar.bz2">pypy-c-nojit-40149-cd083843b67a-linux.tar.bz2</a></td>
+ <td>7M</td>
+ <td>2010-12-21</td>
+ <td class="odd-passed"><a class="summary_link" href="/summary?category=linux32&branch=%3Ctrunk%3E&recentrev=40149:cd083843b67a">16561, 0 F, 2088 s, 4 x</a></td>
+
+ <td class="odd-passed"><a class="summary_link" href="/summary?category=linux32&branch=%3Ctrunk%3E&recentrev=40149:cd083843b67a">3377, 0 F, 1542 s, 1 x</a></td>
+</tr>
+<tr class="even">
+ <td><a href="pypy-c-nojit-40149-cd083843b67a-linux64.tar.bz2">pypy-c-nojit-40149-cd083843b67a-linux64.tar.bz2</a></td>
+ <td>9M</td>
+ <td>2010-12-21</td>
+ <td class="even-passed"><a class="summary_link" href="/summary?category=linux64&branch=%3Ctrunk%3E&recentrev=40149:cd083843b67a">16219, 0 F, 2415 s, 4 x</a></td>
+
+ <td class="even-passed"><a class="summary_link" href="/summary?category=linux64&branch=%3Ctrunk%3E&recentrev=40149:cd083843b67a">3372, 0 F, 1547 s, 1 x</a></td>
+</tr>
+<tr class="odd">
+ <td><a href="pypy-c-stackless-40149-cd083843b67a-linux.tar.bz2">pypy-c-stackless-40149-cd083843b67a-linux.tar.bz2</a></td>
+ <td>10M</td>
+ <td>2010-12-21</td>
+ <td class="odd-passed"><a class="summary_link" href="/summary?category=linux32&branch=%3Ctrunk%3E&recentrev=40149:cd083843b67a">16561, 0 F, 2088 s, 4 x</a></td>
+</tr>
+
+ </tbody>
+</table>
+
+</body>
</html>
More information about the Pypy-commit
mailing list