The goal of this project is creating a library that would allow writing basic GPU programs using a subset of Common Lisp syntax and standard library (notably, with full macro support), plus appropriate extensions. The term basic is mainly defined by my current needs :)
GPU code is expressed as S-expressions following Common Lisp syntax with some custom declarations and special forms. It is parsed by a CL walker and translated to C code, which is compiled to GPU byte code using an external compiler provided by the GPU vendor. The resulting compiled code is then wrapped in order to allow easy invocation from ordinary Lisp functions.
The underlying platform and used implementation methods impose the following major restrictions:
Individual built-in functions have their own specific limitations.
The library has quite a lot of external dependencies, more than half of them not asdf-installable. To compensate for this I made a download script, and a pre-downloaded bundle (although it does tend to go stale).