RSSAmplifier

Blog

dthompson

Recent Posts

dthompson.usRSS feed ↗20 posts

Latest posts

Guile-bstructs 0.2.0 released

I'm happy to announce that guile-bstructs 0.2.0 has been released! About guile-bstructs Guile-bstructs is a library that provides structured read/write access to binary data for Guile . A bstruct (short for “binary structure”) is a data type that encapsulates a bytevector and a byte offset which interprets that bytevector based on a specified layout. See the guile-bstructs project page for more…

Guile-syntax-highlight 0.3.0 released

I'm happy to announce that guile-syntax-highlight 0.3.0 has been released! About guile-syntax-highlight Guile-syntax-highlight is a general-purpose syntax highlighting library for Guile . It can parse code written in various programming languages into a simple s-expression that can be easily converted to HTML (via SXML) or any other format for rendering. See the Guile-syntax-highlight project page…

Guile-websocket 0.3.0 released

I'm happy to announce that guile-websocket 0.3.0 has been released! Guile-websocket is an implementation of the WebSocket protocol , both the client and server sides, for Guile Scheme. Highlights for this release are: New (web socket) module that provides a standard Scheme port interface for WebSockets. WebSocket is a framed protocol, not a simple bytestream, but the new wrappers websocket and…

Guile-websocket 0.2.1 released

I'm happy to announce that guile-websocket 0.2.1 has been released! Guile-websocket is an implementation of the WebSocket protocol , both the client and server sides, for Guile Scheme. This small patch release contains the following changes: Greatly improved validation of initial handshake request on server. In previous releases, when bots discovered a server and sent random HTTP requests they’d…

Guile-websocket 0.2.0 released

I'm happy to announce that guile-websocket 0.2.0 has been released! Guile-websocket is an implementation of the WebSocket protocol , both the client and server sides, for Guile Scheme. This release introduces breaking changes that overhaul the client and server implementations in order to support non-blocking I/O and TLS encrypted connections. source tarball:…

Wasm GC isn’t ready for realtime graphics

Wasm GC is a wonderful thing that is now available in all major web browsers since slowpoke Safari/WebKit finally shipped it in December. It provides a hierarchy of heap allocated reference types and a set of instructions to operate on them. Wasm GC enables managed memory languages to take advantage of the advanced garbage collectors inside web browser engines. It’s now possible to implement a…

Guile-bstructs 0.1.0 released

I'm pleased to announce that the very first release of guile-bstructs, version 0.1.0, has been released! This is a library I've been working on for quite some time and after more than one rewrite and many smaller refactors I think it's finally ready to release publicly. Let's hope I'm not wrong about that! About guile-bstructs Guile-bstructs is a library that provides structured read/write access…

Functional reactive user interfaces with propagators

I’ve been interested in functional reactive programming (FRP) for about a decade now. I even wrote a couple of blog posts back in 2014 describing my experiments. My initial source of inspiration was Elm , the Haskell-like language for the web that once had FRP as a core part of the language. Evan Czaplicki’s Strange Loop 2013 talk really impressed me, especially that Mario demo. From there, I…

Lisp: Icing or Cake?

The Spring Lisp Game Jam 2024 ended one week ago. 48 games were submitted, a new record for the jam! This past week has been a time for participants to play and rate each other’s games. As I explored the entries, I noticed two distinct meta-patterns in how people approached building games with Lisp. I think these patterns apply more broadly to all applications of Lisp. Let’s talk about these…

Optimizing Guile Scheme

Guile is a rather niche language that I love dearly. Guile is a Scheme dialect that features an advanced optimizing bytecode compiler, a JIT compiler, and a modest set of developer tools for inspecting and debugging. Through my time spent developing Chickadee , a game programming library, I have gotten quite familiar with how to get the most out of Guile in terms of performance. Every now and then…

Haunt 0.3.0 released

Haunt version 0.3.0 has been released! It’s been just over 2 years since the last release, and many fixes and improvements have been accumulated so this is long overdue! About Haunt Haunt is a static site generator that uses the Guile Scheme as its configuration language. It aims to be simple, functional, and extensible. Features include: Easy blog and Atom/RSS feed generation Markdown post…

How to apply Hilltop's Boku no Natsuyasumi 2 English patch on Linux

Haven't blogged in awhile, so here’s a quickie. Last week, Hilltop released an English patch for Boku no Natsuyasumi 2 , which finally makes the Japan exclusive PS2 game accessible to us English speaking folks. The README explains how to apply the patch on Windows or via a web utility. Having never patched an ISO before, I wondered how it could be done using a native Linux utility instead. Turns…

Spring Lisp Game Jam 2023 Summary

The Spring Lisp Game Jam 2023 submission deadline has now passed and we are now in the rating period. I was a co-host of the jam alongside technomancy but he did all the real work setting everything up. There were 30 submissions this time around, which I believe is a new record for our little jam! This particular jam was a special one for me. I not only submitted a game built with Chickadee but I…

Chickadee 0.10.0 released

I'm happy to announce that Chickadee 0.10.0 has been released! Chickadee is a game development toolkit for Guile. Chickadee aims to provide all the features that parenthetically inclined game developers need to make 2D and 3D games in Scheme. This release is on the smaller side as I just haven’t had much time to work on Chickadee in the past 6 or so months, but I'm trying to stick with the routine…

Guile-syntax-highlight 0.2.0 released

I'm happy to announce that Guile-syntax-highlight 0.2.0 has been released! This is a pretty slow moving project but the last (and only) release was in 2018 so this release is long overdue. Guile-syntax-highlight is a general-purpose syntax highlighting library for GNU Guile. It can parse code written in various programming languages into a simple s-expression that can be easily converted to HTML…

Installing Guix on a 10th gen Thinkpad X1

The last time I bought a laptop, I got a used Thinkpad X220 from eBay . I loved that laptop, but time marches on and old hardware eventually becomes too slow for modern development needs. After a lot of indecision, I bought a 10th generation Thinkpad X1 with an Intel Core i7-1280P CPU, 32GB RAM, and 1TB NVMe SSD. While they don’t make Thinkpads like they used to, I’m still really happy with it and…

Guile-Websocket 0.1 released

I'm happy to announce that Guile-Websocket 0.1 has been released! Guile-Websocket is an implementation of the WebSocket protocol, both the client and server sides, for Guile Scheme. source tarball: https://files.dthompson.us/releases/guile-websocket/guile-websocket-0.1.tar.gz signature: https://files.dthompson.us/releases/guile-websocket/guile-websocket-0.1.tar.gz.asc See the Guile-Websocket…

Catbird: An experimental game engine for Scheme programmers

I've been participating in the Lisp Game Jam for several years now, and the next one is starting on 10/28 , and with each attempt I've been accumulating code that forms something resembling a game engine. I'm now attempting to solidify some of the concepts I've been exploring in order to make a game engine worthy of releasing in case someone else wanted to use it, too. I've named this engine…

Chickadee 0.9.0 released

I'm happy to announce that Chickadee 0.9.0 has been released! Chickadee is a game development toolkit for Guile. Chickadee aims to provide all the features that parenthetically inclined game developers need to make 2D and 3D games in Scheme. Notable improvements and changes: The (chickadee graphics font) module has been renamed to (chickadee graphics text) . SDL2_image has been dropped in favor of…

Guile-SDL2 0.8.0 released

I'm happy to announce that Guile-SDL2 0.8.0 has been released! Guile-SDL2 provides Guile Scheme bindings for the SDL2 C shared library. The bindings are written in pure Scheme using Guile's foreign function interface. New bindings in this release: SDL_GetScancodeFromKey SDL_UpdateTexture SDL_CreateSystemCursor SDL_CreateColorCursor SDL_FreeCursor SDL_SetCursor SDL_GetCursor SDL_ShowCursor…