peterhenryd / dorian

Dorian is an intuitive high-level abstraction for LLVM for creating imperative programs using declarative structures.
https://crates.io/crates/dorian
MIT License
21 stars 1 forks source link

Comparison to inkwell #1

Open dlight opened 1 year ago

dlight commented 1 year ago

How does Dorian compares to inkwell? Maybe a short section on readme would be nice.

peterhenryd commented 11 months ago

Simply put, Dorian is to not trying to wrap LLVM, but rather be a very intuitive abstraction of it; will make sure to add something like you suggested soon. Thanks!

Moreover, if one were to create a vendiagram between what Dorian and Inkwell are trying to achieve (as far as I'm aware), the differences as of now aren't especially significant, but that's likely to evolve in the future as this project progresses.

dlight commented 11 months ago

Dorian is to not trying to wrap LLVM, but rather be a very intuitive abstraction of it

You mean that Inkwell's API may be more feature complete than Dorian (since it aims to prove the entire llvm API surface), but Dorian would be easier to use?

I mean, Inkwell is also an abstraction I think (but it may be lower level).

Since Dorian is higher level, does it make sense to add Inkwell as a dependency and write Dorian on top of Inkwell? I mean currently Dorian uses llvm-sys but as such it has a lot of unsafe code.

peterhenryd commented 11 months ago

You are correct. It may be a good idea to build Dorian on top of Inkwell, especially since it would be much easier to leverage different LLVM versions, and would likely speed up development a lot. I'll create a new branch and mess around with it.