Add example with a naive Clojure->Rust transpiler#91
Open
thomasantony wants to merge 4 commits intoclojure-rs:masterfrom
Open
Add example with a naive Clojure->Rust transpiler#91thomasantony wants to merge 4 commits intoclojure-rs:masterfrom
thomasantony wants to merge 4 commits intoclojure-rs:masterfrom
Conversation
- Can create working rust code for hello_world.clj - Generated code for strings.clj compiles but fails at runtime - Most notably the IFn values are currently not supported
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is something I hashed out in a couple of hours. The idea is to somehow create a rust binary from a clojure source file that embeds the parsed clojure data structures and then "eval"s it. This may be a completely stupid idea as I do not know if this will translate well for all the clojure constructs.
The transpiler currently creates "working" rust code for
examples/hello_world.clj. It generates valid Rust forexamples/strings.cljbut the program fails at runtime. To run the hello world example:I also updated a couple of macros to use
$crateinstead ofcratein its module paths.Maybe just embedding the source directly as a string inside the binary is a far better idea, but then that's not really transpiling, is it?