Live data from Hacker News

Pyjion – A Python JIT Compiler

trypyjion.com

61–70 of 126 posts

Re: Pyjion – A Python JIT Compiler

#61
Known Limitations With statements Pyjion does not currently support with blocks.

This is on the roadmap (and related to try..except).

=====

I thin with block is used all of the places, so this limitation make it not usable to a lot of projects

Re: Pyjion – A Python JIT Compiler

#62
post #19

Pyjion requires: CPython 3.10 and .NET 6 .NET 6 Release: 19 hours ago ( https://github.com/dotnet/core/blob/main/release-notes/6.0/6... ) ... ok.

We found the Arch Linux developer XD "All hail rolling releases, why haven't you updated yet? I published it 15 minutes ago!"

haha :)

Re: Pyjion – A Python JIT Compiler

#63
post #51

Earlier quoted context omitted.

PyPy is two projects. 1. RPython + the PyPy _compiler_ which is a compiler for JIT compilers (like GraalVM as I understand it) 2. An implementation of the Python language _using_ RPython to produce a JIT for Python scripts. There are other languages _using_ RPython + PyPy compiler to produce JIT compilers for languages other than Python too. https://doc.pypy.org/en/latest/architecture.html#layers

I see. This doesn't look like a Futaruma Projection to me. What PyPy does is run a python program under their own RPython based interpreter. Then it uses a tracing JIT to JIT the RPython based interpreter. There is no PE going on. No residual specialized program is created. The first Futaruma Projection would be if PyPy would specialize the interpreter based on the python program yielding an executable.

That's exactly what PyPy does do. You get a specialized version of the interpreter which is specialized to the particular program.

Re: Pyjion – A Python JIT Compiler

#64
post #39

Earlier quoted context omitted.

If it just required doing "pip install" then I'd try it to see how fast my test suite runs. But since it only works with Python 3.10 and .NET 6, realistically even just spending five minutes messing with it will require first waiting 18 months or whatever.

Seems like it would take no more than 5 minutes to download and untar the listed dependencies, though. I don’t understand this attitude about experimentation.

Haha that's the rabbit hole. Two weeks later you're compiling your own kernel from sources just to be able to get that specific version of libc so that you can get libfoo working so that you can get libbar working so that you can get... You get the idea.

Re: Pyjion – A Python JIT Compiler

#65
post #33

Earlier quoted context omitted.

.NET 6 has been in prerelease for a while, and it's the next LTS release. Makes sense that it would be used as soon as it was available. Upgrading from 5 to 6 should be pretty trivial.

I've tried it on Fedora: https://docs.microsoft.com/en-us/dotnet/core/install/linux-f... > The latest version of .NET that's available in the default package repositories for Fedora is .NET 5. Installing .NET 6 through the default package repositories is coming soon. For now, you'll need to install .NET 6 in one of the following ways: > Install the .NET SDK or the .NET Runtime with Snap. > Install the .NET SDK or the…

.NET 6 was just released this morning, so I'd assume it will take at least a little bit of time to get into the default package repositories.

Re: Pyjion – A Python JIT Compiler

#66

Earlier quoted context omitted.

> waiting 18 months or whatever Seems like a problem with however your system distributes software, not with Pyjion. What does it take 18 months to do?

Well for one I can't run Python 3.10 in production because I use AWS Elastic Beanstalk, which currently only supports 3.8. And my development environment is Ubuntu, which also doesn't support it out of the box. So short of scheduling two weeks to retool both my production and local development environments, which I'm not going to do because it would be a complete waste of time, there is zero benefit to me to even loo…

Check out pyenv, you can run whatever versions of python you want to without messing with the system or other virtualenvs.

Re: Pyjion – A Python JIT Compiler

#67
post #39

Earlier quoted context omitted.

Seems like it would take no more than 5 minutes to download and untar the listed dependencies, though. I don’t understand this attitude about experimentation.

Haha that's the rabbit hole. Two weeks later you're compiling your own kernel from sources just to be able to get that specific version of libc so that you can get libfoo working so that you can get libbar working so that you can get... You get the idea.

been there, done that, got the tshirt and worthless equity ;)

these days, just spin up some disposable container/vm and tinker...

Re: Pyjion – A Python JIT Compiler

#68
post #47

Earlier quoted context omitted.

Sounds to me like PyPy has been using Futamura projections for a decade or so.

Can you link me to some sources? I'm not familiar with PyPy but I thought it's a normal tracing JIT. In fact quick googling shows a blog post explicitly saying PyPy does NOT use PE: https://www.pypy.org/posts/2018/09/the-first-15-years-of-pyp... . Besides not every PE instance is a Futurama Projection.

https://gist.github.com/tomykaira/3159910

This gist talks specifically about PyPy using the Futamara projection.

Re: Pyjion – A Python JIT Compiler

#69
post #16

The overall speed-up factor (calculated from the numbers in the Benchmarks diagram, geomean of factors) is 1.6, which is much less than the factor 4 achieved with PyPy (or the even higher factor claimed by Graal Python). CLI is not very well suited for dynamic languages; as far as I remember the results presented here correspond with Iron Python, which is to be expected based on the proposed concept. EDIT: Yes, indee…

From the details on https://pypi.org/project/pyjion/

> Goal #1 is explicitly to add a C API to CPython to support JIT compilers.

Given the plural compilers, hopefully this means it's going to support multiple JITs, which would be interesting. Choose the right JIT for your particular workload.

Post reply on HN