X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=doc%2Fintro.sgml;h=4ee389efd7bb264db0537600f8b90353c089f74d;hp=5a6e7bb42656f473d00b831b8f3014b0ec52e1c2;hb=d211aedbcb8ab72a35ec8a457bba2e368da97ba3;hpb=1f66d711941c82be96c0f9748b9c7dda90a2b964 diff --git a/doc/intro.sgml b/doc/intro.sgml index 5a6e7bb..4ee389e 100644 --- a/doc/intro.sgml +++ b/doc/intro.sgml @@ -16,10 +16,28 @@ 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. + + @@ -30,10 +48,10 @@ 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 +url="http://clocc.sourceforge.net">&clocc; collection. The +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 +well. For convenience, a copy of the latest &defsystem; at the FTP site of &clsql;. @@ -42,7 +60,7 @@ of &clsql;. &uffi; - &clsql; uses &clsql; uses &uffi; as a Foreign Function Interface (FFI) to support multiple &cl; @@ -54,6 +72,16 @@ are zip files for Microsoft Windows systems and gzipped tar files for other systems. + + XPTest (optional) + The test suite for &clsql; uses the onShore Development's +XPTest package. onShore has graciously put the package in the public +domain. You can download the package from onShore's web site. +This package is not required except if you wish to run the &clsql; +test suite. + + Supported Common Lisp Implementation @@ -89,50 +117,71 @@ 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: +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. Then, you can give the command -nmake /f -Makefile.msvc - - +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 + Unzip or untar the &uffi; distribution which creates a directory for the &uffi; files. Add that directory to Defsystem's mk:*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 following 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) +(mk:add-registry-location #P"/usr/local/src/lisp/uffi") +(mk:load-system :uffi) + + + + + + Load &clsql; modules + + Unzip or untar the &clsql; distribution which creates a directory +for the &clsql; files. Add that directory to Defsystem's mk:*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 following example code assumes the &clsql; files reside in the +/usr/local/src/lisp/clsql directory. You need to load, at a minimum, +the main :clsql system and at least one interface system. + +(mk:add-registry-location #P"/usr/local/src/lisp/clsql") +(mk:load-system :clsql) ; main clsql package +(mk:load-system :clsql-mysql) ; MySQL interface +(mk:load-system :clsql-postgresql) ; PostgreSQL interface +(mk:load-system :clsql-postgresql-socket) ; Socket PGSQL interface +(mk:load-system :clsql-aodbc) ; Allegro ODBC interface