X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=doc%2Fintro.sgml;h=99bad1e5d394bbb972d1502a4d6dcdaa97f30f4f;hb=a19a3f05330fccb89af1a502e7da93b741576df0;hp=bc663236ce0ebd7f4b43097bb78fe54d8a22c500;hpb=8213ff48f5362c3d4792444c929f50bd128bd044;p=clsql.git diff --git a/doc/intro.sgml b/doc/intro.sgml index bc66323..99bad1e 100644 --- a/doc/intro.sgml +++ b/doc/intro.sgml @@ -16,10 +16,31 @@ structure of &clsql; is based on the History &clsql; is written by Kevin M. Rosenberg and based substantially -on Pierre R. Mai's excellent &maisql; package. The main changes have -been to port the &ffi; to &uffi;, add to Allegro's ODBC interface as a -supported database, add a compatibility layer for &cmucl; specific -code, and make the code more robust in terms of &mysql; support. +on Pierre R. Mai's excellent &maisql; package. The main changes from &maisql; +are: + + +port from the &cmucl; FFI to &uffi;. + + +new &acl; ODBC interface back-end. + + +compatibility layer for &cmucl; specific code. + + +much improved robustness for the &mysql; back-end. + + +improved system loading. + + +improved packages and symbol export. + + +transaction support. + + @@ -28,21 +49,15 @@ code, and make the code more robust in terms of &mysql; support. &defsystem; - &clsql; uses &defsystem to compile and load its -components. &defsystem; is included in the &clocc;. The -defsystem version in the pre-packaged distribution is rather old and -may not function well. The version in CVS tree tree works quite -well. For convenience, a copy of the latest defsystem at the FTP -site -of &clsql;. + &clsql; uses &asdf; to compile and load its +components. &asdf; is included in the &cclan; collection. &uffi; - &clsql; uses &clsql; uses &uffi; as a Foreign Function Interface (FFI) to support multiple &cl; @@ -58,13 +73,15 @@ other systems. Supported Common Lisp Implementation The implementations that support &clsql; is governed by the supported -implementations of &uffi;. At the time of the initial release of &clsql;, -the following implementations are supported: +implementations of &uffi;. The following implementations are supported: - &acl; v6.1 on Redhat Linux 7.2 and Microsoft Windows. - &lw; v4.2 on Redhat Linux 7.2 and Microsoft Windows. - &cmucl; 18d on Redhat Linux 7.2. + &acl; v6.2 on Debian Linux, FreeBSD 4.5, and Microsoft Windows XP. + &lw; v4.2 on Debian Linux and Microsoft Windows XP. + &cmucl; 18d on Debian Linux, FreeBSD 4.5, and Solaris 2.8. + &sbcl; 0.7.8 on Debian Linux. + &scl; 1.1 on Debian Linux. + &openmcl; 0.13 on Debian Linux PowerPC. @@ -74,9 +91,9 @@ the following implementations are supported: Currently, &clsql; supports the following databases: - &mysql; v3.23.49 on Redhat Linux 7.2 and Microsoft Windows. - &postgresql; v7.1 on Redhat Linux 7.2. Support for both direct API connections and TCP socket connections. - Allegro's ODBC interface (&aodbc;) on Redhat Linux 7.2 and Microsoft Windows. + &mysql; v3.23.51. + &postgresql; v7.2 with both direct API and TCP socket connections. + Allegro's ODBC interface (&aodbc;) using iODBC ODBC manager. @@ -89,47 +106,86 @@ the following implementations are supported: Ensure &defsystem; is loaded Simply load the file defsystem.lisp. - + (load "defsystem.lisp") - + - Build <filename>clsql-mysql</filename> helper library - &mysql; uses functions that require 64-bit integer + Build &c; helper libraries + &clsql; uses functions that require 64-bit integer parameters and return values. The &ffi; in most &clsql; -implementations do not support 64-bit integers. Thus, a C helper -library is required to break these 64-bit integers into two compatible +implementations do not support 64-bit integers. Thus, C helper +libraries are required to break these 64-bit integers into two compatible 32-bit integers. -Makefile's for Microsoft Windows and GNU/Solaris systems -are supplied to build this library. In addition, the DLL and LIB +Makefiles for Microsoft Windows and GNU/Solaris systems +are supplied to build the libraries. Since many Microsoft Windows +users don't have access to a compiler, the DLL and LIB files for Microsoft Windows are supplied with the distribution. -To build the library, first move to the directory -interfaces/mysql directory. You may need to -edit Makefile or Makefile.msvc to -correctly specify the location of your &mysql; installation. On UNIX systems, use -the command: -make. On a Microsoft Windows system, -use the command: nmake /f -Makefile.msvc. - +To build the libraries on a GNU or Solaris, use the shell and +change to the root directory of &clsql;. You may need to edit the file +interfaces/mysql/Makefile to specify the location of your +MySQL installation. The default Makefiles are setup for shared library +linking on Linux. If you are using FreeBSD or Solaris, you will need +to change the linker setting as instructed in the Makefile. +Then, you can give the command + +make libs + +in the root directory of &clsql; to build the libraries +interfaces/mysql/clsql-mysql.so and +interfaces/clsql-uffi/clsql-uffi.so. + + Load &uffi; - Unpack the appropriate &uffi; version for your system which creates a directory -for the &uffi; files. Add that directory to &defsystem; *central-registry*. -You can do that by either pushing the pathname of the directory onto this variable, or -use the new add-registry-location present in the newest versions of -&defsystem;. The below example code assumes the &uffi; files reside in the -/usr/local/src/lisp/uffi directory. - - (mk:add-registry-location #P"/usr/local/src/lisp/uffi") - (mk:load-system :uffi) - + Unzip or untar the &uffi; distribution which creates a directory +for the &uffi; files. Add that directory to Defsystem's asdf:*central-registry*. +You can do that by pushing the pathname of the directory onto this variable. + The following example code assumes the &uffi; files reside in the +/usr/share/lisp/uffi/ directory. + +(push #P"/usr/share/lisp/uffi/" asdf:*central-repository*) +(asdf:oos 'asdf:load-op :uffi) + + + + + + Load &clsql; modules + + Unzip or untar the &clsql; distribution which creates a directory +for the &clsql; files. Add that directory to Defsystem's asdf:*central-registry*. +You can do that by pushing the pathname of the directory onto this variable. + The following example code assumes the &clsql; files reside in the +/usr/share/lisp/clsql/ directory. You need to load, at a minimum, +the main :clsql system and at least one interface system. + +(push #P"/usr/share/lisp/clsql/" asdf:*central-repository*) +(asdf:oos 'asdf:load-op :clsql-base) ; base clsql package +(asdf:oos 'asdf:load-op :clsql-mysql) ; MySQL interface +(asdf:oos 'asdf:load-op :clsql-postgresql) ; PostgreSQL interface +(asdf:oos 'asdf:load-op :clsql-postgresql-socket) ; Socket PGSQL interface +(asdf:oos 'asdf:load-op :clsql-aodbc) ; Allegro ODBC interface +(asdf:oos 'asdf:load-op :clsql) ; main clsql package + + + + + + Run test suite + + After loading &clsql;, you can execute the test program in +the directory ./test-suite. The test file, +tester-clsql +has instructions for creating a test.config. +After creating that file, simple load the test file with Lisp +and the tests should automatically execute.