[pypy-commit] pypy win64-stage1: Merge with default
ctismer
noreply at buildbot.pypy.org
Mon Mar 26 16:13:24 CEST 2012
Author: Christian Tismer <tismer at stackless.com>
Branch: win64-stage1
Changeset: r53987:5e2fda838296
Date: 2012-03-26 16:12 +0200
http://bitbucket.org/pypy/pypy/changeset/5e2fda838296/
Log: Merge with default
diff --git a/pypy/doc/you-want-to-help.rst b/pypy/doc/you-want-to-help.rst
--- a/pypy/doc/you-want-to-help.rst
+++ b/pypy/doc/you-want-to-help.rst
@@ -56,12 +56,23 @@
xxx
-* JIT
+* Just-in-Time Compiler (JIT): `we have a tracing JIT`_ that traces the
+ interpreter written in RPython, rather than the user program that it
+ interprets. As a result it applies to any interpreter, i.e. any
+ language. But getting it to work correctly is not trivial: it
+ requires a small number of precise "hints" and possibly some small
+ refactorings of the interpreter. The JIT itself also has several
+ almost-independent parts: the tracer itself in ``jit/metainterp``, the
+ optimizer in ``jit/metainterp/optimizer`` that optimizes a list of
+ residual operations, and the backend in ``jit/backend/<machine-name>``
+ that turns it into machine code. Writing a new backend is a
+ traditional way to get into the project.
- xxx
+.. _`we have a tracing JIT`: jit/index.html
-* Garbage Collectors: as you can notice, there are no ``Py_INCREF/Py_DECREF``
- equivalents in RPython code. `Garbage collection in PyPy`_ is inserted
+* Garbage Collectors (GC): as you can notice if you are used to CPython's
+ C code, there are no ``Py_INCREF/Py_DECREF`` equivalents in RPython code.
+ `Garbage collection in PyPy`_ is inserted
during translation. Moreover, this is not reference counting; it is a real
GC written as more RPython code. The best one we have so far is in
``rpython/memory/gc/minimark.py``.
diff --git a/pypy/module/__pypy__/__init__.py b/pypy/module/__pypy__/__init__.py
--- a/pypy/module/__pypy__/__init__.py
+++ b/pypy/module/__pypy__/__init__.py
@@ -16,13 +16,15 @@
appleveldefs = {}
interpleveldefs = {}
if sys.platform.startswith("linux"):
+ from pypy.module.__pypy__ import interp_time
interpleveldefs["clock_gettime"] = "interp_time.clock_gettime"
interpleveldefs["clock_getres"] = "interp_time.clock_getres"
for name in [
"CLOCK_REALTIME", "CLOCK_MONOTONIC", "CLOCK_MONOTONIC_RAW",
"CLOCK_PROCESS_CPUTIME_ID", "CLOCK_THREAD_CPUTIME_ID"
]:
- interpleveldefs[name] = "space.wrap(interp_time.%s)" % name
+ if getattr(interp_time, name) is not None:
+ interpleveldefs[name] = "space.wrap(interp_time.%s)" % name
class Module(MixedModule):
diff --git a/pypy/module/__pypy__/interp_time.py b/pypy/module/__pypy__/interp_time.py
--- a/pypy/module/__pypy__/interp_time.py
+++ b/pypy/module/__pypy__/interp_time.py
@@ -1,3 +1,4 @@
+from __future__ import with_statement
import sys
from pypy.interpreter.error import exception_from_errno
diff --git a/pypy/rlib/longlong2float.py b/pypy/rlib/longlong2float.py
--- a/pypy/rlib/longlong2float.py
+++ b/pypy/rlib/longlong2float.py
@@ -6,6 +6,7 @@
in which it does not work.
"""
+from __future__ import with_statement
from pypy.annotation import model as annmodel
from pypy.rlib.rarithmetic import r_int64
from pypy.rpython.lltypesystem import lltype, rffi
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
@@ -58,9 +58,13 @@
binaries = [(pypy_c, rename_pypy_c)]
#
if sys.platform == 'win32':
+ #Don't include a mscvrXX.dll, users should get their own.
+ #Instructions are provided on the website.
+
# Can't rename a DLL: it is always called 'libpypy-c.dll'
+
for extra in ['libpypy-c.dll',
- 'libexpat.dll', 'sqlite3.dll', 'msvcr100.dll',
+ 'libexpat.dll', 'sqlite3.dll',
'libeay32.dll', 'ssleay32.dll']:
p = pypy_c.dirpath().join(extra)
if not p.check():
More information about the pypy-commit
mailing list