Guile-SDL is a set of modules that provide bindings for SDL (Simple DirectMedia Layer) to enable Guile programmers to do all the nice things you can do with SDL. Its core was originally written by Alex Shinn, Vikram Subramanian, and Joel Smith.

Most of the SDL functions have been wrapped with the exception of a few functions that were too C-centric. The SDL Threads and the Audio functions haven't been included because of the problems with Guile code being run from more than one thread. However audio programming can be done with the module ‘(sdl mixer)’ that requires the SDL_mixer library.

Also included is SDL_gfx 2.0.26 (by Andreas Schiffler) and bindings for it.

Download / News


Latest release: 0.6.1 (2022-02-20)

  • changes to ‘(sdl misc-utils)
    • new proc: ‘create-rgba-surface

      This returns a new 32bpp surface of the specified width and height w/ the ‘src-alpha’ flag set.

    • new proc: ‘create-rgba-square

      This returns a new 32bpp square surface of the specified edge length w/ the ‘src-alpha’ flag set.

    • rotate-square’ fixed / extended

      Previously, this proc made reference to ‘roto-zoom-surface’ in the wrong module. This undefined reference was never detected, showing how middlig to poor the test coverage was (and remains). Now, ‘roto-zoom-surface’ is properly imported from ‘(sdl gfx)’.

      Another oddity is that previously, the specified ANGLE argument was subtracted by 90 prior to passing it to ‘roto-zoom-surface’. This bizarre practice is no more.

      Re extension, ‘rotate-square’ now takes optional 3rd arg MKSQUARE which specifies a procedure to make a new square surface. If omitted, it defaults to ‘create-rgba-square’.

      Additionally, if the rotated surface has flag ‘src-alpha’ set, the resizing blit uses ‘(sdl gfx) blit-rgba’ to do the job (otherwise ‘(sdl sdl) blit-surface’, as before).

  • bootstrap/maintenance tools



    as before:

     Guile-BAUX 20211208.0839.a5245e7
     GNU gnulib 2022-01-27 07:00:41
     GNU Libtool 2.4.6
     GNU Autoconf 2.71
     GNU Automake 1.16.5
     GNU Texinfo 6.8



Documentation for Guile-SDL is available online, as is documentation for most GNU software. You may also find information about Guile-SDL by running info guile-sdl or by looking at /usr/share/doc/guile-sdl/, /usr/local/share/doc/guile-sdl/, or similar directories on your system.

Mailing Lists

Guile-SDL has the following mailing lists:

  • bug-guile-sdl is used to discuss most aspects of Guile-SDL, including development and enhancement requests, as well as bug reports.

Announcements about Guile-SDL and most other GNU software are made on the info-gnu mailing list (archive).

Security reports that should not be made immediately public can be sent directly to the maintainer. If there is no response to an urgent issue, you can escalate to the general security mailing list for advice.

Getting involved

Development of Guile-SDL, and GNU in general, is a volunteer effort, and you can contribute. For information, please read How to help GNU. If you'd like to get involved, it's a good idea to join the discussion mailing list (see above).

For development sources, issue trackers, and other information, please see the Guile-SDL project page at

Guile-SDL is currently maintained by Thien-Thi Nguyen (tip jar). Please use the mailing lists for contact.


Guile-SDL is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.