Update of /project/elephant/cvsroot/elephant In directory common-lisp:/tmp/cvs-serv7130
Modified Files: Makefile TODO ele-bdb.asd ele-clsql.asd ele-sqlite3.asd elephant-tests.asd elephant.asd Log Message: See elephant-devel mail for changes...and take a big, deep breath...
--- /project/elephant/cvsroot/elephant/Makefile 2006/01/29 01:08:31 1.8 +++ /project/elephant/cvsroot/elephant/Makefile 2006/02/19 04:52:58 1.9 @@ -32,10 +32,10 @@
all: libsleepycat.$(EXT) libmemutil.$(EXT)
-libmemutil.$(EXT): src/libmemutil.c +libmemutil.$(EXT): src/memutil/libmemutil.c gcc $(SHARED) -Wall -fPIC -O3 -o $@ $< -lm
-libsleepycat.$(EXT): src/libsleepycat.c +libsleepycat.$(EXT): src/db-bdb/libsleepycat.c gcc $(SHARED) -Wall -L$(DBLIBDIR) -I$(DBINCDIR) -fPIC -O3 -o $@ $< -ldb -lm
--- /project/elephant/cvsroot/elephant/TODO 2006/02/14 15:31:09 1.12 +++ /project/elephant/cvsroot/elephant/TODO 2006/02/19 04:52:58 1.13 @@ -7,26 +7,26 @@ 0.6.0 - Adding default class/slot indexing - Finish indexing tests (Ian) - Documentation update (Robert) +* Add clsql like support for building .so/.dylib from asdf loader on most systems +* Make elephant thread bound variables dynamic and modifiable by backends +* Finish migration port and tests +- Think about dynamic vs. object based store & transaction resolution? + - Error checking when mixed + - Current store specific *current-transaction* stack +- Throw condition when store spec is invalid, etc
0.6.1 - performance, safety and portability
Stability: -- Add clsql like support for building .so/.dylib from asdf loader on most systems -- Cleanup multi-repository operation (ensure that conflicts between an object's - registry and *store-controller* does not leed to lockup, especially with BDB (Both) - Think through default vs. explicit store referencing all over the APIs (Both) - Cleaner failure modes if operations are performed without repository or without transaction or auto-commit (Both) - Add asserts if *auto-index* is false and we're not in a transaction +- Add asserts if *auto-index* is false and we're not in a transaction to help users avoid lockups in bdb? Should be able to turn off for performance but it will help catch missing with-transaction statemetns in user code. (Both) - BDB: determine how to detect deadlock conditions as an optional run-safe mode? (?) - Does BDB have timeouts enabled on select? (Ian) -- Fix backend dependency problems (missing functions with-transaction-sql, etc) - caused by not having clsql loaded. Backends should not cause such failures - and should use asdf to load their deps when the backends are instantiated; much - like clsql does now + Does BDB have timeouts enabled on select? (Ian) - Remove build gensym warnings - Port elephant to closer-to-MOP to make it easier to support additional lisps (Both) - (From Ben's e-mail) We are storing persistent objects incorrectly. They should be @@ -38,8 +38,6 @@ to use a lot of locks. In general understanding how to use Sleepycat efficiently seems like a good thing. (From Ben) - Reclaim table storage on index drop (Ian) -- Higher performance fix for allegro unicode serialization workaround than - my current one (Ian) - Add dependency information into secondary index callback functions so that we can more easily compute which indices need to be updated to avoid the global remove/add in order to maintain consistency (Ian) --- /project/elephant/cvsroot/elephant/ele-bdb.asd 2006/02/15 01:54:07 1.5 +++ /project/elephant/cvsroot/elephant/ele-bdb.asd 2006/02/19 04:52:58 1.6 @@ -1,10 +1,9 @@ ;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;; -;;; ele-clsql.asd -- ASDF system definition for -;;; a Berkeley-DB based back-end for Elephant +;;; elephant.asd -- ASDF system definition for elephant ;;; -;;; Initial version 10/12/2005 by Robert L. Read -;;; read@robertlread.net +;;; Initial version 8/26/2004 by Ben Lee +;;; blee@common-lisp.net ;;; ;;; part of ;;; @@ -13,46 +12,36 @@ ;;; Copyright (c) 2004 by Andrew Blumberg and Ben Lee ;;; ablumberg@common-lisp.net blee@common-lisp.net ;;; -;;; This program is released under the following license -;;; ("GPL"). For differenct licensing terms, contact the -;;; copyright holders. -;;; -;;; This program 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 2 of the License, or (at -;;; your option) any later version. -;;; -;;; This program is distributed in the hope that it will be -;;; useful, but WITHOUT ANY WARRANTY; without even the -;;; implied warranty of MERCHANTABILITY or FITNESS FOR A -;;; PARTICULAR PURPOSE. See the GNU General Public License -;;; for more details. -;;; -;;; The GNU General Public License can be found in the file -;;; LICENSE which should have been distributed with this -;;; code. It can also be found at -;;; -;;; http://www.opensource.org/licenses/gpl-license.php -;;; -;;; You should have received a copy of the GNU General -;;; Public License along with this program; if not, write -;;; to the Free Software Foundation, Inc., 59 Temple Place, -;;; Suite 330, Boston, MA 02111-1307 USA -;;; +;;; Elephant users are granted the rights to distribute and use this software +;;; as governed by the terms of the Lisp Lesser GNU Public License +;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. + +(in-package :cl-user) + +(defpackage ele-bdb-system + (:use :cl :asdf)) + +(in-package :ele-bdb-system)
(defsystem ele-bdb - :name "ele-bdb" - :author "Robert L. Read rread@common-lisp.net" - :version "0.1" - :maintainer "Robert L. Read rread@common-lisp.net" + :name "elephant" + :author "Ben Lee blee@common-lisp.net" + :version "0.6.0" + :maintainer "Ben Lee blee@common-lisp.net" :licence "LLGPL" - :description "Berkeley-DB based Object respository for Common Lisp" - :long-description "Including this loads the Berkeley-DB code; you may have to edit the pathname!" + :description "Object database for Common Lisp" + :long-description "An object-oriented database based on Berkeley DB, for CMUCL/SBCL, OpenMCL, and Allegro." :components ((:module :src :components - ((:file "bdb-enable") - ) - :serial t)) - :depends-on (:elephant )) + ((:module :db-bdb + :components + ((:file "package") + (:file "sleepycat") + (:file "bdb-controller") + (:file "bdb-transactions") + (:file "bdb-collections")) + :serial t)))) + :depends-on (:uffi :elephant)) + + --- /project/elephant/cvsroot/elephant/ele-clsql.asd 2006/02/04 22:25:09 1.3 +++ /project/elephant/cvsroot/elephant/ele-clsql.asd 2006/02/19 04:52:58 1.4 @@ -1,10 +1,9 @@ ;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;; -;;; ele-clsql.asd -- ASDF system definition for -;;; a CL-SQL based back-end for Elephant +;;; elephant.asd -- ASDF system definition for elephant ;;; -;;; Initial version 10/12/2005 by Robert L. Read -;;; read@robertlread.net +;;; Initial version 8/26/2004 by Ben Lee +;;; blee@common-lisp.net ;;; ;;; part of ;;; @@ -13,48 +12,26 @@ ;;; Copyright (c) 2004 by Andrew Blumberg and Ben Lee ;;; ablumberg@common-lisp.net blee@common-lisp.net ;;; -;;; This program is released under the following license -;;; ("GPL"). For differenct licensing terms, contact the -;;; copyright holders. -;;; -;;; This program 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 2 of the License, or (at -;;; your option) any later version. -;;; -;;; This program is distributed in the hope that it will be -;;; useful, but WITHOUT ANY WARRANTY; without even the -;;; implied warranty of MERCHANTABILITY or FITNESS FOR A -;;; PARTICULAR PURPOSE. See the GNU General Public License -;;; for more details. -;;; -;;; The GNU General Public License can be found in the file -;;; LICENSE which should have been distributed with this -;;; code. It can also be found at -;;; -;;; http://www.opensource.org/licenses/gpl-license.php -;;; -;;; You should have received a copy of the GNU General -;;; Public License along with this program; if not, write -;;; to the Free Software Foundation, Inc., 59 Temple Place, -;;; Suite 330, Boston, MA 02111-1307 USA -;;; +;;; Elephant users are granted the rights to distribute and use this software +;;; as governed by the terms of the Lisp Lesser GNU Public License +;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
-(defsystem ele-clsql - :name "ele-clsql" - :author "Robert L. Read read@robertlread.net" - :version "0.1" - :maintainer "Robert L. Read read@robertlread.net" +(defsystem ele-sql + :name "elephant" + :author "Ben Lee blee@common-lisp.net" + :version "0.6.0" + :maintainer "Ben Lee blee@common-lisp.net" :licence "LLGPL" :description "SQL-based Object respository for Common Lisp" :long-description "An experimental CL-SQL based implementation of Elephant" - - :components ((:module :src :components - ((:file "sql-controller") - (:file "sql-collections") - ) - :serial t)) + ((:module :db-clsql + :components + ((:file "sql-controller") + (:file "sql-transactions") + (:file "sql-collections")) + :serial t)))) :depends-on (:elephant :clsql :cl-base64)) + + --- /project/elephant/cvsroot/elephant/ele-sqlite3.asd 2006/02/15 01:54:07 1.4 +++ /project/elephant/cvsroot/elephant/ele-sqlite3.asd 2006/02/19 04:52:58 1.5 @@ -44,7 +44,7 @@ (defsystem ele-sqlite3 :name "ele-sqlite3" :author "Robert L. Read read@robertlread.net" - :version "0.1" + :version "0.6.0" :maintainer "Robert L. Read read@robertlread.net" :licence "GPL" :description "SQLite3 based Object respository for Common Lisp" @@ -56,4 +56,4 @@ ( ) :serial t)) - :depends-on (:ele-clsql :clsql-sqlite3)) + :depends-on (:ele-sql :clsql-sqlite3)) --- /project/elephant/cvsroot/elephant/elephant-tests.asd 2006/02/07 23:23:50 1.5 +++ /project/elephant/cvsroot/elephant/elephant-tests.asd 2006/02/19 04:52:58 1.6 @@ -55,11 +55,25 @@ :components ((:file "elephant-tests") (:file "testserializer") - (:file "testsleepycat") (:file "mop-tests") (:file "testcollections") (:file "testindexing") (:file "testmigration") ) :serial t))) + +(defsystem elephant-tests-bdb + :name "elephant" + :author "Ben Lee blee@common-lisp.net" + :version "0.1" + :maintainer "Ben Lee blee@common-lisp.net" + :licence "Lessor Lisp General Public License" + :description "Tests that only run under BDB" + + :depends-on (:elephant-tests) + :components + ((:module :tests + :components + ((:file "testsleepycat"))))) +
--- /project/elephant/cvsroot/elephant/elephant.asd 2006/02/07 23:23:50 1.12 +++ /project/elephant/cvsroot/elephant/elephant.asd 2006/02/19 04:52:58 1.13 @@ -12,64 +12,49 @@ ;;; Copyright (c) 2004 by Andrew Blumberg and Ben Lee ;;; ablumberg@common-lisp.net blee@common-lisp.net ;;; -;;; This program is released under the following license -;;; ("GPL"). For differenct licensing terms, contact the -;;; copyright holders. -;;; -;;; This program 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 2 of the License, or (at -;;; your option) any later version. -;;; -;;; This program is distributed in the hope that it will be -;;; useful, but WITHOUT ANY WARRANTY; without even the -;;; implied warranty of MERCHANTABILITY or FITNESS FOR A -;;; PARTICULAR PURPOSE. See the GNU General Public License -;;; for more details. -;;; -;;; The GNU General Public License can be found in the file -;;; LICENSE which should have been distributed with this -;;; code. It can also be found at -;;; -;;; http://www.opensource.org/licenses/gpl-license.php -;;; -;;; You should have received a copy of the GNU General -;;; Public License along with this program; if not, write -;;; to the Free Software Foundation, Inc., 59 Temple Place, -;;; Suite 330, Boston, MA 02111-1307 USA -;;; +;;; Elephant users are granted the rights to distribute and use this software +;;; as governed by the terms of the Lisp Lesser GNU Public License +;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. + +(in-package :cl-user) + +(defpackage elephant-system + (:use :cl :asdf)) + +(in-package :elephant-system)
(defsystem elephant :name "elephant" :author "Ben Lee blee@common-lisp.net" - :version "0.5.0" + :version "0.6.0" :maintainer "Ben Lee blee@common-lisp.net" :licence "LLGPL" :description "Object database for Common Lisp" :long-description "An object-oriented database based on Berkeley DB, for CMUCL/SBCL, OpenMCL, and Allegro." - :components ((:module :src :components - ((:file "sleepycat") - (:file "berkeley-db") - (:file "elephant") - (:file "utils") - #+cmu - (:file "cmu-mop-patches") - #+openmcl - (:file "openmcl-mop-patches") - (:file "metaclasses") - (:file "classes") - (:file "controller") - (:file "collections") - (:file "serializer") - (:file "index-utils") - (:file "indexing")) - #+openmcl - (:file "openmcl-mop-patches") - :serial t)) + ((:module memutil + :components + ((:file "memutil"))) + (:module elephant + :components + ((:file "elephant") + (:file "variables") + #+cmu (:file "cmu-mop-patches") + #+openmcl (:file "openmcl-mop-patches") + (:file "transactions") + (:file "metaclasses") + (:file "classes") + (:file "serializer") + (:file "cache") + (:file "controller") + (:file "collections") + (:file "classindex-utils") + (:file "classindex") + (:file "migrate") + (:file "backend")) + :serial t + :depends-on (memutil))))) :depends-on (:uffi))
-