Author: Maciej Fijalkowski <fij...@gmail.com>
Branch: single-run
Changeset: r238:2e71651d7222
Date: 2014-03-24 21:25 +0200
http://bitbucket.org/pypy/benchmarks/changeset/2e71651d7222/

Log:    Backed out changeset 7180631ee8db

diff --git a/lib/pypy/include/pypy_decl.h b/lib/pypy/include/pypy_decl.h
--- a/lib/pypy/include/pypy_decl.h
+++ b/lib/pypy/include/pypy_decl.h
@@ -513,17 +513,17 @@
 PyAPI_DATA(PyTypeObject) PySlice_Type;
 PyAPI_DATA(PyObject*) PyExc_IOError;
 PyAPI_DATA(PyObject*) PyExc_RuntimeError;
-PyAPI_DATA(PyObject*) PyExc_AttributeError;
+PyAPI_DATA(PyObject*) PyExc_SystemError;
 PyAPI_DATA(PyObject*) PyExc_NameError;
 PyAPI_DATA(PyObject*) PyExc_MemoryError;
 PyAPI_DATA(PyObject*) PyExc_SystemExit;
 PyAPI_DATA(PyTypeObject) PyModule_Type;
 PyAPI_DATA(PyTypeObject) PyBaseObject_Type;
-PyAPI_DATA(PyObject*) PyExc_FloatingPointError;
-PyAPI_DATA(PyObject*) PyExc_UnicodeDecodeError;
+PyAPI_DATA(PyObject*) PyExc_UnicodeTranslateError;
+PyAPI_DATA(PyObject*) PyExc_UnicodeWarning;
 PyAPI_DATA(PyObject*) PyExc_Exception;
 PyAPI_DATA(PyObject*) PyExc_TypeError;
-PyAPI_DATA(PyObject*) PyExc_SystemError;
+PyAPI_DATA(PyObject*) PyExc_AttributeError;
 PyAPI_DATA(PyObject*) PyExc_ReferenceError;
 PyAPI_DATA(PyTypeObject) PyNotImplemented_Type;
 PyAPI_DATA(PyTypeObject) PySet_Type;
@@ -555,14 +555,14 @@
 PyAPI_DATA(PyObject*) PyExc_BytesWarning;
 PyAPI_DATA(PyObject*) PyExc_DeprecationWarning;
 PyAPI_DATA(PyObject*) PyExc_SyntaxError;
-PyAPI_DATA(PyObject*) PyExc_UnicodeWarning;
+PyAPI_DATA(PyObject*) PyExc_UnicodeDecodeError;
 PyAPI_DATA(PyObject*) PyExc_ZeroDivisionError;
 PyAPI_DATA(PyTypeObject) PyFloat_Type;
+PyAPI_DATA(PyTypeObject) PyBaseString_Type;
+PyAPI_DATA(PyObject) _Py_NoneStruct;
+PyAPI_DATA(PyObject*) PyExc_GeneratorExit;
+PyAPI_DATA(PyObject*) PyExc_AssertionError;
 PyAPI_DATA(PyObject*) PyExc_RuntimeWarning;
-PyAPI_DATA(PyObject) _Py_NoneStruct;
-PyAPI_DATA(PyObject*) PyExc_IndentationError;
-PyAPI_DATA(PyObject*) PyExc_AssertionError;
-PyAPI_DATA(PyObject*) PyExc_GeneratorExit;
 PyAPI_DATA(PyObject*) PyExc_ImportWarning;
 PyAPI_DATA(PyObject*) PyExc_UnicodeEncodeError;
 PyAPI_DATA(PyTypeObject) PyInt_Type;
@@ -571,8 +571,8 @@
 PyAPI_DATA(PyObject*) PyExc_OSError;
 PyAPI_DATA(PyObject*) PyExc_KeyError;
 PyAPI_DATA(PyObject*) PyExc_SyntaxWarning;
-PyAPI_DATA(PyTypeObject) PyBaseString_Type;
 PyAPI_DATA(PyObject*) PyExc_StopIteration;
+PyAPI_DATA(PyObject*) PyExc_IndentationError;
 PyAPI_DATA(PyObject*) PyExc_NotImplementedError;
 PyAPI_DATA(PyObject*) PyExc_ImportError;
 PyAPI_DATA(PyDateTime_CAPI*) PyDateTimeAPI;
@@ -582,7 +582,7 @@
 PyAPI_DATA(PyTypeObject) PyClass_Type;
 PyAPI_DATA(PyTypeObject) PyType_Type;
 PyAPI_DATA(PyTypeObject) PyMemoryView_Type;
-PyAPI_DATA(PyObject*) PyExc_UnicodeTranslateError;
+PyAPI_DATA(PyObject*) PyExc_FloatingPointError;
 PyAPI_DATA(PyObject*) PyExc_LookupError;
 PyAPI_DATA(PyObject*) PyExc_EOFError;
 PyAPI_DATA(PyObject*) PyExc_BufferError;
diff --git a/lib/pypy/rpython/translator/c/src/signals.o 
b/lib/pypy/rpython/translator/c/src/signals.o
index 
08b3649ae1483b939bb048d11ecb051f62ffe15d..166016f96874014a34535131bd7cfed3aabe09eb
GIT binary patch

[cut]

diff --git a/lib/pypy/rpython/translator/c/src/stacklet/stacklet.o 
b/lib/pypy/rpython/translator/c/src/stacklet/stacklet.o
index 
6dba4dd0d4a6480683502d1568c529dbaecf9174..e42497399f1f975b42e62fbf236498014c21f654
GIT binary patch

[cut]

diff --git a/lib/pypy/rpython/translator/c/src/thread.o 
b/lib/pypy/rpython/translator/c/src/thread.o
index 
06072cecd32b5f5afce76655ad919f8ff637714c..9b7dcc7cb6e9c6eb94216acf121fbcd5b32297e5
GIT binary patch

[cut]

diff --git a/multithread/multithread-richards.py 
b/multithread/multithread-richards.py
deleted file mode 100755
--- a/multithread/multithread-richards.py
+++ /dev/null
@@ -1,458 +0,0 @@
-# based on a Java version:
-#  Based on original version written in BCPL by Dr Martin Richards
-#  in 1981 at Cambridge University Computer Laboratory, England
-#  and a C++ version derived from a Smalltalk version written by
-#  L Peter Deutsch.
-#  Java version:  Copyright (C) 1995 Sun Microsystems, Inc.
-#  Translation from C++, Mario Wolczko
-#  Outer loop added by Alex Jacoby
-
-import thread, os
-#from __pypy__.thread import atomic
-
-
-# Task IDs
-I_IDLE = 1
-I_WORK = 2
-I_HANDLERA = 3
-I_HANDLERB = 4
-I_DEVA = 5
-I_DEVB = 6
-
-# Packet types
-K_DEV = 1000
-K_WORK = 1001
-
-# Packet
-
-BUFSIZE = 4
-
-BUFSIZE_RANGE = range(BUFSIZE)
-
-class Packet(object):
-    def __init__(self,l,i,k):
-        self.link = l
-        self.ident = i
-        self.kind = k
-        self.datum = 0
-        self.data = [0] * BUFSIZE
-
-    def append_to(self,lst):
-        self.link = None
-        if lst is None:
-            return self
-        else:
-            p = lst
-            next = p.link
-            while next is not None:
-                p = next
-                next = p.link
-            p.link = self
-            return lst
-
-# Task Records
-
-class TaskRec(object):
-    pass
-
-class DeviceTaskRec(TaskRec):
-    def __init__(self):
-        self.pending = None
-
-class IdleTaskRec(TaskRec):
-    def __init__(self):
-        self.control = 1
-        self.count = 10000
-
-class HandlerTaskRec(TaskRec):
-    def __init__(self):
-        self.work_in = None
-        self.device_in = None
-
-    def workInAdd(self,p):
-        self.work_in = p.append_to(self.work_in)
-        return self.work_in
-
-    def deviceInAdd(self,p):
-        self.device_in = p.append_to(self.device_in)
-        return self.device_in
-
-class WorkerTaskRec(TaskRec):
-    def __init__(self):
-        self.destination = I_HANDLERA
-        self.count = 0
-# Task
-
-class TaskState(object):
-    def __init__(self):
-        self.packet_pending = True
-        self.task_waiting = False
-        self.task_holding = False
-
-    def packetPending(self):
-        self.packet_pending = True
-        self.task_waiting = False
-        self.task_holding = False
-        return self
-
-    def waiting(self):
-        self.packet_pending = False
-        self.task_waiting = True
-        self.task_holding = False
-        return self
-
-    def running(self):
-        self.packet_pending = False
-        self.task_waiting = False
-        self.task_holding = False
-        return self
-        
-    def waitingWithPacket(self):
-        self.packet_pending = True
-        self.task_waiting = True
-        self.task_holding = False
-        return self
-        
-    def isPacketPending(self):
-        return self.packet_pending
-
-    def isTaskWaiting(self):
-        return self.task_waiting
-
-    def isTaskHolding(self):
-        return self.task_holding
-
-    def isTaskHoldingOrWaiting(self):
-        return self.task_holding or (not self.packet_pending and 
self.task_waiting)
-
-    def isWaitingWithPacket(self):
-        return self.packet_pending and self.task_waiting and not 
self.task_holding
-
-
-
-
-
-tracing = False
-layout = 0
-
-def trace(a):
-    global layout
-    layout -= 1
-    if layout <= 0:
-        print
-        layout = 50
-    print a,
-
-
-TASKTABSIZE = 10
-
-class TaskWorkArea(object):
-    def __init__(self):
-        self.taskTab = [None] * TASKTABSIZE
-
-        self.taskList = None
-
-        self.holdCount = 0
-        self.qpktCount = 0
-
-class Task(TaskState):
-
-
-    def __init__(self,i,p,w,initialState,r, taskWorkArea):
-        self.taskWorkArea = taskWorkArea
-        self.link = taskWorkArea.taskList
-        self.ident = i
-        self.priority = p
-        self.input = w
-
-        self.packet_pending = initialState.isPacketPending()
-        self.task_waiting = initialState.isTaskWaiting()
-        self.task_holding = initialState.isTaskHolding()
-
-        self.handle = r
-
-        taskWorkArea.taskList = self
-        taskWorkArea.taskTab[i] = self
-
-    def fn(self,pkt,r):
-        raise NotImplementedError
-
-
-    def addPacket(self,p,old):
-        if self.input is None:
-            self.input = p
-            self.packet_pending = True
-            if self.priority > old.priority:
-                return self
-        else:
-            p.append_to(self.input)
-        return old
-
-
-    def runTask(self):
-        if self.isWaitingWithPacket():
-            msg = self.input
-            self.input = msg.link
-            if self.input is None:
-                self.running()
-            else:
-                self.packetPending()
-        else:
-            msg = None
-
-        return self.fn(msg,self.handle)
-
-
-    def waitTask(self):
-        self.task_waiting = True
-        return self
-
-
-    def hold(self):
-        self.taskWorkArea.holdCount += 1
-        self.task_holding = True
-        return self.link
-
-
-    def release(self,i):
-        t = self.findtcb(i)
-        t.task_holding = False
-        if t.priority > self.priority:
-            return t
-        else:
-            return self
-
-
-    def qpkt(self,pkt):
-        t = self.findtcb(pkt.ident)
-        self.taskWorkArea.qpktCount += 1
-        pkt.link = None
-        pkt.ident = self.ident
-        return t.addPacket(pkt,self)
-
-
-    def findtcb(self,id):
-        t = self.taskWorkArea.taskTab[id]
-        if t is None:
-            raise Exception("Bad task id %d" % id)
-        return t
-            
-
-# DeviceTask
-
-
-class DeviceTask(Task):
-    def __init__(self,i,p,w,s,r, taskWorkArea):
-        Task.__init__(self,i,p,w,s,r, taskWorkArea)
-
-    def fn(self,pkt,r):
-        d = r
-        assert isinstance(d, DeviceTaskRec)
-        if pkt is None:
-            pkt = d.pending
-            if pkt is None:
-                return self.waitTask()
-            else:
-                d.pending = None
-                return self.qpkt(pkt)
-        else:
-            d.pending = pkt
-            if tracing: trace(pkt.datum)
-            return self.hold()
-
-
-
-class HandlerTask(Task):
-    def __init__(self,i,p,w,s,r, taskWorkArea):
-        Task.__init__(self,i,p,w,s,r, taskWorkArea)
-
-    def fn(self,pkt,r):
-        h = r
-        assert isinstance(h, HandlerTaskRec)
-        if pkt is not None:
-            if pkt.kind == K_WORK:
-                h.workInAdd(pkt)
-            else:
-                h.deviceInAdd(pkt)
-        work = h.work_in
-        if work is None:
-            return self.waitTask()
-        count = work.datum
-        if count >= BUFSIZE:
-            h.work_in = work.link
-            return self.qpkt(work)
-
-        dev = h.device_in
-        if dev is None:
-            return self.waitTask()
-
-        h.device_in = dev.link
-        dev.datum = work.data[count]
-        work.datum = count + 1
-        return self.qpkt(dev)
-
-# IdleTask
-
-
-class IdleTask(Task):
-    def __init__(self,i,p,w,s,r, taskWorkArea):
-        Task.__init__(self,i,0,None,s,r, taskWorkArea)
-
-    def fn(self,pkt,r):
-        i = r
-        assert isinstance(i, IdleTaskRec)
-        i.count -= 1
-        if i.count == 0:
-            return self.hold()
-        elif i.control & 1 == 0:
-            i.control /= 2
-            return self.release(I_DEVA)
-        else:
-            i.control = i.control/2 ^ 0xd008
-            return self.release(I_DEVB)
-            
-
-# WorkTask
-
-
-A = ord('A')
-
-class WorkTask(Task):
-    def __init__(self,i,p,w,s,r, taskWorkArea):
-        Task.__init__(self,i,p,w,s,r, taskWorkArea)
-
-    def fn(self,pkt,r):
-        w = r
-        assert isinstance(w, WorkerTaskRec)
-        if pkt is None:
-            return self.waitTask()
-
-        if w.destination == I_HANDLERA:
-            dest = I_HANDLERB
-        else:
-            dest = I_HANDLERA
-
-        w.destination = dest
-        pkt.ident = dest
-        pkt.datum = 0
-
-        for i in BUFSIZE_RANGE: # xrange(BUFSIZE)
-            w.count += 1
-            if w.count > 26:
-                w.count = 1
-            pkt.data[i] = A + w.count - 1
-
-        return self.qpkt(pkt)
-
-try:
-    from time import time
-except ImportError:
-    def time():
-        return 0
-
-
-def schedule(taskWorkArea):
-    t = taskWorkArea.taskList
-    while t is not None:
-        pkt = None
-
-        if tracing:
-            print "tcb =",t.ident
-
-        if t.isTaskHoldingOrWaiting():
-            t = t.link
-        else:
-            if tracing: trace(chr(ord("0")+t.ident))
-            t = t.runTask()
-
-class Richards(object):
-
-    def __init__(self):
-        self.finished_lock = thread.allocate_lock()
-        self.finished_lock.acquire()
-        self.taskWorkArea = TaskWorkArea()
-
-    def run_and_unlock(self, to_do):
-        os.write(1, 'running...\n')
-        iterations = 0
-        self.result = True
-        while 1:
-            try:
-                to_do.pop()
-            except IndexError:
-                break
-            iterations += 1
-            self.result = self.run(self.taskWorkArea)
-        os.write(1, 'done, iterations=%d, result=%r\n' % (iterations, 
self.result))
-        self.finished_lock.release()
-
-    def run(self, taskWorkArea):
-        #with atomic:
-        if 1:
-            taskWorkArea.holdCount = 0
-            taskWorkArea.qpktCount = 0
-
-            IdleTask(I_IDLE, 1, 10000, TaskState().running(), IdleTaskRec(),
-                     taskWorkArea)
-
-            wkq = Packet(None, 0, K_WORK)
-            wkq = Packet(wkq , 0, K_WORK)
-            WorkTask(I_WORK, 1000, wkq, TaskState().waitingWithPacket(), 
WorkerTaskRec(),
-                     taskWorkArea)
-
-            wkq = Packet(None, I_DEVA, K_DEV)
-            wkq = Packet(wkq , I_DEVA, K_DEV)
-            wkq = Packet(wkq , I_DEVA, K_DEV)
-            HandlerTask(I_HANDLERA, 2000, wkq, 
TaskState().waitingWithPacket(), HandlerTaskRec(),
-                        taskWorkArea)
-
-            wkq = Packet(None, I_DEVB, K_DEV)
-            wkq = Packet(wkq , I_DEVB, K_DEV)
-            wkq = Packet(wkq , I_DEVB, K_DEV)
-            HandlerTask(I_HANDLERB, 3000, wkq, 
TaskState().waitingWithPacket(), HandlerTaskRec(),
-                        taskWorkArea)
-
-            wkq = None;
-            DeviceTask(I_DEVA, 4000, wkq, TaskState().waiting(), 
DeviceTaskRec(),
-                       taskWorkArea)
-            DeviceTask(I_DEVB, 5000, wkq, TaskState().waiting(), 
DeviceTaskRec(),
-                       taskWorkArea)
-            
-            schedule(taskWorkArea)
-
-            if taskWorkArea.holdCount == 9297 and taskWorkArea.qpktCount == 
23246:
-                pass
-            else:
-                return False
-
-        return True
-
-def entry_point(iterations, NUM_THREADS):
-    rlist = [Richards() for i in range(NUM_THREADS)]
-    to_do = [None] * iterations
-    startTime = time()
-    for r in rlist:
-        thread.start_new_thread(r.run_and_unlock, (to_do,))
-    for r in rlist:
-        r.finished_lock.acquire()
-    endTime = time()
-    assert to_do == []
-    result = all(r.result for r in rlist)
-    return result, startTime, endTime
-
-def main(entry_point = entry_point, iterations = 10, threads = 4):
-    print "Richards benchmark (Python) starting... [%r]" % entry_point
-    result, startTime, endTime = entry_point(iterations, threads)
-    if not result:
-        print "Incorrect results!"
-        return -1
-    print "finished."
-    total_s = endTime - startTime
-    print "Total time for %d iterations: %.2f secs" %(iterations,total_s)
-    print "Average time per iteration: %.2f ms" %(total_s*1000/iterations)
-    return 42
-
-if __name__ == '__main__':
-    import sys
-    main(iterations = int(sys.argv[1]),
-         threads = int(sys.argv[2]))
diff --git a/unladen_swallow/performance/richards.py 
b/unladen_swallow/performance/richards.py
--- a/unladen_swallow/performance/richards.py
+++ b/unladen_swallow/performance/richards.py
@@ -305,7 +305,7 @@
             i.control /= 2
             return self.release(I_DEVA)
         else:
-            i.control = (i.control/2) ^ 0xd008
+            i.control = i.control/2 ^ 0xd008
             return self.release(I_DEVB)
             
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to