Author: Carl Friedrich Bolz <cfb...@gmx.de> Branch: statistics-maps Changeset: r82458:6ed007073e26 Date: 2016-02-23 18:32 +0100 http://bitbucket.org/pypy/pypy/changeset/6ed007073e26/
Log: update contributor list diff --git a/LICENSE b/LICENSE --- a/LICENSE +++ b/LICENSE @@ -41,29 +41,29 @@ Amaury Forgeot d'Arc Antonio Cuni Samuele Pedroni + Matti Picus Alex Gaynor Brian Kearns - Matti Picus Philip Jenvey Michael Hudson + Ronan Lamy David Schneider + Manuel Jacob Holger Krekel Christian Tismer Hakan Ardo - Manuel Jacob - Ronan Lamy Benjamin Peterson + Richard Plangger Anders Chrigstrom Eric van Riet Paap Wim Lavrijsen - Richard Plangger Richard Emslie Alexander Schremmer Dan Villiom Podlaski Christiansen + Remi Meier Lukas Diekmann Sven Hager Anders Lehmann - Remi Meier Aurelien Campeas Niklaus Haldimann Camillo Bruni @@ -72,8 +72,8 @@ Romain Guillebert Leonardo Santagada Seo Sanghyeon + Ronny Pfannschmidt Justin Peel - Ronny Pfannschmidt David Edelsohn Anders Hammarquist Jakub Gustak @@ -95,6 +95,7 @@ Tyler Wade Michael Foord Stephan Diehl + Vincent Legoll Stefan Schwarzer Valentino Volonghi Tomek Meka @@ -105,9 +106,9 @@ Jean-Paul Calderone Timo Paulssen Squeaky + Marius Gedminas Alexandre Fayolle Simon Burton - Marius Gedminas Martin Matusiak Konstantin Lopuhin Wenzhu Man @@ -116,16 +117,20 @@ Ivan Sichmann Freitas Greg Price Dario Bertini + Stefano Rivera Mark Pearse Simon Cross Andreas Stührk - Stefano Rivera + Edd Barrett Jean-Philippe St. Pierre Guido van Rossum Pavel Vinogradov + Jeremy Thurgood Paweł Piotr Przeradowski + Spenser Bauman Paul deGrandis Ilya Osadchiy + marky1991 Tobias Oberstein Adrian Kuhn Boris Feigin @@ -134,14 +139,12 @@ Georg Brandl Bert Freudenberg Stian Andreassen - Edd Barrett + Tobias Pape Wanja Saatkamp Gerald Klix Mike Blume - Tobias Pape Oscar Nierstrasz Stefan H. Muller - Jeremy Thurgood Rami Chowdhury Eugene Oden Henry Mason @@ -153,6 +156,8 @@ Lukas Renggli Guenter Jantzen Ned Batchelder + Tim Felgentreff + Anton Gulenko Amit Regmi Ben Young Nicolas Chauvat @@ -162,12 +167,12 @@ Nicholas Riley Jason Chu Igor Trindade Oliveira - Tim Felgentreff + Yichao Yu Rocco Moretti Gintautas Miliauskas Michael Twomey Lucian Branescu Mihaila - Yichao Yu + Devin Jeanpierre Gabriel Lavoie Olivier Dormond Jared Grubb @@ -191,33 +196,33 @@ Stanislaw Halik Mikael Schönenberg Berkin Ilbeyi - Elmo M?ntynen + Elmo Mäntynen + Faye Zhao Jonathan David Riehl Anders Qvist Corbin Simpson Chirag Jadwani Beatrice During Alex Perry - Vincent Legoll + Vaibhav Sood Alan McIntyre - Spenser Bauman + William Leslie Alexander Sedov Attila Gobi + Jasper.Schulz Christopher Pope - Devin Jeanpierre - Vaibhav Sood Christian Tismer Marc Abramowitz Dan Stromberg Arjun Naik Valentina Mukhamedzhanova Stefano Parmesan + Mark Young Alexis Daboville Jens-Uwe Mager Carl Meyer Karl Ramm Pieter Zieschang - Anton Gulenko Gabriel Lukas Vacek Andrew Dalke @@ -225,6 +230,7 @@ Jakub Stasiak Nathan Taylor Vladimir Kryachko + Omer Katz Jacek Generowicz Alejandro J. Cura Jacob Oscarson @@ -239,6 +245,7 @@ Lars Wassermann Philipp Rustemeuer Henrik Vendelbo + Richard Lancaster Dan Buch Miguel de Val Borro Artur Lisiecki @@ -250,18 +257,18 @@ Tomo Cocoa Kim Jin Su Toni Mattis + Amber Brown Lucas Stadler Julian Berman Markus Holtermann roberto@goyle Yury V. Zaytsev Anna Katrina Dominguez - William Leslie Bobby Impollonia - Faye Zhao t...@eistee.fritz.box Andrew Thompson Yusei Tahara + Aaron Tubbs Ben Darnell Roberto De Ioris Juan Francisco Cantero Hurtado @@ -273,6 +280,7 @@ Christopher Armstrong Michael Hudson-Doyle Anders Sigfridsson + Nikolay Zinov Yasir Suhail Jason Michalski rafalgalczyn...@gmail.com @@ -282,6 +290,7 @@ Gustavo Niemeyer Stephan Busemann Rafał Gałczyński + Matt Bogosian Christian Muirhead Berker Peksag James Lan @@ -316,9 +325,9 @@ Stefan Marr jiaaro Mads Kiilerich - Richard Lancaster opassembler.py Antony Lee + Jason Madden Yaroslav Fedevych Jim Hunziker Markus Unterwaditzer @@ -327,6 +336,7 @@ squeaky Zearin soareschen + Jonas Pfannschmidt Kurt Griffiths Mike Bayer Matthew Miller diff --git a/pypy/doc/tool/makecontributor.py b/pypy/doc/tool/makecontributor.py --- a/pypy/doc/tool/makecontributor.py +++ b/pypy/doc/tool/makecontributor.py @@ -72,6 +72,7 @@ 'Anton Gulenko':['anton gulenko', 'anton_gulenko'], 'Richard Lancaster':['richardlancaster'], 'William Leslie':['William ML Leslie'], + 'Spenser Bauman':['Spenser Andrew Bauman'], } alias_map = {} diff --git a/pypy/objspace/std/mapdict.py b/pypy/objspace/std/mapdict.py --- a/pypy/objspace/std/mapdict.py +++ b/pypy/objspace/std/mapdict.py @@ -159,12 +159,12 @@ if cls is W_IntObject: # this means that the class stored in the storage is an # IntMutableCell - jit.jit_debug("map: known class int", objectmodel.compute_unique_id(attr)) + jit.jit_debug("map: read known class int", objectmodel.compute_unique_id(attr)) assert isinstance(result, IntMutableCell) return W_IntObject(result.intvalue) if cls is W_FloatObject: # ditto - jit.jit_debug("map: known class float", objectmodel.compute_unique_id(attr)) + jit.jit_debug("map: read known class float", objectmodel.compute_unique_id(attr)) assert isinstance(result, FloatMutableCell) return W_FloatObject(result.floatvalue) jit.jit_debug("map: recorded exact class", objectmodel.compute_unique_id(attr)) diff --git a/pypy/tool/mapstatsdot.py b/pypy/tool/mapstatsdot.py --- a/pypy/tool/mapstatsdot.py +++ b/pypy/tool/mapstatsdot.py @@ -1,5 +1,6 @@ #! /usr/bin/env python import sys +sys.setrecursionlimit(100000) class Getattrwrap(object): def __init__(self, obj): @@ -61,7 +62,7 @@ seen.add(self) if hasattr(self, 'back'): if self not in self.back.transitions: - output.edge(self.back.id, self.id, dir="none") + output.edge(self.back.id, self.id, dir="back") self.back.dot(output, seen) if not self.instances: return @@ -70,7 +71,10 @@ fillcolor=self.getfillcolor()) for next, count in self.transitions.iteritems(): next.dot(output, seen) - output.edge(self.id, next.id, label=str(count)) + args = {} + if getattr(next, 'back', None) is not self: + args = dict(style="dotted") + output.edge(self.id, next.id, label=str(count), **args) return node def getfillcolor(self): @@ -80,13 +84,22 @@ class Terminator(Map): + def __repr__(self): + return "Terminator(%s)" % (self.w_cls) def fill(self, content): Map.fill(self, content) self.w_cls = content.w_cls + self.w_cls_module = content.w_cls_module def getlabel(self): + if self.w_cls_module is not None: + return self.w_cls + "\\l" + self.w_cls_module return self.w_cls + def get_chain(self): + return [self] + + class Attribute(Map): def fill(self, content): Map.fill(self, content) @@ -128,6 +141,14 @@ assert int(index) == self.nametype self.reads = count + def get_chain(self): + l = [] + while isinstance(self, Attribute): + l.append((self.name, self.nametype)) + self = self.back + l.reverse() + return self.get_chain() + l + def getlabel(self): if self.nametype == 0: name = self.name @@ -143,7 +164,7 @@ for write, count in self.writes.items(): label.append(" %s: %s" % (write, count)) if self.number_unnecessary_writes and self.constant: - assert len(self.writes) == 1 + assert len(self.writes) <= 1 label[-1] += " (%s unnecessary)" % (self.number_unnecessary_writes, ) if not self.ever_mutated: label.append('immutable') @@ -193,7 +214,21 @@ goodattrs = 0 unnecessary = 0 + seen_sorted_chains = set() + duplicate_orders = 0 + duplicate_order_reads = 0 + all_instances = 0 + for mp in allmaps: + chain = mp.get_chain() + chain.sort() + if tuple(chain) in seen_sorted_chains: + duplicate_orders += 1 + duplicate_order_reads += mp.reads + print >> sys.stderr, chain, mp.instances + else: + seen_sorted_chains.add(tuple(chain)) + if not isinstance(mp, Attribute): continue totalwrites += sum(mp.writes.values()) @@ -210,6 +245,8 @@ print >> sys.stderr, "reads:", totalreads, goodreads, float(goodreads) / totalreads print >> sys.stderr, "writes:", totalwrites, goodwrites, float(goodwrites) / totalwrites print >> sys.stderr, "unnecessary writes:", unnecessary, totalwrites, float(unnecessary) / totalwrites + print >> sys.stderr, "wrongly ordered:", duplicate_orders, totalattrs, float(duplicate_orders) / totalattrs + print >> sys.stderr, "wrongly ordered reads:", duplicate_order_reads, totalreads, float(duplicate_order_reads) / totalreads print >> sys.stderr, "attrs:", totalattrs, goodattrs, float(goodattrs) / totalattrs print >> sys.stderr, "reads / writes", float(totalreads) / totalwrites diff --git a/rpython/jit/metainterp/logger.py b/rpython/jit/metainterp/logger.py --- a/rpython/jit/metainterp/logger.py +++ b/rpython/jit/metainterp/logger.py @@ -6,6 +6,7 @@ from rpython.rlib.rarithmetic import r_uint from rpython.rtyper.lltypesystem import lltype, llmemory, rffi +JIT_LOG_VERSION = 1.0 class Logger(object): def __init__(self, metainterp_sd, guard_number=False): diff --git a/rpython/jit/metainterp/warmspot.py b/rpython/jit/metainterp/warmspot.py --- a/rpython/jit/metainterp/warmspot.py +++ b/rpython/jit/metainterp/warmspot.py @@ -1030,7 +1030,11 @@ checkgraph(origportalgraph) def add_finish(self): + from rpython.jit.metainterp.logger import JIT_LOG_VERSION def finish(): + debug_start("jit-log-opt-version") + debug_print(JIT_LOG_VERSION) + debug_stop("jit-log-opt-version") if self.metainterp_sd.profiler.initialized: self.metainterp_sd.profiler.finish() self.metainterp_sd.cpu.finish_once() _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit