Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
joncatanio
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
9 ms
·
1.
▲
by
joncatanio
4y ago
This is a great read, and it's fantastic to see all the work being done to evaluate and improve the language! The dynamic-nature of the language is actually something that I had studied a few years back [1]. Particularly the variable a
2.
▲
by
joncatanio
6y ago
Needed something to chuckle at during my work ha!
3.
▲
by
joncatanio
6y ago
Not trying to self-promote, but this might be of interest to you. It's not a fully flushed out implementation, but my project analyzed specific language features that affect performance: https://github.com/joncatanio&#x
4.
▲
by
joncatanio
8y ago
This is exactly why PyPy blew both Cannoli and CPython away in the microbenchmarks used for analysis. As I've said elsewhere, the focus was on comparing Cannoli (unoptimized) to Cannoli (optimized) and not a direct comparison to CPytho
5.
▲
by
joncatanio
8y ago
After I ran the experimental evaluation, I had similar thoughts. If PyPy ever matches the current version of CPython I'm not sure why one wouldn't use PyPy over CPython. The biggest hurdle is matching support for popular libraries
6.
▲
by
joncatanio
8y ago
I get the same error with your example, but this works fine (Python 3.6.4): exec("a = 1") print(a) This will print "1".
7.
▲
by
joncatanio
8y ago
Ahh, I see, this makes more sense. Thanks for the clarification!
8.
▲
by
joncatanio
8y ago
Hey Steve, glad to see you saw this post, now I get to personally thank you for all of your work on the Rust project. It's a really great community, it was very easy to get help in the IRC when I'd get stuck on new-to-me concepts.
9.
▲
by
joncatanio
8y ago
That work is great! > We have presented the first limit study that tries to quantify the costs of various dynamic language features in Python. This is spot on what we were doing as well, that's great to have this as a reference. >
10.
▲
by
joncatanio
8y ago
Great question! The "Compiling Python" section of my thesis is pretty much an explanation of how I had to translate elements of Python into Rust because of the borrow checker. There were a couple tricks (like using closures for
11.
▲
by
joncatanio
8y ago
Well, yes I see your point. But I wouldn't say that it was easy, just not as bad as it had been hyped up to be. Although I think most of that sentiment comes from older Rust versions, when lifetimes were defined in more places and you
12.
▲
by
joncatanio
8y ago
I would certainly like to. The base implementation of Cannoli is the best place to continue this. Some optimizations that were implemented apply restrictions to parts of the language and following these any further would ultimately diverge
13.
▲
by
joncatanio
8y ago
Yes :)! So I mention PEP 3107 ( https://www.python.org/dev/peps/pep-3107/ ) in the thesis. This allows type annotations in the function signature. Cannoli leverages both type annotations in function signatures
14.
▲
by
joncatanio
8y ago
Does it claim better performance than CPython or PyPy? I can't quite find the reference to PyPy (after a quick scan of the page/github repo. It looks like a cool project! They seem to be doing a lot of optimizations, which they li
15.
▲
by
joncatanio
8y ago
My heritage is Italian and I happened to be eating cannoli when I started writing the parser around December, figured it'd be a fun name :)
16.
▲
by
joncatanio
8y ago
I've used Python quite a bit for various projects. For a compilers class I wrote a compiler in Python and had a blast. So I spoke with that advisor and decided I wanted to get a Master's and he had suggested a project that analyse
17.
▲
by
joncatanio
8y ago
This is very cool! Thanks for doing that :)! I'm actually moving out to NYC this July to work for Major League Baseball. The Advanced Media division (MLBAM). I'll be doing some software engineering there, mainly API work for vario
18.
▲
by
joncatanio
8y ago
As others have commented, AOT compilation is limited to the information available at compile time. Various features of Python like dynamic typing and object/class mutation (via del) preclude many static analysis techniques. In Cannoli,
19.
▲
by
joncatanio
8y ago
I recently finished the code for my thesis and wanted to share with you all :). The goal of the thesis was to evaluate language features of Python that were hypothesized to cause performance issues. Quantifying the cost of these features co
20.
▲
Show HN: Cannoli – A compiler for a subset of Python written in Rust
(github.com)
292 points
by
joncatanio
8y ago
|
94 comments