On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(5 edits)

Ah yeah I didn't put #-ecl(error "This is ECL only") in there yet. That's a day 1 thing ;p. I'm using the low level embeddable common lisp compiler sffi package, which is basically just this:

```

(ffi:clines "#include <stdio.h>")

(let ((some 0) (variables "!"))

 (declare (:string variables) (:int some))

 (ffi:c-progn (some variables)

  "printf(\"%d %s\", #0++, #1);" ; ugh, yes, you have to ennumerate them in C

  (print `(,some ,variables))))

;;(I should double check I got the string <-> automatic cstring thing right)

```

I have found that just using the ECL compiler (common lisp but it's just a C library) is more reliably portable than the c2ffi based cffi, which doesn't have a port to openbsd for example. So we are kind of opposite, in that yours preserves behaviours against many backends right? Whereas mine is just a minimally serviceable seat-of-the-pants.

Oh cool, I didn’t know ECL allows that. It is very resourceful CL implementation ineed ☺️

Well yes, my template tries to offer the same minimum functionality (that is black screen and FPS counter with custom font) on different backends, but surely they have some differences.

Having ultra-thin ECL-based skeleton is nice too 😊 I would argue that it would also be a notch faster than any CFFI-based solution.

On the other hand you end up using a lot of void pointers. But yes, I like it a lot. I guess the ideal outcome would be to grow an ECL quicklisp package to the point where it could be included in your template, which would be a lot of work!

I would definitely have a deeper look at ECL option afterwards. Also looking forward to your entry, I hope I’ll learn a thing or two :)

(+1)

the feeling is mutual!