Cakelisp » Blog

Macoy Madson
2 days, 1 hour ago
I moved from the West Coast to the East Coast. It was a busy time and I still don't have a desk or chair to type at. I'm making this post to let you know why I won't be publishing Cakelisp content for a bit. I should have something for July, as I did make progress since my last article. Read More →

Macoy Madson
3 weeks, 2 days ago
I have been working through LearnOpenGL lately because my graphics programming knowledge lags behind. Last time I did graphics, it was all fixed-function pipeline.

The problem

In order to use OpenGL, it is generally recommended to use an OpenGL loading library. These libraries facilitate requesting the gl* function pointers to the functions you might use, depending on what version and extensions of OpenGL you use.

I am not a huge fan of this because it feels like it shifts the complexity onto the users of OpenGL. When designing APIs, it's good practice in my mind to try not to ... Read More →

Macoy Madson
1 month, 1 week ago
There were several cleanup and features added to Cakelisp since the last post:

Precompiled headers for comptime compilation is now merged to master. I put in a lot of work to get them working on Windows as well, though I didn't see the performance improvements I was hoping for on that platform.

tokenize-push was rewritten. This generator is the primary way to populate new Token arrays, and is the foundation of all macros in Cakelisp. For example:
(defmacro array-size (array-token symbol)
  (tokenize-push output
    (/ (sizeof (token-splice array-token))
       (sizeof (at 0 (token-splice array-token)))))
  (return true))

This ... Read More →

Macoy Madson
2 months ago
I am happy to be a new part of Handmade Network!

Progress since submission

There have been several things I've been working on since I submitted Cakelisp to the network:

Kitty Gridlock completion
Kitty Gridlock is a game I made in about 3 weeks (off-hours, weekends primarily) for my girlfriend. I had a deadline to deliver (her birthday), so I had a good goal and could limit scope effectively.

I wanted to prove to myself that I could be productive in Cakelisp in its current state, i.e., without making any modifications to the language. I was absolutely successful in this ... Read More →