mun-lang / mun

Source code for the Mun language and runtime.
https://mun-lang.org
Other
1.83k stars 72 forks source link

Alternative codegen backend to make embedding possible #483

Open Timmmm opened 1 year ago

Timmmm commented 1 year ago

As I understand it, Mun requires LLVM for compilation. That means it is not a good option for embedding in programs - in the same way that you can embed Rhai or Gluon or Lua for example.

The documentation has a section on embedding Mun programs in Rust or C++ but as far as I can tell that still requires you to have already compiled them externally using LLVM.

Perhaps it could support Cranelift too?

baszalmstra commented 1 year ago

You are correct, embedding the compiler is not something we currently easily support. Only running Mun using the mun_runtime crate is. We assume the user is running the compiler daemon separately. The daemon (the mun executable) is statically linked against LLVM, meaning the user doesn't need to have LLVM installed.

Adding cranelift as a target would be really nice though! It also has some nice features that would make hotreloading even faster.