Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Code Generation and JIT #22

Open
sirinath opened this issue Feb 23, 2021 · 5 comments
Open

Code Generation and JIT #22

sirinath opened this issue Feb 23, 2021 · 5 comments
Labels
feature Features that add something new to the language

Comments

@sirinath
Copy link

Have the ability to have multistage programming with code generation, JITing or compiling.

@slightknack slightknack changed the title Multi Stage Programming | Linear Modular Staging Code Generation and JIT Feb 24, 2021
@slightknack
Copy link
Member

Right now, Passerine runs on a bytecode interpreter written in Rust. I think that JIT/compilation are a good idea, but because we haven't yet implemented a HM type system, it's currently not possible to monomorphize functions and emit low-level code. I think a nice first step in this direction would be compiling to Wasm.

This is a big ask, and a bit out of scope at the moment. Because of this, I'm closing this issue for now - if you have any particular ideas on what the JIT pipeline would look like for Passerine specifically, please share. Otherwise, we can reopen this issue for discussion when JIT/codegen becomes more of a possibility.

@sirinath
Copy link
Author

@slightknack
Copy link
Member

Thanks for the further comment. I've had a discussion with some other Core Team Members, and I think JIT is something worth pursuing - for this reason I'm reopening this issue :D

@slightknack slightknack reopened this Mar 22, 2021
@slightknack slightknack added the feature Features that add something new to the language label Mar 22, 2021
@sirinath
Copy link
Author

What I had in might was not just code generation but Multi-stage programming (MSP) with Lightweight Modular Staging (LMS). The code generated would be typed assembly language (TAL) and/or Proof-carrying code (PCC)

@slightknack
Copy link
Member

slightknack commented Mar 22, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Features that add something new to the language
Projects
None yet
Development

No branches or pull requests

2 participants