Skip to content
dom96 edited this page Apr 8, 2012 · 1 revision

This new specification is a proposal and is subject to change. It will most likely be implemented in the near future however.

Goal

The goal is simple: to provide a simple tool which allows installation of packages (and their dependencies).

Dependency resolution

Dependencies will be defined in the .babel file as a list of package names, for example: mongodb, redis, irc. Version information will not be included. This means that babel will simply download the latest version of the package specified, this will make dependency resolution much simpler.

Installation of packages

A package's source code will be copied into ~/.babel/lib/package/x.x.x, while the .babel files will be copied into ~/.babel/packages.

Compilation of a package

A library will usually not be compiled, so this only applies to applications wishing to be built which depend on babel packages. These applications will be required to have a .babel file obviously.

The command babel update-conf will cause babel to read in the .babel file of the project and modify (or create) the project's nimrod.cfg file adding a couple of --path instructions which will add the correct modules to the nimrod compiler's search path. You will then be able to run nimrod c mainFile and your project should compile correctly.

A shortcut to this will most likely be provided as babel build or babel compile or babel c. This will be decided later.