> - This build tool needs a programming language. > > - This programming language should not be Rust (to avoid the complexity of > recursive builds) and indeed should be interpreted. > > Any similarly convincing arguments against those beliefs?
I haven't used the go tool much, but I have used both Leiningen and Rebar (Clojure and Erlang build tools respectively), and they are two of the more pleasant things I've ever used. Neither of them supports direct programming like scons, but both are extensible through easy to write simple plugins. Rebar especially works pretty much out of the box with no special configuration needed for the large majority of Erlang projects. Both rebar and lein also work reasonably well building platform code (Java in lein's case or C in rebar's). I think this is an existence proof that you don't need full language power in the majority of cases, even moderately complicated ones. Also, in those build systems, it is quite common for complicated builds to drop to something else. For example, for building non-OTP apps in Erlang, many people use regular makefiles. In Clojure-land, using maven is also common. It sounds like rustpkg will work similarly, and if anything really complex is required, it's easy to switch to make or cmake, etc. I've seen pretty much nothing but praise for the go toolchain, so I think rustpkg is on the right track. I would like to mention that JARs in clojure-land are very useful. Erlang also has ez packages, but these are a bit restrictive in the types of data they contain, so aren't quite as nice. This makes shipping around and deploying things really simple. Specifically, it is often useful to include non-code resources in these artifacts which are easily accessible from the library consumer. Clojure has clojure.java.io/resource to pick these up, and Erlang has a slightly more verbose but similar way to do the same. Perhaps it would be possible to incorporate something similar into Rust's build tooling. jack. _______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
