Hey, this is my project: http://www.longino.com.br . For now it is an implementation of Common Lisp using the scripting API.
I haven’t uploaded the code I am using to call opengl functions, but the interface is the same as described in the website for interacting with Java. In other words, it is just a matter of generating the functions via a macro.
It supports closures and all. But the most cool feature are macros, like functions that are evaluated before runtime. For example:
(defmacro degrees (radians)
(* radians (/ 180.0d0 pi)))
This will be expanded during compilation so it won’t take any time during execution. This allows for generating arbitrary sequence of instructions based on a tree structure (macros nested parameter lists = tree).
Remember, these macros work at a representation level, processing trees of data and returning trees. The difference between this and the C pre-processor is like between day and night.