<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: jit</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/jit.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2024-01-09T21:25:02+00:00</updated><author><name>Simon Willison</name></author><entry><title>Python 3.13 gets a JIT</title><link href="https://simonwillison.net/2024/Jan/9/python-gets-a-jit/#atom-tag" rel="alternate"/><published>2024-01-09T21:25:02+00:00</published><updated>2024-01-09T21:25:02+00:00</updated><id>https://simonwillison.net/2024/Jan/9/python-gets-a-jit/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://tonybaloney.github.io/posts/python-gets-a-jit.html"&gt;Python 3.13 gets a JIT&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
“In late December 2023 (Christmas Day to be precise), CPython core developer Brandt Bucher submitted a little pull-request to the Python 3.13 branch adding a JIT compiler.”&lt;/p&gt;

&lt;p&gt;Anthony Shaw does a deep dive into this new experimental JIT, explaining how it differs from other JITs. It’s an implementation of a copy-and-patch JIT, an idea that only emerged in 2021. This makes it architecturally much simpler than a traditional JIT, allowing it to compile faster and take advantage of existing LLVM tools on different architectures.&lt;/p&gt;

&lt;p&gt;So far it’s providing a 2-9% performance improvement, but the real impact will be from the many future optimizations it enables.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/jit"&gt;jit&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llvm"&gt;llvm&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/anthony-shaw"&gt;anthony-shaw&lt;/a&gt;&lt;/p&gt;



</summary><category term="jit"/><category term="llvm"/><category term="python"/><category term="anthony-shaw"/></entry><entry><title>Announcing Pyston-lite: our Python JIT as an extension module</title><link href="https://simonwillison.net/2022/Jun/8/pyston-lite/#atom-tag" rel="alternate"/><published>2022-06-08T17:58:11+00:00</published><updated>2022-06-08T17:58:11+00:00</updated><id>https://simonwillison.net/2022/Jun/8/pyston-lite/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://blog.pyston.org/2022/06/08/announcing-pyston-lite-our-python-jit-as-an-extension-module/"&gt;Announcing Pyston-lite: our Python JIT as an extension module&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
The Pyston JIT can now be installed in any Python 3.8 virtual environment by running “pip install pyston_lite_autoload”—which includes a hook to automatically inject the JIT. I just tried a very rough benchmark against Datasette (ab -n 1000 -c 10) and got 391.20 requests/second without the JIT compared to 404.10 request/second with it.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=31670120"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/jit"&gt;jit&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/performance"&gt;performance&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="jit"/><category term="performance"/><category term="python"/></entry><entry><title>Introducing the PyPy 1.2 release</title><link href="https://simonwillison.net/2010/Mar/12/pypy/#atom-tag" rel="alternate"/><published>2010-03-12T23:54:01+00:00</published><updated>2010-03-12T23:54:01+00:00</updated><id>https://simonwillison.net/2010/Mar/12/pypy/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://morepypy.blogspot.com/2010/03/introducing-pypy-12-release.html?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A PyPyStatusBlog %28PyPy Status Blog%29"&gt;Introducing the PyPy 1.2 release&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
It’s been a long time coming, but 1.2 is the first PyPy release to ship with a Just-in-Time compiler! Performance looks pretty impressive.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/jit"&gt;jit&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/performance"&gt;performance&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/pypy"&gt;pypy&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="jit"/><category term="performance"/><category term="pypy"/><category term="python"/></entry><entry><title>Quoting Maciej Fijalkowski</title><link href="https://simonwillison.net/2009/May/1/jit/#atom-tag" rel="alternate"/><published>2009-05-01T15:04:51+00:00</published><updated>2009-05-01T15:04:51+00:00</updated><id>https://simonwillison.net/2009/May/1/jit/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://morepypy.blogspot.com/2009/04/4-weeks-of-gdb.html"&gt;&lt;p&gt;Right now, pypy compiled with JIT can run the whole CPython test suite without crashing, which means we're done with obvious bugs and the only ones waiting for us are really horrible.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://morepypy.blogspot.com/2009/04/4-weeks-of-gdb.html"&gt;Maciej Fijalkowski&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/bugs"&gt;bugs&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jit"&gt;jit&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jpython"&gt;jpython&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/pypy"&gt;pypy&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/testing"&gt;testing&lt;/a&gt;&lt;/p&gt;



</summary><category term="bugs"/><category term="jit"/><category term="jpython"/><category term="pypy"/><category term="python"/><category term="testing"/></entry><entry><title>ProjectPlan - unladen-swallow</title><link href="https://simonwillison.net/2009/Mar/30/projectplan/#atom-tag" rel="alternate"/><published>2009-03-30T10:09:46+00:00</published><updated>2009-03-30T10:09:46+00:00</updated><id>https://simonwillison.net/2009/Mar/30/projectplan/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://code.google.com/p/unladen-swallow/wiki/ProjectPlan"&gt;ProjectPlan - unladen-swallow&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
A branch of Python 2.6 aiming to radically improve performance (the target is a 5x improvement), by compiling Python to machine code using LLVM’s JIT engine. I think this is a Google 20% time project (or maybe not, see the comments). An early version without LLVM is already available for download.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jit"&gt;jit&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llvm"&gt;llvm&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/performance"&gt;performance&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/unladenswallow"&gt;unladenswallow&lt;/a&gt;&lt;/p&gt;



</summary><category term="google"/><category term="jit"/><category term="llvm"/><category term="performance"/><category term="python"/><category term="unladenswallow"/></entry><entry><title>why's potion</title><link href="https://simonwillison.net/2009/Jan/8/whys/#atom-tag" rel="alternate"/><published>2009-01-08T18:37:34+00:00</published><updated>2009-01-08T18:37:34+00:00</updated><id>https://simonwillison.net/2009/Jan/8/whys/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://github.com/why/potion/tree/master"&gt;why&amp;#x27;s potion&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
why’s latest project is a small, fast language (JIT to x86/x86-64) which seems to take ideas from Ruby, Lua, Python and who knows where else. Everything is based around objects, closures and mixins, with the delightful inclusion of scoped mixins so you can modify an object only within a certain module (hence avoiding Ruby’s action-at-a-distance problems).


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/closures"&gt;closures&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jit"&gt;jit&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/languages"&gt;languages&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/lua"&gt;lua&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mixins"&gt;mixins&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/potion"&gt;potion&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/programming"&gt;programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ruby"&gt;ruby&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/whytheluckystiff"&gt;whytheluckystiff&lt;/a&gt;&lt;/p&gt;



</summary><category term="closures"/><category term="jit"/><category term="languages"/><category term="lua"/><category term="mixins"/><category term="potion"/><category term="programming"/><category term="ruby"/><category term="whytheluckystiff"/></entry><entry><title>TraceMonkey</title><link href="https://simonwillison.net/2008/Aug/22/tracemonkey/#atom-tag" rel="alternate"/><published>2008-08-22T23:13:57+00:00</published><updated>2008-08-22T23:13:57+00:00</updated><id>https://simonwillison.net/2008/Aug/22/tracemonkey/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://ejohn.org/blog/tracemonkey/"&gt;TraceMonkey&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Brendan Eich has been preaching the performance benefits of tracing and JIT for JavaScript on the conference circuit for at least a year, and the results from the first effort to be merged in to Mozilla core are indeed pretty astounding.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/brendan-eich"&gt;brendan-eich&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jit"&gt;jit&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/john-resig"&gt;john-resig&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mozilla"&gt;mozilla&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/performance"&gt;performance&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tracemonkey"&gt;tracemonkey&lt;/a&gt;&lt;/p&gt;



</summary><category term="brendan-eich"/><category term="javascript"/><category term="jit"/><category term="john-resig"/><category term="mozilla"/><category term="performance"/><category term="tracemonkey"/></entry></feed>