[SLUG] Plug: Introducing Bake

From: Dylan Hardison (dylanwh@gmail.com)
Date: Mon Mar 20 2006 - 19:48:17 EST


Hi folks!

Since about June of last year, I've been working on a little project.
This project: Create a tool similar to make, but that features a real
turing-complete scripting language. Yeah, that's right. I wrote yet
another make replacement.
And yes, I'm aware of: ant, cook, scons, cons, jam, bjam, rake, etc.
I've used most of those at one point or another.

Why is my make replacement, bake, any different? Well, it provides a
rather complete scripting language. Bake is basically an interpreter
for a language somewhat like Javascript, that happens to have special
syntax for describing how to build one file from another.

And I'm not kidding about being a full language.
Bake features lexical variables, first class functions (and closures),
a module system,
several nice builtin datatypes (including hash tables and linked
lists), and is dynamically typed.

It's also only about 4,000 lines of code, written in the wonderful
language O'Caml.
Further, it has no runtime dependencies outside of the C library.
Oh, and it builds itself. Since two months ago it doesn't require or
even use make.
This is something most other build tools can't say.

Anyway, I am working on a 1.0 release, and It'd be cool if anyone else
would be interested in using it or testing it.
Currently it tests okay on Debian amd64, Debian i386, and Gentoo amd64.
Debian packages are available, and there is functional ebuild for
gentoo (unoffical, in the subversion tree).

It can be downloaded from here: http://download.gna.org/bake/bake-1.0rc23.tar.gz
Debian packages are also available here: http://download.gna.org/bake/deb

There is not any user-level documentation (all though there is API
documentation for most of the code), so all I can offer is examples of
bake recipes:

* This one builds the stats for the #slug.fl channel:
http://hardison.net/stats/Recipe
* This one builds my personal website:
http://dylan.hardison.net/Recipe
* This recipe builds bake itself, using the ezbake bytecode version of bake:
http://svn.gna.org/viewcvs/bake/trunk/Recipe?rev=277&view=markup

Of course, you can also use bake as a calculator,
bake --shell gives an interactive shell, and bake supports most math operations.

Thanks for reading this shameless plug. :)

-----------------------------------------------------------------------
This list is provided as an unmoderated internet service by Networked
Knowledge Systems (NKS). Views and opinions expressed in messages
posted are those of the author and do not necessarily reflect the
official policy or position of NKS or any of its employees.



This archive was generated by hypermail 2.1.3 : Fri Aug 01 2014 - 20:02:37 EDT