atgreen

Joined 14 years ago

Karma
686
Submissions
147
Member since
Apr 14
https://ca.linkedin.com/in/green
View on Hacker News

Recent submissions

Comment · 4 days ago
Hey, I'm the author. Yes, I worked in the University of Toronto's AI lab as a student many years ago, back when Lisp in AI was a thing. It definitely would be full circle!
Comment · 1 month ago
I worked on this years ago. Gcj did support loading and interpreting bytecode alongside the AOT-compiled code. libffi's closures were originally implemented to support calling interpreted methods from AOT-compiled code, because a class's vtable could include a mix of AOT-compiled and interpreted methods. You could also compile jar files directly into .so files, which would get loaded and used at runtime if a classloader ever loaded the corresponding jar.
Comment · 3 months ago
Comment · 4 months ago
TBH, the complexity of this step grew over time, and the overhead snuck up on us. The prep step does useful work (eg. determine stack space requirements). It's just that we don't have to do it again.

Something I should have mentioned is that we could have avoided the new APIs if only there was space in the ffi_cif to stash a plan pointer. And I didn't want to break ABIs for this.

Comment · 4 months ago
Yes, that's part of what was done here. So, create a plan, and then for some subset of plans, create AOT-compiled templates. The analogies are: a) original implementation is like interpreting via walking a syntax tree b) building/caching an execution plan is like interpreting by executing bytecode generated from the syntax tree c) using an AOT-compiled template is like execution from qemu's old TCG template system But we only do (c) for a popular subset of function signatures. The biggest win was (b), but (c) is still an improvement over (b).
Comment · 5 months ago
Comment · 5 months ago
No, they are different. I just bundled them together for convenience in this POC. The only real thing in common is that they both use eBPF.
Comment · 5 months ago
Comment · 5 months ago
Don't disagree, but there are eBPF mitigations that work as alternatives to unloading kernel modules.
Comment · 6 months ago
Comment · 6 months ago
This is not my experience. I've been experimenting with something very similar to vera. However my language transpiles into multiple languages (Java, Typescript, Common Lisp, Rust, C++, Python, C# and Swift). The transpiler is written in the language itself (there's a separate bootstrap transpiler written in Common Lisp). But where I'm going is that Claude, at least, is extremely capable at writing decent code in my new language with barely any prompting; just minimal guidance on the language itself and no examples.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton