I've saved executable images of SBCL and CCL on Windows and they're
available as "okra-20090910.zip" from the Okra project page
(http://common-lisp.net/project/okra/).
This should make it easier for people on Windows to start playing with
Okra since it comes with all the necessary libraries. Just double-click
okra-sbcl.exe or okra-ccl.exe and you should be looking at a Common Lisp
REPL with Okra installed. If you enter:
(load "examples/flock")
or
(okra::okra-window)
You should end up with a running demo in the first case and a blank
window in the second.
You do need to have DirectX installed though, unless you initialise the
Okra window for OpenGL.
Also this is a first release so there's some warts. The
physics-and-input demo doesn't work (and isn't included) since I
initialised Okra with CEGUI and that clashes.
If you load these executables from your IDE or Slime instead of your
regular implementation you should make sure the libraries can be found!
Hopefully this makes it easier for people (on Windows for now) to play
with Okra.
I've added a download to a Windows executable of the Flock example. This is mostly a test to see how things run on other people's machine and to find out what the best way to distribute an Okra executable on Windows is.
It contains both flock-ccl.exe and flock-sbcl.exe. CCL was my primary implementation when testing on Windows but it was very slow compared to SBCL on a slower Linux machine so I tested with SBCL on Windows and it was quite a bit faster. This needs closer examination :)
The demo isn't very fast due to several reasons not in the least because I haven't optimised it. Also while I have been cleaning up the code some compared to the other examples it is still a mess, but due to making examples like this the lispy layer on top of the Ogre bindings is slowly growing.
A nice experience while developing the demo was that I used some auto-generated functions that I had never used before and I didn't need to tweak the bindings generator. They worked straight away.
Anyway check: http://www.common-lisp.org/project/okra/
The demo's in the Downloads section as flock.zip.
I tied up some loose ends this weekend, committed the latest release of
Okra to GitHub and tagged it "1.6.2.2". It can be downloaded here:
http://github.com/aerique/okra/downloads
This will be the last release for a while that brings so many changes
at once. Commits should come in bite-sized dosages now.
Okra 1.6.2.2 most importantly brings support for C++ overloading, which
drastically reduced the size of the blacklist (class members for which
no bindings are generated). The support isn't perfect yet: foreign enums
are only checked as ":keyword" type and foreign pointers as "'foreign-
pointer". This means we cannot distinguish between foreign functions
which have different enums or pointers as their only differing arguments.
Besides that, there are bindings being generated for only a small subset
of all of Ogre's classes. This is because I'm not specifically working
on Okra anymore. I'm using it in my own projects and am only adding support
for Ogre's classes as I need them.
Also in this release is some initial support for CEGUI and Minimal Ogre
Collision. (See the Ogre forums if you want to know more about these.)
There is some beginning of documentation in the doc-directory.
For you OS X users this page might be interesting: http://garaemon.net/wordpress/?p=111
Lastly, I will have to spend some of my free time on non-CL and non-Okra
related programming so all-in-all development will be slow for the next
few weeks / months.
Hope to see some of you at the ECLM in Hamburg this year!
(here's some porn made with Okra: http://www.xs4all.nl/~euqirea/perlin-blob/ )
The very first version of Okra has been released!
If you do not have much experience using Common Lisp & gcc and the
compiled libraries that come with this release do not work for you,
you will probably have a hard time getting this to work.
The release can be downloaded from the Okra project page:
http://www.common-lisp.net/project/okra/
This release is released as a gzipped tarball since the source is in
too much flux right now for other people to contribute. Future
versions of the source code will be hosted at GitHub once things have
settled down. The project page will stay at common-lisp.net.