tag:blogger.com,1999:blog-5761095693213568868.post7931050948788461510..comments2021-04-06T05:15:27.819-07:00Comments on Lost in JIT: PyPy and its future challengesMaciej Fijalkowskihttp://www.blogger.com/profile/11410841070239382771noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-5761095693213568868.post-60241474553454612002012-02-17T22:55:24.271-08:002012-02-17T22:55:24.271-08:00s/it's/its/ - Please :-) [http://eli.thegreen...s/it's/its/ - Please :-) [http://eli.thegreenplace.net/2008/12/13/lets-lets-its-its/]Eli Benderskyhttps://www.blogger.com/profile/17473579534980300934noreply@blogger.comtag:blogger.com,1999:blog-5761095693213568868.post-20238660166858399092012-02-17T00:39:56.196-08:002012-02-17T00:39:56.196-08:00@Leonardo we have that, it's called annenforce...@Leonardo we have that, it's called annenforceargs. Grep the source. The problem is we can't express all the subtleties of our type system like that and this is something we want to work on short-to-mid term.Maciej Fijalkowskihttps://www.blogger.com/profile/11410841070239382771noreply@blogger.comtag:blogger.com,1999:blog-5761095693213568868.post-77865937914101602022012-02-16T18:53:37.132-08:002012-02-16T18:53:37.132-08:00I was talking about changing to local type inferen...I was talking about changing to local type inference like scala for example http://www.scala-lang.org/node/127. There are other languages that do this and even c++ has something like that with the auto keyword. For local type inference you would have to type every function argument but then you get a much faster translation, simpler work to do separate compilation and less cryptic error messages. Sorry to talk about the syntax thing and get you focused on that.Leonardo Santagadahttps://www.blogger.com/profile/01169581670273063873noreply@blogger.comtag:blogger.com,1999:blog-5761095693213568868.post-88473044587059828372012-02-15T09:25:34.757-08:002012-02-15T09:25:34.757-08:00Leonardo you're completely missing the point. ...Leonardo you're completely missing the point. The problem is not really lack of *syntax* for expressing this. We're already using decorators and it works just fine. The problem is how to do all the semantics of type system and be able to specify types. Python 3 does not help with it at all.Maciej Fijalkowskihttps://www.blogger.com/profile/11410841070239382771noreply@blogger.comtag:blogger.com,1999:blog-5761095693213568868.post-70492179157909848362012-02-15T09:21:12.598-08:002012-02-15T09:21:12.598-08:00I know no one would like this, but when finally th...I know no one would like this, but when finally the port to python 3.0 is done rpython could use the new function annotations and start using only local type inference. I (and most python programmers) love dynamic typing in python, but global type inference is a huge pain both to programmers and to the translation process.Leonardo Santagadahttps://www.blogger.com/profile/01169581670273063873noreply@blogger.comtag:blogger.com,1999:blog-5761095693213568868.post-52979557435696915552012-02-15T02:11:08.834-08:002012-02-15T02:11:08.834-08:00I'm looking at http://doc.pypy.org/en/latest/t...I'm looking at http://doc.pypy.org/en/latest/translation.html <br /><br />It looks like some caching can be done for early steps like type inference by the annotator, would that make compilation faster?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5761095693213568868.post-2215720206117196752012-02-14T11:59:21.633-08:002012-02-14T11:59:21.633-08:00So, if you had a strong initialization semantics t...So, if you had a strong initialization semantics that fed forward into the jitted trace, e.g. like a loader for jit traces, it would work, but the problem is that at the time of the trace, you can't backtrack out the correct initialization procedure for all of the objects, you just rely on their existence in an initialized state, which is the only state the tracer ever sees them in?DaveHhttps://www.blogger.com/profile/12051206095372550561noreply@blogger.comtag:blogger.com,1999:blog-5761095693213568868.post-19448246284849271442012-02-14T11:16:37.315-08:002012-02-14T11:16:37.315-08:00Yes, there is a very good reason. JIT code contain...Yes, there is a very good reason. JIT code contains references to actual memory in the assembler which might come from various strange places. It's very hard to check whether the initialization produced the same kind of objects and where.Maciej Fijalkowskihttps://www.blogger.com/profile/11410841070239382771noreply@blogger.comtag:blogger.com,1999:blog-5761095693213568868.post-87597397334400299232012-02-14T10:46:31.192-08:002012-02-14T10:46:31.192-08:00Is there any reason why you couldn't persist t...Is there any reason why you couldn't persist the jit traces to disk and run starting with parts of the code traced? This has always been a frustration to me about jits, it seems like every program run, good work is done and then thrown away on process exit.DaveHhttps://www.blogger.com/profile/12051206095372550561noreply@blogger.com