2009-02-24  Sean Ross <sross@common-lisp.net>
	* default-backend.lisp, circularities.lisp: Updated the serialization of lists to fix the bug reported by gugamilare@gmail.com.
	OPTIMIZATION: T and NIL are no longer stored as symbols but have custom serializers (which only writes out the type code)
	FEATURE: Correct List Serialization. A new symbol *precise-list-storage* is now exported from CL-STORE. When bound to true
	all lists will be serialized in as correct a manner as possible ensuring that shared list structure is correctly tracked.
	The unfortunate downside to this is that, due to the recursive nature of the method, storing large lists will blow the stack.
	This provides a workaround for a bug reported in November 2007 by szergling.
2009-01-05  Sean Ross <sross@common-lisp.net>
	* default-backend.lisp: Use find-symbol to lookup sb-c::&optional-dispatch. Reported by .Andrea Chiumenti
	and other small changes.
2007-11-23 Sean Ross <sross@common-lisp.net>
	* abcl/mop.lisp: MOP support for ABCL. Thanks to szergling.
	* clisp/custom.lisp: Custom Closure serialization for CLISP. Thanks to szergling.
	Functions are no longer reliably serializable between implementations.
	* tests.lisp: New function tests for CLISP.
2007-10-30 Sean Ross <sross@common-lisp.net>
	* cl-store.asd: Release 0.8
2007-09-09 Sean Ross <sross@common-lisp.net>
	* sbcl/custom.lisp: be lenient when parsing parts of sbcls version string. Thanks to Gustavo.

2007-01-26 Sean Ross <sross@common-lisp.net>
	* default-backend.lisp : Checked in a fix for non sb32 integers, certain 
	large number numbers where incorrectly serialize. 
	Reported by Cyrus Harmon.
	* plumbing.lisp: Added a new function alias-backend and alias the backend
	'cl-store:cl-store as :cl-store
2007-01-23 Sean Ross <sross@common-lisp.net>
	* circularities.lisp: Renamed with-grouped-serialization to with-serialization-unit
	and added two keyword args to allow removal of *grouped-restore-hash* and 
	*grouped-store-hash* special vars as exported symbols.
	* default-backend.lisp: Changed defvars of register-types to defparameters.

2007-01-22 Sean Ross <sross@common-lisp.net>
	* utils.lisp, circularities.lisp, tests.lisp 
	* stop store-32-bit from creating an intermediary object
	which reduces the consing (on at least Lispworks 5.0 and SBCL 'Kitten of Death').
	* export 4 new symbols which allows more efficient serialization of values.	
	create-serialize-hash, with-grouped-serialization, *grouped-store-hash*
	and *grouped-restore-hash*.
	* conditionalize some forms which were preventing ABCL from running the tests.
2006-12-16 Sean Ross <sross@common-lisp.net>
	* circularities.lisp: Bug fix from Alex Mizrahi. Change *restored-values*
	to use eql as the hash test. 

2006-12-16 Sean Ross <sross@common-lisp.net>
	* cl-store.asd, utils.lisp : Added preliminary support for ABCL (tested on 
	version 0.0.9).

2006-12-13 Sean Ross <sross@common-lisp.net>
	* utils.lisp, acl/custom.lisp, cmucl/custom.lisp, lispworks/custom.lisp
	sbcl/custom/lisp, default-backend.lisp, cl-store.asd: 
	Committed handling for serialization of float types short, single, double and
	long and handling of positive infinity, negative infinity and NaN for all
	float types (this is still only for sbcl, cmucl, acl, and lispworks).

2006-12-11 Sean Ross <sross@common-lisp.net>
	* lispworks/custom.lisp: Began work on new special float creation.
	* .cvsignore : Update ignorable files

2006-10-01 Sean Ross <sross@common-lisp.net>
	* utils.lisp: Fix mkstr to upcase args.

2006-08-03 Sean Ross <sross@common-lisp.net>
	* lispworks/custom.lisp: Fix float handling for Lispworks 5.0 .
	* utils.lisp: changed references to compute-slots to class-slots.
	* package.lisp: Removed symbols from export list that are no 
	longer used.

2006-03-13 Sean Ross <sross@common-lisp.net>
	* sbcl/custom.lisp: Fixed sbcl structure definition
	storing for versions >= .
2006-03-13 Sean Ross <sross@common-lisp.net>
	* utils.lisp, tests.lisp, openmcl/custom.lisp: Added
	support for structure object storing for OpenMCL.
	Thanks to Kilian Sprotte for the code.
	* default-backend.lisp, utils.lisp: Changed creation
	of class initargs to use loop instead of mappend.
	Removed mappend.
2005-11-30 Sean Ross <sross@common-lisp.net>
	* package.lisp: Added imports for MCL (from Gary King)
	* backends.lisp: Changed definition of the defstore-? and
	defrestore-? macros to work with lispworks dspecs.
	* default-backend.lisp: Fixed the *sbcl-readtable* to copy
	the default readtable.
	* plumbing.lisp: Changed cl-store-error to extend directly from error
	and removed error from restore-error and store-error's precedence list.
2005-10-06 Sean Ross <sross@common-lisp.net>
	* backends.lisp: Fixed type definition for 
	compatible-magic-numbers from integer to list.
	Reported by Bryan O'Connor.
2005-10-04 Sean Ross <sross@common-lisp.net>
	* sbcl/custom.lisp: sb-kernel:instance is no
	longer a class (since or so). Fixed
	definition of *sbcl-struct-inherits* to work 
	with or without this class. 
	Reported by Rafał Strzaliński.
2005-09-20 Sean Ross <sross@common-lisp.net>
	* default-backend.lisp: Changed storing and restoring
	of standard-object to not create unnecessary garbage.
2005-09-09 Sean Ross <sross@common-lisp.net>
	* default-backend.lisp: Altered list serialization to store 
	all types of lists (proper, dotted and circular) in N time,
	thanks to Alain Picard for parts of the code.

2005-09-01 Sean Ross <sross@common-lisp.net>
    Version 0.6 Release.
	* cl-store.asd, package.lisp: Added support for the new release
	of CLISP with a MOP.
	* default-backend.lisp: Fixed storing of long lists.
	 (Reported by and help by Alain Picard)
	* default-backend.lisp: New magic number, due to the
	change in approach of storing lists, although previous
	files can still be restored.
2005-05-18 Sean Ross <sross@common-lisp.net>
	* utils.lisp: Removed awhen
	* backends.lisp: Added a compatible-magic-numbers slot.
	* default-backend.lisp: misc cleanups.
	New magic number (can still restore previous versions files).
2005-05-06 Sean Ross <sross@common-lisp.net>
	* backends.lisp: Added optional errorp argument
	to find-backend (default false).
	* default-backend.lisp: Changed simple-string storing
	to keep the upgraded-array-element-type of the 
	restored string the same as the string which was stored.
	This seems to give a performance boost (more in memory usage) 
	with SBCL and Lispworks.
	* circularities.lisp: Stopped binding *stored-values*  
	and *restored-values* when circularity checking is inhibited.
	* doc/cl-store.texi: Miscellaneous fixes.
2005-05-05 Sean Ross <sross@common-lisp.net>
	* all: After much experimentation with Lispworks I
	discovered that globally declaiming unsafe code is
	not a good idea. Changed to per function declarations.
	* default-backend.lisp: Removed lispworks unicode string
	test as it was incorrect.
2005-03-24 Sean Ross <sross@common-lisp.net>
	* backends.lisp, circularities.lisp, tests.lisp:
	Added test gensym.2 which crashed in previous
	versions (pre 0.5.7). Symbols are now tested 
	for eq-ality when storing. 
	int-sym-or-char-p renamed to int-or-char-p.
	* plumbing.lisp: Added error to the superclasses
	of restore-error and store-error.
2005-03-23 Sean Ross <sross@common-lisp.net>
	* backends.lisp: Fix up for type specifications
	for the old-magic-numbers and stream-type slots
	for class backend, reported by Kilian Sprotte.
	* circularities.lisp: Changed *store-hash-size* and
	*restore-hash-size* to more reasonable values (50).
2005-03-17 Sean Ross <sross@common-lisp.net>
	* doc/cl-store.texi: Fixed up to work properly with makeinfo.
2005-03-15 Sean Ross <sross@common-lisp.net>
	* default-backend.lisp, utils.lisp: Changed reference
	to array-dimension-limit in array storing to 
	array-total-size limit.
	* default-backend.lisp: Added an implementation specific 
	test to determine whether or not a string contains unicode
2005-02-26 Sean Ross <sross@common-lisp.net>
	* default-backend.lisp: Fixed internal-store-object
	for the hash-table class (argument order was messed).
2005-02-18 Sean Ross <sross@common-lisp.net>
   Version 0.5 Release.
	* utils.lisp, package.lisp: Took a lesson from the MOP
	and changed serializable-slots to call the new GF 
2005-02-17 Sean Ross <sross@common-lisp.net>
	* package.lisp, utils.lisp, default-backend.lisp: Patch 
	from Thomas Stenhaug which changed get-slot-details to 
	a generic-function so that it can be customized.
	Added serializable-slots (returns a list of slot-definitions)
	which can be overridden to customize which slots are
	serialized when storing clos instances.
2005-02-16 Sean Ross <sross@common-lisp.net>
	* default-backend.lisp, package.lisp, plumbing.lisp: Patch
	from Thomas Stenhaug which adds more comprehensive package
2005-02-14 Sean Ross <sross@common-lisp.net>
	* default-backend.lisp: Applied patch from Thomas Stenhaug
	to default null superclasses of a restored class to 
	standard-object as this caused errors in Lispworks.
2005-02-11 Sean Ross <sross@common-lisp.net>
	New Magic Number for cl-store-backend.
	* default-backend.lisp, acl/custom.lisp, lispworks/custom.lisp
	* sbcl/custom.lisp, cmucl/custom.lisp:
	Changed storing of floats to be compatible between implementations
	while ensuring that NaN floats and friends are still serializable.
	* backends.lisp, plumbing.lisp:
	Added concept of backend designators which can be a 
	symbol (the backend name) or the backend itself. These are 
	acceptable replacements for a backend object
	to store, restore and with-backend.
	Completely changed argument order for generic functions
	to ensure that backends are the first argument.
	* ecl/mop.lisp: Added support for ecl.
	* plumbing.lisp: Removed multiple-value-store (I don't really
	see the point of it).
	* backends.lisp: Changed the working of object restoration
	from functions in a hash-table (restorer-funs of a backend)
	to generic functions specialized on backend and a symbol,
	removed find-function-for-type. 
	* plumbing.lisp: Changed the handling of the stream-type
	of backends to be any legal type designator since it's 
	only used when opening files.
	* backends.lisp: Both defstore-? and defrestore-?
	can take an optional qualifer argument.
2005-02-03 Sean Ross <sross@common-lisp.net>
	* default-backend.lisp: Fixed hash-table restoration,
	it no longer assumes that the result of hash-table-test
	is a symbol but treats it as a function designator.
	* default-backend.lisp: Added various declarations
	to help improve speed.
2005-02-01 Sean Ross <sross@common-lisp.net>
	* various: Large patch which has removed pointless 
	argument-precedence-order from various gf's, added the 
	start of support for ecl, renamed fix-clisp.lisp file to 
	mop.lisp, and changed resolving-object and setting 
	to use delays allowing get-setf-place and *postfix-setters*
	to be removed.
2004-12-02 Sean Ross <sross@common-lisp.net>
	* sbcl/custom.lisp, cmucl/custom.lisp: Changed the evals when restoring
	structure definitions to (funcall (compile nil ...))
	* cl-store-xml.asd: Removed
	* cl-store-xml.noasd: Added (xml-backend is officially nuked).
2004-11-26 Sean Ross <sross@common-lisp.net>
	* cmucl/custom.lisp: Custom structure definition storing for CMUCL.
	* plumbing.lisp: Bind *read-eval* to nil inside store and restore.
2004-11-24 Sean Ross <sross@common-lisp.net>
	* default-backend.lisp: New Magic Number (Breaks backwards compatibility)
	* cl-store.asd New Version 0.4
	* default-backend.lisp: Changed symbol storing to be smarter
	with symbols with no home package.
	* sbcl/custom.lisp: Support for structure definitions from defstruct.
	* tests.lisp: Tests for structure definitions.
	* circularities.lisp: Optimization for referrers and values-object's.
	Added *store-hash-size* and *restore-hash-size* which can be bound
	to reduce the calls to rehash which conses like crazy.
	Added *check-for-circs* which can be bound to nil to stop
	checking for circularities which reduces consing drastically but objects
	will not be eq and will hang on circular objects (see README).
	* default-backend.lisp: New Magic Number ,again.
	Cater for SB! package names for built-in function names
	in SBCL.
2004-11-10 Sean Ross <sross@common-lisp.net>
	New Version: 0.3.6 New Magic Number (Breaks backwards compatibility)
	* default-backend.lisp: Storing for functions and generic functions.
	* tests.lisp: Tests for functions and GF's.
	* plumbing.lisp, circularities.lisp, default-backend.lisp: 
	Optimized int-sym-or-char-p.
	* clisp/fix-clisp.lisp: Added generic-function-name.
	* package.lisp: Import generic-function-name.
	* default-backend.lisp: More optimizations for strings and ints.
2004-11-03 Sean Ross <sross@common-lisp.net>
	* tests.lisp: Added tests for unicode strings and symbols.
	* default-backend.lisp: We definitely support unicode now.
	Added small optimization to stop the size of files from

2004-11-01 Sean Ross <sross@common-lisp.net>
	* default-backend.lisp: Changed storing of sizes of integers
	and strings from store-32-bit to store-object. Changed all
	instances of store-32-byte to store-32-bit. 
	Added a simple function storing method.
	New Magic Number
	* docs/cl-store.texi: New documentation.
	* lispworks/custom.lisp: Custom storing for conditions
	to ignore class allocated slots. 
2004-10-21 Sean Ross <sross@common-lisp.net>
	* package.lisp, acl/custom.lisp: Added support for Allegro CL.
2004-10-13 Sean Ross <sross@common-lisp.net>
	* cl-store.asd: New Version (0.3)
	* circularities.lisp, default-backend.lisp, xml-backend.lisp:
	Changed referrer representation to a structure.
	Removed cl-store-referrer package.
2004-10-12 Sean Ross <sross@common-lisp.net>
	* lispworks/custom.lisp, lispworks/custom-xml.lisp, default-backend.lisp: 
	Added support for NaN floats.
	* tests.lisp: Test NaN floats, Test multiple values.
	* default-backend.lisp: fix typo which broke clisp support.
2004-10-11 Sean Ross <sross@common-lisp.net>
	* default-backend: Added multiple-value-store.
	* xml-backend: Added support for multiple return values.
2004-10-07 Sean Ross <sross@common-lisp.net>
	* circularities.lisp: Added support for multiple return values from
	functions defined with defrestore-?.
2004-10-06 Sean Ross <sross@common-lisp.net>
	* cl-store-xml.asd, xml-package.lisp, xml-tests.lisp: Moved the xml backend
	into it's own package files.
	* xml-backend.lisp, sbcl/custom-xml.lisp, cmucl/custom-xml.lisp, lispworks/custom-xml.lisp:
	Added support for infinite floats to sbcl, cmucl and lispworks.
	* xml-backend.lisp, default-backend.lisp:
	Fixed floating point contagion warning signalled by clisp.
	* plumbing.lisp: Changed error handing to signal a store-error or restore-error
	inside a handler-bind and leave the original error unhandled.
	* docs/: Rudimentary Documentation.
2004-10-05 Sean Ross <sross@common-lisp.net>
	* default-backend.lisp: New Magic number.
	* backends.lisp: Changed with-backend to take a variable instead of a backend name.
	* backends.lisp, plumbing.lisp: Added previous magic number field to backends and
	an appropriate error if an incompatible magic number is read. 
	* circularities.lisp, plumbing.lisp: Removed check-stream-element-type.
	* default-backend.lisp: Added a small optimization for 32 byte integers and
	support for symbols with unicode strings as names. 
2004-10-04 Sean Ross <sross@common-lisp.net>
	* sbcl/custom.lisp: Custom float storing (supports inifinities).
	* cmucl/custom.lisp: Custom float storing (supports inifinities).
	* xml-backend.lisp, tests.xml: Deprecated xml-backend.
2004-10-01 Sean Ross <sross@common-lisp.net>
	* lispworks/custom.lisp: Lispworks support for inifinite floats from Alain Picard.
	* tests.lisp: Infinite float tests for lispworks.
2004-09-27 Sean Ross <sross@common-lisp.net>
	* plumbing.lisp: Slightly nicer error handling (I think).
	All conditions caught in store and restore are resignalled
	and rethrown as a store or restore error respectively.

2004-09-01 Sean Ross <sross@common-lisp.net>
	* sbcl/custom.lisp, sbcl/custom-xml.lisp: Custom structure storing.
	* cmucl/custom.lisp, cmucl/custom-xml.lisp: Custom structure storing.
	* lispworks/custom.lisp, lispworks/custom-xml.lisp: Custom structure storing
	for Lispworks from Alain Picard.
	* test.lisp: Enabled structure tests for Lispworks.

2004-07-29 Sean Ross <sross@common-lisp.net>
	* cl-store.asd: New version (0.2)
	* sbcl/sockets.lisp: Removed.
	* store.lisp: Removed.
	* backends.lisp: New file for creating backends (Idea from Robert Sedgewick).
	* circularities.lisp: Much changes, now works properly.
	* default-backend.lisp: New file contains storing definitions
	from store.lisp. Changes to simple-string storing, magic-number changed.
	* plumbing.lisp: New file, framework stuff.
	* xml-backend.lisp: New file. New backend for writing out Common-Lisp
	objects in xml format.
	* tests.lisp : More and more tests.
2004-06-04 Sean Ross <sross@common-lisp.net>
	* circularities.lisp: spelling fix.
	* cl-store.asd: Specialized operation-done-p to stop some errors in asdf.
	* package.lisp: Imports for openmcl from Robert Sedgewick,
	Along with extra imports for cmucl.

2004-05-21 Sean Ross <sross@common-lisp.net>
	* store.lisp, fix-clisp.lisp, circularities.lisp, package.lisp, 
	* tests.lisp, utils.lisp, cl-store.asd:
	   Added ability to specify the type code of an object 
	   when using defstore. Added code to autogenerate the 
	   accessor methods for CLISP when restoring classes.
	   EQ floats are now restored correctly.
2004-05-18 Sean Ross <sross@common-lisp.net>
	* store.lisp, fix-clisp.lisp, sbcl/sockets.lisp:
	Added fix for sbcl to use non-blocking IO when working with sockets.
	Created directory structure and moved fix-clisp

2004-05-17 Sean Ross <sross@common-lisp.net>
	* store.lisp, fast-io.lisp, circularities.lisp, package.lisp,
	fix-clisp.lisp, utils.lisp, cl-store.asd, tests.lisp:
	Initial import