Starting from May 1 I leave my current job and I&#39;m returning full time at university to work on my MSc project with PyPy. A FreeBSD 7.3 x86_64 buildbot from me is already available for the PyPy project. I also work under MacOS X (Snow Leopard) for my MSc project. I could probably help you for the particularities of these two platforms.<br>
<br>Keep me updated!<br><br>Gabriel Lavoie<br><br><div class="gmail_quote">2010/3/30 Maciej Fijalkowski <span dir="ltr">&lt;<a href="mailto:fijall@gmail.com">fijall@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On Mon, Mar 29, 2010 at 9:12 PM, Jason Creighton &lt;<a href="mailto:jcreigh@gmail.com">jcreigh@gmail.com</a>&gt; wrote:<br>
&gt; Hi Guys,<br>
&gt;<br>
&gt; I am a student planning on applying to GSoC to create an x86-64 backend<br>
&gt; for the JIT. I have a (very) rough draft of my proposal, and I was<br>
&gt; hoping to get some feedback on it.<br>
&gt;<br>
&gt; Specifically, I&#39;m wondering about operating system support. I&#39;ve written<br>
&gt; the proposal as if I would support Linux/Mac OS X/Windows.<br>
<br>
</div>That would be great to have, but I would be happy enough to have it on<br>
linux. Let&#39;s say that if pypy continues to work on os x and windows<br>
you&#39;ll fix remaining 64bit JIT bugs.<br>
<div class="im"><br>
&gt;<br>
&gt; I would be developing on Linux, so I think we can assume that would be<br>
&gt; fairly well supported, but obviously I would like it to work on Mac OS X<br>
&gt; and Windows as well. (I&#39;m not sure if I would have the time/motivation<br>
&gt; to care about obscure BSDs). OTOH, if there are already a lot of<br>
&gt; outstanding issues on one of those platforms, I don&#39;t know that I would<br>
&gt; be able to get it working. So what do you think would be a reasonable<br>
&gt; goal here?<br>
<br>
</div>It&#39;s not like pypy works on anything else than linux os x and windows.<br>
<div class="im"><br>
&gt;<br>
&gt; Secondly, my timeline is pretty vague. The PSF proposal template<br>
&gt; recommends a week-by-week timeline, but honestly, I&#39;m not sure how the<br>
&gt; time usage would break down. Any comments on that would be greatly<br>
&gt; appreciated.<br>
<br>
</div>I think week based planning is ridiculous. That may be done for some<br>
simpler stuff, but not for this. I would say have some milestones, but<br>
avoid precise timing.<br>
<div class="im"><br>
&gt;<br>
&gt; Here&#39;s the draft:<br>
&gt;<br>
&gt; === Proposal ===<br>
&gt;<br>
&gt; The PyPy JIT, which has shown substantial performance improvements over<br>
&gt; CPython, often several times faster, does not currently support the<br>
&gt; x86-64 instruction set, making it impractical to use on 64-bit x86<br>
&gt; systems.<br>
<br>
</div>and over unladen swallow.<br>
<div><div></div><div class="h5"><br>
&gt;<br>
&gt; My proposal is to extend the existing x86 JIT backend to support x86-64<br>
&gt; as well.<br>
&gt;<br>
&gt; === Deliverables ===<br>
&gt;<br>
&gt; Stable, tested 64-bit JIT for PyPy on Linux, Mac OS X and Windows merged<br>
&gt; into PyPy trunk.<br>
&gt;<br>
&gt; === Implementation plan ===<br>
&gt;<br>
&gt; This is not a research proposal. The goal is simply to have a PyPy JIT<br>
&gt; that works out of the box on 64-bit CPUs, implemented as conservatively<br>
&gt; as possible.<br>
&gt;<br>
&gt; As such, I will attempt to reuse as much of the existing x86 backend<br>
&gt; that I can. In fact, the architectural similarities between x86 and<br>
&gt; x86-64 are large enough that I hope to implement a unified x86/x86-64<br>
&gt; backend with the majority of the code working for either platform.<br>
&gt;<br>
&gt; There is an existing branch that, while very incomplete, has the<br>
&gt; beginnings of a unified x86/x86-64 instruction encoding module. I intend<br>
&gt; to use that branch as a starting point.<br>
&gt;<br>
&gt; Rough outline:<br>
&gt;<br>
&gt; 1. Take the existing &quot;remove-ri386-multimethod-2&quot; branch and use it as a<br>
&gt; basis for instruction encoding.<br>
&gt;<br>
&gt; 2. Port the existing 32-bit backend to use the new instruction encoding<br>
&gt; scheme.<br>
&gt;<br>
&gt; 3. Add 64-bit support to the backend,<br>
&gt;         A) Modify register allocator to use new general purpose and<br>
&gt;         floating point registers.<br>
&gt;         B) Port &quot;ResOperation&quot; operations to 64-bit<br>
&gt;         C) Port guard failure handling to 64-bit<br>
&gt;<br>
&gt; 4. Test 64-bit on Mac OS X and Windows and fix inevitable issues.<br>
<br>
</div></div>There is also part about asmgcc.<br>
<div class="im"><br>
&gt;<br>
&gt; === About Me ===<br>
&gt;<br>
&gt; I am a first-year Computer Science student at Flathead Valley Community<br>
&gt; College planning to transfer to Montana State University.<br>
&gt;<br>
&gt; I have several years of professional development experience. I am<br>
&gt; comfortable programming in Python, C and x86 assembly.<br>
&gt;<br>
&gt; Starting May 17th, I will be able to commit 40 hours/week to the project<br>
&gt; until the end of August. I may travel for a few weeks at some point in<br>
&gt; the summer, but I will have a laptop with me with the expectation of<br>
&gt; continuing full-time work.<br>
&gt;<br>
&gt; === Contact information ===<br>
&gt;<br>
&gt; Email: <a href="mailto:jcreigh@gmail.com">jcreigh@gmail.com</a><br>
&gt; IRC:   &quot;jcreigh&quot; on Freenode<br>
&gt; Phone: (will be given on request, but not preferred)<br>
&gt; _______________________________________________<br>
&gt; <a href="mailto:pypy-dev@codespeak.net">pypy-dev@codespeak.net</a><br>
&gt; <a href="http://codespeak.net/mailman/listinfo/pypy-dev" target="_blank">http://codespeak.net/mailman/listinfo/pypy-dev</a><br>
&gt;<br>
<br>
</div>Proposal is rather short, but I don&#39;t see how to expand it. You might<br>
want to add that in case you finish this stuff earlier you would do<br>
this and that (or just general JIT work or not do anything and drink<br>
beer).<br>
<div><div></div><div class="h5">_______________________________________________<br>
<a href="mailto:pypy-dev@codespeak.net">pypy-dev@codespeak.net</a><br>
<a href="http://codespeak.net/mailman/listinfo/pypy-dev" target="_blank">http://codespeak.net/mailman/listinfo/pypy-dev</a></div></div></blockquote></div><br><br clear="all"><br>-- <br>Gabriel Lavoie<br><a href="mailto:glavoie@gmail.com">glavoie@gmail.com</a><br>