For now using custom functions, such as those from the puppetlabs-stdlib, required that they were implemented in language-puppet. I do not believe there are a lot of users, and received no complaints. But this might change, and I do not want the current situation to go on :
New users will need to meddle with the source code to add their own functions.
These functions will ne be easy to distribute.
Everybody will have access to the custom functions used in the manifests I work with.
In order to make things a bit better, I used the Lua module in Haskell to provide a small scripting language for people to use. It might have been easier for them to just add a full ruby interpreter, but that would have been against my convictions and is probably pretty difficult. Note that this is not yet released.
Now that this is done, it might be possible to add custom types in the same way, as well as one of the lua templating systems. This will make it possible to get rid of the ruby dependency and largely increase the performances.
In the next few posts I will describe some of the inner workings of this module and implementation samples.
By the way, there are now links for the documentation.