Guile-SDL NEWS
See the end for copying conditions.


- 0.4.3 | 2013-04-13
  - bug-report address updated


- 0.4.2 | 2013-03-18

  - distribution now also .tar.lz

	If you have GNU tar, you can use "tar xf" and it will DTRT.
	If not, you can use "lzip -dc TARBALL | tar xf -" to unpack.

  - new support for configure var ‘IMFI_CFLAGS’

	If your cpu supports MMX extensions but your compiler mishandles
	the assembly in the imagefilter functions (causing a segfault),
	you can use configure command-line var ‘IMFI_CFLAGS’ to try to
	work around the problem.  For example, invoking like so:

	$ ./configure         \
	    CFLAGS='-g -O3'   \
	    IMFI_CFLAGS='-O1'

	arranges to pass ‘-g -O3 -O1’ to the compiler, which should set
	the optimization level to one (later option overrides).  Like
	‘CFLAGS’, this var is marked "special" and remembered for
	subsequent config.status invocations.

	FWIW, this works for GCC 4.4 on a 32-bit x86 Debian system; no
	more need for "make check NOMMX=1" here!

  - tested w/ Unofficial Guile 1.4.1.127, Guile 1.8.7, Guile 2.0.7

	Under Guile 2, "make check DEBUG=1" skips the leak test because
	Guile 2 does not track deallocations.

  - bootstrap tools upgraded
    - GNU Automake 1.13.1
    - Guile-BAUX 20121120.1242.e233fad
    - SNUGGLE 0.2
    - makeinfo (GNU Texinfo) 5.1


- 0.4.1 | 2012-11-15

  - distribution now .tar.xz

	If you have GNU tar, you can use "tar xf" and it will DTRT.
	If not, you can use "xz -dc TARBALL | tar xf -" to unpack.

  - integer arg no longer accepted for ‘grab-input’

	This was pre-announced in Guile-SDL 0.4.0 (2011-12-15) NEWS.

  - bugfix: ‘font:glyph-metrics’ Scheme char to C char conversion

	The bug, introduced 2003-11-09, manifested as a mysterious
	(expecting integer) wrong-type-arg error.  Now fixed, with test.
	(The test is pretty lame, admittedly.)

  - improved portability

	Tested w/ Guile 2.0.6, 1.8.7, 1.4.1.127.  Apparently 2.0.6
	sneers at ‘apply-to-args’; wave goodbye to another old friend.

  - bootstrap tools upgrade
    - GNU Autoconf 2.69
    - GNU Automake 1.12.4
    - Guile-BAUX 20121026.1208.c21074a
    - SNUGGLE 0.1


- 0.4.0 | 2011-12-15

  - improved portability

	Guile-SDL is now also tested with Guile-1.8.7 on a 64-bit host.
	It should build and run without any deprecation warnings; if use
	under ‘GUILE_WARN_DEPRECATED=detailed’ reveals something, please
	report that as a bug.

	Notably, for Guile versions that do not support "direct shared-
	object loading" (i.e., Guile 1.8+), configuration arranges for a
	module's sofile to be installed in $(libdir)/guile-sdl -- aka
	$(pkglibdir) -- and its Scheme wrapper (that dynamically loads
	the sofile and handles ‘define-module’ duties) to be installed in
	the "normal" site directory.

	See new file HACKING for details.

  - validation

    - use Free{SansBold,SerifBoldItalic}.ttf for testing

	The testing (distributed but not installed) font files are now
	FreeSansBold.ttf and FreeSerifBoldItalic.ttf (see AUTHORS).  The
	file crystal.ttf is no longer included due to doubts about its
	lineage and licensing.

    - support for ‘VERBOSE=1’

	By default, "make check" is relatively silent.  You can use
	"make check VERBOSE=1" to see more information.

    - support for ‘NOMMX=1’

	You can disable MMX usage dynamically with "make check NOMMX=1".
	This might be necessary if test/gfx.scm segfaults.  :-/

    - infrastructure upgrade

	Doing "make check" now prepares a "simulated installation"
	(under test/.simu) for better approximation to a real-world,
	post-install environment.  It is an approximation only because
	documentation is not included.

	Tests are now run by a driver program which DTRT, we hope.
	Also, they have full access to Guile-BAUX modules.

    - support for "make installcheck"

	(You need to "make install" first!)  Since ‘installcheck’
	piggybacks on ‘check’, it honors ‘INTERACTIVE=1’, etc.

    - tests delay less

	This makes running "make check" less weary for the impatient.

    - tests explicitly ‘exit’

	Moreover, the exit value is taken from the ‘(sdl sdl) quit’
	return value.  This helps detect problems earlier.

    - different ‘#:prefix’ for each module

	Previously, some tests would use the same import-prefix for
	different modules.  Now they are distinct, for clarity.

    - cursor test ignores ‘INTERACTIVE=1’

	There was really no good reason for it to honor ‘INTERACTIVE=1’
	in the first place.

    - better coverage, though still incomplete

	The test suite now includes ‘t99-cov’, marked as ‘xfail’.
	There are still 189 "slighted" procedures.

  - planned retirement: integer arg for ‘grab-input’

	Support for integer ‘mode’ to proc ‘(sdl sdl) grab-input’ WILL BE
	REMOVED after 2012-05-31, such that an integer ‘mode’ will result
	in a ‘wrong-type-arg’ error.

	Migration is straightforward; use a symbol instead of an integer.
	was: -1     now: query
	      0          off
	      1          on

  - planned retirement: ordinary vector argument(s)

	Some procedures now take uniform vector arguments (see below).
	For backward compatability with Guile-SDL 0.3.10 and earlier,
	you can also use an ordinary vector.  This is expensive and less
	safe, however, so this support WILL BE REMOVED after 2012-12-31.

	Luckily, migration is simple: Import module ‘(srfi srfi-4)’ and
	replace ‘list->vector’ with ‘list->u16vector’, and so on.

  - bugfixes

	Backward-incompatible changes are marked with "[I]".

    - distribute ‘SDL_gfx’ LICENSE

	I.e., the GNU LGPL 2.1.

    - no MMX support if not in "32-bit mode"

	The MMX support (in SDL_gfx) was previously enabled for any
	processor that reported support for it.  However, the code
	itself makes use of instructions (e.g., PUSHA, POPA) that are
	not available in 64-bit mode, so we now don't even bother
	checking for MMX support for 64-bit processors.

    - [I] flags are symbols

	Previously the following procs returned a (possibly empty) list
	of strings.  Now, they return a (possibly empty) list of symbols.

	- (sdl sdl) flagstash-flags
	- (sdl sdl) number->flags
	- (sdl sdl) was-init
	- (sdl sdl) get-mod-state
	- (sdl sdl) event:key:keysym:mod
	- (sdl ttf) font:style

    - exact bitwise match required in ‘ulong2flags’

	This func, a subroutine of the procs listed above in entry
	"flags are symbols" (except for ‘flagstash-flags’), used to
	include a flag in the returned list if any of its constituent
	bits were set in the original number.  Now, it requires all set
	bits to match as a condition for inclusion.

    - correct proc name for wrong-type-arg error message

	The following procs used to mis-identify themselves (as another)
	in the ‘wrong-type-arg’ error message:

	- (sdl mixer) paused?
	- (sdl sdl) load-image
	- (sdl sdl) set-gamma-ramp

    - allocate enough memory for temp ‘SDL_Color’ array

	Procs ‘set-colors!’ and ‘set-palette’ used to corrupt memory by
	underallocating a temporary ‘SDL_Color’ array, then overfilling
	it.  Now, they allocate the right amount.

    - avoid ‘SDL_Surface’ double-free

	Previously, both ‘get-video-surface’ and ‘set-video-mode’ would
	return a smob whose free func would call ‘SDL_FreeSurface’ on
	the unpacked ‘SDL_Surface’ object.  This is incorrect because
	those objects are internal (and moreover currently in use),
	rather than freshly constructed for hand-off to the user; the
	smob free func should not call ‘SDL_FreeSurface’ on them.  That
	is the job for the internal cleanup invoked by ‘(sdl sdl) quit’.

	Now, the ‘SDL-Surface’ smob distinguishes between user and
	internal, and its free func calls ‘SDL_FreeSurface’ only for
	user objects.

    - ‘(sdl sdl) get-caption’ handles ‘NULL’ title, icon

	This used to segfault on ‘NULL’ title or icon.

  - other changes

	Backward-incompatible changes are marked with "[I]".  For procs
	that now take uniform vectors, see also the "planned retirement"
	NEWS entry above.

    - [I] arg type-check tightened from ‘exact?’ to ‘integer?’

	Procs that used to accept exact numbers now accept integers
	only.  This basically means rational numbers are now invalid.
	Observant tarball-perusers will note that the modules and tests
	no longer use ‘quotient’.

    - ‘(sdl gfx) imfi-mmx?’ now able to set MMX usage

	This now takes an optional arg ‘setting’ for en-/dis-abling MMX
	usage at runtime.

    - embedded ‘SDL_gfx’ upgraded to 2.0.22

	Unfortunately, some MMX-backed procs now routinely segfault.
	(More unfortunately, the segfault has not been investigated, and
	was in fact the motivation for extending ‘imfi-mmx?’, as a "make
	check" workaround.  Masking bugs via feature creep: suboptimal.)

    - new proc: ‘(sdl gfx) draw-rounded-rectangle’

	This draws a rectangle with rounded corners of specified radius.

    - new proc: ‘(sdl gfx) draw-thick-line’

	This draws a line of specified thickness (in pixels).

    - new proc: ‘(sdl gfx) font-rotation!’

	This causes subsequent ‘draw-character’ and ‘draw-string’ calls
	to render rotated images.  The symbolic specified rotation is
	one of ‘none’, ‘clockwise’, ‘counter-clockwise’, ‘upside-down’.

    - new enumstash: ‘(sdl gfx) font-rotations’

	This is for ‘font-rotation!’ support.

    - new proc: ‘(sdl misc-utils) exact-truncate’

	This is nothing but ‘(inexact->exact (truncate n))’ plus
	documentation, support and the special glow from association
	with other Guile-SDL procs. :-D

    - ‘#:prefix’ used for import renaming

	All ‘#:renamer’ uses were coincident with ‘symbol-prefix-proc’,
	so these have been replaced with ‘#:prefix’.  [Insert blurb
	about ‘symbol-prefix-proc’ regret, here.]

    - some ‘(sdl gfx)’ procs take s16 uniform vectors

	Coordinate arguments for these procs can now be s16 uniform
	vectors.  You can even mix normal w/ s16 (but that's crazy).
	- draw-polygon
	- draw-aa-polygon
	- draw-textured-polygon
	- draw-bezier

    - ‘(sdl sdl) create-cursor’ takes u8 uniform vectors

	The ‘data’ and ‘mask’ arguments can now be u8 uniform vectors.

    - ‘(sdl sdl) set-gamma-ramp’ takes u16 uniform vectors

	The red, green and blue table arguments can now be u16 uniform
	vectors.

    - [I] ‘(sdl sdl) get-gamma-ramp’ now returns list of uvec

	Previously, this proc returned an alist.  Now, it returns a list
	of three elements, each of which is a u16 uniform vector.

    - [I] ‘(sdl sdl) show-cursor’ redesigned

	The optional arg is no longer a "toggle enabler" (which didn't
	seem to be implemented correctly, anyway) but instead a direct
	"setting".  In other words:

	was: show: (or  (show-cursor) (show-cursor #t)) ; buggy?
	     hide: (and (show-cursor) (show-cursor #t)) ; buggy?
	     flip: (show-cursor #t)                     ; buggy?

	now: show: (show-cursor #t)
	     hide: (show-cursor #f)
	     flip: (show-cursor (not (show-cursor)))

  - documentation improvements
    - manual license now GNU FDL 1.3
    - table of contents now after title page
    - getter/setter procs documented
    - SDL type no longer mentioned in access procs
    - todo list dropped

  - tools for bootstrap upgraded
    - no longer need gperf(1) to bootstrap
    - GNU Automake 1.11.1
    - GNU Autoconf 2.68
    - GNU Libtool 2.4.2
    - GNU texinfo 4.13
    - Guile-BAUX 20111207.1126.1d610b3
    - snuggle.m4 serial 5


- 0.3.10 | 2009-04-24

  - bugfix: set-position now usable

	This (sdl mixer) proc, introduced in Guile-SDL 0.3.9, now
	correctly accepts three args, as documented.

  - MMX detection

	The configure script now detects whether or not the CPU supports
	MMX instructions and automatically builds with USE_MMX=1 if so.

  - (sdl sdl) procs implemented: set-event-filter, get-event-filter

	Previously, these would throw an error saying "not yet
	implemented (sorry)".  Note that the interface for
	‘set-event-filter’ is different from before.  This is not a
	problem since the proc was not useful before, anyway.

  - new (sdl gfx) proc: draw-arc

	This is because the embedded libSDL_gfx is now at version 2.0.18.

  - maintenance uses autoconf 2.63 and libtool 2.2.6


- 0.3.9 | 2008-04-02

  - bugfix for "make uninstall"

	Previously, this left some files in $(GUILE_LIBSITE)/sdl.
	Now, those files (and that directory) are properly deleted.

  - new (sdl gfx) procs

	These 26 are the image-filter functions that have a C
	implementation: imfi-mmx?, imfi-add, imfi-mean, imfi-sub,
	imfi-abs-diff, imfi-mult, imfi-mulnor, imfi-muldiv2,
	imfi-muldiv4, imfi-logand, imfi-logior, imfi-div, imfi-not,
	imfi-add-c, imfi-add-c-to-half, imfi-sub-c, imfi-ashr,
	imfi-lshr, imfi-mul-c, imfi-ashr-mul-c, imfi-bshl, imfi-lshl,
	imfi-ashl, imfi-binarize, imfi-clip, imfi-normalize-linear.

	On ttn's computer, (imfi-mmx?) => #f, so the MMX side of things
	has not been tested.

  - new (sdl mixer) procs: set-panning, set-distance, set-position

	Move the sound 'round and 'round;
	all that's missing is up and down.

  - public repo: http://www.gnuvola.org/wip/  (guile-sdl)

  - maintenance now uses libtool 1.5.24 and automake 1.10.1


- 0.3.8 | 2007-10-11

  - new (sdl misc-utils) proc: fader/3p
  - new (sdl misc-utils) proc: toroidal-panner/3p

	These are three-phase exposing variants of ‘fade-loop!’ and
	‘toroidal-panner’, respectively.  (In fact, the old procs have
	been rewritten to use the new.)  Three-phase procs return three
	values, one for each phase of "init", "next" and "done".  This
	lets caller maintain control for fine(r)-grained scheduling.
	See manual for an example of the stylized call sequence.

	NOTE: Both ‘fade-loop!’ and ‘toroidal-panner’ are scheduled for
	removal by 2008-01-01.  DO NOT RELY ON THEM.

  - new (sdl gfx) proc: blit-rgba
  - new (sdl gfx) proc: set-pixel-alpha!

	The latter wraps ‘SDL_gfxSetAlpha’ in the underlying (SDL_gfx)
	library, but the natural schemified name would clash w/ SDL's,
	so this was chosen for uniqueness as well as to emphasize its
	per-pixel nature.

  - docs have more info

	The manual now lists valid values for flagstash:* and *-enums,
	mined using ‘flagstash-flags’ and ‘enumstash-enums’, respectively.


- 0.3.7 | 2007-09-16

  - license now GPLv3+ (see COPYING)

  - installation changes
    - no longer created: libFOO.so symlink to FOO.so
    - deleted: .la file, libFOO.so and other symlinks

  - embedded library upgraded: libSDL_gfx 2.0.16
    - new proc: draw-textured-polygon
    - new proc: roto-zoom-surface-xy
    - new proc: shrink-surface

  - changes to (sdl simple) procs
    - new simple-canvas command: #:resize! NEW-WIDTH NEW-HEIGHT
    - simple-stylus #:render can take optional args: COLOR, BG
    - simple-stylus #:write! has new INCOMPATIBLE interface; see manual

  - maintenance now uses libtool 1.5.24 and autoconf 2.61


- 0.3.6 | 2007-02-06

  - bugfixes
    - load-image now returns #f (instead of crashing) if there are problems
    - get-video-info rv now has "wm-available" and bool "blit-fill"
    - map-rgb and map-rgba now return unsigned integer
    - make-surface now
      - uses pixel format from current video surface, if available
      - handles case: no current video surface and no flags specified

  - return value specified: both quit and quit-subsystem now return #t
  - more slackful: update-rects now accepts an empty list for second arg
  - more slackful: set-clip-rect! now accepts #f for second arg
  - more slackful: cd-get-{num-tracks,cur-track,cur-frame} call cd-status

  - changes with compatability note (see each proc's documentation)
    - grab-input now takes and returns symbols, one of: query, off, on

  - new (sdl sdl) proc: rect?
  - new (sdl sdl) proc: color?
  - new (sdl misc-utils) proc: rectangle-closure
  - new (sdl misc-utils) proc: rectangle<-geometry-string
  - new (sdl misc-utils) proc: rect<-surface
  - new (sdl misc-utils) proc: copy-rectangle
  - new (sdl misc-utils) proc: toroidal-panner


- 0.3.5 | 2006-01-29

  - change to (sdl misc-utils) proc: copy-surface

	This now takes an optional second arg CLIP, a rectangle which
	specifies the portion of the surface to copy.  By default (if
	unspecified or #f), the entire surface is copied.

  - implementation for (sdl sdl) proc: get-key-state

  - new (sdl misc-utils) proc: fade-loop!

  - maintenance uses GNU Automake 1.9.6


- 0.3.4 | 2005-05-17

  - bugfix: smob memory accounting

	The rectangle, event, color, and cursor smobs used to either
	fail to free their internal resources, or report an incorrect
	number as the return value of their "free" function.  This would
	cause Guile to become confused and, in the worst case, also leak
	memory (and eventually segfault).

	These errors have now been fixed.  The test for them is in file
	test/leak.scm, which enabled only for "make check DEBUG=1".

  - new (sdl sdl) proc: get-wm-info

  - FSF street address updated in copyright notices


- 0.3.3 | 2005-04-03

  - bugfix: get-clip-rect no longer causes error

	The implementation no longer tries arrange for SDL to write
	through a NULL pointer; this used to result in the SDL parachute
	being deployed if present, or a segfault otherwise.

  - bug exposure change: procs more strict on unsigned types

	The following procs now take care to do unsigned integer
	conversion directly, instead of signed conversion followed by
	cast to unsigned.

	create-rgb-surface
	map-rgba
	map-rgb
	get-rgb
	warp-mouse

	This is part of an ongoing effort to remove/reduce "manual"
	casting (which may mask bugs) in the codebase.

  - new (sdl sdl) proc: get-app-state

  - change to (sdl misc-utils) proc: copy-surface

	This now uses ‘convert-surface’ to do one-step copy/conversion,
	instead of the two-step process used previously.  The SRCALPHA
	(per-surface flag) handling added in Guile-SDL 0.3.2 has been
	removed.

  - procs which take lists of symbols now handle #f and empty list

	Using these args is now equivalent to specifying 0 (zero) to the
	underlying SDL function.

  - ‘set-alpha!’ third arg now optional

	If omitted it is taken as #f.

  - new chapter in manual: "Excuses (Undone Wrapping)"


- 0.3.2 | 2005-01-23

  - bugfix: (sdl sdl) proc ‘fill-rect’ handles alpha/red values > 127

	The color used to be extracted as signed instead of unsigned.
	This caused incorrect out-of-range errors for color values whose
	high bit (alpha for ABGR, red for RGBA) was set.

  - bugfix: (sdl misc-utils) proc ‘copy-surface’ handles SDL_SRCALPHA

	The proc now takes care to clear this flag (and restore it
	afterwards) in the source surface around the blit, so that RGB
	values are copied correctly.  Unfortunately, the actual alpha
	value is lost due to being unconditionally restored as 255.

  - procs moved to (sdl gfx): zoom-surface and roto-zoom-surface

	Side effect of the upgrade described in the next entry.

  - embedded library upgraded: libSDL_gfx 2.0.13

	This library (by Andreas Schiffler) is the successor to
	libSDL_gfxPrimitives and libSDL_rotozoom, incorporating their
	functionality and interfaces, and providing other goodies as
	well.  The result for Guile-SDL users is that module (sdl gfx)
	has been augmented w/ the following new procs:

	zoom-surface		;; moved from (sdl sdl)
	roto-zoom-surface	;; likewise
	draw-hline		;; rest are completely new
	draw-vline
	draw-aa-circle
	draw-aa-ellipse
	draw-pie-slice
	draw-trigon
	draw-aa-trigon
	draw-aa-polygon
	draw-bezier
	make-fps-manager
	fps-manager-set!
	fps-manager-get
	fps-manager-delay!

	For more info, see new chapter "libSDL_gfx" sections: Graphics
	Primitives, Rotation / Zooming, and Managing Frame Rate.


- 0.3.1 | 2005-01-08

  - bugfix: ‘make-surface’ and ‘create-rgb-surface’ no longer ignore ‘flags’

	These procs used to internally hardcode SDL_HWSURFACE instead of
	using the ‘flags’ argument.

  - dropped (sdl sdl) proc: scale-surface

	This was never implemented.  Its advertized functionality was
	also redundant w/ ‘zoom-surface’, which furthermore has the
	benefit of a more flexible interface.

  - print representation for flagstash objects now begins with "#"

	This is to follow the Scheme convention for printing objects
	that cannot be ‘read’ back in.

  - implementation for (sdl sdl) proc: event-state
  - implementation for (sdl sdl) proc: peep-events

	Previously the interface was available but calling these procs
	resulted in a "not yet implemented" error.

  - new (sdl misc-utils) proc: copy-surface
  - new (sdl misc-utils) proc: ignore-all-event-types-except

  - new module: (sdl simple)


- 0.3.0 | 2004-11-25

  - "guile-tools make-module-catalog" no longer invoked unconditionally

	If your Guile installation does not provide this program, that's
	ok; Guile-SDL will still build.  However, in that case the
	wrapper script ‘wily-guile’ may have difficulty finding the
	pre-installed compiled modules, which will affect "make check",
	primarily.

	For more info, see file GUILE-FIXES in the distribution directory.

  - "make install" more graceful for !HAVE_MIXER and !HAVE_TTF

	The "make install" for these subsystems, when disabled (either
	due to lack of underyling support, or through command-line
	options to ./configure), used to try to symlink files that were
	not present (see NEWS for Guile-SDL 0.2.5).


- 0.2.6 | 2004-09-01

  - docs cleanup

	The documentation methodology extracts signatures from functions
	in C source code and thus the variable name of the arguments are
	the ones displayed (unless overridden).  Previously, the vars
	were named w/ an "s_" prefix to indicate "scheme value", a mild
	form of Hungarian notation.  A particularly striking example:

	 - Scheme Procedure: create-rgb-surface s_flags s_width s_height
		s_depth s_rmask s_gmask s_bmask s_amask

	This has now been changed to read:

	 - Scheme Procedure: create-rgb-surface flags width height depth
		rmask gmask bmask amask

	The signature still occupies two lines -- unavoidable w/ so many
	arguments -- but the whole is less jarring to read (we hope).

  - info entry now under category "Guile modules"

	It used to be under "Guile".

  - "basics" series finished

	This release concludes the "basics" series which prioritized
	general methodology refinement over features.  Next series, to
	be numbered 0.3.x, is for "coverage" (see TODO).


- 0.2.5 | 2004-07-23

  - backward-compatability installation bugfix: libFOO.la symlinks

	To support the venerable "scm_init_FOO_BAR_module" method for
	loading binary modules in versions of Guile that look for a
	FOO/libBAR.la, and not simply FOO/BAR.la, appropriately named
	symlinks are now created for each installed .la file.

  - bugfix: symbolic return value for ‘fading-music’ and ‘fading-channel’

	These procs used to return an integer.  Now they return a
	symbol, one of: MIX_NO_FADING, MIX_FADING_OUT, MIX_FADING_IN.

  - new (sdl misc-utils) proc: poll-with-push-on-timeout-proc

  - new (sdl sdl) proc: enumstash-enums


- 0.2.4 | 2004-06-28

  - installation change: scheme wrappers eliminated

	The module (sdl sdl) used to be a scheme wrapper for binary
	module (sdl sdl-sup).  Now it is the binary module itself.
	See README.  Also, (sdl sdl) no longer provides the procs
	‘call-with-clip-rect’ and ‘rotate-square’.

	On "make install" if file $(GUILE_SITE)/sdl/sdl.scm exists,
	it is deleted.  If the dir $(GUILE_SITE)/sdl is empty as a
	result, it is also deleted.

  - new module: (sdl misc-utils)

	Currently this contains the procs ‘call-with-clip-rect’ and
	‘rotate-square’, both of which used to be available in module
	(sdl sdl).  The procs are documented in the info pages in a new
	chapter: "Miscellaneous Utilities".



- 0.2.3 | 2004-03-06

  - return value changes
    - cd-status: symbolic (was integer)
    - cd-get-nth-track: #f on error (was empty list)
    - joystick-get-ball: #f on error (was empty list)

  - new (sdl sdl) proc: string->image


- 0.2.2 | 2004-02-08

  - bug fix: module (sdl sdl) no longer loads (ice-9 syncase)

  - bug fix: roto-zoom-surface arg zoom no longer ignored

  - bug fix: all-but-last optional args now handle #f as "unspecified"

	If a procedure takes optional only one optional arg, that
	procedure has not changed.

	If a procedure takes more than one optional arg, all but the
	last of such args now handle #f the same as being "unspecified".
	To have the last optional arg be interpreted as "unspecified",
	simply omit it!

	This change was motivated to allow specification of the last
	optional arg while "not really specifying" the others.  Here is
	a list of procedures (and the optional args involved) that were
	changed, grouped by module:

    - (sdl mixer)

	open-audio -- freq format chunksize
	play-channel -- channel loops ticks
	play-music -- loops
	volume -- volume
	expire-channel -- channel
	fade-out-channel -- which
	fade-out-group -- tag

    - (sdl sdl)

	cd-play-tracks -- start-track start-frame n-tracks n-frames
	cd-msf->frames -- s f
	make-keysym -- sym
	roto-zoom-surface -- zoom
	zoom-surface -- zoomy
	blit-surface -- srcrect dst dstrect
	list-modes -- pixel-format flags

  - arity relaxation

	The last arg for some procedures has been made optional.  Code
	specifying these args still works (backwards-compatible change).
	Here is a list of procs -- all in module (sdl sdl) -- and their
	affected args:

	set-clip-rect -- rect
	set-caption -- icon
	video-mode-ok -- flags


- 0.2.1 | 2004-01-19

	This is a maintenance release (no user-visible changes).
	Basically, some sub-optimal C macrology was reworked.


- 0.2.0 | 2003-11-21

  - installation change: scheme wrappers for most modules eliminated

	Previously, the modules (sdl mixer), (sdl ttf) and (sdl gfx)
	were implemented as a combination of a small piece of Scheme
	code that dlopened a libtool-created shared object library in
	${libdir}.  Since Guile can recognize certain shared object
	libraries as modules and load them directly, these Scheme code
	wrappers are not required and thus are now no longer distributed.
	Instead, "make install" places the shared object libraries for
	these modules and their support files in directory:

		${GUILE_LIBSITE}/sdl/

	The value of ${GUILE_LIBSITE} is determined by the ‘configure’
	script.  Also installed in this directory is the compiled module
	(sdl sdl-sup), an internal module used by all the user-facing
	modules.  Related to these changes, if the program "guile-tools
	make-module-catalog" is available, installation invokes it for
	the ${GUILE_LIBSITE} directory for the compiled modules, and
	${GUILE_SITE} for module (sdl sdl).  See README for more info.

  - upgrade facility: make {check,clean}-000-libdir

	See README section "Upgrading Tips" for info on how to handle
	old ${libdir}/libguileSDL* files (from Guile-SDL 0.1.x).

  - "sdl-" prefix dropped

	Procedure names no longer begin with "sdl-".  You can use the
	#:renamer clause (in ‘use-modules’ and ‘define-module’ forms)
	to add this back, or possibly choose another prefix.  In this
	distribution, the tests, examples and documentation use "SDL:".

  - "make check" now respects INTERACTIVE env var

	Normally "make check" skips tests that require human
	interaction.  You can do "make check INTERACTIVE=1" to
	enable running those tests as well.


- maintainership transfer: ttn

	A big thanks goes to Alex Shinn, Vikram Subramanian, and Joel
	Smith, the original authors of the disparate packages that all
	came together as Guile-SDL in mid-to-late 2001, for (1) writing
	the code; (2) pooling their efforts; and (3) passing it on.


- 0.1.7

	Most of the merge complete.  Looking to make some minor clean-up
	and bugfixes before a 0.2.0 release.


- 0.1.0

	This is the very first version of Guile-SDL.


Copyright information:

Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009,
              2011, 2012, 2013 Thien-Thi Nguyen

   Permission is granted to anyone to make or distribute verbatim copies
   of this document as received, in any medium, provided that the
   copyright notice and this permission notice are preserved,
   thus giving the recipient permission to redistribute in turn.

   Permission is granted to distribute modified versions
   of this document, or of portions of it,
   under the above conditions, provided also that they
   carry prominent notices stating who last changed them.

______________________________________________
	Local Variables:
	mode: outline
	outline-regexp: "\\([ ][ ]\\)*- "
	fill-column: 72
	fill-prefix: "\t"
	End:
