Lis Programming with Cusp - List of Included Libraries

All libraries that are included with Cusp were tested with SBCL (1.0.19 on Windows and 1.0.20 on Linux, both 32 bits).

LibraryDescriptionNotes
chunga 0.4.3 Portable chunked streams drakma dependency
cl-base64 3.3.2 Base64 encoding and decoding with URI support Tests require ptester (included) and kmrcl (not included).
Testing:
- load cl-base64, ptester and kmrcl
- (load "path-to-libs/cl-base64-3.3.2/tests.lisp")
- (in-package :cl-base64-tests)
- (do-tests)
- (time-routines)
cl-fad 0.6.2 Portable pathname operations Testing:
- load cl-fad
- (load "path-to-libs/cl-fad-0.6.2/test.lisp")
- (cl-fad-test::test)
cl-interpol 0.2.1 String interpolation Testing:
- load cl-interpol
- (asdf:oos 'asdf:test-op 'cl-interpol)
On win32 tests 71-74 fail.
cl-ppcre 2.0.0 Perl-compatible regular expressions Testing:
- load cl-interpol
- (asdf:oos 'asdf:test-op 'cl-ppcre)
cl-smtp SMTP client functionality Was not tested (need connection to smtp server)
clsql 4.0.3 Talk to SQL databases Tested with sqlite and mysql.
Setting up for testing on Windows:
- run in "path-to-clsql/examples": >sqlite3.exe test
- download and setup mysql (full setup) with root pass 'secret' and create empty database 'test':
mysql> set password for 'root'@'localhost' = password('secret');
mysql> create database test;
- if "path-to-clsql" is not on C: drive, create same path on C: drive, create "c:\path-to-clsql\db-mysql" folder and copy clsql-mysql.dll to that folder.
- Note on sqlite: sqlite3 3.6.2 is included, if you want to update replace sqlite3.exe in "path-to-clsql/examples" and sqlite3.dll in "path-to-clsql/uffi" with new version.
- Note on mysql: dll's for mysql 5.0 are included. If you have other version of mysql, do the following: make copy of libsql.dll and rename it as libsqlclient.dll. Copy both libsql.dll and libsqlclient.dll to "path-to-clsql/uffi".
Setting up for testing on Linux:
- find libsqlite3.so and sqlite3.so and copy them to "path-to-clsql/uffi". (since I didn't have perfect match I renamed _sqlite3.so to sqlite3.so)
- run from "path-to-clsql/examples" >sqlite3 test - install mysql and mysql development packages
- run "make" in "path-to-clsql/db-mysql"
- set root pass 'secret' and create empty database 'test':
mysql> set password for 'root'@'localhost' = password('secret');
mysql> create database test;
Testing:
- copy .clsql-test.config from "path-to-clsql/examples" to home directory (on windows run echo %UserProfile% to find where the home directory is.
- in .clsql-test.config modify "path-to-libs" and "secret" to point to correct directory and mysql root password
- (asdf:oos 'asdf:test-op 'clsql)
cl-unicode 0.1.1 A portable Unicode library Testing:
- load cl-unicode
- (asdf:oos 'asdf:test-op 'cl-unicode)
cl-utilities 1.2.4 A library of semi-standard utilities Testing:
- tests requires FiveAM, which requires ARNESI - which doesn't compile on win32
- load cl-utilities
- (in-package :cl-utilities)
- run test expressions from tests.lisp
cl-who 0.11.1 Markup language for HTML or XML Testing:
- load cl-who
- (in-package :cl-who)
- run examples using (*standard-output* nil :prologue t) in place of *html-stream*
cxml 2007-10-21 XML parser Testing:
- load cxml
- (with-open-file (s "/home/sk/tmp/example.xml" :direction :output) (write-string "<test a='b'><child/></test>" s))
- (defparameter *example* (cxml:parse-file "c:/temp/example.xml" (cxml-dom:make-dom-builder)))
- (dom:document-element *example*)
- (dom:tag-name (dom:document-element *example*))
- result => "test"
- (dom:child-nodes (dom:document-element *example*))
- result => #(#<DOM-IMPL::ELEMENT child @ #x722b6d8a>)
- (dom:get-attribute (dom:document-element *example*) "a")
- result => "b"
cffi 080216 The Common Foreign Function Interface Testing:
- to be able to compile lib I had to remove from test files (libtest.c, defcfun.lisp, callbacks.lisp): long long and other exotics
- tests are mostly OK on win32, but with my changes some tests fails
- on Linux my changes did worse
cl+ssl 2007-07-07 Interface to OpenSSL Testing:
- dependency of drakma
- on win32 drakma loads this library but still cannot connect through https
- on linux drakma connects through https using this library
drakma 0.11.5 An HTTP client Testing:
- load drakma
- run examples in documentation
flexi-streams 1.0.7 Flexible bivalent streams Testing:
- load flexi-streams - (asdf:oos 'asdf:test-op 'flexi-streams)
cl-store 0.8.3 Portable CL Package to serialize data Testing:
- load cl-store
- (asdf:oos 'asdf:test-op 'cl-store)
- 1 out of 127 tests fails (FUNCTION.2)
html-template 0.9.1 Template library for HTML Testing:
- load html-template
- (load "path-to-libs/ html-template-0.9.1/test.lisp")
hunchentoot 0.15.7 Web server Win32 note:
- compilation produces error: select 2: [ACCEPT] Continue, treating ... as having been successful.
Testing:
- I have not figured out how to run test file, instead I used this blog to test:
- load hunchentoot
- (hunchentoot:start-server :port 4242)
- go to http://localhost:4242/ in browser to see hunchentoot default page (to quit server I had to close its threads)
lisp_webapp_example (ghost-trinity) Testing hunchentoot (requires mysql) Running:
- load hunchentoot
- load clsql-mysql
- load ghost-trinity
- (setq html-template:*default-template-pathname* #P"path-to-libs/lisp_webapp_example/")
- (hunchentoot:start-server :port 4242)
- point browser to http://localhost:4242
md5 1.8.5 MD5 Message Digest function Testing:
- (push :md5-testing *features*)
- delete fasls in md5 folder
- load md5
- drops into debugger about constant being redefined, select continue
- (md5::test-other)
- All 71 tests pass on win32, was not able to run on Linux, but did not investigate.
meta A recursive descent parser Testing:
- don't know how to test
ptester 2.1.2 Portable test harness package It is used in testing some included libraries
puri 1.5.1 Parse and represent URIs Testing:
- load puri
- (asdf:oos 'asdf:test-op 'puri)
rfc2388 Handles the multipart/form-data media type Dependency of other libraries - did not test it directly
rt 20040621 MIT Regression Tester It is used in testing some included libraries
salsa 0.7.4 Compression library Deprecated - use salsa2. It is a dependency of other libraries, thus included.
salza2 2.0.4 Compression library Testing:
- load salza2
- (in-package :salza2)
- (compress-data (sb-ext:string-to-octets "Hello, hello, hello, hello world.") 'zlib-compressor)
- get output, but don't know what to do with it
split-sequence Splits sequences Testing:
- load split-sequence
- run examples from index.html
- (split-sequence:SPLIT-SEQUENCE #\Space "A stitch in time saves nine.")
trivial-gray-streams 2006-09-16 Gray streams portability library It is a dependency of many other libraries. Did not test directly.
uffi 1.6.1 Portable access to C libraries clsql dependency. Did not test directly.
url-rewrite 0.1.1 Rewrite HTML attributes Testing:
- load url-rewrite
- test using examples in documentation
zip Read and write ZIP files Testing:
- create zip file with several entries, say c:\tmp\tmp.zip
- (zip:with-zipfile (zf #p"c:/tmp/tmp.zip") (zip:zipfile-entries zf)) => hashtable with entries in zipfile (can check using inspector
- (zip:unzip #p"c:/tmp/tmp.zip" #p"c:/tmp/t/") => get contents of zip in c:/tmp/t.
zpb-exif 1.0 Read EXIF data from digital images Testing:
- load zpb-exif
- (in-package :zpb-exif)
- put file g.jpg (preferably from a digital camera) to c:/tmp
- (defparameter *exif* (make-exif #p"c:/tmp/g.jpg"))
- (exif-value "FNumber" *exif*) - and other commands from .html
usocket 0.3.7 Universal socket library for Common Lisp Testing:
- load usocket
- load rt
- (load "path-to-libs/usocket-0.3.7/test/package.lisp")
- (load "path-to-libs/usocket-0.3.7/test/test-usocket.lisp")
- (usocket-test:run-usocket-tests)
- on win32 3 out of 15 tests fail, on Linux it hangs on 3'rd test


Back to table of contents