Enzyme icon indicating copy to clipboard operation
Enzyme copied to clipboard

Adding Julia and Rust install instructions

Open ZuseZ4 opened this issue 3 years ago • 3 comments

I refactored it a bit to make it easier to add new languages. I didn't touch the C/C++ instructions.

ZuseZ4 avatar Dec 15 '21 14:12 ZuseZ4

A couple of higher-level comments, the separation you have of the Enzyme build into the "C/C++" section, isn't really a proper description. That's how Enzyme itself is built, it's able to be easily used within clang (a C/C++ compiler), but also Fortran, Swift, and is how one would build Enzyme from scratch as is needed by say Julia or Rust.

The difference here is that Julia and Rust also have language-specific package managers where we also vend binaries automatically.

As for julia, I think it would make more sense to redirect to enzyme.mit.edu/julia rather than have the separate page.

I would also be inclined to serve the rust bindings (currently at https://rust-ml.github.io/oxide-enzyme) at enzyme.mit.edu/rust if that sounds good to you. For Julia, the docs are still generated by (https://github.com/wsmoses/Enzyme.jl) and the webserver does appropriate forwarding.

wsmoses avatar Dec 15 '21 18:12 wsmoses

Yes, I just left the Enzyme build instructions in the C/C++ section, since the Rust and Julia solutions rely on the package manager. Also, you build clang along with LLVM, so I wasn't sure how to split that up. cmake -G Ninja ../llvm -DLLVM_TARGETS_TO_BUILD="host" -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_ENABLE_PLUGINS=ON -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON

I'm fine with having the Rust code at an extra website and would also prefer it. It makes it a little bit easier to align the layout with other rust / rust-ml websites. People will probably also be less confused about which page belongs to which language. I can ping you once I have decided which documentation should be served at enzyme.mit.edu/rust.

Which place shall we then use to forward Rust and Julia users? I think something directly visible on the front page would be nice, to make sure that user's don't get lost in C++ specific instructions.

ZuseZ4 avatar Dec 15 '21 20:12 ZuseZ4

Perhaps right before the homebrew instructions, we could add something like:

For languages with their own package manager, we have pre-built Enzyme binaries that one can install in the usual way. Click here (link to enzyme.mit.edu/julia) for information on installing Enzyme in Julia and here (link to enzyme.mit.edu/rust) for Rust.

If you're working in a language other than those above, or otherwise want to compile Enzyme from source, read on.

wsmoses avatar Dec 16 '21 03:12 wsmoses

Needs to be moved to EnzymeAD/www

tgymnich avatar Dec 08 '22 23:12 tgymnich