From tbaldridge at gmail.com Mon Dec 3 19:30:32 2018 From: tbaldridge at gmail.com (Timothy Baldridge) Date: Mon, 3 Dec 2018 17:30:32 -0700 Subject: [pypy-dev] no list() support for Message-ID: I have the following code in my interpreter, and I'm getting an error message I haven't seen before: @specialize.call_location() def assoc(self, *kws): new_dict = {} shape = self.get_shape() for k in shape.attr_list(): new_dict[k] = shape.getter_for(k).get_value(self) for idx in unrolling_iterable(range(0, len(kws), 2)): new_dict[kws[idx]] = kws[idx + 1] return DictStruct(new_dict) It's not efficient, but it's fairly simple, we allow for something like struct.assoc(k, v, k2, v2). Specialized by call location, so I assume the *kws size is known. The unrolling_iterable should then give us constant lookup on the input tuple. However I get this error during translation: [translation:ERROR] TyperError: no list() support for .. (rpython.rlib.unroll:27)unrolling_iterable.__init__ .. block at 6[self_0...] with 1 exits .. v134 = simple_call((type list), iterable_0) [translation] start debugger... > /home/tbaldrid/oss/pypy/rpython/rtyper/rmodel.py(176)rtype_bltn_list() -> raise TyperError('no list() support for %r' % self) I've never seen this error before...what should I be doing differently? Thanks! Timothy Baldridge -------------- next part -------------- An HTML attachment was scrubbed... URL: From armin.rigo at gmail.com Wed Dec 5 02:17:48 2018 From: armin.rigo at gmail.com (Armin Rigo) Date: Wed, 5 Dec 2018 09:17:48 +0200 Subject: [pypy-dev] no list() support for In-Reply-To: References: Message-ID: Hi Timothy, On Tue, 4 Dec 2018 at 02:31, Timothy Baldridge wrote: > I have the following code in my interpreter, and I'm getting an error message I haven't seen before: > > @specialize.call_location() > def assoc(self, *kws): > (...) > for idx in unrolling_iterable(range(0, len(kws), 2)): The problem might be that the call to unrolling_iterable() should not be seen in RPython code, as far as I know. It should only occur outside compiled functions. It might be possible to rewrite your example to do that but it's not completely obvious how. Here's how I would do it instead. Use the fact that any function with ``*args`` is automatically specialized based on the number of arguments (no @specialize needed): def assoc(self, *kws): new_dict = {} shape = self.get_shape() for k in shape.attr_list(): new_dict[k] = shape.getter_for(k).get_value(self) _turn_to_dict(new_dict, kws) return DictStruct(new_dict) def _turn_to_dict(new_dict, *kws): if not kws: return # done new_dict[kws[0]] = kws[1] _turn_to_dict(new_dict, *kws[2:]) This looks like a recursive call, but it isn't: the function "_turn_to_dict_6" calls "_turn_to_dict_4", which calls "_turn_to_dict_2", etc. And at each level the tuple "kws" is replaced with individual arguments: nobody is actually making and inspecting any tuple at runtime. Most or all of the levels of calls are inlined because each function is small enough. A bient?t, Armin. From tbaldridge at gmail.com Thu Dec 6 19:07:01 2018 From: tbaldridge at gmail.com (Timothy Baldridge) Date: Thu, 6 Dec 2018 17:07:01 -0700 Subject: [pypy-dev] Running a JIT in a Python interpreter Message-ID: I'm debugging a JIT that's aborting during tracing for some strange reason. I remember several years ago someone here pointed me to a file in the code repo that showed how to run a RPython JIT in interpreted mode, so you can place a breakpoint in the jit hooks. I remember this being a great help last time I had this problem. Does anyone remember where that code is? Thanks! Timothy -------------- next part -------------- An HTML attachment was scrubbed... URL: From tbaldridge at gmail.com Thu Dec 6 19:08:58 2018 From: tbaldridge at gmail.com (Timothy Baldridge) Date: Thu, 6 Dec 2018 17:08:58 -0700 Subject: [pypy-dev] Running a JIT in a Python interpreter In-Reply-To: References: Message-ID: Ah! Found it in the rtyper test code. Timothy On Thu, Dec 6, 2018 at 5:07 PM Timothy Baldridge wrote: > I'm debugging a JIT that's aborting during tracing for some strange > reason. I remember several years ago someone here pointed me to a file in > the code repo that showed how to run a RPython JIT in interpreted mode, so > you can place a breakpoint in the jit hooks. I remember this being a great > help last time I had this problem. Does anyone remember where that code is? > > Thanks! > > Timothy > -- ?One of the main causes of the fall of the Roman Empire was that?lacking zero?they had no way to indicate successful termination of their C programs.? (Robert Firth) -------------- next part -------------- An HTML attachment was scrubbed... URL: From cfbolz at gmx.de Fri Dec 7 03:23:06 2018 From: cfbolz at gmx.de (Carl Friedrich Bolz-Tereick) Date: Fri, 7 Dec 2018 09:23:06 +0100 Subject: [pypy-dev] Running a JIT in a Python interpreter In-Reply-To: References: Message-ID: Hi Timothy, that code is always super messy, but I've also been using it in various smaller interpreters (PyPy is too slow to translate to have it be useful). E.g. here is what Pycket has: https://github.com/pycket/pycket/blob/master/pycket/test/jit.py Cheers, Carl Friedrich On 07/12/2018 01:07, Timothy Baldridge wrote: > I'm debugging a JIT that's aborting during tracing for some strange > reason. I remember several years ago someone here pointed me to a file > in the code repo that showed how to run a RPython JIT in interpreted > mode, so you can place a breakpoint in the jit hooks. I remember this > being a great help last time I had this problem. Does anyone remember > where that code is? > > Thanks! > > Timothy > > _______________________________________________ > pypy-dev mailing list > pypy-dev at python.org > https://mail.python.org/mailman/listinfo/pypy-dev > From edd at theunixzoo.co.uk Tue Dec 11 09:15:31 2018 From: edd at theunixzoo.co.uk (Edd Barrett) Date: Tue, 11 Dec 2018 14:15:31 +0000 Subject: [pypy-dev] Call for Abstracts: Modern Language Runtimes, Ecosystems, and VMs (MoreVMs) 2019 Message-ID: <20181211141531.GA31474@fremen.lan> ============================================================================ Call for Extended Abstracts: MoreVMs'19 3rd Workshop on Modern Language Runtimes, and Ecosystems Co-located with '19 April 1st or 2nd, 2019, Genova, Italy https://2019.programming-conference.org/track/MoreVMs-2019 ============================================================================ Following two previous successful editions, the MoreVMs'19 workshop aims to bring together industrial and academic programmers to discuss the design, implementation, and usage of modern languages and runtimes. This includes aspects such as reuse of language runtimes, modular implementation, language design and compilation strategies. By bringing together both researchers and practitioners, the workshop aims to enable a diverse discussion on how languages and runtimes are currently being utilized, and where they need to improve further. Relevant topics include, but are definitely not limited to, the following: - Extensible VM design (compiler- or interpreter-based VMs) - Reusable components (e.g. interpreters, garbage collectors, ...) - Static and dynamic compilation techniques - Techniques for targeting high-level languages such as JavaScript - Interoperability between languages - Tooling support (e.g. debugging, profiling, etc.) - Programming language development environments - Case studies of existing language implementation approaches - Language implementation challenges and trade-offs - Surveys and usage reports to understand usage in the wild - Ideas for more predictable performance - Ideas for how VMs could take advantage of new hardware features - Ideas for how we should build languages in the future Workshop Format and Submissions ------------------------------- We welcome presentation proposals in the form of extended abstracts (1 to 2 pages long) discussing experiences, work-in-progress, as well as future visions, from either an academic or industrial perspective. The extended abstracts, and if the speakers wish, their slides, will be published on the workshop's web site. Alternatively, the abstracts can be published as part of the companion of '19 in the ACM DL. Publication in the ACM DL is conditional on the acceptance by the program committee. Please note that MoreVMs'19 is organized as an academic workshop, and as such, speakers will be required to register for the workshop. Author Instructions ------------------- Submissions should use the ACM Conference 'acmart' Format with the 'sigconf' option and with a font size of 9 point and the font family Libertine/Biolinum. All submissions should be in PDF format. If you use LaTeX or Word, please use the provided ACM acmart templates. Otherwise, please follow the ACM author instructions. If you are formatting your paper using Word, you may wish to use the provided Word template that supports this font size. Please include page numbers in your submission for review using the LaTeX command '\settopmatter{printfolios=true}' (see examples in template). Please also ensure that your submission is legible when printed on a black and white printer. In particular, please check that colors remain distinct and font sizes are legible. Submission Site: https://easychair.org/conferences/?conf=morevms19 Important Dates --------------- Extended abstract submissions: 2019-01-11 Author notification: 2019-02-10 Camera Ready: 2019-02-22 Workshop: 2019-04-01 or 2019-04-02 All deadlines are Anywhere on Earth (AoE), i.e. GMT/UTC-12:00 hour. Program Committee ----------------- Nicolas B. Pierron, Mozilla, France Walter Binder, University of Lugano, Switzerland Eduard-Mihai Burtescu, Lyken Software Solutions Vyacheslav Egorov, Google, Denmark Tony Hosking, Australian National University / Data61, Australia Christoph Kirsch, University of Salzburg, Austria Lun Liu, University of California at Los Angeles, USA Fabio Niephaus, Hasso Plattner Institute, Germany Lu?s Pina, George Mason University, USA Manuel Rigger, Johannes Kepler University Linz, Austria Jennifer B. Sartor, Ghent University, Belgium Andy Wingo, Igalia, S.L., France Organizers ---------- Edd Barrett, King's College London, UK Stefan Marr, University of Kent, UK Adam Welc, Uber Technologies, USA From anto.cuni at gmail.com Sun Dec 23 05:45:15 2018 From: anto.cuni at gmail.com (Antonio Cuni) Date: Sun, 23 Dec 2018 11:45:15 +0100 Subject: [pypy-dev] Review for blog post Message-ID: Hi, better to ask it here since I suspect that most people won't be much on irc during the next days: I wrote a blog post draft about the gc-disable branch which I have recently merged; it is available on extradoc: https://bitbucket.org/pypy/extradoc/src/extradoc/blog/draft/2018-12-gc-disable/gc-disable.rst?at=extradoc&fileviewer=file-view-default Reviews, comments and remarks are welcome. I think I'd like to publish it after Christmas. ciao, Anto -------------- next part -------------- An HTML attachment was scrubbed... URL: From cfbolz at gmx.de Mon Dec 24 06:44:11 2018 From: cfbolz at gmx.de (Carl Friedrich Bolz-Tereick) Date: Mon, 24 Dec 2018 12:44:11 +0100 Subject: [pypy-dev] Review for blog post In-Reply-To: References: Message-ID: <4711B7AD-CEE2-4FC5-AB04-006EB86D42CC@gmx.de> Hi Anto, Nice post, but I would add a few things (can't edit the post because I'm on the phone only): - we still do minor connections, don't we? That doesn't become clear in the post at all! So, together with virtuals, all objects with short or predictable life times still get collected. - I would put a disclaimer saying that this is a pretty specialized use case and most people aren't going to need it. Happy holidays to everybody! Carl Friedrich On December 23, 2018 11:45:15 AM GMT+01:00, Antonio Cuni wrote: >Hi, > >better to ask it here since I suspect that most people won't be much on >irc >during the next days: I wrote a blog post draft about the gc-disable >branch >which I have recently merged; it is available on extradoc: >https://bitbucket.org/pypy/extradoc/src/extradoc/blog/draft/2018-12-gc-disable/gc-disable.rst?at=extradoc&fileviewer=file-view-default > >Reviews, comments and remarks are welcome. I think I'd like to publish >it >after Christmas. > >ciao, >Anto -------------- next part -------------- An HTML attachment was scrubbed... URL: From armin.rigo at gmail.com Tue Dec 25 02:58:58 2018 From: armin.rigo at gmail.com (Armin Rigo) Date: Tue, 25 Dec 2018 08:58:58 +0100 Subject: [pypy-dev] Review for blog post In-Reply-To: <4711B7AD-CEE2-4FC5-AB04-006EB86D42CC@gmx.de> References: <4711B7AD-CEE2-4FC5-AB04-006EB86D42CC@gmx.de> Message-ID: Hi Anto, On Mon, 24 Dec 2018 at 12:45, Carl Friedrich Bolz-Tereick wrote: >> https://bitbucket.org/pypy/extradoc/src/extradoc/blog/draft/2018-12-gc-disable/gc-disable.rst?at=extradoc&fileviewer=file-view-default Any clue about why the "purple line" graph, after adding some gc.disable() and gc.collect_step(), is actually 10% faster than the baseline? Is that because "purple" runs the GC when "yellow" would be sleeping waiting for the next input, and you don't count that time in the performance? If so, maybe we could clarify that we don't expect better overall performance by adding some gc.disable() and gc.collect_step() in a program doing just computations---in this case it works because it is reorganizing tasks in such a way that the GC runs at a moment where it is "free". A bient?t, Armin. From springchantboxer at gmail.com Fri Dec 28 06:51:03 2018 From: springchantboxer at gmail.com (andy l) Date: Fri, 28 Dec 2018 11:51:03 +0000 Subject: [pypy-dev] PyPy Winter Sprint Message-ID: Would the winter sprint be suitable for a beginner to attend? I previously submitted a couple of bug fixes and would like to work towards making a larger contribution. Cheers, Andrew Lawrence -------------- next part -------------- An HTML attachment was scrubbed... URL: From cfbolz at gmx.de Fri Dec 28 15:02:46 2018 From: cfbolz at gmx.de (Carl Friedrich Bolz-Tereick) Date: Fri, 28 Dec 2018 21:02:46 +0100 Subject: [pypy-dev] PyPy Winter Sprint In-Reply-To: References: Message-ID: Hi Andrew, Yes, the sprint is totally suitable for beginners! We usually give introductions and try to pair newcomers with more experienced developers. You'd be most welcome to join the sprint! Cheers, Carl Friedrich On December 28, 2018 12:51:03 PM GMT+01:00, andy l wrote: >Would the winter sprint be suitable for a beginner to attend? I >previously >submitted a couple of bug fixes and would like to work towards making a >larger contribution. > >Cheers, > >Andrew Lawrence -------------- next part -------------- An HTML attachment was scrubbed... URL: From springchantboxer at gmail.com Fri Dec 28 18:20:03 2018 From: springchantboxer at gmail.com (andy l) Date: Fri, 28 Dec 2018 23:20:03 +0000 Subject: [pypy-dev] PyPy Winter Sprint In-Reply-To: References: Message-ID: Carl Friedrich, Thanks for the warm words and quick response. I have booked a bed at Backpackers Dusseldorf from the 3rd to the 9th of February. Please could you add me to the attendee list? Andrew Lawrence On Fri, Dec 28, 2018 at 8:03 PM Carl Friedrich Bolz-Tereick wrote: > Hi Andrew, > > Yes, the sprint is totally suitable for beginners! We usually give > introductions and try to pair newcomers with more experienced developers. > You'd be most welcome to join the sprint! > > Cheers, > > Carl Friedrich > > On December 28, 2018 12:51:03 PM GMT+01:00, andy l < > springchantboxer at gmail.com> wrote: >> >> Would the winter sprint be suitable for a beginner to attend? I >> previously submitted a couple of bug fixes and would like to work towards >> making a larger contribution. >> >> Cheers, >> >> Andrew Lawrence >> > _______________________________________________ > pypy-dev mailing list > pypy-dev at python.org > https://mail.python.org/mailman/listinfo/pypy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cfbolz at gmx.de Sat Dec 29 15:38:16 2018 From: cfbolz at gmx.de (Carl Friedrich Bolz-Tereick) Date: Sat, 29 Dec 2018 21:38:16 +0100 Subject: [pypy-dev] PyPy Winter Sprint In-Reply-To: References: Message-ID: <10f1537c-4aa2-2406-c77b-d56b688a2a88@gmx.de> On 29/12/2018 00:20, andy l wrote: > Carl Friedrich, > > Thanks for the warm words and quick response. > > I have booked a bed at Backpackers Dusseldorf from the 3rd to the 9th of > February. Please could you add me to the attendee list? > > Andrew Lawrence Done! see you in Feb. CF