Just a meta-note, how about keeping it in svn? email is rarely a good version control system (that's why you have your user dir on codespeak, or you can create one in /svn/user)
On Tue, Mar 30, 2010 at 4:18 PM, Jason Creighton <[email protected]> wrote: > I agree with fijal that it seems short, but I don't know what else to > put in. > > Updated draft: > > === Proposal === > > The PyPy JIT, which has shown substantial performance improvements over > other implementations of Python, including CPython and Unladen Swallow, > does not currently support the x86-64 instruction set, making it > impractical to use on 64-bit x86 systems. > > My proposal is to extend the existing x86 JIT backend to support x86-64 > as well. > > === Deliverables === > > Stable, tested 64-bit JIT for PyPy on Linux, Mac OS X and Windows merged > into PyPy trunk. > > === Implementation plan === > > This is not a research proposal. The goal is simply to have a PyPy JIT > that works out of the box on 64-bit CPUs, implemented as conservatively > as possible. > > As such, I will attempt to reuse as much of the existing x86 backend > that I can. In fact, the architectural similarities between x86 and > x86-64 are large enough that I hope to implement a unified x86/x86-64 > backend with the majority of the code working for either platform. > > There is an existing branch that, while very incomplete, has the > beginnings of a unified x86/x86-64 instruction encoding module, which > can encode instructions for either x86 or x86-64 in a fairly seamless > manner. I intend to use that branch as a starting point. > > Milestones: > > 1. Take the existing "remove-ri386-multimethod-2" branch and use it as a > basis for instruction encoding. Modify the existing 32-bit backend to > use the new instruction encoding scheme. > > 2. Add 64-bit support to the backend, > A) Add tests to ensure that 64-bit instructions are being > generated correctly. > B) Modify register allocator to use new general purpose and > floating point registers. > C) Port 32-bit specific portions of the JIT (for example, guard > failure handling) to 64-bit > > 3. Test 64-bit on Mac OS X and Windows, and fix inevitable issues. > > If the 64-bit JIT is completed before the end of the summer, I will > spend the remainder of the time working on other 64-bit or JIT-related > aspects of PyPy, for example adapting the "asmgcc" garbage collection > strategy to 64-bit. > > === Development Workflow === > > The PyPy project makes extensive use of Subversion branches for > development, so I will follow that convention and develop the 64-bit JIT > in one or more branches. > > For unit testing, I will use the py.test framework (already used > throughout PyPy), aiming for 100% test coverage. > > === About Me === > > I am a first-year Computer Science student at Flathead Valley Community > College planning to transfer to Montana State University. > > I have several years of professional development experience. I am > comfortable programming in Python, C and x86 assembly. > > Starting May 17th, I will be able to commit 40 hours/week to the project > until the end of August. I may travel for a few weeks at some point in > the summer, but I will have a laptop with me with the expectation of > continuing full-time work. > > === Contact information === > > Email: [email protected] > IRC: "jcreigh" on Freenode > Blog: http://jcreigh.blogspot.com > Phone: <will be included in actual proposal, but pypy-dev is publicly > archived...> > _______________________________________________ > [email protected] > http://codespeak.net/mailman/listinfo/pypy-dev > _______________________________________________ [email protected] http://codespeak.net/mailman/listinfo/pypy-dev
