Initial commit from mkcl-1.1.0 tarball.
authorJean-Claude Beaudoin <jean.claude.beaudoin@gmail.com>
Wed, 17 Oct 2012 04:29:13 +0000 (00:29 -0400)
committerJean-Claude Beaudoin <jean.claude.beaudoin@gmail.com>
Wed, 17 Oct 2012 04:29:13 +0000 (00:29 -0400)
1194 files changed:
ANNOUNCEMENT [new file with mode: 0644]
Copyright [new file with mode: 0644]
LGPL [new file with mode: 0644]
LGPL.v2 [new file with mode: 0644]
Makefile.in [new file with mode: 0644]
README [new file with mode: 0644]
configure [new file with mode: 0755]
contrib/alexandria_2012_08_14/AUTHORS [new file with mode: 0644]
contrib/alexandria_2012_08_14/LICENCE [new file with mode: 0644]
contrib/alexandria_2012_08_14/README [new file with mode: 0644]
contrib/alexandria_2012_08_14/alexandria-tests.asd [new file with mode: 0644]
contrib/alexandria_2012_08_14/alexandria.asd [new file with mode: 0644]
contrib/alexandria_2012_08_14/arrays.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/binding.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/conditions.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/control-flow.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/definitions.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/doc/.gitignore [new file with mode: 0644]
contrib/alexandria_2012_08_14/doc/Makefile [new file with mode: 0644]
contrib/alexandria_2012_08_14/doc/alexandria.texinfo [new file with mode: 0644]
contrib/alexandria_2012_08_14/doc/docstrings.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/features.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/functions.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/hash-tables.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/io.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/lists.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/macros.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/numbers.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/package.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/sequences.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/strings.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/symbols.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/tests.lisp [new file with mode: 0644]
contrib/alexandria_2012_08_14/types.lisp [new file with mode: 0644]
contrib/asdf-bundle/.gitignore [new file with mode: 0644]
contrib/asdf-bundle/asdf-bundle.asd [new file with mode: 0644]
contrib/asdf-bundle/build.xcvb [new file with mode: 0644]
contrib/asdf-bundle/bundle.lisp [new file with mode: 0644]
contrib/asdf-bundle/ecl.lisp [new file with mode: 0644]
contrib/asdf-bundle/fasl-concat.lisp [new file with mode: 0644]
contrib/asdf-bundle/mkcl.lisp [new file with mode: 0644]
contrib/asdf-bundle/specials.lisp [new file with mode: 0644]
contrib/asdf/asdf.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/COPYRIGHT [new file with mode: 0644]
contrib/babel_2012-08-13/HEADER [new file with mode: 0644]
contrib/babel_2012-08-13/NOTES [new file with mode: 0644]
contrib/babel_2012-08-13/README [new file with mode: 0644]
contrib/babel_2012-08-13/babel-streams.asd [new file with mode: 0644]
contrib/babel_2012-08-13/babel-tests.asd [new file with mode: 0644]
contrib/babel_2012-08-13/babel.asd [new file with mode: 0644]
contrib/babel_2012-08-13/doc/Makefile [new file with mode: 0644]
contrib/babel_2012-08-13/doc/babel.texinfo [new file with mode: 0644]
contrib/babel_2012-08-13/doc/license.texinfo [new file with mode: 0644]
contrib/babel_2012-08-13/doc/macros.texinfo [new file with mode: 0644]
contrib/babel_2012-08-13/scripts/release.sh [new file with mode: 0755]
contrib/babel_2012-08-13/src/enc-ascii.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/enc-cp1251.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/enc-cp1252.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/enc-ebcdic.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/enc-gbk.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/enc-iso-8859.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/enc-jpn.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/enc-unicode.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/encodings.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/external-format.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/gbk-map.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/jpn-table.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/packages.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/sharp-backslash.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/streams.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/src/strings.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/tests/ascii.txt [new file with mode: 0644]
contrib/babel_2012-08-13/tests/ascii.txt-utf8 [new file with mode: 0644]
contrib/babel_2012-08-13/tests/benchmarks.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/tests/ebcdic-us.txt [new file with mode: 0644]
contrib/babel_2012-08-13/tests/ebcdic-us.txt-utf8 [new file with mode: 0644]
contrib/babel_2012-08-13/tests/gen-test-files.sh [new file with mode: 0755]
contrib/babel_2012-08-13/tests/streams.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/tests/tests.lisp [new file with mode: 0644]
contrib/babel_2012-08-13/tests/utf-16-with-le-bom.txt [new file with mode: 0644]
contrib/babel_2012-08-13/tests/utf-16.txt [new file with mode: 0644]
contrib/babel_2012-08-13/tests/utf-16.txt-utf8 [new file with mode: 0644]
contrib/babel_2012-08-13/tests/utf-32-with-le-bom.txt [new file with mode: 0644]
contrib/babel_2012-08-13/tests/utf-32.txt [new file with mode: 0644]
contrib/babel_2012-08-13/tests/utf-32.txt-utf8 [new file with mode: 0644]
contrib/babel_2012-08-13/tests/utf-8.txt [new file with mode: 0644]
contrib/babel_2012-08-13/tests/utf-8.txt-utf8 [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/CONTRIBUTORS [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/LICENSE [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/README [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/bordeaux-threads-test.asd [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/bordeaux-threads.asd [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/site/index.html [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/site/style.css [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/bordeaux-threads.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/condition-variables.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/default-implementations.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-abcl.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-allegro.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-clisp.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-clozure.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-cmucl.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-corman.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-ecl.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-lispworks-condition-variables.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-lispworks.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-mcl.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-mkcl.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-null.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-sbcl.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/impl-scl.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/src/pkgdcl.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/test/bordeaux-threads-test.lisp [new file with mode: 0644]
contrib/bordeaux-threads-0.8.2/version.lisp-expr [new file with mode: 0644]
contrib/bytecmp/bytecmp.lsp [new file with mode: 0644]
contrib/cffi_0.10.7.1/.gitignore [new file with mode: 0644]
contrib/cffi_0.10.7.1/COPYRIGHT [new file with mode: 0644]
contrib/cffi_0.10.7.1/HEADER [new file with mode: 0644]
contrib/cffi_0.10.7.1/Makefile [new file with mode: 0644]
contrib/cffi_0.10.7.1/README [new file with mode: 0644]
contrib/cffi_0.10.7.1/TODO [new file with mode: 0644]
contrib/cffi_0.10.7.1/cffi-examples.asd [new file with mode: 0644]
contrib/cffi_0.10.7.1/cffi-grovel.asd [new file with mode: 0644]
contrib/cffi_0.10.7.1/cffi-tests.asd [new file with mode: 0644]
contrib/cffi_0.10.7.1/cffi-uffi-compat.asd [new file with mode: 0644]
contrib/cffi_0.10.7.1/cffi.asd [new file with mode: 0644]
contrib/cffi_0.10.7.1/cffi.asd.orig [new file with mode: 0644]
contrib/cffi_0.10.7.1/doc/Makefile [new file with mode: 0644]
contrib/cffi_0.10.7.1/doc/allegro-internals.txt [new file with mode: 0644]
contrib/cffi_0.10.7.1/doc/cffi-manual.texinfo [new file with mode: 0644]
contrib/cffi_0.10.7.1/doc/cffi-sys-spec.texinfo [new file with mode: 0644]
contrib/cffi_0.10.7.1/doc/colorize-lisp-examples.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/doc/gendocs.sh [new file with mode: 0755]
contrib/cffi_0.10.7.1/doc/gendocs_template [new file with mode: 0644]
contrib/cffi_0.10.7.1/doc/mem-vector.txt [new file with mode: 0644]
contrib/cffi_0.10.7.1/doc/shareable-vectors.txt [new file with mode: 0644]
contrib/cffi_0.10.7.1/doc/style.css [new file with mode: 0644]
contrib/cffi_0.10.7.1/examples/examples.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/examples/gethostname.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/examples/gettimeofday.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/examples/mapping.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/examples/run-examples.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/examples/translator-test.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/foo.h [new file with mode: 0644]
contrib/cffi_0.10.7.1/grovel/asdf.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/grovel/common.h [new file with mode: 0644]
contrib/cffi_0.10.7.1/grovel/grovel.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/grovel/invoke.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/grovel/package.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/scripts/release.sh [new file with mode: 0755]
contrib/cffi_0.10.7.1/src/cffi-abcl.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/cffi-allegro.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/cffi-clisp.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/cffi-cmucl.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/cffi-corman.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/cffi-ecl.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/cffi-gcl.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/cffi-lispworks.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/cffi-mcl.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/cffi-mkcl.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/cffi-openmcl.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/cffi-sbcl.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/cffi-scl.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/early-types.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/enum.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/features.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/foreign-vars.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/functions.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/libraries.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/package.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/strings.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/types.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/src/utils.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/GNUmakefile [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/Makefile [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/bindings.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/callbacks.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/compile.bat [new file with mode: 0755]
contrib/cffi_0.10.7.1/tests/defcfun.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/enum.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/foreign-globals.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/funcall.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/libtest.c [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/libtest2.c [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/memory.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/misc-types.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/misc.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/package.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/random-tester.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/run-tests.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/strings.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/struct.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/tests/union.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/uffi-compat/uffi-compat.lisp [new file with mode: 0644]
contrib/cffi_0.10.7.1/uffi-compat/uffi.asd [new file with mode: 0644]
contrib/clean_up.sh [new file with mode: 0755]
contrib/defsystem/README [new file with mode: 0644]
contrib/defsystem/defsystem.lisp [new file with mode: 0644]
contrib/encodings/ATARIST.BIN [new file with mode: 0644]
contrib/encodings/CP-856.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP437.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP737.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP775.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP850.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP852.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP855.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP857.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP860.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP861.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP862.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP863.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP864.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP865.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP866.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP869.BIN [new file with mode: 0644]
contrib/encodings/DOS-CP874.BIN [new file with mode: 0644]
contrib/encodings/ISO-2022-JP [new file with mode: 0644]
contrib/encodings/ISO-2022-JP-1 [new file with mode: 0644]
contrib/encodings/ISO-8859-1.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-10.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-11.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-13.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-14.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-15.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-16.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-2.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-3.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-4.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-5.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-6.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-7.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-8.BIN [new file with mode: 0644]
contrib/encodings/ISO-8859-9.BIN [new file with mode: 0644]
contrib/encodings/JISX0201.BIN [new file with mode: 0644]
contrib/encodings/JISX0208.BIN [new file with mode: 0644]
contrib/encodings/JISX0212.BIN [new file with mode: 0644]
contrib/encodings/KOI8-R.BIN [new file with mode: 0644]
contrib/encodings/KOI8-U.BIN [new file with mode: 0644]
contrib/encodings/SHIFT-JIS.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP1250.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP1251.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP1252.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP1253.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP1254.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP1255.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP1256.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP1257.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP1258.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP932.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP936.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP949.BIN [new file with mode: 0644]
contrib/encodings/WINDOWS-CP950.BIN [new file with mode: 0644]
contrib/encodings/generate.lisp [new file with mode: 0644]
contrib/encodings/tools.lisp [new file with mode: 0644]
contrib/fiveam-1.0/.boring [new file with mode: 0644]
contrib/fiveam-1.0/COPYING [new file with mode: 0644]
contrib/fiveam-1.0/README [new file with mode: 0644]
contrib/fiveam-1.0/docs/make-qbook.lisp [new file with mode: 0644]
contrib/fiveam-1.0/fiveam-test.asd [new file with mode: 0644]
contrib/fiveam-1.0/fiveam.asd [new file with mode: 0644]
contrib/fiveam-1.0/src/check.lisp [new file with mode: 0644]
contrib/fiveam-1.0/src/classes.lisp [new file with mode: 0644]
contrib/fiveam-1.0/src/explain.lisp [new file with mode: 0644]
contrib/fiveam-1.0/src/fixture.lisp [new file with mode: 0644]
contrib/fiveam-1.0/src/package.lisp [new file with mode: 0644]
contrib/fiveam-1.0/src/random.lisp [new file with mode: 0644]
contrib/fiveam-1.0/src/run.lisp [new file with mode: 0644]
contrib/fiveam-1.0/src/style.css [new file with mode: 0644]
contrib/fiveam-1.0/src/suite.lisp [new file with mode: 0644]
contrib/fiveam-1.0/src/test.lisp [new file with mode: 0644]
contrib/fiveam-1.0/src/utils.lisp [new file with mode: 0644]
contrib/fiveam-1.0/t/example.lisp [new file with mode: 0644]
contrib/fiveam-1.0/t/suite.lisp [new file with mode: 0644]
contrib/fiveam-1.0/t/tests.lisp [new file with mode: 0644]
contrib/fiveam-1.0/version.lisp-expr [new file with mode: 0644]
contrib/profile/profile.lisp [new file with mode: 0644]
contrib/rt-20040621/rt-doc.txt [new file with mode: 0644]
contrib/rt-20040621/rt-test.lisp [new file with mode: 0644]
contrib/rt-20040621/rt.asd [new file with mode: 0644]
contrib/rt-20040621/rt.lisp [new file with mode: 0644]
contrib/serve-event/event-test-eintr.lisp [new file with mode: 0644]
contrib/serve-event/event-test.lisp [new file with mode: 0644]
contrib/serve-event/serve-event.lisp [new file with mode: 0644]
contrib/slime/.cvsignore [new file with mode: 0644]
contrib/slime/.emacs [new file with mode: 0644]
contrib/slime/CVS/Entries [new file with mode: 0644]
contrib/slime/CVS/Repository [new file with mode: 0644]
contrib/slime/CVS/Root [new file with mode: 0644]
contrib/slime/ChangeLog [new file with mode: 0644]
contrib/slime/HACKING [new file with mode: 0644]
contrib/slime/NEWS [new file with mode: 0644]
contrib/slime/PROBLEMS [new file with mode: 0644]
contrib/slime/README [new file with mode: 0644]
contrib/slime/contrib/CVS/Entries [new file with mode: 0644]
contrib/slime/contrib/CVS/Repository [new file with mode: 0644]
contrib/slime/contrib/CVS/Root [new file with mode: 0644]
contrib/slime/contrib/ChangeLog [new file with mode: 0644]
contrib/slime/contrib/README [new file with mode: 0644]
contrib/slime/contrib/bridge.el [new file with mode: 0644]
contrib/slime/contrib/inferior-slime.el [new file with mode: 0644]
contrib/slime/contrib/slime-asdf.el [new file with mode: 0644]
contrib/slime/contrib/slime-autodoc.el [new file with mode: 0644]
contrib/slime/contrib/slime-banner.el [new file with mode: 0644]
contrib/slime/contrib/slime-c-p-c.el [new file with mode: 0644]
contrib/slime/contrib/slime-cl-indent-test.txt [new file with mode: 0644]
contrib/slime/contrib/slime-cl-indent.el [new file with mode: 0644]
contrib/slime/contrib/slime-clipboard.el [new file with mode: 0644]
contrib/slime/contrib/slime-compiler-notes-tree.el [new file with mode: 0644]
contrib/slime/contrib/slime-editing-commands.el [new file with mode: 0644]
contrib/slime/contrib/slime-enclosing-context.el [new file with mode: 0644]
contrib/slime/contrib/slime-fancy-inspector.el [new file with mode: 0644]
contrib/slime/contrib/slime-fancy.el [new file with mode: 0644]
contrib/slime/contrib/slime-fontifying-fu.el [new file with mode: 0644]
contrib/slime/contrib/slime-fuzzy.el [new file with mode: 0644]
contrib/slime/contrib/slime-highlight-edits.el [new file with mode: 0644]
contrib/slime/contrib/slime-hyperdoc.el [new file with mode: 0644]
contrib/slime/contrib/slime-indentation.el [new file with mode: 0644]
contrib/slime/contrib/slime-mdot-fu.el [new file with mode: 0644]
contrib/slime/contrib/slime-media.el [new file with mode: 0644]
contrib/slime/contrib/slime-motd.el [new file with mode: 0644]
contrib/slime/contrib/slime-mrepl.el [new file with mode: 0644]
contrib/slime/contrib/slime-package-fu.el [new file with mode: 0644]
contrib/slime/contrib/slime-parse.el [new file with mode: 0644]
contrib/slime/contrib/slime-presentation-streams.el [new file with mode: 0644]
contrib/slime/contrib/slime-presentations.el [new file with mode: 0644]
contrib/slime/contrib/slime-references.el [new file with mode: 0644]
contrib/slime/contrib/slime-repl.el [new file with mode: 0644]
contrib/slime/contrib/slime-sbcl-exts.el [new file with mode: 0644]
contrib/slime/contrib/slime-scheme.el [new file with mode: 0644]
contrib/slime/contrib/slime-scratch.el [new file with mode: 0644]
contrib/slime/contrib/slime-snapshot.el [new file with mode: 0644]
contrib/slime/contrib/slime-sprof.el [new file with mode: 0644]
contrib/slime/contrib/slime-tramp.el [new file with mode: 0644]
contrib/slime/contrib/slime-typeout-frame.el [new file with mode: 0644]
contrib/slime/contrib/slime-xref-browser.el [new file with mode: 0644]
contrib/slime/contrib/swank-arglists.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-asdf.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-c-p-c.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-clipboard.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-fancy-inspector.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-fuzzy.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-goo.goo [new file with mode: 0644]
contrib/slime/contrib/swank-hyperdoc.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-ikarus.ss [new file with mode: 0644]
contrib/slime/contrib/swank-indentation.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-jolt.k [new file with mode: 0644]
contrib/slime/contrib/swank-kawa.scm [new file with mode: 0644]
contrib/slime/contrib/swank-larceny.scm [new file with mode: 0644]
contrib/slime/contrib/swank-listener-hooks.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-media.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-mit-scheme.scm [new file with mode: 0644]
contrib/slime/contrib/swank-motd.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-mrepl.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-package-fu.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-presentation-streams.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-presentations.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-r6rs.scm [new file with mode: 0644]
contrib/slime/contrib/swank-repl.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-sbcl-exts.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-snapshot.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-sprof.lisp [new file with mode: 0644]
contrib/slime/contrib/swank-util.lisp [new file with mode: 0644]
contrib/slime/contrib/swank.rb [new file with mode: 0644]
contrib/slime/doc/.cvsignore [new file with mode: 0644]
contrib/slime/doc/CVS/Entries [new file with mode: 0644]
contrib/slime/doc/CVS/Repository [new file with mode: 0644]
contrib/slime/doc/CVS/Root [new file with mode: 0644]
contrib/slime/doc/Makefile [new file with mode: 0644]
contrib/slime/doc/slime-refcard.pdf [new file with mode: 0644]
contrib/slime/doc/slime-refcard.tex [new file with mode: 0644]
contrib/slime/doc/slime-small.eps [new file with mode: 0644]
contrib/slime/doc/slime-small.pdf [new file with mode: 0644]
contrib/slime/doc/slime.texi [new file with mode: 0644]
contrib/slime/doc/texinfo-tabulate.awk [new file with mode: 0755]
contrib/slime/hyperspec.el [new file with mode: 0644]
contrib/slime/metering.lisp [new file with mode: 0644]
contrib/slime/mkdist.sh [new file with mode: 0755]
contrib/slime/nregex.lisp [new file with mode: 0644]
contrib/slime/sbcl-pprint-patch.lisp [new file with mode: 0644]
contrib/slime/setup-slime.el [new file with mode: 0644]
contrib/slime/slime-autoloads.el [new file with mode: 0644]
contrib/slime/slime.el [new file with mode: 0644]
contrib/slime/start-swank.lisp [new file with mode: 0644]
contrib/slime/swank-abcl.lisp [new file with mode: 0644]
contrib/slime/swank-allegro.lisp [new file with mode: 0644]
contrib/slime/swank-backend.lisp [new file with mode: 0644]
contrib/slime/swank-ccl.lisp [new file with mode: 0644]
contrib/slime/swank-clisp.lisp [new file with mode: 0644]
contrib/slime/swank-cmucl.lisp [new file with mode: 0644]
contrib/slime/swank-corman.lisp [new file with mode: 0644]
contrib/slime/swank-ecl.lisp [new file with mode: 0644]
contrib/slime/swank-gray.lisp [new file with mode: 0644]
contrib/slime/swank-lispworks.lisp [new file with mode: 0644]
contrib/slime/swank-loader.lisp [new file with mode: 0644]
contrib/slime/swank-match.lisp [new file with mode: 0644]
contrib/slime/swank-mkcl.lisp [new file with mode: 0644]
contrib/slime/swank-rpc.lisp [new file with mode: 0644]
contrib/slime/swank-sbcl.lisp [new file with mode: 0644]
contrib/slime/swank-scl.lisp [new file with mode: 0644]
contrib/slime/swank-source-file-cache.lisp [new file with mode: 0644]
contrib/slime/swank-source-path-parser.lisp [new file with mode: 0644]
contrib/slime/swank.asd [new file with mode: 0644]
contrib/slime/swank.lisp [new file with mode: 0644]
contrib/slime/test.sh [new file with mode: 0755]
contrib/slime/xref.lisp [new file with mode: 0644]
contrib/sockets/package.lisp [new file with mode: 0644]
contrib/sockets/sockets.lisp [new file with mode: 0644]
contrib/sockets/test.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/COPYRIGHT [new file with mode: 0644]
contrib/trivial-features_0.6/README [new file with mode: 0644]
contrib/trivial-features_0.6/SPEC [new file with mode: 0644]
contrib/trivial-features_0.6/release.sh [new file with mode: 0755]
contrib/trivial-features_0.6/src/tf-abcl.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/src/tf-allegro.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/src/tf-clisp.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/src/tf-cmucl.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/src/tf-corman.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/src/tf-ecl.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/src/tf-lispworks.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/src/tf-mkcl.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/src/tf-openmcl.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/src/tf-sbcl.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/src/tf-scl.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/src/tf-xcl.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/tests/package.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/tests/sysinfo.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/tests/tests.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/tests/utsname.lisp [new file with mode: 0644]
contrib/trivial-features_0.6/trivial-features-tests.asd [new file with mode: 0644]
contrib/trivial-features_0.6/trivial-features.asd [new file with mode: 0644]
contrib/trivial-garbage_0.19/README [new file with mode: 0644]
contrib/trivial-garbage_0.19/release.sh [new file with mode: 0755]
contrib/trivial-garbage_0.19/tests.lisp [new file with mode: 0644]
contrib/trivial-garbage_0.19/trivial-garbage.asd [new file with mode: 0644]
contrib/trivial-garbage_0.19/trivial-garbage.lisp [new file with mode: 0644]
contrib/unicode/ucd.dat [new file with mode: 0644]
contrib/unicode/ucd.lisp [new file with mode: 0644]
contrib/walker/walk.lsp [new file with mode: 0644]
contrib/win32/README [new file with mode: 0644]
contrib/win32/lisp-kw.lisp [new file with mode: 0644]
contrib/win32/txtedit.lisp [new file with mode: 0644]
contrib/win32/win32.lisp [new file with mode: 0644]
examples/asdf/example.asd [new file with mode: 0644]
examples/asdf/file1.lisp [new file with mode: 0644]
examples/asdf/file2.lisp [new file with mode: 0644]
examples/asdf/readme.lisp [new file with mode: 0644]
examples/build/hello.lisp [new file with mode: 0644]
examples/build/hello_aux.c [new file with mode: 0644]
examples/build/readme.lisp [new file with mode: 0644]
examples/cmdline/ls.lsp [new file with mode: 0644]
examples/ffi/cffi.lsp [new file with mode: 0644]
examples/ffi/ecl.lsp [new file with mode: 0644]
examples/ffi/uffi.lsp [new file with mode: 0644]
examples/threads/import/Makefile [new file with mode: 0644]
examples/threads/import/import.c [new file with mode: 0644]
examples/threads/import_win32/Makefile [new file with mode: 0644]
examples/threads/import_win32/import.c [new file with mode: 0644]
msvc/Makefile [new file with mode: 0644]
msvc/c/Makefile [new file with mode: 0644]
msvc/doc/Makefile [new file with mode: 0644]
msvc/ecl/config.h.msvc6 [new file with mode: 0644]
msvc/gc/Makefile [new file with mode: 0644]
msvc/gmp/Makefile [new file with mode: 0644]
msvc/gmp/build.vc8/config-vc8.amd64 [new file with mode: 0644]
msvc/gmp/build.vc8/config-vc8.gc [new file with mode: 0644]
msvc/gmp/build.vc8/config-vc8.p0 [new file with mode: 0644]
msvc/gmp/build.vc8/config-vc8.p3 [new file with mode: 0644]
msvc/gmp/build.vc8/config-vc8.p4 [new file with mode: 0644]
msvc/gmp/build.vc8/dll_gmp_amd64/dll_gmp_amd64.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/dll_gmp_gc/dll_gmp_gc.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/dll_gmp_p0/dll_gmp_p0.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/dll_gmp_p3/dll_gmp_p3.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/dll_gmp_p4/dll_gmp_p4.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/dll_mpfr/dll_mpfr.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/file_copy.bat [new file with mode: 0755]
msvc/gmp/build.vc8/gen-bases/gen-bases.c [new file with mode: 0644]
msvc/gmp/build.vc8/gen-bases/gen-bases.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/gen-fac_ui/gen-fac_ui.c [new file with mode: 0644]
msvc/gmp/build.vc8/gen-fac_ui/gen-fac_ui.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/gen-fib/gen-fib.c [new file with mode: 0644]
msvc/gmp/build.vc8/gen-fib/gen-fib.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/gen-psqr/gen-psqr.c [new file with mode: 0644]
msvc/gmp/build.vc8/gen-psqr/gen-psqr.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/getopt.c [new file with mode: 0644]
msvc/gmp/build.vc8/getopt.h [new file with mode: 0644]
msvc/gmp/build.vc8/gmp.h [new file with mode: 0644]
msvc/gmp/build.vc8/gmp.ncb [new file with mode: 0644]
msvc/gmp/build.vc8/gmp.sln [new file with mode: 0644]
msvc/gmp/build.vc8/gmp.suo [new file with mode: 0644]
msvc/gmp/build.vc8/gmp_prebuild.bat [new file with mode: 0755]
msvc/gmp/build.vc8/lib_gmp/lib_gmp.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/lib_gmp_amd64/lib_gmp_amd64.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/lib_gmp_gc/lib_gmp_gc.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/lib_gmp_p0/lib_gmp_p0.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/lib_gmp_p3/lib_gmp_p3.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/lib_gmp_p4/lib_gmp_p4.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/lib_gmpxx/lib_gmpxx.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/lib_mpfr/lib_mpfr.vcproj [new file with mode: 0644]
msvc/gmp/build.vc8/popham.c [new file with mode: 0644]
msvc/gmp/build.vc8/readme-vc8.txt [new file with mode: 0644]
msvc/gmp/build.vc8/unistd.h [new file with mode: 0644]
msvc/gmp/build.vc8/yasm.rules [new file with mode: 0644]
msvc/gmp/mpn/amd64i/amd64i.inc [new file with mode: 0644]
msvc/gmp/mpn/amd64i/aors_n.asm [new file with mode: 0644]
msvc/gmp/mpn/amd64i/aorsmul_1.asm [new file with mode: 0644]
msvc/gmp/mpn/amd64i/copyd.asm [new file with mode: 0644]
msvc/gmp/mpn/amd64i/copyi.asm [new file with mode: 0644]
msvc/gmp/mpn/amd64i/dive_1.asm [new file with mode: 0644]
msvc/gmp/mpn/amd64i/gmp-mparam.h [new file with mode: 0644]
msvc/gmp/mpn/amd64i/lshift.asm [new file with mode: 0644]
msvc/gmp/mpn/amd64i/mode1o.asm [new file with mode: 0644]
msvc/gmp/mpn/amd64i/mul_1.asm [new file with mode: 0644]
msvc/gmp/mpn/amd64i/mul_basecase.asm [new file with mode: 0644]
msvc/gmp/mpn/amd64i/rshift.asm [new file with mode: 0644]
msvc/gmp/mpn/amd64i/sqr_basecase.asm [new file with mode: 0644]
msvc/gmp/mpn/generic/addsub_n.c [new file with mode: 0644]
msvc/gmp/mpn/generic/divrem_1.c [new file with mode: 0644]
msvc/gmp/mpn/generic/divrem_2.c [new file with mode: 0644]
msvc/gmp/mpn/generic/popham2.c [new file with mode: 0644]
msvc/gmp/mpn/x86i/aors_n.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/aorsmul_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/copyd.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/copyi.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/dive_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/diveby3.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/divrem_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/gmp-mparam.h [new file with mode: 0644]
msvc/gmp/mpn/x86i/lshift.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/mod_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/mod_34lsub1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/mul_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/mul_basecase.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/aorsmul_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/copyd.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/dive_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/diveby3.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/mmx/divrem_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/mmx/lshift.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/mmx/popham.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/mmx/rshift.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/mod_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/mode1o.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/p3mmx/popham.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/sqr_basecase.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/p6/sqr_basecase.old.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/copyd.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/copyi.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/mmx/lshift.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/mmx/popham.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/mmx/rshift.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/sse2/add_n.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/sse2/addmul_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/sse2/dive_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/sse2/diveby3.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/sse2/mod_34lsub1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/sse2/mode1o.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/sse2/mul_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/sse2/mul_basecase.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/sse2/sqr_basecase.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/sse2/sub_n.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/pentium4/sse2/submul_1.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/rshift.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/udiv.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/umul.asm [new file with mode: 0644]
msvc/gmp/mpn/x86i/x86i.inc [new file with mode: 0644]
msvc/gmp/mpz/set_d.c [new file with mode: 0644]
msvc/util/ecl-cc.bat [new file with mode: 0755]
msvc/util/ecl-config.bat [new file with mode: 0755]
msvc/util/ecl_nsi.bat [new file with mode: 0755]
src/.gdbinit [new file with mode: 0644]
src/CHANGELOG [new file with mode: 0644]
src/Makefile.in [new file with mode: 0644]
src/Makefile.w32 [new file with mode: 0644]
src/Makefile.w64 [new file with mode: 0644]
src/aclocal.m4 [new file with mode: 0644]
src/autom4te.cache/output.0 [new file with mode: 0644]
src/autom4te.cache/requests [new file with mode: 0644]
src/autom4te.cache/traces.0 [new file with mode: 0644]
src/bare.lsp.in [new file with mode: 0644]
src/bin/.gdbinit [new file with mode: 0644]
src/build-asdf-bundle.lsp [new file with mode: 0644]
src/build-asdf-contrib.lsp [new file with mode: 0644]
src/build-asdf.lsp [new file with mode: 0644]
src/build-bytecmp.lsp [new file with mode: 0644]
src/build-cmp.lsp [new file with mode: 0644]
src/build-contribs.lsp [new file with mode: 0644]
src/build-defsystem.lsp [new file with mode: 0644]
src/build-dynamic-mkcl.lsp [new file with mode: 0644]
src/build-full-mkcl.lsp [new file with mode: 0644]
src/build-mkcl.lsp [new file with mode: 0644]
src/build-profile.lsp [new file with mode: 0644]
src/build-rt.lsp [new file with mode: 0644]
src/build-serve-event.lsp [new file with mode: 0644]
src/build-sockets.lsp [new file with mode: 0644]
src/build-walker.lsp [new file with mode: 0644]
src/c/Makefile.in [new file with mode: 0644]
src/c/Makefile.w32 [new file with mode: 0644]
src/c/Makefile.w64 [new file with mode: 0644]
src/c/all_symbols.d [new file with mode: 0644]
src/c/alloc_2.d [new file with mode: 0644]
src/c/apply.d [new file with mode: 0644]
src/c/arch/apply_x86.d [new file with mode: 0644]
src/c/arch/ffi_ppc32.d [new file with mode: 0644]
src/c/arch/ffi_x86.d [new file with mode: 0644]
src/c/arch/ffi_x86_64.d [new file with mode: 0644]
src/c/arch/ffi_x86_64_w64.d [new file with mode: 0644]
src/c/arch/pasture/ffi_x86_64.d [new file with mode: 0644]
src/c/arch/pasture/fpe_none.c [new file with mode: 0644]
src/c/arch/pasture/fpe_x86.c [new file with mode: 0644]
src/c/array.d [new file with mode: 0644]
src/c/assignment.d [new file with mode: 0644]
src/c/backq.d [new file with mode: 0644]
src/c/big.d [new file with mode: 0644]
src/c/cfun.d [new file with mode: 0644]
src/c/cfun_dispatch.d [new file with mode: 0644]
src/c/character.d [new file with mode: 0644]
src/c/cinit.d [new file with mode: 0644]
src/c/cmpaux.d [new file with mode: 0644]
src/c/compiler.d [new file with mode: 0644]
src/c/disassembler.d [new file with mode: 0644]
src/c/dpp.c [new file with mode: 0644]
src/c/error.d [new file with mode: 0644]
src/c/eval.d [new file with mode: 0644]
src/c/ffi.d [new file with mode: 0644]
src/c/file.d [new file with mode: 0644]
src/c/format.d [new file with mode: 0644]
src/c/gfun.d [new file with mode: 0644]
src/c/hash.d [new file with mode: 0644]
src/c/instance.d [new file with mode: 0644]
src/c/interpreter.d [new file with mode: 0644]
src/c/iso_latin_names.h [new file with mode: 0644]
src/c/list.d [new file with mode: 0644]
src/c/load.d [new file with mode: 0644]
src/c/macros.d [new file with mode: 0644]
src/c/main.d [new file with mode: 0644]
src/c/mapfun.d [new file with mode: 0644]
src/c/multival.d [new file with mode: 0644]
src/c/newhash.h [new file with mode: 0644]
src/c/num_arith.d [new file with mode: 0644]
src/c/num_co.d [new file with mode: 0644]
src/c/num_comp.d [new file with mode: 0644]
src/c/num_log.d [new file with mode: 0644]
src/c/num_pred.d [new file with mode: 0644]
src/c/num_rand.d [new file with mode: 0644]
src/c/num_sfun.d [new file with mode: 0644]
src/c/number.d [new file with mode: 0644]
src/c/package.d [new file with mode: 0644]
src/c/pasture/all_symbols.d.10.14 [new file with mode: 0644]
src/c/pasture/alloc.d [new file with mode: 0644]
src/c/pasture/alloc_2.d.10.14 [new file with mode: 0644]
src/c/pasture/big.d.orig [new file with mode: 0644]
src/c/pasture/big_ll.d [new file with mode: 0644]
src/c/pasture/char_ctype.d [new file with mode: 0644]
src/c/pasture/dosdummy.d [new file with mode: 0644]
src/c/pasture/dostimes.d [new file with mode: 0644]
src/c/pasture/earith.d [new file with mode: 0644]
src/c/pasture/format.d [new file with mode: 0644]
src/c/pasture/gbc-new.d [new file with mode: 0644]
src/c/pasture/gbc.d [new file with mode: 0644]
src/c/pasture/number.d.orig [new file with mode: 0644]
src/c/pasture/tcp.d [new file with mode: 0644]
src/c/pasture/threads.d.keep [new file with mode: 0644]
src/c/pasture/toto.c [new file with mode: 0644]
src/c/pasture/unify.d [new file with mode: 0644]
src/c/pathname.d [new file with mode: 0644]
src/c/predicate.d [new file with mode: 0644]
src/c/print.d [new file with mode: 0644]
src/c/read.d [new file with mode: 0644]
src/c/reference.d [new file with mode: 0644]
src/c/sequence.d [new file with mode: 0644]
src/c/stacks.d [new file with mode: 0644]
src/c/string.d [new file with mode: 0644]
src/c/structure.d [new file with mode: 0644]
src/c/symbol.d [new file with mode: 0644]
src/c/symbols_list.h [new file with mode: 0644]
src/c/symbols_list2.h [new file with mode: 0644]
src/c/threads.d [new file with mode: 0644]
src/c/time.d [new file with mode: 0644]
src/c/typespec.d [new file with mode: 0644]
src/c/unixfsys.d [new file with mode: 0644]
src/c/unixint.d [new file with mode: 0644]
src/c/unixsys.d [new file with mode: 0644]
src/case-test.lsp [new file with mode: 0644]
src/clos/boot.lsp [new file with mode: 0644]
src/clos/builtin.lsp [new file with mode: 0644]
src/clos/change.lsp [new file with mode: 0644]
src/clos/combin.lsp [new file with mode: 0644]
src/clos/conditions.lsp [new file with mode: 0644]
src/clos/defclass.lsp [new file with mode: 0644]
src/clos/fixup.lsp [new file with mode: 0644]
src/clos/generic.lsp [new file with mode: 0644]
src/clos/inspect.lsp [new file with mode: 0644]
src/clos/kernel.lsp [new file with mode: 0644]
src/clos/load.lsp.in [new file with mode: 0644]
src/clos/macros.lsp [new file with mode: 0644]
src/clos/method.lsp [new file with mode: 0644]
src/clos/mp-cond.lsp [new file with mode: 0644]
src/clos/pasture/cmpinit.lsp [new file with mode: 0644]
src/clos/pasture/defsys.lsp.in [new file with mode: 0644]
src/clos/pasture/init.lsp [new file with mode: 0644]
src/clos/precomp.lsp [new file with mode: 0644]
src/clos/print.lsp [new file with mode: 0644]
src/clos/slot.lsp [new file with mode: 0644]
src/clos/standard.lsp [new file with mode: 0644]
src/clos/stdmethod.lsp [new file with mode: 0644]
src/clos/streams.lsp [new file with mode: 0644]
src/clos/uni-cond.lsp [new file with mode: 0644]
src/cmp/cmparray.lsp [new file with mode: 0644]
src/cmp/cmpbind.lsp [new file with mode: 0644]
src/cmp/cmpblock.lsp [new file with mode: 0644]
src/cmp/cmpcall.lsp [new file with mode: 0644]
src/cmp/cmpcatch.lsp [new file with mode: 0644]
src/cmp/cmpcbk.lsp [new file with mode: 0644]
src/cmp/cmpclos.lsp [new file with mode: 0644]
src/cmp/cmpct.lsp [new file with mode: 0644]
src/cmp/cmpdefs.lsp.in [new file with mode: 0644]
src/cmp/cmpdefs.pre.gprof [new file with mode: 0644]
src/cmp/cmpdefs.pre.w64 [new file with mode: 0644]
src/cmp/cmpenv.lsp [new file with mode: 0644]
src/cmp/cmpeval.lsp [new file with mode: 0644]
src/cmp/cmpexit.lsp [new file with mode: 0644]
src/cmp/cmpffi.lsp [new file with mode: 0644]
src/cmp/cmpflet.lsp [new file with mode: 0644]
src/cmp/cmpfun.lsp [new file with mode: 0644]
src/cmp/cmpif.lsp [new file with mode: 0644]
src/cmp/cmpinline.lsp [new file with mode: 0644]
src/cmp/cmplam.lsp [new file with mode: 0644]
src/cmp/cmplam.lsp.keep [new file with mode: 0644]
src/cmp/cmplet.lsp [new file with mode: 0644]
src/cmp/cmploc.lsp [new file with mode: 0644]
src/cmp/cmpmac.lsp [new file with mode: 0644]
src/cmp/cmpmain.lsp [new file with mode: 0644]
src/cmp/cmpmap.lsp [new file with mode: 0644]
src/cmp/cmpmulti.lsp [new file with mode: 0644]
src/cmp/cmpname.lsp [new file with mode: 0644]
src/cmp/cmpnum.lsp [new file with mode: 0644]
src/cmp/cmpopt.lsp [new file with mode: 0644]
src/cmp/cmpprop.lsp [new file with mode: 0644]
src/cmp/cmpspecial.lsp [new file with mode: 0644]
src/cmp/cmpstack.lsp [new file with mode: 0644]
src/cmp/cmpstructures.lsp [new file with mode: 0644]
src/cmp/cmptag.lsp [new file with mode: 0644]
src/cmp/cmptop.lsp [new file with mode: 0644]
src/cmp/cmptype.lsp [new file with mode: 0644]
src/cmp/cmputil.lsp [new file with mode: 0644]
src/cmp/cmpvar.lsp [new file with mode: 0644]
src/cmp/cmpwt.lsp [new file with mode: 0644]
src/cmp/load.lsp.in [new file with mode: 0644]
src/cmp/pasture/cmpinit.lsp [new file with mode: 0644]
src/cmp/pasture/cmptest.lsp [new file with mode: 0644]
src/cmp/pasture/defsys.lsp.in [new file with mode: 0644]
src/cmp/pasture/test.lsp [new file with mode: 0644]
src/cmp/sysfun.lsp [new file with mode: 0644]
src/compile-utils.lsp [new file with mode: 0644]
src/compile.lsp.in [new file with mode: 0644]
src/compile.pre.w64 [new file with mode: 0644]
src/configure [new file with mode: 0755]
src/configure.in [new file with mode: 0644]
src/doc/Makefile.in [new file with mode: 0644]
src/doc/amop.txt [new file with mode: 0644]
src/doc/basic.css [new file with mode: 0644]
src/doc/ecl_devel.txi [new file with mode: 0644]
src/doc/ecl_user.txi [new file with mode: 0644]
src/doc/help.lsp [new file with mode: 0644]
src/doc/macros.txi [new file with mode: 0644]
src/doc/mkcl-config.man.in [new file with mode: 0644]
src/doc/mkcl.man.in [new file with mode: 0644]
src/doc/tutorial.txt [new file with mode: 0644]
src/doc/types-and-classes [new file with mode: 0644]
src/dump-doc.lsp [new file with mode: 0644]
src/gc/BCC_MAKEFILE [new file with mode: 0644]
src/gc/CMakeLists.txt [new file with mode: 0644]
src/gc/ChangeLog [new file with mode: 0644]
src/gc/EMX_MAKEFILE [new file with mode: 0644]
src/gc/MacProjects.sit.hqx [new file with mode: 0644]
src/gc/Mac_files/MacOS_Test_config.h [new file with mode: 0644]
src/gc/Mac_files/MacOS_config.h [new file with mode: 0644]
src/gc/Mac_files/dataend.c [new file with mode: 0644]
src/gc/Mac_files/datastart.c [new file with mode: 0644]
src/gc/Makefile.DLLs [new file with mode: 0644]
src/gc/Makefile.am [new file with mode: 0644]
src/gc/Makefile.direct [new file with mode: 0644]
src/gc/Makefile.dj [new file with mode: 0644]
src/gc/Makefile.in [new file with mode: 0644]
src/gc/NT_MAKEFILE [new file with mode: 0644]
src/gc/NT_STATIC_THREADS_MAKEFILE [new file with mode: 0644]
src/gc/NT_X64_STATIC_THREADS_MAKEFILE [new file with mode: 0644]
src/gc/NT_X64_THREADS_MAKEFILE [new file with mode: 0644]
src/gc/OS2_MAKEFILE [new file with mode: 0644]
src/gc/PCR-Makefile [new file with mode: 0644]
src/gc/README.QUICK [new file with mode: 0644]
src/gc/SMakefile.amiga [new file with mode: 0644]
src/gc/WCC_MAKEFILE [new file with mode: 0644]
src/gc/aclocal.m4 [new file with mode: 0644]
src/gc/allchblk.c [new file with mode: 0644]
src/gc/alloc.c [new file with mode: 0644]
src/gc/alpha_mach_dep.S [new file with mode: 0644]
src/gc/autogen.sh [new file with mode: 0755]
src/gc/autom4te.cache/output.0 [new file with mode: 0644]
src/gc/autom4te.cache/requests [new file with mode: 0644]
src/gc/autom4te.cache/traces.0 [new file with mode: 0644]
src/gc/backgraph.c [new file with mode: 0644]
src/gc/bdw-gc.pc.in [new file with mode: 0644]
src/gc/blacklst.c [new file with mode: 0644]
src/gc/build_atomic_ops.sh [new file with mode: 0755]
src/gc/build_atomic_ops.sh.cygwin [new file with mode: 0755]
src/gc/callprocs [new file with mode: 0755]
src/gc/checksums.c [new file with mode: 0644]
src/gc/compile [new file with mode: 0755]
src/gc/config.guess [new file with mode: 0755]
src/gc/config.sub [new file with mode: 0755]
src/gc/configure [new file with mode: 0755]
src/gc/configure.ac [new file with mode: 0644]
src/gc/configure.host [new file with mode: 0644]
src/gc/configure.keep [new file with mode: 0755]
src/gc/cord/cord.am [new file with mode: 0644]
src/gc/cord/cordbscs.c [new file with mode: 0644]
src/gc/cord/cordprnt.c [new file with mode: 0644]
src/gc/cord/cordtest.c [new file with mode: 0644]
src/gc/cord/cordxtra.c [new file with mode: 0644]
src/gc/cord/de.c [new file with mode: 0644]
src/gc/cord/de_cmds.h [new file with mode: 0644]
src/gc/cord/de_win.ICO [new file with mode: 0644]
src/gc/cord/de_win.RC [new file with mode: 0644]
src/gc/cord/de_win.c [new file with mode: 0644]
src/gc/cord/de_win.h [new file with mode: 0644]
src/gc/darwin_stop_world.c [new file with mode: 0644]
src/gc/dbg_mlc.c [new file with mode: 0644]
src/gc/depcomp [new file with mode: 0755]
src/gc/digimars.mak [new file with mode: 0644]
src/gc/doc/README [new file with mode: 0644]
src/gc/doc/README.DGUX386 [new file with mode: 0644]
src/gc/doc/README.Mac [new file with mode: 0644]
src/gc/doc/README.MacOSX [new file with mode: 0644]
src/gc/doc/README.OS2 [new file with mode: 0644]
src/gc/doc/README.amiga [new file with mode: 0644]
src/gc/doc/README.arm.cross [new file with mode: 0644]
src/gc/doc/README.autoconf [new file with mode: 0644]
src/gc/doc/README.changes [new file with mode: 0644]
src/gc/doc/README.cmake [new file with mode: 0644]
src/gc/doc/README.contributors [new file with mode: 0644]
src/gc/doc/README.cords [new file with mode: 0644]
src/gc/doc/README.darwin [new file with mode: 0644]
src/gc/doc/README.dj [new file with mode: 0644]
src/gc/doc/README.environment [new file with mode: 0644]
src/gc/doc/README.ews4800 [new file with mode: 0644]
src/gc/doc/README.hp [new file with mode: 0644]
src/gc/doc/README.linux [new file with mode: 0644]
src/gc/doc/README.macros [new file with mode: 0644]
src/gc/doc/README.rs6000 [new file with mode: 0644]
src/gc/doc/README.sgi [new file with mode: 0644]
src/gc/doc/README.solaris2 [new file with mode: 0644]
src/gc/doc/README.uts [new file with mode: 0644]
src/gc/doc/README.win32 [new file with mode: 0644]
src/gc/doc/README.win64 [new file with mode: 0644]
src/gc/doc/barrett_diagram [new file with mode: 0644]
src/gc/doc/debugging.html [new file with mode: 0644]
src/gc/doc/doc.am [new file with mode: 0644]
src/gc/doc/gc.man [new file with mode: 0644]
src/gc/doc/gcdescr.html [new file with mode: 0644]
src/gc/doc/gcinterface.html [new file with mode: 0644]
src/gc/doc/leak.html [new file with mode: 0644]
src/gc/doc/overview.html [new file with mode: 0644]
src/gc/doc/porting.html [new file with mode: 0644]
src/gc/doc/scale.html [new file with mode: 0644]
src/gc/doc/simple_example.html [new file with mode: 0644]
src/gc/doc/tree.html [new file with mode: 0644]
src/gc/dyn_load.c [new file with mode: 0644]
src/gc/extra/AmigaOS.c [new file with mode: 0644]
src/gc/extra/MacOS.c [new file with mode: 0644]
src/gc/extra/add_gc_prefix.c [new file with mode: 0644]
src/gc/extra/gc.c [new file with mode: 0644]
src/gc/extra/gcname.c [new file with mode: 0644]
src/gc/extra/if_mach.c [new file with mode: 0644]
src/gc/extra/if_not_there.c [new file with mode: 0644]
src/gc/extra/msvc_dbg.c [new file with mode: 0644]
src/gc/extra/setjmp_t.c [new file with mode: 0644]
src/gc/extra/threadlibs.c [new file with mode: 0644]
src/gc/finalize.c [new file with mode: 0644]
src/gc/gc.mak [new file with mode: 0644]
src/gc/gc_cpp.cc [new file with mode: 0644]
src/gc/gc_cpp.cpp [new file with mode: 0644]
src/gc/gc_dlopen.c [new file with mode: 0644]
src/gc/gcj_mlc.c [new file with mode: 0644]
src/gc/headers.c [new file with mode: 0644]
src/gc/ia64_save_regs_in_stack.s [new file with mode: 0644]
src/gc/include/cord.h [new file with mode: 0644]
src/gc/include/ec.h [new file with mode: 0644]
src/gc/include/extra/gc.h [new file with mode: 0644]
src/gc/include/extra/gc_cpp.h [new file with mode: 0644]
src/gc/include/gc.h [new file with mode: 0644]
src/gc/include/gc_allocator.h [new file with mode: 0644]
src/gc/include/gc_amiga_redirects.h [new file with mode: 0644]
src/gc/include/gc_backptr.h [new file with mode: 0644]
src/gc/include/gc_config_macros.h [new file with mode: 0644]
src/gc/include/gc_cpp.h [new file with mode: 0644]
src/gc/include/gc_gcj.h [new file with mode: 0644]
src/gc/include/gc_inline.h [new file with mode: 0644]
src/gc/include/gc_local.h [new file with mode: 0644]
src/gc/include/gc_mark.h [new file with mode: 0644]
src/gc/include/gc_pthread_redirects.h [new file with mode: 0644]
src/gc/include/gc_tiny_fl.h [new file with mode: 0644]
src/gc/include/gc_typed.h [new file with mode: 0644]
src/gc/include/gc_version.h [new file with mode: 0644]
src/gc/include/include.am [new file with mode: 0644]
src/gc/include/javaxfc.h [new file with mode: 0644]
src/gc/include/leak_detector.h [new file with mode: 0644]
src/gc/include/new_gc_alloc.h [new file with mode: 0644]
src/gc/include/private/config.h.in [new file with mode: 0644]
src/gc/include/private/cord_pos.h [new file with mode: 0644]
src/gc/include/private/darwin_semaphore.h [new file with mode: 0644]
src/gc/include/private/darwin_stop_world.h [new file with mode: 0644]
src/gc/include/private/dbg_mlc.h [new file with mode: 0644]
src/gc/include/private/gc_hdrs.h [new file with mode: 0644]
src/gc/include/private/gc_locks.h [new file with mode: 0644]
src/gc/include/private/gc_pmark.h [new file with mode: 0644]
src/gc/include/private/gc_priv.h [new file with mode: 0644]
src/gc/include/private/gcconfig.h [new file with mode: 0644]
src/gc/include/private/msvc_dbg.h [new file with mode: 0644]
src/gc/include/private/pthread_stop_world.h [new file with mode: 0644]
src/gc/include/private/pthread_support.h [new file with mode: 0644]
src/gc/include/private/specific.h [new file with mode: 0644]
src/gc/include/private/thread_local_alloc.h [new file with mode: 0644]
src/gc/include/weakpointer.h [new file with mode: 0644]
src/gc/install-sh [new file with mode: 0755]
src/gc/libatomic_ops/AUTHORS [new file with mode: 0644]
src/gc/libatomic_ops/COPYING [new file with mode: 0644]
src/gc/libatomic_ops/ChangeLog [new file with mode: 0644]
src/gc/libatomic_ops/INSTALL [new file with mode: 0644]
src/gc/libatomic_ops/Makefile [new file with mode: 0644]
src/gc/libatomic_ops/Makefile.am [new file with mode: 0644]
src/gc/libatomic_ops/Makefile.in [new file with mode: 0644]
src/gc/libatomic_ops/NEWS [new file with mode: 0644]
src/gc/libatomic_ops/README [new file with mode: 0644]
src/gc/libatomic_ops/aclocal.m4 [new file with mode: 0644]
src/gc/libatomic_ops/compile [new file with mode: 0755]
src/gc/libatomic_ops/config.guess [new file with mode: 0755]
src/gc/libatomic_ops/config.log [new file with mode: 0644]
src/gc/libatomic_ops/config.status [new file with mode: 0755]
src/gc/libatomic_ops/config.sub [new file with mode: 0755]
src/gc/libatomic_ops/configure [new file with mode: 0755]
src/gc/libatomic_ops/configure.ac [new file with mode: 0644]
src/gc/libatomic_ops/depcomp [new file with mode: 0755]
src/gc/libatomic_ops/doc/COPYING [new file with mode: 0644]
src/gc/libatomic_ops/doc/LICENSING.txt [new file with mode: 0644]
src/gc/libatomic_ops/doc/Makefile [new file with mode: 0644]
src/gc/libatomic_ops/doc/Makefile.am [new file with mode: 0644]
src/gc/libatomic_ops/doc/Makefile.in [new file with mode: 0644]
src/gc/libatomic_ops/doc/README.txt [new file with mode: 0644]
src/gc/libatomic_ops/doc/README_malloc.txt [new file with mode: 0644]
src/gc/libatomic_ops/doc/README_stack.txt [new file with mode: 0644]
src/gc/libatomic_ops/doc/README_win32.txt [new file with mode: 0644]
src/gc/libatomic_ops/install-sh [new file with mode: 0755]
src/gc/libatomic_ops/missing [new file with mode: 0755]
src/gc/libatomic_ops/mkinstalldirs [new file with mode: 0755]
src/gc/libatomic_ops/pkgconfig/atomic_ops-uninstalled.pc [new file with mode: 0644]
src/gc/libatomic_ops/pkgconfig/atomic_ops-uninstalled.pc.in [new file with mode: 0644]
src/gc/libatomic_ops/pkgconfig/atomic_ops.pc [new file with mode: 0644]
src/gc/libatomic_ops/pkgconfig/atomic_ops.pc.in [new file with mode: 0644]
src/gc/libatomic_ops/src/.deps/atomic_ops.Po [new file with mode: 0644]
src/gc/libatomic_ops/src/.deps/atomic_ops_malloc.Po [new file with mode: 0644]
src/gc/libatomic_ops/src/.deps/atomic_ops_stack.Po [new file with mode: 0644]
src/gc/libatomic_ops/src/.deps/atomic_ops_sysdeps.Po [new file with mode: 0644]
src/gc/libatomic_ops/src/Makefile [new file with mode: 0644]
src/gc/libatomic_ops/src/Makefile.am [new file with mode: 0644]
src/gc/libatomic_ops/src/Makefile.in [new file with mode: 0644]
src/gc/libatomic_ops/src/Makefile.msft [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops.c [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/Makefile [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/Makefile.am [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/Makefile.in [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/generalize-small.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/generalize-small.template [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/generalize.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/Makefile [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/Makefile.am [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/Makefile.in [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/README [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/acquire_release_volatile.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/aligned_atomic_load_store.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/all_acquire_release_volatile.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/all_atomic_load_store.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/ao_t_is_int.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/armcc/arm_v6.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/atomic_load_store.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/char_acquire_release_volatile.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/char_atomic_load_store.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/emul_cas.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/alpha.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/arm.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/avr32.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/cris.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/hexagon.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/hppa.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/ia64.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/m68k.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/mips.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/powerpc.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/s390.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/sh.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/sparc.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/x86.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/x86_64.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/generic_pthread.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/hpc/hppa.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/hpc/ia64.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/ibmc/powerpc.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/icc/ia64.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/int_acquire_release_volatile.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/int_atomic_load_store.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/msftc/arm.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/msftc/common32_defs.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/msftc/x86.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/msftc/x86_64.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/ordered.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/ordered_except_wr.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/read_ordered.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/short_acquire_release_volatile.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/short_atomic_load_store.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/standard_ao_double_t.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/sunc/sparc.S [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/sunc/sparc.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/sunc/x86.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/sunc/x86_64.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops/sysdeps/test_and_set_t_is_char.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops_malloc.c [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops_malloc.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops_stack.c [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops_stack.h [new file with mode: 0644]
src/gc/libatomic_ops/src/atomic_ops_sysdeps.S [new file with mode: 0644]
src/gc/libatomic_ops/src/config.h [new file with mode: 0644]
src/gc/libatomic_ops/src/config.h.in [new file with mode: 0644]
src/gc/libatomic_ops/src/stamp-h1 [new file with mode: 0644]
src/gc/libatomic_ops/tests/.deps/test_atomic.Po [new file with mode: 0644]
src/gc/libatomic_ops/tests/.deps/test_atomic_pthreads-test_atomic.Po [new file with mode: 0644]
src/gc/libatomic_ops/tests/.deps/test_malloc.Po [new file with mode: 0644]
src/gc/libatomic_ops/tests/.deps/test_stack.Po [new file with mode: 0644]
src/gc/libatomic_ops/tests/Makefile [new file with mode: 0644]
src/gc/libatomic_ops/tests/Makefile.am [new file with mode: 0644]
src/gc/libatomic_ops/tests/Makefile.in [new file with mode: 0644]
src/gc/libatomic_ops/tests/list_atomic.c [new file with mode: 0644]
src/gc/libatomic_ops/tests/list_atomic.template [new file with mode: 0644]
src/gc/libatomic_ops/tests/run_parallel.inc [new file with mode: 0644]
src/gc/libatomic_ops/tests/test_atomic.c [new file with mode: 0644]
src/gc/libatomic_ops/tests/test_atomic.template [new file with mode: 0644]
src/gc/libatomic_ops/tests/test_atomic_include.h [new file with mode: 0644]
src/gc/libatomic_ops/tests/test_malloc.c [new file with mode: 0644]
src/gc/libatomic_ops/tests/test_stack.c [new file with mode: 0644]
src/gc/ltmain.sh [new file with mode: 0644]
src/gc/m4/gc_set_version.m4 [new file with mode: 0644]
src/gc/m4/libtool.m4 [new file with mode: 0644]
src/gc/m4/ltoptions.m4 [new file with mode: 0644]
src/gc/m4/ltsugar.m4 [new file with mode: 0644]
src/gc/m4/ltversion.m4 [new file with mode: 0644]
src/gc/m4/lt~obsolete.m4 [new file with mode: 0644]
src/gc/mach_dep.c [new file with mode: 0644]
src/gc/malloc.c [new file with mode: 0644]
src/gc/mallocx.c [new file with mode: 0644]
src/gc/mark.c [new file with mode: 0644]
src/gc/mark_rts.c [new file with mode: 0644]
src/gc/mips_sgi_mach_dep.s [new file with mode: 0644]
src/gc/mips_ultrix_mach_dep.s [new file with mode: 0644]
src/gc/misc.c [new file with mode: 0644]
src/gc/missing [new file with mode: 0755]
src/gc/mkinstalldirs [new file with mode: 0755]
src/gc/new_hblk.c [new file with mode: 0644]
src/gc/obj_map.c [new file with mode: 0644]
src/gc/os_dep.c [new file with mode: 0644]
src/gc/pcr_interface.c [new file with mode: 0644]
src/gc/pthread_start.c [new file with mode: 0644]
src/gc/pthread_stop_world.c [new file with mode: 0644]
src/gc/pthread_support.c [new file with mode: 0644]
src/gc/ptr_chck.c [new file with mode: 0644]
src/gc/real_malloc.c [new file with mode: 0644]
src/gc/reclaim.c [new file with mode: 0644]
src/gc/rs6000_mach_dep.s [new file with mode: 0644]
src/gc/sparc_mach_dep.S [new file with mode: 0644]
src/gc/sparc_netbsd_mach_dep.s [new file with mode: 0644]
src/gc/sparc_sunos4_mach_dep.s [new file with mode: 0644]
src/gc/specific.c [new file with mode: 0644]
src/gc/stubborn.c [new file with mode: 0644]
src/gc/tests/CMakeLists.txt [new file with mode: 0644]
src/gc/tests/huge_test.c [new file with mode: 0644]
src/gc/tests/initsecondarythread.c [new file with mode: 0644]
src/gc/tests/leak_test.c [new file with mode: 0644]
src/gc/tests/middle.c [new file with mode: 0644]
src/gc/tests/realloc_test.c [new file with mode: 0644]
src/gc/tests/smash_test.c [new file with mode: 0644]
src/gc/tests/staticrootslib.c [new file with mode: 0644]
src/gc/tests/staticrootstest.c [new file with mode: 0644]
src/gc/tests/test.c [new file with mode: 0644]
src/gc/tests/test_cpp.cc [new file with mode: 0644]
src/gc/tests/tests.am [new file with mode: 0644]
src/gc/tests/thread_leak_test.c [new file with mode: 0644]
src/gc/tests/threadkey_test.c [new file with mode: 0644]
src/gc/tests/trace_test.c [new file with mode: 0644]
src/gc/thread_local_alloc.c [new file with mode: 0644]
src/gc/typd_mlc.c [new file with mode: 0644]
src/gc/win32_threads.c [new file with mode: 0644]
src/generate-encodings.lsp [new file with mode: 0644]
src/lsp/arraylib.lsp [new file with mode: 0644]
src/lsp/assert.lsp [new file with mode: 0644]
src/lsp/autoload.lsp [new file with mode: 0644]
src/lsp/cmdline.lsp [new file with mode: 0644]
src/lsp/cmuutil.lsp [new file with mode: 0644]
src/lsp/config.lsp.in [new file with mode: 0644]
src/lsp/defmacro.lsp [new file with mode: 0644]
src/lsp/defpackage.lsp [new file with mode: 0644]
src/lsp/defstruct.lsp [new file with mode: 0644]
src/lsp/describe.lsp [new file with mode: 0644]
src/lsp/evalmacros.lsp [new file with mode: 0644]
src/lsp/export.lsp [new file with mode: 0644]
src/lsp/ffi.lsp [new file with mode: 0644]
src/lsp/format.lsp [new file with mode: 0644]
src/lsp/funtype.lsp [new file with mode: 0644]
src/lsp/helpfile.lsp [new file with mode: 0644]
src/lsp/iolib.lsp [new file with mode: 0644]
src/lsp/listlib.lsp [new file with mode: 0644]
src/lsp/load.lsp.in [new file with mode: 0644]
src/lsp/loop2.lsp [new file with mode: 0644]
src/lsp/loop3.lsp [new file with mode: 0644]
src/lsp/mislib.lsp [new file with mode: 0644]
src/lsp/module.lsp [new file with mode: 0644]
src/lsp/mp.lsp [new file with mode: 0644]
src/lsp/numlib.lsp [new file with mode: 0644]
src/lsp/packlib.lsp [new file with mode: 0644]
src/lsp/pasture/cmpinit.lsp [new file with mode: 0644]
src/lsp/pasture/defsys.lsp.in [new file with mode: 0644]
src/lsp/pasture/init.lsp [new file with mode: 0644]
src/lsp/pasture/loop.lsp [new file with mode: 0644]
src/lsp/pasture/proclaim.lsp [new file with mode: 0644]
src/lsp/pasture/util.lsp [new file with mode: 0644]
src/lsp/pprint-macros.lsp [new file with mode: 0644]
src/lsp/pprint.lsp [new file with mode: 0644]
src/lsp/predlib.lsp [new file with mode: 0644]
src/lsp/seq.lsp [new file with mode: 0644]
src/lsp/seqlib.lsp [new file with mode: 0644]
src/lsp/setf.lsp [new file with mode: 0644]
src/lsp/top.lsp [new file with mode: 0644]
src/lsp/trace.lsp [new file with mode: 0644]
src/mkcl/bytecode.h [new file with mode: 0644]
src/mkcl/config.h.in [new file with mode: 0644]
src/mkcl/config.h.w32 [new file with mode: 0644]
src/mkcl/config.h.w64 [new file with mode: 0644]
src/mkcl/external.h [new file with mode: 0644]
src/mkcl/internal.h [new file with mode: 0644]
src/mkcl/list.h [new file with mode: 0644]
src/mkcl/mkcl-cmp.h [new file with mode: 0644]
src/mkcl/mkcl-fenv.h [new file with mode: 0644]
src/mkcl/mkcl-gc.h [new file with mode: 0644]
src/mkcl/mkcl-gc.h.in [new file with mode: 0644]
src/mkcl/mkcl-inl.h [new file with mode: 0644]
src/mkcl/mkcl-math.h [new file with mode: 0644]
src/mkcl/mkcl.h [new file with mode: 0644]
src/mkcl/number.h [new file with mode: 0644]
src/mkcl/object.h [new file with mode: 0644]
src/mkcl/pasture/cs.h [new file with mode: 0644]
src/mkcl/pasture/gc.h [new file with mode: 0644]
src/mkcl/pasture/gc_cpp.h [new file with mode: 0644]
src/mkcl/pasture/gmp.h [new file with mode: 0644]
src/mkcl/pasture/mecl_fenv.h [new file with mode: 0644]
src/mkcl/pasture/page.h [new file with mode: 0644]
src/mkcl/stacks.h [new file with mode: 0644]
src/pasture/config.guess [new file with mode: 0755]
src/pasture/config.sub [new file with mode: 0755]
src/pkgconfig/bdw-gc.pc [new file with mode: 0644]
src/util/Makefile.in [new file with mode: 0644]
src/util/changes.el [new file with mode: 0644]
src/util/cut.c [new file with mode: 0644]
src/util/defsys.lsp [new file with mode: 0644]
src/util/emacs.el [new file with mode: 0644]
src/util/gdbinit [new file with mode: 0644]
src/util/install [new file with mode: 0755]
src/util/install.sh [new file with mode: 0755]
src/util/iobuftest.c [new file with mode: 0644]
src/util/make_msvcrtlib [new file with mode: 0755]
src/util/mkcl-config [new file with mode: 0755]
src/util/mkcl.spec [new file with mode: 0644]
src/util/ms-windows/Copyright_plus_LGPL.txt [new file with mode: 0644]
src/util/ms-windows/MinGW_license.txt [new file with mode: 0644]
src/util/ms-windows/gpl.txt [new file with mode: 0644]
src/util/ms-windows/mkcl.nsi [new file with mode: 0644]
src/util/ms-windows/mkcl.nsi.old [new file with mode: 0644]
src/util/ms-windows/mkcl.nsi.w64 [new file with mode: 0644]
src/util/ms-windows/mkcl.nsi.w64.old [new file with mode: 0644]
src/util/search [new file with mode: 0644]
src/util/system.lsp [new file with mode: 0644]
src/util/tag [new file with mode: 0755]
src/util/trap_alloc.gdb [new file with mode: 0644]

diff --git a/ANNOUNCEMENT b/ANNOUNCEMENT
new file mode 100644 (file)
index 0000000..dcc7e5e
--- /dev/null
@@ -0,0 +1,35 @@
+Announcement of MKCL version 1.0.0
+==================================
+
+This is ManKai Common Lisp (MKCL).
+
+MKCL finds its origin in the source code of the ECL project and thus shares
+a lot of features with ECL. MKCL, as ECL before it, aims to produce an implementation of
+the Common Lisp language which complies to the ANSI X3J13 Common Lisp standard,
+but in a more contained and controlled context.
+
+MKCL strives for greater reliability and stability in a quest for the ease of use
+that thus result. Over abundance of features and reckless search of performance
+are avoided in MKCL.
+
+MKCL supports the operating systems Linux and Microsoft Windows, running
+on top of Intel x86 or AMD64 compatible processors.
+
+MKCL is a multi-threaded only implementation.
+
+
+
+Notes for this release
+======================
+
+This release is the first one of MKCL, it includes an entirely new
+architecture for signal handling that we hope will improve very
+significantly the overall robustness of the whole MKCL system.
+
+
+
+Known issues:
+
+None reported at this moment.
+
+
diff --git a/Copyright b/Copyright
new file mode 100644 (file)
index 0000000..85c73c3
--- /dev/null
+++ b/Copyright
@@ -0,0 +1,35 @@
+---- BEGINNING OF COPYRIGHT FOR THE MKCL CORE ENVIRONMENT ------------
+
+  Copyright (c) 2010-2011, Jean-Claude Beaudoin
+  Copyright (c) 2000, Juan Jose Garcia Ripoll
+  Copyright (c) 1990, 1991, 1993 Giuseppe Attardi
+  Copyright (c) 1984 Taiichi Yuasa and Masami Hagiya
+             All Rights Reserved
+
+  ManKai Common Lisp (MKCL) is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public License as
+  published by the Free Software Foundation; either version 3 of the License,
+  or (at your option) any later version; see file 'Copying'.
+
+  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 Lesser General Public License (LGPL) for more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+  PLEASE NOTE THAT:
+
+  This license covers all of the MKCL program except for the files
+       src/lsp/loop2.lsp       ; Symbolic's LOOP macro
+       src/lsp/pprint.lsp      ; CMUCL's pretty printer
+       src/lsp/format.lsp      ; CMUCL's format
+  and the directories
+       contrib/                ; User contributed extensions
+  Look the precise copyright of these extensions in the corresponding
+  files.
+
+
+---- END OF COPYRIGHT FOR THE MKCL CORE ENVIRONMENT ------------------
diff --git a/LGPL b/LGPL
new file mode 100644 (file)
index 0000000..cca7fc2
--- /dev/null
+++ b/LGPL
@@ -0,0 +1,165 @@
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/LGPL.v2 b/LGPL.v2
new file mode 100644 (file)
index 0000000..eb685a5
--- /dev/null
+++ b/LGPL.v2
@@ -0,0 +1,481 @@
+                 GNU LIBRARY GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+                    675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL.  It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it.  You can use it for
+your libraries, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library.  If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+\f
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software.  To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+  Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs.  This
+license, the GNU Library General Public License, applies to certain
+designated libraries.  This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+  The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it.  Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program.  However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+  Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries.  We
+concluded that weaker conditions might promote sharing better.
+
+  However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves.  This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them.  (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.)  The hope is that this
+will lead to faster development of free libraries.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+  Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+\f
+                 GNU LIBRARY GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License").  Each licensee is
+addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+\f
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+\f
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+\f
+  6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    c) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    d) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+\f
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+\f
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+\f
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                           NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+     Appendix: How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library 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
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/Makefile.in b/Makefile.in
new file mode 100644 (file)
index 0000000..1f5b50b
--- /dev/null
@@ -0,0 +1,195 @@
+#  DIST: This is the distribution Makefile for MKCL.  configure can
+#  DIST: make most of the changes to this file you might want, so try
+#  DIST: that first.
+#
+#
+#  Copyright (c) 2010, Jean-Claude Beaudoin.
+#  Copyright by a number of previous anonymous authors
+#            presumed to be the same as for the rest of MKCL.
+#
+#  MKCL is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 3 of the License, or (at your option) any later version.
+#
+#  See file './Copyright' for full details.
+#
+#
+
+
+# make all     to compile and build Emacs.
+# make install to install it.
+# make TAGS    to update tags tables.
+#
+# make clean  or  make mostlyclean
+#      Delete all files from the current directory that are normally
+#      created by building the program.         Don't delete the files that
+#      record the configuration.  Also preserve files that could be made
+#      by building, but normally aren't because the distribution comes
+#      with them.
+#
+#      Delete `.dvi' files here if they are not part of the distribution.
+# 
+# make distclean
+#      Delete all files from the current directory that are created by
+#      configuring or building the program.  If you have unpacked the
+#      source and built the program without creating any other files,
+#      `make distclean' should leave only the files that were in the
+#      distribution.
+# 
+# make realclean
+#      Delete everything from the current directory that can be
+#      reconstructed with this Makefile.  This typically includes
+#      everything deleted by distclean.
+
+SHELL = /bin/sh
+MACHINE = @MACHINE_VERSION@
+
+# ========================= Last release ================================
+
+VERSION=@PACKAGE_VERSION@
+WWW=
+ADDRESS=
+
+# ==================== Things `configure' Might Edit ====================
+
+#  Where to find the source code.
+#  This is set by the configure script's `--srcdir' option.
+srcdir=@srcdir@
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+bindir=@bindir@
+infodir=@infodir@
+mandir=@mandir@
+libdir=@libdir@
+datarootdir=@datarootdir@
+
+#  What to release
+TAR_CONTENTS=Makefile.in README.1st LGPL ANNOUNCEMENT Copyright doc \
+       configure src/c src/cmp src/clos src/CHANGELOG src/lsp src/doc \
+       src/mkcl  src/gmp src/config* src/install.sh src/Makefile.in \
+       src/util contrib/ src/clx src/gc src/*.in src/*.m4 src/gabriel \
+       src/tests/Makefile.in src/ansi-tests/Makefile.in msvc examples
+
+# ==================== Utility Programs for the Build ====================
+
+#  Allow the user to specify the install program.
+@SET_MAKE@
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+
+# ============================= Build ==============================
+
+all: 
+       cd src; $(MAKE) depend all
+.PHONY:        all
+
+Makefile: Makefile.in src/config.status
+       (cd src; ./config.status)
+
+depend:
+       cd src; $(MAKE) depend
+
+
+# ==================== Installation ====================
+
+INSTALL_TARGET = @INSTALL_TARGET@
+
+install: src/Makefile
+       cd src; $(MAKE) $(INSTALL_TARGET)
+
+uninstall:
+       cd src; $(MAKE) uninstall
+
+# ==================== Cleaning up and miscellanea ====================
+
+#   `clean'
+#        Delete all files from the current directory that are normally
+#        created by building the program.  Don't delete the files that
+#        record the configuration.  Also preserve files that could be made
+#        by building, but normally aren't because the distribution comes
+#        with them.
+#
+clean:
+       cd src; $(MAKE) clean
+
+#   `distclean'
+#        Delete all files from the current directory that are created by
+#        configuring or building the program.  If you have unpacked the
+#        source and built the program without creating any other files,
+#        `make distclean' should leave only the files that were in the
+#        distribution.
+
+distclean: clean
+       cd src; $(MAKE) distclean
+       rm -f Makefile
+
+#   `realclean'
+#        Delete everything from the current directory that can be
+#        reconstructed with 'configure' and this Makefile.in.
+#        One exception, however: `make realclean' should not delete
+#        `configure' even if `configure' can be remade using a rule in the
+#        Makefile.  More generally, `make realclean' should not delete
+#        anything that needs to exist in order to run `configure' and then
+#        begin to build the program.
+realclean: distclean
+       rm -f *~
+       cd src; $(MAKE) realclean
+
+# ==================== Various means of distribution ====================
+
+TAR_DIR=mkcl-$(VERSION)
+
+doc: src/doc/index.html
+       -mkdir doc
+       (cd src/doc; make html); cp src/doc/*.html doc
+src/doc/index.html:
+       cd src/doc; $(MAKE)
+
+source-dist: $(TAR_DIR).tgz
+
+rpmdir=$(shell rpm --showrc | grep '^-[0-9]*:.*[^{]_topdir' | sed 's,^.*topdir[        ]*\(.*\)[       ]*,\1,')
+rpmbuild=$(shell if [ -z `which rpmbuild` ]; then echo "rpm"; else echo "rpmbuild"; fi)
+
+# OBSOLETE!!!
+# rpm: doc
+#      -rm -rf $(TAR_DIR)
+#      mkdir $(TAR_DIR) $(TAR_DIR)/src \
+#      $(TAR_DIR)/src/tests $(TAR_DIR)/src/ansi-tests && \
+#      for i in $(TAR_CONTENTS); do cp -rf $$i $(TAR_DIR)/$$i; done && \
+#      tar -cz --exclude '*~' --exclude '#*' --exclude 'CVS' -f $(rpmdir)/SOURCES/$(TAR_DIR).tgz $(TAR_DIR)
+#      if [ -f /etc/SuSE-release ]; then HOST=SUSE; else HOST=REDHAT; fi; \
+#      cat src/util/mkcl.spec |\
+#      sed 's,MKCL_VERSION,$(VERSION),;s,^#% '$${HOST}' ,,g;'|\
+#      grep -v '^#% ' > $(rpmdir)/SPECS/mkcl.spec;
+#      rpm -ba $(rpmdir)/SPECS/mkcl.spec
+
+$(TAR_DIR):
+       git clone .git $(TAR_DIR)
+$(TAR_DIR).tgz: $(TAR_DIR)
+       cd $(TAR_DIR) && git pull && git reset --hard
+       tar -cz --exclude .git -f $(TAR_DIR).tgz $(TAR_DIR)
+
+binary-dist: all
+       su -c "rm -rf tmp"
+       mkdir tmp
+       for i in tmp$(bindir) tmp$(infodir) tmp$(mandir) tmp$(libdir); do \
+       (echo $$i; IFS="/"; \for k in $$i; do echo $$k; (test -d $$k || mkdir $$k); chmod 755 $$k; cd $$k; done); \
+       done
+       prefix=`pwd`/tmp; cd src; $(MAKE) install prefix=$(prefix)
+       su -c "chown -R root.root tmp && cd tmp; tar czf ../mkcl-$(VERSION)-$(MACHINE).tgz * && cd .. && rm -rf tmp"
+
+# This creates a ZIP file with a flattened directory structure
+windows-dist: all
+       cd src; rm -rf $(TAR_DIR); mkdir $(TAR_DIR); \
+       $(MAKE) flatinstall prefix=`pwd`/$(TAR_DIR); \
+       zip -r $(TAR_DIR).zip $(TAR_DIR)
+windows-nsi: all
+       cd src; rm -rf $(TAR_DIR); mkdir $(TAR_DIR); \
+       $(MAKE) flatinstall prefix=`pwd`/$(TAR_DIR)
+       `pwd`/src/util/mkcl_nsi.sh `pwd`/src/util/mkcl.nsi src/$(TAR_DIR)
+       makensis.exe src/$(TAR_DIR)/mkcl.nsi
+       mv src/$(TAR_DIR)/Setup.exe mkcl-$(VERSION).exe
+
diff --git a/README b/README
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+
diff --git a/configure b/configure
new file mode 100755 (executable)
index 0000000..4b25c16
--- /dev/null
+++ b/configure
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# This is just a driver for configure, the real configure is in src.
+# This script identifies the machine, and creates a directory for
+# the installation, where it runs ${srcdir}/configure.
+set -e
+
+srcdir=`pwd`/src
+
+echo Switching to directory "\`${srcdir}'" to continue configuration.
+
+#
+# There are two ways to configure MKCL. If we use our own version of GMP,
+# we let it configure itself and later on retrieve the appropiate flags
+#
+if ( echo $* | grep guess-host-cflags ); then
+  echo ****
+  echo **** The flag --enable-guest-host-cflags has been removed. Instead try
+  echo ****   $* --enable-slow-conf
+  echo ****
+  exit 1
+fi
+
+cd ${srcdir}
+./configure --srcdir=${srcdir} "$@"
+
+echo Configuration complete. To build MKCL, issue 'make' in this directory.
diff --git a/contrib/alexandria_2012_08_14/AUTHORS b/contrib/alexandria_2012_08_14/AUTHORS
new file mode 100644 (file)
index 0000000..b550ea5
--- /dev/null
@@ -0,0 +1,9 @@
+
+ACTA EST FABULA PLAUDITE
+
+Nikodemus Siivola 
+Attila Lendvai
+Marco Baringer
+Robert Strandh
+Luis Oliveira
+Tobias C. Rittweiler
\ No newline at end of file
diff --git a/contrib/alexandria_2012_08_14/LICENCE b/contrib/alexandria_2012_08_14/LICENCE
new file mode 100644 (file)
index 0000000..b5140fb
--- /dev/null
@@ -0,0 +1,37 @@
+Alexandria software and associated documentation are in the public
+domain:
+
+  Authors dedicate this work to public domain, for the benefit of the
+  public at large and to the detriment of the authors' heirs and
+  successors. Authors intends this dedication to be an overt act of
+  relinquishment in perpetuity of all present and future rights under
+  copyright law, whether vested or contingent, in the work. Authors
+  understands that such relinquishment of all rights includes the
+  relinquishment of all rights to enforce (by lawsuit or otherwise)
+  those copyrights in the work.
+
+  Authors recognize that, once placed in the public domain, the work
+  may be freely reproduced, distributed, transmitted, used, modified,
+  built upon, or otherwise exploited by anyone for any purpose,
+  commercial or non-commercial, and in any way, including by methods
+  that have not yet been invented or conceived.
+
+In those legislations where public domain dedications are not
+recognized or possible, Alexandria is distributed under the following
+terms and conditions:
+
+  Permission is hereby granted, free of charge, to any person
+  obtaining a copy of this software and associated documentation files
+  (the "Software"), to deal in the Software without restriction,
+  including without limitation the rights to use, copy, modify, merge,
+  publish, distribute, sublicense, and/or sell copies of the Software,
+  and to permit persons to whom the Software is furnished to do so,
+  subject to the following conditions:
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/contrib/alexandria_2012_08_14/README b/contrib/alexandria_2012_08_14/README
new file mode 100644 (file)
index 0000000..8081c60
--- /dev/null
@@ -0,0 +1,52 @@
+Alexandria is a collection of portable public domain utilities that
+meet the following constraints:
+
+ * Utilities, not extensions: Alexandria will not contain conceptual
+   extensions to Common Lisp, instead limiting itself to tools and
+   utilities that fit well within the framework of standard ANSI
+   Common Lisp. Test-frameworks, system definitions, logging
+   facilities, serialization layers, etc. are all outside the scope of
+   Alexandria as a library, though well within the scope of Alexandria
+   as a project.
+
+ * Conservative: Alexandria limits itself to what project members
+   consider conservative utilities. Alexandria does not and will not
+   include anaphoric constructs, loop-like binding macros, etc.
+
+ * Portable: Alexandria limits itself to portable parts of Common
+   Lisp. Even apparently conservative and usefull functions remain
+   outside the scope of Alexandria if they cannot be implemented
+   portably. Portability is here defined as portable within a
+   conforming implementation: implementation bugs are not considered
+   portability issues.
+
+Homepage:
+
+  http://common-lisp.net/project/alexandria/
+
+Mailing lists:
+
+  http://lists.common-lisp.net/mailman/listinfo/alexandria-devel
+  http://lists.common-lisp.net/mailman/listinfo/alexandria-cvs
+
+Repository:
+
+  git://common-lisp.net/projects/alexandria/alexandria.git
+
+Documentation:
+
+  http://common-lisp.net/project/alexandria/draft/alexandria.html
+
+  (To build docs locally: cd doc && make html pdf info)
+
+Patches:
+
+  Patches are always welcome! Please send them to the mailing list as
+  attachments, generated by "git format-patch -1".
+
+  Patches should include a commit message that explains what's being
+  done and /why/, and when fixing a bug or adding a feature you should
+  also include a test-case.
+
+  Be adviced though that right now new features are unlikely to be
+  accepted until 1.0 is officially out of the door.
diff --git a/contrib/alexandria_2012_08_14/alexandria-tests.asd b/contrib/alexandria_2012_08_14/alexandria-tests.asd
new file mode 100644 (file)
index 0000000..26fa207
--- /dev/null
@@ -0,0 +1,13 @@
+(defsystem alexandria-tests
+  :depends-on (:alexandria #+sbcl :sb-rt #-sbcl :rt)
+  :components ((:file "tests")))
+
+(defmethod operation-done-p
+    ((o test-op) (c (eql (find-system :alexandria-tests))))
+  nil)
+
+(defmethod perform ((o test-op) (c (eql (find-system :alexandria-tests))))
+  (flet ((run-tests (&rest args)
+           (apply (intern (string '#:run-tests) '#:alexandria-tests) args)))
+    (run-tests :compiled nil)
+    (run-tests :compiled t)))
\ No newline at end of file
diff --git a/contrib/alexandria_2012_08_14/alexandria.asd b/contrib/alexandria_2012_08_14/alexandria.asd
new file mode 100644 (file)
index 0000000..5277631
--- /dev/null
@@ -0,0 +1,67 @@
+(defsystem :alexandria
+  :version "0.0.0"
+  :licence "Public Domain / 0-clause MIT"
+  :description "Alexandria is a collection of portable public domain utilities."
+  :long-description
+  "Alexandria is a project and a library.
+
+As a project Alexandria's goal is to reduce duplication of effort and improve
+portability of Common Lisp code according to its own idiosyncratic and rather
+conservative aesthetic. What this actually means is open to debate, but each
+project member has a veto on all project activities, so a degree of
+conservativism is inevitable.
+
+As a library Alexandria is one of the means by which the project strives for
+its goals.
+
+Alexandria is a collection of portable public domain utilities that meet
+the following constraints:
+
+ * Utilities, not extensions: Alexandria will not contain conceptual
+   extensions to Common Lisp, instead limiting itself to tools and utilities
+   that fit well within the framework of standard ANSI Common Lisp.
+   Test-frameworks, system definitions, logging facilities, serialization
+   layers, etc. are all outside the scope of Alexandria as a library, though
+   well within the scope of Alexandria as a project.
+
+ * Conservative: Alexandria limits itself to what project members consider
+   conservative utilities. Alexandria does not and will not include anaphoric
+   constructs, loop-like binding macros, etc.
+
+ * Portable: Alexandria limits itself to portable parts of Common Lisp. Even
+   apparently conservative and useful functions remain outside the scope of
+   Alexandria if they cannot be implemented portably. Portability is here
+   defined as portable within a conforming implementation: implementation bugs
+   are not considered portability issues.
+
+ * Team player: Alexandria will not (initially, at least) subsume or provide
+   functionality for which good-quality special-purpose packages exist, like
+   split-sequence. Instead, third party packages such as that may be
+   \"blessed\"."
+  :components
+  ((:static-file "LICENCE")
+   (:static-file "tests.lisp")
+   (:file "package")
+   (:file "definitions" :depends-on ("package"))
+   (:file "binding" :depends-on ("package"))
+   (:file "strings" :depends-on ("package"))
+   (:file "conditions" :depends-on ("package"))
+   (:file "hash-tables" :depends-on ("package"))
+   (:file "io" :depends-on ("package" "macros" "lists" "types"))
+   (:file "macros" :depends-on ("package" "strings" "symbols"))
+   (:file "control-flow" :depends-on ("package" "definitions" "macros"))
+   (:file "symbols" :depends-on ("package"))
+   (:file "functions" :depends-on ("package" "symbols" "macros"))
+   (:file "lists" :depends-on ("package" "functions"))
+   (:file "types" :depends-on ("package" "symbols" "lists"))
+   (:file "arrays" :depends-on ("package" "types"))
+   (:file "sequences" :depends-on ("package" "lists" "types"))
+   (:file "numbers" :depends-on ("package" "sequences"))
+   (:file "features" :depends-on ("package" "control-flow"))))
+
+(defmethod operation-done-p ((o test-op) (c (eql (find-system :alexandria))))
+  nil)
+
+(defmethod perform ((o test-op) (c (eql (find-system :alexandria))))
+  (operate 'load-op :alexandria-tests)
+  (operate 'test-op :alexandria-tests))
\ No newline at end of file
diff --git a/contrib/alexandria_2012_08_14/arrays.lisp b/contrib/alexandria_2012_08_14/arrays.lisp
new file mode 100644 (file)
index 0000000..76c1879
--- /dev/null
@@ -0,0 +1,18 @@
+(in-package :alexandria)
+
+(defun copy-array (array &key (element-type (array-element-type array))
+                              (fill-pointer (and (array-has-fill-pointer-p array)
+                                                 (fill-pointer array)))
+                              (adjustable (adjustable-array-p array)))
+  "Returns an undisplaced copy of ARRAY, with same fill-pointer and
+adjustability (if any) as the original, unless overridden by the keyword
+arguments."
+ (let* ((dimensions (array-dimensions array))
+        (new-array (make-array dimensions
+                               :element-type element-type
+                               :adjustable adjustable
+                               :fill-pointer fill-pointer)))
+   (dotimes (i (array-total-size array))
+     (setf (row-major-aref new-array i)
+           (row-major-aref array i)))
+   new-array))
diff --git a/contrib/alexandria_2012_08_14/binding.lisp b/contrib/alexandria_2012_08_14/binding.lisp
new file mode 100644 (file)
index 0000000..36d92bc
--- /dev/null
@@ -0,0 +1,93 @@
+(in-package :alexandria)
+
+(defmacro if-let (bindings &body (then-form &optional else-form))
+    "Creates new variable bindings, and conditionally executes either
+THEN-FORM or ELSE-FORM. ELSE-FORM defaults to NIL.
+
+BINDINGS must be either single binding of the form:
+
+ (variable initial-form)
+
+or a list of bindings of the form:
+
+ ((variable-1 initial-form-1)
+  (variable-2 initial-form-2)
+  ...
+  (variable-n initial-form-n))
+
+All initial-forms are executed sequentially in the specified order. Then all
+the variables are bound to the corresponding values.
+
+If all variables were bound to true values, the THEN-FORM is executed with the
+bindings in effect, otherwise the ELSE-FORM is executed with the bindings in
+effect."
+    (let* ((binding-list (if (and (consp bindings) (symbolp (car bindings)))
+                             (list bindings)
+                             bindings))
+         (variables (mapcar #'car binding-list)))
+    `(let ,binding-list
+       (if (and ,@variables)
+           ,then-form
+           ,else-form))))
+
+(defmacro when-let (bindings &body forms)
+    "Creates new variable bindings, and conditionally executes FORMS.
+
+BINDINGS must be either single binding of the form:
+
+ (variable initial-form)
+
+or a list of bindings of the form:
+
+ ((variable-1 initial-form-1)
+  (variable-2 initial-form-2)
+  ...
+  (variable-n initial-form-n))
+
+All initial-forms are executed sequentially in the specified order. Then all
+the variables are bound to the corresponding values.
+
+If all variables were bound to true values, then FORMS are executed as an
+implicit PROGN."
+  (let* ((binding-list (if (and (consp bindings) (symbolp (car bindings)))
+                           (list bindings)
+                           bindings))
+         (variables (mapcar #'car binding-list)))
+    `(let ,binding-list
+       (when (and ,@variables)
+         ,@forms))))
+
+(defmacro when-let* (bindings &body forms)
+  "Creates new variable bindings, and conditionally executes FORMS.
+
+BINDINGS must be either single binding of the form:
+
+ (variable initial-form)
+
+or a list of bindings of the form:
+
+ ((variable-1 initial-form-1)
+  (variable-2 initial-form-2)
+  ...
+  (variable-n initial-form-n))
+
+Each initial-form is executed in turn, and the variable bound to the
+corresponding value. Initial-form expressions can refer to variables
+previously bound by the WHEN-LET*.
+
+Execution of WHEN-LET* stops immediately if any initial-form evaluates to NIL.
+If all initial-forms evaluate to true, then FORMS are executed as an implicit
+PROGN."
+  (let ((binding-list (if (and (consp bindings) (symbolp (car bindings)))
+                          (list bindings)
+                          bindings)))
+    (labels ((bind (bindings forms)
+               (if bindings
+                   `((let (,(car bindings))
+                       (when ,(caar bindings)
+                         ,@(bind (cdr bindings) forms))))
+                   forms)))
+      `(let (,(car binding-list))
+         (when ,(caar binding-list)
+           ,@(bind (cdr binding-list) forms))))))
+
diff --git a/contrib/alexandria_2012_08_14/conditions.lisp b/contrib/alexandria_2012_08_14/conditions.lisp
new file mode 100644 (file)
index 0000000..ac471cc
--- /dev/null
@@ -0,0 +1,91 @@
+(in-package :alexandria)
+
+(defun required-argument (&optional name)
+  "Signals an error for a missing argument of NAME. Intended for
+use as an initialization form for structure and class-slots, and
+a default value for required keyword arguments."
+  (error "Required argument ~@[~S ~]missing." name))
+
+(define-condition simple-style-warning (simple-warning style-warning)
+  ())
+
+(defun simple-style-warning (message &rest args)
+  (warn 'simple-style-warning :format-control message :format-arguments args))
+
+;; We don't specify a :report for simple-reader-error to let the
+;; underlying implementation report the line and column position for
+;; us. Unfortunately this way the message from simple-error is not
+;; displayed, unless there's special support for that in the
+;; implementation. But even then it's still inspectable from the
+;; debugger...
+(define-condition simple-reader-error
+    #-sbcl(simple-error reader-error)
+    #+sbcl(sb-int:simple-reader-error)
+  ())
+
+(defun simple-reader-error (stream message &rest args)
+  (error 'simple-reader-error
+         :stream stream
+         :format-control message
+         :format-arguments args))
+
+(define-condition simple-parse-error (simple-error parse-error)
+  ())
+
+(defun simple-parse-error (message &rest args)
+  (error 'simple-parse-error
+         :format-control message
+         :format-arguments args))
+
+(define-condition simple-program-error (simple-error program-error)
+  ())
+
+(defun simple-program-error (message &rest args)
+  (error 'simple-program-error
+         :format-control message
+         :format-arguments args))
+
+(defmacro ignore-some-conditions ((&rest conditions) &body body)
+  "Similar to CL:IGNORE-ERRORS but the (unevaluated) CONDITIONS
+list determines which specific conditions are to be ignored."
+  `(handler-case
+       (progn ,@body)
+     ,@(loop for condition in conditions collect
+             `(,condition (c) (values nil c)))))
+
+(defmacro unwind-protect-case ((&optional abort-flag) protected-form &body clauses)
+  "Like CL:UNWIND-PROTECT, but you can specify the circumstances that
+the cleanup CLAUSES are run.
+
+  clauses ::= (:NORMAL form*)* | (:ABORT form*)* | (:ALWAYS form*)*
+
+Clauses can be given in any order, and more than one clause can be
+given for each circumstance. The clauses whose denoted circumstance
+occured, are executed in the order the clauses appear.
+
+ABORT-FLAG is the name of a variable that will be bound to T in
+CLAUSES if the PROTECTED-FORM aborted preemptively, and to NIL
+otherwise.
+
+Examples:
+
+  (unwind-protect-case ()
+       (protected-form)
+     (:normal (format t \"This is only evaluated if PROTECTED-FORM executed normally.~%\"))
+     (:abort  (format t \"This is only evaluated if PROTECTED-FORM aborted preemptively.~%\"))
+     (:always (format t \"This is evaluated in either case.~%\")))
+
+  (unwind-protect-case (aborted-p)
+       (protected-form)
+     (:always (perform-cleanup-if aborted-p)))
+"
+  (check-type abort-flag (or null symbol))
+  (let ((gflag (gensym "FLAG+")))
+    `(let ((,gflag t))
+       (unwind-protect (multiple-value-prog1 ,protected-form (setf ,gflag nil))
+        (let ,(and abort-flag `((,abort-flag ,gflag)))
+          ,@(loop for (cleanup-kind . forms) in clauses
+                  collect (ecase cleanup-kind
+                            (:normal `(when (not ,gflag) ,@forms))
+                            (:abort  `(when ,gflag ,@forms))
+                            (:always `(progn ,@forms)))))))))
\ No newline at end of file
diff --git a/contrib/alexandria_2012_08_14/control-flow.lisp b/contrib/alexandria_2012_08_14/control-flow.lisp
new file mode 100644 (file)
index 0000000..f262443
--- /dev/null
@@ -0,0 +1,106 @@
+(in-package :alexandria)
+
+(defun extract-function-name (spec)
+  "Useful for macros that want to mimic the functional interface for functions
+like #'eq and 'eq."
+  (if (and (consp spec)
+           (member (first spec) '(quote function)))
+      (second spec)
+      spec))
+
+(defun generate-switch-body (whole object clauses test key &optional default)
+  (with-gensyms (value)
+    (setf test (extract-function-name test))
+    (setf key (extract-function-name key))
+    (when (and (consp default)
+               (member (first default) '(error cerror)))
+      (setf default `(,@default "No keys match in SWITCH. Testing against ~S with ~S."
+                      ,value ',test)))
+    `(let ((,value (,key ,object)))
+      (cond ,@(mapcar (lambda (clause)
+                        (if (member (first clause) '(t otherwise))
+                            (progn
+                              (when default
+                                (error "Multiple default clauses or illegal use of a default clause in ~S."
+                                       whole))
+                              (setf default `(progn ,@(rest clause)))
+                              '(()))
+                            (destructuring-bind (key-form &body forms) clause
+                              `((,test ,value ,key-form)
+                                ,@forms))))
+                      clauses)
+            (t ,default)))))
+
+(defmacro switch (&whole whole (object &key (test 'eql) (key 'identity))
+                         &body clauses)
+  "Evaluates first matching clause, returning its values, or evaluates and
+returns the values of DEFAULT if no keys match."
+  (generate-switch-body whole object clauses test key))
+
+(defmacro eswitch (&whole whole (object &key (test 'eql) (key 'identity))
+                          &body clauses)
+  "Like SWITCH, but signals an error if no key matches."
+  (generate-switch-body whole object clauses test key '(error)))
+
+(defmacro cswitch (&whole whole (object &key (test 'eql) (key 'identity))
+                          &body clauses)
+  "Like SWITCH, but signals a continuable error if no key matches."
+  (generate-switch-body whole object clauses test key '(cerror "Return NIL from CSWITCH.")))
+
+(defmacro whichever (&rest possibilities &environment env)
+  "Evaluates exactly one of POSSIBILITIES, chosen at random."
+  (setf possibilities (mapcar (lambda (p) (macroexpand p env)) possibilities))
+  (if (every (lambda (p) (constantp p)) possibilities)
+      `(svref (load-time-value (vector ,@possibilities)) (random ,(length possibilities)))
+      (labels ((expand (possibilities position random-number)
+                 (if (null (cdr possibilities))
+                     (car possibilities)
+                     (let* ((length (length possibilities))
+                            (half (truncate length 2))
+                            (second-half (nthcdr half possibilities))
+                            (first-half (butlast possibilities (- length half))))
+                       `(if (< ,random-number ,(+ position half))
+                            ,(expand first-half position random-number)
+                            ,(expand second-half (+ position half) random-number))))))
+        (with-gensyms (random-number)
+          (let ((length (length possibilities)))
+            `(let ((,random-number (random ,length)))
+               ,(expand possibilities 0 random-number)))))))
+
+(defmacro xor (&rest datums)
+  "Evaluates its arguments one at a time, from left to right. If more then one
+argument evaluates to a true value no further DATUMS are evaluated, and NIL is
+returned as both primary and secondary value. If exactly one argument
+evaluates to true, its value is returned as the primary value after all the
+arguments have been evaluated, and T is returned as the secondary value. If no
+arguments evaluate to true NIL is retuned as primary, and T as secondary
+value."
+  (with-gensyms (xor tmp true)
+    `(let (,tmp ,true)
+       (block ,xor
+         ,@(mapcar (lambda (datum)
+                     `(if (setf ,tmp ,datum)
+                          (if ,true
+                              (return-from ,xor (values nil nil))
+                              (setf ,true ,tmp))))
+                   datums)
+         (return-from ,xor (values ,true t))))))
+
+(defmacro nth-value-or (nth-value &body forms)
+  "Evaluates FORM arguments one at a time, until the NTH-VALUE returned by one
+of the forms is true. It then returns all the values returned by evaluating
+that form. If none of the forms return a true nth value, this form returns
+NIL."
+  (once-only (nth-value)
+    (with-gensyms (values)
+      `(let ((,values (multiple-value-list ,(first forms))))
+         (if (nth ,nth-value ,values)
+             (values-list ,values)
+             ,(if (rest forms)
+                  `(nth-value-or ,nth-value ,@(rest forms))
+                  nil))))))
+
+(defmacro multiple-value-prog2 (first-form second-form &body forms)
+  "Evaluates FIRST-FORM, then SECOND-FORM, and then FORMS. Yields as its value
+all the value returned by SECOND-FORM."
+  `(progn ,first-form (multiple-value-prog1 ,second-form ,@forms)))
diff --git a/contrib/alexandria_2012_08_14/definitions.lisp b/contrib/alexandria_2012_08_14/definitions.lisp
new file mode 100644 (file)
index 0000000..863e1f6
--- /dev/null
@@ -0,0 +1,37 @@
+(in-package :alexandria)
+
+(defun %reevaluate-constant (name value test)
+  (if (not (boundp name))
+      value
+      (let ((old (symbol-value name))
+            (new value))
+        (if (not (constantp name))
+            (prog1 new
+              (cerror "Try to redefine the variable as a constant."
+                      "~@<~S is an already bound non-constant variable ~
+                       whose value is ~S.~:@>" name old))
+            (if (funcall test old new)
+                old
+                (restart-case
+                    (error "~@<~S is an already defined constant whose value ~
+                              ~S is not equal to the provided initial value ~S ~
+                              under ~S.~:@>" name old new test)
+                  (ignore ()
+                    :report "Retain the current value."
+                    old)
+                  (continue ()
+                    :report "Try to redefine the constant."
+                    new)))))))
+
+(defmacro define-constant (name initial-value &key (test ''eql) documentation)
+  "Ensures that the global variable named by NAME is a constant with a value
+that is equal under TEST to the result of evaluating INITIAL-VALUE. TEST is a
+/function designator/ that defaults to EQL. If DOCUMENTATION is given, it
+becomes the documentation string of the constant.
+
+Signals an error if NAME is already a bound non-constant variable.
+
+Signals an error if NAME is already a constant variable whose value is not
+equal under TEST to result of evaluating INITIAL-VALUE."
+  `(defconstant ,name (%reevaluate-constant ',name ,initial-value ,test)
+     ,@(when documentation `(,documentation))))
diff --git a/contrib/alexandria_2012_08_14/doc/.gitignore b/contrib/alexandria_2012_08_14/doc/.gitignore
new file mode 100644 (file)
index 0000000..f22577b
--- /dev/null
@@ -0,0 +1,3 @@
+alexandria
+include
+
diff --git a/contrib/alexandria_2012_08_14/doc/Makefile b/contrib/alexandria_2012_08_14/doc/Makefile
new file mode 100644 (file)
index 0000000..85eb818
--- /dev/null
@@ -0,0 +1,28 @@
+.PHONY: clean html pdf include clean-include clean-crap info doc
+
+doc: pdf html info clean-crap
+
+clean-include:
+       rm -rf include
+
+clean-crap:
+       rm -f *.aux *.cp *.fn *.fns *.ky *.log *.pg *.toc *.tp *.tps *.vr
+
+clean: clean-include
+       rm -f  *.pdf *.html *.info
+
+include:
+       sbcl --no-userinit --eval '(require :asdf)' \
+       --eval '(let ((asdf:*central-registry* (list "../"))) (require :alexandria))' \
+       --load docstrings.lisp \
+       --eval '(sb-texinfo:generate-includes "include/" (list :alexandria) :base-package :alexandria)' \
+       --eval '(quit)'
+
+pdf: include
+       texi2pdf alexandria.texinfo
+
+html: include
+       makeinfo --html --no-split alexandria.texinfo
+
+info: include
+       makeinfo alexandria.texinfo
diff --git a/contrib/alexandria_2012_08_14/doc/alexandria.texinfo b/contrib/alexandria_2012_08_14/doc/alexandria.texinfo
new file mode 100644 (file)
index 0000000..792139c
--- /dev/null
@@ -0,0 +1,267 @@
+\input texinfo   @c -*-texinfo-*-
+@c %**start of header
+@setfilename alexandria.info
+@settitle Alexandria Manual
+@c %**end of header
+
+@settitle Alexandria Manual -- draft version
+
+@c for install-info
+@dircategory Software development
+@direntry
+* alexandria:           Common Lisp utilities.
+@end direntry
+
+@copying
+Alexandria software and associated documentation are in the public
+domain:
+
+@quotation
+  Authors dedicate this work to public domain, for the benefit of the
+  public at large and to the detriment of the authors' heirs and
+  successors. Authors intends this dedication to be an overt act of
+  relinquishment in perpetuity of all present and future rights under
+  copyright law, whether vested or contingent, in the work. Authors
+  understands that such relinquishment of all rights includes the
+  relinquishment of all rights to enforce (by lawsuit or otherwise)
+  those copyrights in the work.
+
+  Authors recognize that, once placed in the public domain, the work
+  may be freely reproduced, distributed, transmitted, used, modified,
+  built upon, or otherwise exploited by anyone for any purpose,
+  commercial or non-commercial, and in any way, including by methods
+  that have not yet been invented or conceived.
+@end quotation
+
+In those legislations where public domain dedications are not
+recognized or possible, Alexandria is distributed under the following
+terms and conditions:
+
+@quotation
+  Permission is hereby granted, free of charge, to any person
+  obtaining a copy of this software and associated documentation files
+  (the "Software"), to deal in the Software without restriction,
+  including without limitation the rights to use, copy, modify, merge,
+  publish, distribute, sublicense, and/or sell copies of the Software,
+  and to permit persons to whom the Software is furnished to do so,
+  subject to the following conditions:
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+@end quotation
+@end copying
+
+@titlepage
+
+@title Alexandria Manual
+@subtitle draft version
+
+@c The following two commands start the copyright page.
+@page
+@vskip 0pt plus 1filll
+@insertcopying
+
+@end titlepage
+
+@contents
+
+@ifnottex
+
+@include include/ifnottex.texinfo
+
+@node Top
+@comment  node-name,  next,  previous,  up
+@top Alexandria
+
+@insertcopying
+
+@menu
+* Hash Tables::                 
+* Data and Control Flow::       
+* Conses::                      
+* Sequences::                   
+* Macro Writing::               
+* Symbols::                     
+* Arrays::                      
+* Types::                       
+* Numbers::                     
+@end menu
+
+@end ifnottex
+
+@node Hash Tables
+@comment  node-name,  next,  previous,  up
+@chapter Hash Tables
+
+@include include/fun-alexandria-ensure-gethash.texinfo
+@include include/fun-alexandria-copy-hash-table.texinfo
+@include include/fun-alexandria-maphash-keys.texinfo
+@include include/fun-alexandria-maphash-values.texinfo
+@include include/fun-alexandria-hash-table-keys.texinfo
+@include include/fun-alexandria-hash-table-values.texinfo
+@include include/fun-alexandria-hash-table-alist.texinfo
+@include include/fun-alexandria-hash-table-plist.texinfo
+@include include/fun-alexandria-alist-hash-table.texinfo
+@include include/fun-alexandria-plist-hash-table.texinfo
+
+@node Data and Control Flow
+@comment  node-name,  next,  previous,  up
+@chapter Data and Control Flow
+
+@include include/macro-alexandria-define-constant.texinfo
+@include include/macro-alexandria-destructuring-case.texinfo
+@include include/macro-alexandria-ensure-functionf.texinfo
+@include include/macro-alexandria-multiple-value-prog2.texinfo
+@include include/macro-alexandria-named-lambda.texinfo
+@include include/macro-alexandria-nth-value-or.texinfo
+@include include/macro-alexandria-if-let.texinfo
+@include include/macro-alexandria-when-let.texinfo
+@include include/macro-alexandria-when-let-star.texinfo
+@include include/macro-alexandria-switch.texinfo
+@include include/macro-alexandria-cswitch.texinfo
+@include include/macro-alexandria-eswitch.texinfo
+@include include/macro-alexandria-whichever.texinfo
+@include include/macro-alexandria-xor.texinfo
+
+@include include/fun-alexandria-disjoin.texinfo
+@include include/fun-alexandria-conjoin.texinfo
+@include include/fun-alexandria-compose.texinfo
+@include include/fun-alexandria-ensure-function.texinfo
+@include include/fun-alexandria-multiple-value-compose.texinfo
+@include include/fun-alexandria-curry.texinfo
+@include include/fun-alexandria-rcurry.texinfo
+
+@node Conses
+@comment  node-name,  next,  previous,  up
+@chapter Conses
+
+@include include/type-alexandria-proper-list.texinfo
+@include include/type-alexandria-circular-list.texinfo
+
+@include include/macro-alexandria-appendf.texinfo
+@include include/macro-alexandria-nconcf.texinfo
+@include include/macro-alexandria-remove-from-plistf.texinfo
+@include include/macro-alexandria-delete-from-plistf.texinfo
+@include include/macro-alexandria-reversef.texinfo
+@include include/macro-alexandria-nreversef.texinfo
+@include include/macro-alexandria-unionf.texinfo
+@include include/macro-alexandria-nunionf.texinfo
+
+@include include/macro-alexandria-doplist.texinfo
+
+@include include/fun-alexandria-circular-list-p.texinfo
+@include include/fun-alexandria-circular-tree-p.texinfo
+@include include/fun-alexandria-proper-list-p.texinfo
+
+@include include/fun-alexandria-alist-plist.texinfo
+@include include/fun-alexandria-plist-alist.texinfo
+@include include/fun-alexandria-circular-list.texinfo
+@include include/fun-alexandria-make-circular-list.texinfo
+@include include/fun-alexandria-ensure-car.texinfo
+@include include/fun-alexandria-ensure-cons.texinfo
+@include include/fun-alexandria-ensure-list.texinfo
+@include include/fun-alexandria-flatten.texinfo
+@include include/fun-alexandria-lastcar.texinfo
+@include include/fun-alexandria-setf-lastcar.texinfo
+@include include/fun-alexandria-proper-list-length.texinfo
+@include include/fun-alexandria-mappend.texinfo
+@include include/fun-alexandria-map-product.texinfo
+@include include/fun-alexandria-remove-from-plist.texinfo
+@include include/fun-alexandria-delete-from-plist.texinfo
+@include include/fun-alexandria-set-equal.texinfo
+@include include/fun-alexandria-setp.texinfo
+
+@node Sequences
+@comment  node-name,  next,  previous,  up
+@chapter Sequences
+
+@include include/type-alexandria-proper-sequence.texinfo
+
+@include include/macro-alexandria-deletef.texinfo
+@include include/macro-alexandria-removef.texinfo
+
+@include include/fun-alexandria-rotate.texinfo
+@include include/fun-alexandria-shuffle.texinfo
+@include include/fun-alexandria-random-elt.texinfo
+@include include/fun-alexandria-emptyp.texinfo
+@include include/fun-alexandria-sequence-of-length-p.texinfo
+@include include/fun-alexandria-length-equals.texinfo
+@include include/fun-alexandria-copy-sequence.texinfo
+@include include/fun-alexandria-first-elt.texinfo
+@include include/fun-alexandria-setf-first-elt.texinfo
+@include include/fun-alexandria-last-elt.texinfo
+@include include/fun-alexandria-setf-last-elt.texinfo
+@include include/fun-alexandria-starts-with.texinfo
+@include include/fun-alexandria-starts-with-subseq.texinfo
+@include include/fun-alexandria-ends-with.texinfo
+@include include/fun-alexandria-ends-with-subseq.texinfo
+@include include/fun-alexandria-map-combinations.texinfo
+@include include/fun-alexandria-map-derangements.texinfo
+@include include/fun-alexandria-map-permutations.texinfo
+
+@node Macro Writing
+@comment  node-name,  next,  previous,  up
+@chapter Macro Writing
+
+@include include/macro-alexandria-once-only.texinfo
+@include include/macro-alexandria-with-gensyms.texinfo
+@include include/macro-alexandria-with-unique-names.texinfo
+@include include/fun-alexandria-featurep.texinfo
+@include include/fun-alexandria-parse-body.texinfo
+@include include/fun-alexandria-parse-ordinary-lambda-list.texinfo
+
+@node Symbols
+@comment  node-name,  next,  previous,  up
+@chapter Symbols
+
+@include include/fun-alexandria-ensure-symbol.texinfo
+@include include/fun-alexandria-format-symbol.texinfo
+@include include/fun-alexandria-make-keyword.texinfo
+@include include/fun-alexandria-make-gensym.texinfo
+@include include/fun-alexandria-make-gensym-list.texinfo
+@include include/fun-alexandria-symbolicate.texinfo
+
+@node Arrays
+@comment  node-name,  next,  previous,  up
+@chapter Arrays
+
+@include include/type-alexandria-array-index.texinfo
+@include include/type-alexandria-array-length.texinfo
+@include include/fun-alexandria-copy-array.texinfo
+
+@node Types
+@comment  node-name,  next,  previous,  up
+@chapter Types
+
+@include include/type-alexandria-string-designator.texinfo
+@include include/macro-alexandria-coercef.texinfo
+@include include/fun-alexandria-of-type.texinfo
+@include include/fun-alexandria-type-equals.texinfo
+
+@node Numbers
+@comment  node-name,  next,  previous,  up
+@chapter Numbers
+
+@include include/macro-alexandria-maxf.texinfo
+@include include/macro-alexandria-minf.texinfo
+
+@include include/fun-alexandria-binomial-coefficient.texinfo
+@include include/fun-alexandria-count-permutations.texinfo
+@include include/fun-alexandria-clamp.texinfo
+@include include/fun-alexandria-lerp.texinfo
+@include include/fun-alexandria-factorial.texinfo
+@include include/fun-alexandria-subfactorial.texinfo
+@include include/fun-alexandria-gaussian-random.texinfo
+@include include/fun-alexandria-iota.texinfo
+@include include/fun-alexandria-map-iota.texinfo
+@include include/fun-alexandria-mean.texinfo
+@include include/fun-alexandria-median.texinfo
+@include include/fun-alexandria-variance.texinfo
+@include include/fun-alexandria-standard-deviation.texinfo
+
+@bye
diff --git a/contrib/alexandria_2012_08_14/doc/docstrings.lisp b/contrib/alexandria_2012_08_14/doc/docstrings.lisp
new file mode 100644 (file)
index 0000000..51dda07
--- /dev/null
@@ -0,0 +1,881 @@
+;;; -*- lisp -*-
+
+;;;; A docstring extractor for the sbcl manual.  Creates
+;;;; @include-ready documentation from the docstrings of exported
+;;;; symbols of specified packages.
+
+;;;; This software is part of the SBCL software system. SBCL is in the
+;;;; public domain and is provided with absolutely no warranty. See
+;;;; the COPYING file for more information.
+;;;;
+;;;; Written by Rudi Schlatte <rudi@constantly.at>, mangled
+;;;; by Nikodemus Siivola.
+
+;;;; TODO
+;;;; * Verbatim text
+;;;; * Quotations
+;;;; * Method documentation untested
+;;;; * Method sorting, somehow
+;;;; * Index for macros & constants?
+;;;; * This is getting complicated enough that tests would be good
+;;;; * Nesting (currently only nested itemizations work)
+;;;; * doc -> internal form -> texinfo (so that non-texinfo format are also
+;;;;   easily generated)
+
+;;;; FIXME: The description below is no longer complete. This
+;;;; should possibly be turned into a contrib with proper documentation.
+
+;;;; Formatting heuristics (tweaked to format SAVE-LISP-AND-DIE sanely):
+;;;;
+;;;; Formats SYMBOL as @code{symbol}, or @var{symbol} if symbol is in
+;;;; the argument list of the defun / defmacro.
+;;;;
+;;;; Lines starting with * or - that are followed by intented lines
+;;;; are marked up with @itemize.
+;;;;
+;;;; Lines containing only a SYMBOL that are followed by indented
+;;;; lines are marked up as @table @code, with the SYMBOL as the item.
+
+(eval-when (:compile-toplevel :load-toplevel :execute)
+  (require 'sb-introspect))
+
+(defpackage :sb-texinfo
+  (:use :cl :sb-mop)
+  (:shadow #:documentation)
+  (:export #:generate-includes #:document-package)
+  (:documentation
+   "Tools to generate TexInfo documentation from docstrings."))
+
+(in-package :sb-texinfo)
+
+;;;; various specials and parameters
+
+(defvar *texinfo-output*)
+(defvar *texinfo-variables*)
+(defvar *documentation-package*)
+(defvar *base-package*)
+
+(defparameter *undocumented-packages* '(sb-pcl sb-int sb-kernel sb-sys sb-c))
+
+(defparameter *documentation-types*
+  '(compiler-macro
+    function
+    method-combination
+    setf
+    ;;structure  ; also handled by `type'
+    type
+    variable)
+  "A list of symbols accepted as second argument of `documentation'")
+
+(defparameter *character-replacements*
+  '((#\* . "star") (#\/ . "slash") (#\+ . "plus")
+    (#\< . "lt") (#\> . "gt")
+    (#\= . "equals"))
+  "Characters and their replacement names that `alphanumize' uses. If
+the replacements contain any of the chars they're supposed to replace,
+you deserve to lose.")
+
+(defparameter *characters-to-drop* '(#\\ #\` #\')
+  "Characters that should be removed by `alphanumize'.")
+
+(defparameter *texinfo-escaped-chars* "@{}"
+  "Characters that must be escaped with #\@ for Texinfo.")
+
+(defparameter *itemize-start-characters* '(#\* #\-)
+  "Characters that might start an itemization in docstrings when
+  at the start of a line.")
+
+(defparameter *symbol-characters* "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890*:-+&#'"
+  "List of characters that make up symbols in a docstring.")
+
+(defparameter *symbol-delimiters* " ,.!?;")
+
+(defparameter *ordered-documentation-kinds*
+  '(package type structure condition class macro))
+
+;;;; utilities
+
+(defun flatten (list)
+  (cond ((null list)
+         nil)
+        ((consp (car list))
+         (nconc (flatten (car list)) (flatten (cdr list))))
+        ((null (cdr list))
+         (cons (car list) nil))
+        (t
+         (cons (car list) (flatten (cdr list))))))
+
+(defun whitespacep (char)
+  (find char #(#\tab #\space #\page)))
+
+(defun setf-name-p (name)
+  (or (symbolp name)
+      (and (listp name) (= 2 (length name)) (eq (car name) 'setf))))
+
+(defgeneric specializer-name (specializer))
+
+(defmethod specializer-name ((specializer eql-specializer))
+  (list 'eql (eql-specializer-object specializer)))
+
+(defmethod specializer-name ((specializer class))
+  (class-name specializer))
+
+(defun ensure-class-precedence-list (class)
+  (unless (class-finalized-p class)
+    (finalize-inheritance class))
+  (class-precedence-list class))
+
+(defun specialized-lambda-list (method)
+  ;; courtecy of AMOP p. 61
+  (let* ((specializers (method-specializers method))
+         (lambda-list (method-lambda-list method))
+         (n-required (length specializers)))
+    (append (mapcar (lambda (arg specializer)
+                      (if  (eq specializer (find-class 't))
+                           arg
+                           `(,arg ,(specializer-name specializer))))
+                    (subseq lambda-list 0 n-required)
+                    specializers)
+           (subseq lambda-list n-required))))
+
+(defun string-lines (string)
+  "Lines in STRING as a vector."
+  (coerce (with-input-from-string (s string)
+            (loop for line = (read-line s nil nil)
+               while line collect line))
+          'vector))
+
+(defun indentation (line)
+  "Position of first non-SPACE character in LINE."
+  (position-if-not (lambda (c) (char= c #\Space)) line))
+
+(defun docstring (x doc-type)
+  (cl:documentation x doc-type))
+
+(defun flatten-to-string (list)
+  (format nil "~{~A~^-~}" (flatten list)))
+
+(defun alphanumize (original)
+  "Construct a string without characters like *`' that will f-star-ck
+up filename handling. See `*character-replacements*' and
+`*characters-to-drop*' for customization."
+  (let ((name (remove-if (lambda (x) (member x *characters-to-drop*))
+                         (if (listp original)
+                             (flatten-to-string original)
+                             (string original))))
+        (chars-to-replace (mapcar #'car *character-replacements*)))
+    (flet ((replacement-delimiter (index)
+             (cond ((or (< index 0) (>= index (length name))) "")
+                   ((alphanumericp (char name index)) "-")
+                   (t ""))))
+      (loop for index = (position-if #'(lambda (x) (member x chars-to-replace))
+                                     name)
+         while index
+         do (setf name (concatenate 'string (subseq name 0 index)
+                                    (replacement-delimiter (1- index))
+                                    (cdr (assoc (aref name index)
+                                                *character-replacements*))
+                                    (replacement-delimiter (1+ index))
+                                    (subseq name (1+ index))))))
+    name))
+
+;;;; generating various names
+
+(defgeneric name (thing)
+  (:documentation "Name for a documented thing. Names are either
+symbols or lists of symbols."))
+
+(defmethod name ((symbol symbol))
+  symbol)
+
+(defmethod name ((cons cons))
+  cons)
+
+(defmethod name ((package package))
+  (short-package-name package))
+
+(defmethod name ((method method))
+  (list
+   (generic-function-name (method-generic-function method))
+   (method-qualifiers method)
+   (specialized-lambda-list method)))
+
+;;; Node names for DOCUMENTATION instances
+
+(defgeneric name-using-kind/name (kind name doc))
+
+(defmethod name-using-kind/name (kind (name string) doc)
+  (declare (ignore kind doc))
+  name)
+
+(defmethod name-using-kind/name (kind (name symbol) doc)
+  (declare (ignore kind))
+  (format nil "~@[~A:~]~A" (short-package-name (get-package doc)) name))
+
+(defmethod name-using-kind/name (kind (name list) doc)
+  (declare (ignore kind))
+  (assert (setf-name-p name))
+  (format nil "(setf ~@[~A:~]~A)" (short-package-name (get-package doc)) (second name)))
+
+(defmethod name-using-kind/name ((kind (eql 'method)) name doc)
+  (format nil "~A~{ ~A~} ~A"
+          (name-using-kind/name nil (first name) doc)
+          (second name)
+          (third name)))
+
+(defun node-name (doc)
+  "Returns TexInfo node name as a string for a DOCUMENTATION instance."
+  (let ((kind (get-kind doc)))
+    (format nil "~:(~A~) ~(~A~)" kind (name-using-kind/name kind (get-name doc) doc))))
+
+(defun short-package-name (package)
+  (unless (eq package *base-package*)
+    (car (sort (copy-list (cons (package-name package) (package-nicknames package)))
+               #'< :key #'length))))
+
+;;; Definition titles for DOCUMENTATION instances
+
+(defgeneric title-using-kind/name (kind name doc))
+
+(defmethod title-using-kind/name (kind (name string) doc)
+  (declare (ignore kind doc))
+  name)
+
+(defmethod title-using-kind/name (kind (name symbol) doc)
+  (declare (ignore kind))
+  (format nil "~@[~A:~]~A" (short-package-name (get-package doc)) name))
+
+(defmethod title-using-kind/name (kind (name list) doc)
+  (declare (ignore kind))
+  (assert (setf-name-p name))
+  (format nil "(setf ~@[~A:~]~A)" (short-package-name (get-package doc)) (second name)))
+
+(defmethod title-using-kind/name ((kind (eql 'method)) name doc)
+  (format nil "~{~A ~}~A"
+          (second name)
+          (title-using-kind/name nil (first name) doc)))
+
+(defun title-name (doc)
+  "Returns a string to be used as name of the definition."
+  (string-downcase (title-using-kind/name (get-kind doc) (get-name doc) doc)))
+
+(defun include-pathname (doc)
+  (let* ((kind (get-kind doc))
+         (name (nstring-downcase
+                (if (eq 'package kind)
+                    (format nil "package-~A" (alphanumize (get-name doc)))
+                    (format nil "~A-~A-~A"
+                            (case (get-kind doc)
+                              ((function generic-function) "fun")
+                              (structure "struct")
+                              (variable "var")
+                              (otherwise (symbol-name (get-kind doc))))
+                            (alphanumize (let ((*base-package* nil))
+                                           (short-package-name (get-package doc))))
+                            (alphanumize (get-name doc)))))))
+    (make-pathname :name name  :type "texinfo")))
+
+;;;; documentation class and related methods
+
+(defclass documentation ()
+  ((name :initarg :name :reader get-name)
+   (kind :initarg :kind :reader get-kind)
+   (string :initarg :string :reader get-string)
+   (children :initarg :children :initform nil :reader get-children)
+   (package :initform *documentation-package* :reader get-package)))
+
+(defmethod print-object ((documentation documentation) stream)
+  (print-unreadable-object (documentation stream :type t)
+    (princ (list (get-kind documentation) (get-name documentation)) stream)))
+
+(defgeneric make-documentation (x doc-type string))
+
+(defmethod make-documentation ((x package) doc-type string)
+  (declare (ignore doc-type))
+  (make-instance 'documentation
+                 :name (name x)
+                 :kind 'package
+                 :string string))
+
+(defmethod make-documentation (x (doc-type (eql 'function)) string)
+  (declare (ignore doc-type))
+  (let* ((fdef (and (fboundp x) (fdefinition x)))
+         (name x)
+         (kind (cond ((and (symbolp x) (special-operator-p x))
+                      'special-operator)
+                     ((and (symbolp x) (macro-function x))
+                      'macro)
+                     ((typep fdef 'generic-function)
+                      (assert (or (symbolp name) (setf-name-p name)))
+                      'generic-function)
+                     (fdef
+                      (assert (or (symbolp name) (setf-name-p name)))
+                      'function)))
+         (children (when (eq kind 'generic-function)
+                     (collect-gf-documentation fdef))))
+    (make-instance 'documentation
+                   :name (name x)
+                   :string string
+                   :kind kind
+                   :children children)))
+
+(defmethod make-documentation ((x method) doc-type string)
+  (declare (ignore doc-type))
+  (make-instance 'documentation
+                 :name (name x)
+                 :kind 'method
+                 :string string))
+
+(defmethod make-documentation (x (doc-type (eql 'type)) string)
+  (make-instance 'documentation
+                 :name (name x)
+                 :string string
+                 :kind (etypecase (find-class x nil)
+                         (structure-class 'structure)
+                         (standard-class 'class)
+                         (sb-pcl::condition-class 'condition)
+                         ((or built-in-class null) 'type))))
+
+(defmethod make-documentation (x (doc-type (eql 'variable)) string)
+  (make-instance 'documentation
+                 :name (name x)
+                 :string string
+                 :kind (if (constantp x)
+                           'constant
+                           'variable)))
+
+(defmethod make-documentation (x (doc-type (eql 'setf)) string)
+  (declare (ignore doc-type))
+  (make-instance 'documentation
+                 :name (name x)
+                 :kind 'setf-expander
+                 :string string))
+
+(defmethod make-documentation (x doc-type string)
+  (make-instance 'documentation
+                 :name (name x)
+                 :kind doc-type
+                 :string string))
+
+(defun maybe-documentation (x doc-type)
+  "Returns a DOCUMENTATION instance for X and DOC-TYPE, or NIL if
+there is no corresponding docstring."
+  (let ((docstring (docstring x doc-type)))
+    (when docstring
+      (make-documentation x doc-type docstring))))
+
+(defun lambda-list (doc)
+  (case (get-kind doc)
+    ((package constant variable type structure class condition nil)
+     nil)
+    (method
+     (third (get-name doc)))
+    (t
+     ;; KLUDGE: Eugh.
+     ;;
+     ;; believe it or not, the above comment was written before CSR
+     ;; came along and obfuscated this.  (2005-07-04)
+     (when (symbolp (get-name doc))
+       (labels ((clean (x &key optional key)
+                  (typecase x
+                    (atom x)
+                    ((cons (member &optional))
+                     (cons (car x) (clean (cdr x) :optional t)))
+                    ((cons (member &key))
+                     (cons (car x) (clean (cdr x) :key t)))
+                    ((cons (member &whole &environment))
+                     ;; Skip these
+                     (clean (cdr x) :optional optional :key key))
+                    ((cons cons)
+                     (cons
+                      (cond (key (if (consp (caar x))
+                                     (caaar x)
+                                     (caar x)))
+                            (optional (caar x))
+                            (t (clean (car x))))
+                      (clean (cdr x) :key key :optional optional)))
+                    (cons
+                     (cons
+                      (cond ((or key optional) (car x))
+                            (t (clean (car x))))
+                      (clean (cdr x) :key key :optional optional))))))
+         (clean (sb-introspect:function-lambda-list (get-name doc))))))))
+
+(defun get-string-name (x)
+  (let ((name (get-name x)))
+    (cond ((symbolp name)
+           (symbol-name name))
+          ((and (consp name) (eq 'setf (car name)))
+           (symbol-name (second name)))
+          ((stringp name)
+           name)
+          (t
+           (error "Don't know which symbol to use for name ~S" name)))))
+
+(defun documentation< (x y)
+  (let ((p1 (position (get-kind x) *ordered-documentation-kinds*))
+        (p2 (position (get-kind y) *ordered-documentation-kinds*)))
+    (if (or (not (and p1 p2)) (= p1 p2))
+        (string< (get-string-name x) (get-string-name y))
+        (< p1 p2))))
+
+;;;; turning text into texinfo
+
+(defun escape-for-texinfo (string &optional downcasep)
+  "Return STRING with characters in *TEXINFO-ESCAPED-CHARS* escaped
+with #\@. Optionally downcase the result."
+  (let ((result (with-output-to-string (s)
+                  (loop for char across string
+                        when (find char *texinfo-escaped-chars*)
+                        do (write-char #\@ s)
+                        do (write-char char s)))))
+    (if downcasep (nstring-downcase result) result)))
+
+(defun empty-p (line-number lines)
+  (and (< -1 line-number (length lines))
+       (not (indentation (svref lines line-number)))))
+
+;;; line markups
+
+(defvar *not-symbols* '("ANSI" "CLHS"))
+
+(defun locate-symbols (line)
+  "Return a list of index pairs of symbol-like parts of LINE."
+  ;; This would be a good application for a regex ...
+  (let (result)
+    (flet ((grab (start end)
+             (unless (member (subseq line start end) '("ANSI" "CLHS"))
+               (push (list start end) result))))
+      (do ((begin nil)
+           (maybe-begin t)
+           (i 0 (1+ i)))
+          ((= i (length line))
+           ;; symbol at end of line
+           (when (and begin (or (> i (1+ begin))
+                                (not (member (char line begin) '(#\A #\I)))))
+             (grab begin i))
+           (nreverse result))
+        (cond
+          ((and begin (find (char line i) *symbol-delimiters*))
+           ;; symbol end; remember it if it's not "A" or "I"
+           (when (or (> i (1+ begin)) (not (member (char line begin) '(#\A #\I))))
+             (grab begin i))
+           (setf begin nil
+                 maybe-begin t))
+          ((and begin (not (find (char line i) *symbol-characters*)))
+           ;; Not a symbol: abort
+           (setf begin nil))
+          ((and maybe-begin (not begin) (find (char line i) *symbol-characters*))
+           ;; potential symbol begin at this position
+           (setf begin i
+                 maybe-begin nil))
+          ((find (char line i) *symbol-delimiters*)
+           ;; potential symbol begin after this position
+           (setf maybe-begin t))
+          (t
+           ;; Not reading a symbol, not at potential start of symbol
+           (setf maybe-begin nil)))))))
+
+(defun texinfo-line (line)
+  "Format symbols in LINE texinfo-style: either as code or as
+variables if the symbol in question is contained in symbols
+*TEXINFO-VARIABLES*."
+  (with-output-to-string (result)
+    (let ((last 0))
+      (dolist (symbol/index (locate-symbols line))
+        (write-string (subseq line last (first symbol/index)) result)
+        (let ((symbol-name (apply #'subseq line symbol/index)))
+          (format result (if (member symbol-name *texinfo-variables*
+                                     :test #'string=)
+                             "@var{~A}"
+                             "@code{~A}")
+                  (string-downcase symbol-name)))
+        (setf last (second symbol/index)))
+      (write-string (subseq line last) result))))
+
+;;; lisp sections
+
+(defun lisp-section-p (line line-number lines)
+  "Returns T if the given LINE looks like start of lisp code --
+ie. if it starts with whitespace followed by a paren or
+semicolon, and the previous line is empty"
+  (let ((offset (indentation line)))
+    (and offset
+         (plusp offset)
+         (find (find-if-not #'whitespacep line) "(;")
+         (empty-p (1- line-number) lines))))
+
+(defun collect-lisp-section (lines line-number)
+  (let ((lisp (loop for index = line-number then (1+ index)
+                    for line = (and (< index (length lines)) (svref lines index))
+                    while (indentation line)
+                    collect line)))
+    (values (length lisp) `("@lisp" ,@lisp "@end lisp"))))
+
+;;; itemized sections
+
+(defun maybe-itemize-offset (line)
+  "Return NIL or the indentation offset if LINE looks like it starts
+an item in an itemization."
+  (let* ((offset (indentation line))
+         (char (when offset (char line offset))))
+    (and offset
+         (member char *itemize-start-characters* :test #'char=)
+         (char= #\Space (find-if-not (lambda (c) (char= c char))
+                                     line :start offset))
+         offset)))
+
+(defun collect-maybe-itemized-section (lines starting-line)
+  ;; Return index of next line to be processed outside
+  (let ((this-offset (maybe-itemize-offset (svref lines starting-line)))
+        (result nil)
+        (lines-consumed 0))
+    (loop for line-number from starting-line below (length lines)
+       for line = (svref lines line-number)
+       for indentation = (indentation line)
+       for offset = (maybe-itemize-offset line)
+       do (cond
+            ((not indentation)
+             ;; empty line -- inserts paragraph.
+             (push "" result)
+             (incf lines-consumed))
+            ((and offset (> indentation this-offset))
+             ;; nested itemization -- handle recursively
+             ;; FIXME: tables in itemizations go wrong
+             (multiple-value-bind (sub-lines-consumed sub-itemization)
+                 (collect-maybe-itemized-section lines line-number)
+               (when sub-lines-consumed
+                 (incf line-number (1- sub-lines-consumed)) ; +1 on next loop
+                 (incf lines-consumed sub-lines-consumed)
+                 (setf result (nconc (nreverse sub-itemization) result)))))
+            ((and offset (= indentation this-offset))
+             ;; start of new item
+             (push (format nil "@item ~A"
+                           (texinfo-line (subseq line (1+ offset))))
+                   result)
+             (incf lines-consumed))
+            ((and (not offset) (> indentation this-offset))
+             ;; continued item from previous line
+             (push (texinfo-line line) result)
+             (incf lines-consumed))
+            (t
+             ;; end of itemization
+             (loop-finish))))
+    ;; a single-line itemization isn't.
+    (if (> (count-if (lambda (line) (> (length line) 0)) result) 1)
+        (values lines-consumed `("@itemize" ,@(reverse result) "@end itemize"))
+        nil)))
+
+;;; table sections
+
+(defun tabulation-body-p (offset line-number lines)
+  (when (< line-number (length lines))
+    (let ((offset2 (indentation (svref lines line-number))))
+      (and offset2 (< offset offset2)))))
+
+(defun tabulation-p (offset line-number lines direction)
+  (let ((step  (ecase direction
+                 (:backwards (1- line-number))
+                 (:forwards (1+ line-number)))))
+    (when (and (plusp line-number) (< line-number (length lines)))
+      (and (eql offset (indentation (svref lines line-number)))
+           (or (when (eq direction :backwards)
+                 (empty-p step lines))
+               (tabulation-p offset step lines direction)
+               (tabulation-body-p offset step lines))))))
+
+(defun maybe-table-offset (line-number lines)
+  "Return NIL or the indentation offset if LINE looks like it starts
+an item in a tabulation. Ie, if it is (1) indented, (2) preceded by an
+empty line, another tabulation label, or a tabulation body, (3) and
+followed another tabulation label or a tabulation body."
+  (let* ((line (svref lines line-number))
+         (offset (indentation line))
+         (prev (1- line-number))
+         (next (1+ line-number)))
+    (when (and offset (plusp offset))
+      (and (or (empty-p prev lines)
+               (tabulation-body-p offset prev lines)
+               (tabulation-p offset prev lines :backwards))
+           (or (tabulation-body-p offset next lines)
+               (tabulation-p offset next lines :forwards))
+           offset))))
+
+;;; FIXME: This and itemization are very similar: could they share
+;;; some code, mayhap?
+
+(defun collect-maybe-table-section (lines starting-line)
+  ;; Return index of next line to be processed outside
+  (let ((this-offset (maybe-table-offset starting-line lines))
+        (result nil)
+        (lines-consumed 0))
+    (loop for line-number from starting-line below (length lines)
+          for line = (svref lines line-number)
+          for indentation = (indentation line)
+          for offset = (maybe-table-offset line-number lines)
+          do (cond
+               ((not indentation)
+                ;; empty line -- inserts paragraph.
+                (push "" result)
+                (incf lines-consumed))
+               ((and offset (= indentation this-offset))
+                ;; start of new item, or continuation of previous item
+                (if (and result (search "@item" (car result) :test #'char=))
+                    (push (format nil "@itemx ~A" (texinfo-line line))
+                          result)
+                    (progn
+                      (push "" result)
+                      (push (format nil "@item ~A" (texinfo-line line))
+                            result)))
+                (incf lines-consumed))
+               ((> indentation this-offset)
+                ;; continued item from previous line
+                (push (texinfo-line line) result)
+                (incf lines-consumed))
+               (t
+                ;; end of itemization
+                (loop-finish))))
+     ;; a single-line table isn't.
+    (if (> (count-if (lambda (line) (> (length line) 0)) result) 1)
+        (values lines-consumed
+                `("" "@table @emph" ,@(reverse result) "@end table" ""))
+        nil)))
+
+;;; section markup
+
+(defmacro with-maybe-section (index &rest forms)
+  `(multiple-value-bind (count collected) (progn ,@forms)
+    (when count
+      (dolist (line collected)
+        (write-line line *texinfo-output*))
+      (incf ,index (1- count)))))
+
+(defun write-texinfo-string (string &optional lambda-list)
+  "Try to guess as much formatting for a raw docstring as possible."
+  (let ((*texinfo-variables* (flatten lambda-list))
+        (lines (string-lines (escape-for-texinfo string nil))))
+      (loop for line-number from 0 below (length lines)
+            for line = (svref lines line-number)
+            do (cond
+                 ((with-maybe-section line-number
+                    (and (lisp-section-p line line-number lines)
+                         (collect-lisp-section lines line-number))))
+                 ((with-maybe-section line-number
+                    (and (maybe-itemize-offset line)
+                         (collect-maybe-itemized-section lines line-number))))
+                 ((with-maybe-section line-number
+                    (and (maybe-table-offset line-number lines)
+                         (collect-maybe-table-section lines line-number))))
+                 (t
+                  (write-line (texinfo-line line) *texinfo-output*))))))
+
+;;;; texinfo formatting tools
+
+(defun hide-superclass-p (class-name super-name)
+  (let ((super-package (symbol-package super-name)))
+    (or
+     ;; KLUDGE: We assume that we don't want to advertise internal
+     ;; classes in CP-lists, unless the symbol we're documenting is
+     ;; internal as well.
+     (and (member super-package #.'(mapcar #'find-package *undocumented-packages*))
+          (not (eq super-package (symbol-package class-name))))
+     ;; KLUDGE: We don't generally want to advertise SIMPLE-ERROR or
+     ;; SIMPLE-CONDITION in the CPLs of conditions that inherit them
+     ;; simply as a matter of convenience. The assumption here is that
+     ;; the inheritance is incidental unless the name of the condition
+     ;; begins with SIMPLE-.
+     (and (member super-name '(simple-error simple-condition))
+          (let ((prefix "SIMPLE-"))
+            (mismatch prefix (string class-name) :end2 (length prefix)))
+          t ; don't return number from MISMATCH
+          ))))
+
+(defun hide-slot-p (symbol slot)
+  ;; FIXME: There is no pricipal reason to avoid the slot docs fo
+  ;; structures and conditions, but their DOCUMENTATION T doesn't
+  ;; currently work with them the way we'd like.
+  (not (and (typep (find-class symbol nil) 'standard-class)
+            (docstring slot t))))
+
+(defun texinfo-anchor (doc)
+  (format *texinfo-output* "@anchor{~A}~%" (node-name doc)))
+
+;;; KLUDGE: &AUX *PRINT-PRETTY* here means "no linebreaks please"
+(defun texinfo-begin (doc &aux *print-pretty*)
+  (let ((kind (get-kind doc)))
+    (format *texinfo-output* "@~A {~:(~A~)} ~({~A}~@[ ~{~A~^ ~}~]~)~%"
+            (case kind
+              ((package constant variable)
+               "defvr")
+              ((structure class condition type)
+               "deftp")
+              (t
+               "deffn"))
+            (map 'string (lambda (char) (if (eql char #\-) #\Space char)) (string kind))
+            (title-name doc)
+            ;; &foo would be amusingly bold in the pdf thanks to TeX/Texinfo
+            ;; interactions,so we escape the ampersand -- amusingly for TeX.
+            ;; sbcl.texinfo defines macros that expand @&key and friends to &key.
+            (mapcar (lambda (name)
+                      (if (member name lambda-list-keywords)
+                          (format nil "@~A" name)
+                          name))
+                    (lambda-list doc)))))
+
+(defun texinfo-index (doc)
+  (let ((title (title-name doc)))
+    (case (get-kind doc)
+      ((structure type class condition)
+       (format *texinfo-output* "@tindex ~A~%" title))
+      ((variable constant)
+       (format *texinfo-output* "@vindex ~A~%" title))
+      ((compiler-macro function method-combination macro generic-function)
+       (format *texinfo-output* "@findex ~A~%" title)))))
+
+(defun texinfo-inferred-body (doc)
+  (when (member (get-kind doc) '(class structure condition))
+    (let ((name (get-name doc)))
+      ;; class precedence list
+      (format *texinfo-output* "Class precedence list: @code{~(~{@lw{~A}~^, ~}~)}~%~%"
+              (remove-if (lambda (class)  (hide-superclass-p name class))
+                         (mapcar #'class-name (ensure-class-precedence-list (find-class name)))))
+      ;; slots
+      (let ((slots (remove-if (lambda (slot) (hide-slot-p name slot))
+                              (class-direct-slots (find-class name)))))
+        (when slots
+          (format *texinfo-output* "Slots:~%@itemize~%")
+          (dolist (slot slots)
+            (format *texinfo-output*
+                    "@item ~(@code{~A}~#[~:; --- ~]~
+                      ~:{~2*~@[~2:*~A~P: ~{@code{@w{~S}}~^, ~}~]~:^; ~}~)~%~%"
+                    (slot-definition-name slot)
+                    (remove
+                     nil
+                     (mapcar
+                      (lambda (name things)
+                        (if things
+                            (list name (length things) things)))
+                      '("initarg" "reader"  "writer")
+                      (list
+                       (slot-definition-initargs slot)
+                       (slot-definition-readers slot)
+                       (slot-definition-writers slot)))))
+            ;; FIXME: Would be neater to handler as children
+            (write-texinfo-string (docstring slot t)))
+          (format *texinfo-output* "@end itemize~%~%"))))))
+
+(defun texinfo-body (doc)
+  (write-texinfo-string (get-string doc)))
+
+(defun texinfo-end (doc)
+  (write-line (case (get-kind doc)
+                ((package variable constant) "@end defvr")
+                ((structure type class condition) "@end deftp")
+                (t "@end deffn"))
+              *texinfo-output*))
+
+(defun write-texinfo (doc)
+  "Writes TexInfo for a DOCUMENTATION instance to *TEXINFO-OUTPUT*."
+  (texinfo-anchor doc)
+  (texinfo-begin doc)
+  (texinfo-index doc)
+  (texinfo-inferred-body doc)
+  (texinfo-body doc)
+  (texinfo-end doc)
+  ;; FIXME: Children should be sorted one way or another
+  (mapc #'write-texinfo (get-children doc)))
+
+;;;; main logic
+
+(defun collect-gf-documentation (gf)
+  "Collects method documentation for the generic function GF"
+  (loop for method in (generic-function-methods gf)
+        for doc = (maybe-documentation method t)
+        when doc
+        collect doc))
+
+(defun collect-name-documentation (name)
+  (loop for type in *documentation-types*
+        for doc = (maybe-documentation name type)
+        when doc
+        collect doc))
+
+(defun collect-symbol-documentation (symbol)
+  "Collects all docs for a SYMBOL and (SETF SYMBOL), returns a list of
+the form DOC instances. See `*documentation-types*' for the possible
+values of doc-type."
+  (nconc (collect-name-documentation symbol)
+         (collect-name-documentation (list 'setf symbol))))
+
+(defun collect-documentation (package)
+  "Collects all documentation for all external symbols of the given
+package, as well as for the package itself."
+  (let* ((*documentation-package* (find-package package))
+         (docs nil))
+    (check-type package package)
+    (do-external-symbols (symbol package)
+      (setf docs (nconc (collect-symbol-documentation symbol) docs)))
+    (let ((doc (maybe-documentation *documentation-package* t)))
+      (when doc
+        (push doc docs)))
+    docs))
+
+(defmacro with-texinfo-file (pathname &body forms)
+  `(with-open-file (*texinfo-output* ,pathname
+                                    :direction :output
+                                    :if-does-not-exist :create
+                                    :if-exists :supersede)
+    ,@forms))
+
+(defun write-ifnottex ()
+  ;; We use @&key, etc to escape & from TeX in lambda lists -- so we need to
+  ;; define them for info as well.
+  (flet ((macro (name)
+                 (let ((string (string-downcase name)))
+                   (format *texinfo-output* "@macro ~A~%~A~%@end macro~%" string string))))
+    (macro '&allow-other-keys)
+    (macro '&optional)
+    (macro '&rest)
+    (macro '&key)
+    (macro '&body)))
+
+(defun generate-includes (directory packages &key (base-package :cl-user))
+  "Create files in `directory' containing Texinfo markup of all
+docstrings of each exported symbol in `packages'. `directory' is
+created if necessary. If you supply a namestring that doesn't end in a
+slash, you lose. The generated files are of the form
+\"<doc-type>_<packagename>_<symbol-name>.texinfo\" and can be included
+via @include statements. Texinfo syntax-significant characters are
+escaped in symbol names, but if a docstring contains invalid Texinfo
+markup, you lose."
+  (handler-bind ((warning #'muffle-warning))
+    (let ((directory (merge-pathnames (pathname directory)))
+          (*base-package* (find-package base-package)))
+      (ensure-directories-exist directory)
+      (dolist (package packages)
+        (dolist (doc (collect-documentation (find-package package)))
+          (with-texinfo-file (merge-pathnames (include-pathname doc) directory)
+            (write-texinfo doc))))
+      (with-texinfo-file (merge-pathnames "ifnottex.texinfo" directory)
+        (write-ifnottex))
+      directory)))
+
+(defun document-package (package &optional filename)
+  "Create a file containing all available documentation for the
+exported symbols of `package' in Texinfo format. If `filename' is not
+supplied, a file \"<packagename>.texinfo\" is generated.
+
+The definitions can be referenced using Texinfo statements like
+@ref{<doc-type>_<packagename>_<symbol-name>.texinfo}. Texinfo
+syntax-significant characters are escaped in symbol names, but if a
+docstring contains invalid Texinfo markup, you lose."
+  (handler-bind ((warning #'muffle-warning))
+    (let* ((package (find-package package))
+           (filename (or filename (make-pathname
+                                   :name (string-downcase (short-package-name package))
+                                   :type "texinfo")))
+           (docs (sort (collect-documentation package) #'documentation<)))
+      (with-texinfo-file filename
+        (dolist (doc docs)
+          (write-texinfo doc)))
+      filename)))
diff --git a/contrib/alexandria_2012_08_14/features.lisp b/contrib/alexandria_2012_08_14/features.lisp
new file mode 100644 (file)
index 0000000..67348db
--- /dev/null
@@ -0,0 +1,14 @@
+(in-package :alexandria)
+
+(defun featurep (feature-expression)
+  "Returns T if the argument matches the state of the *FEATURES*
+list and NIL if it does not. FEATURE-EXPRESSION can be any atom
+or list acceptable to the reader macros #+ and #-."
+  (etypecase feature-expression
+    (symbol (not (null (member feature-expression *features*))))
+    (cons (check-type (first feature-expression) symbol)
+          (eswitch ((first feature-expression) :test 'string=)
+            (:and (every #'featurep (rest feature-expression)))
+            (:or  (some #'featurep (rest feature-expression)))
+            (:not (assert (= 2 (length feature-expression)))
+                  (not (featurep (second feature-expression))))))))
diff --git a/contrib/alexandria_2012_08_14/functions.lisp b/contrib/alexandria_2012_08_14/functions.lisp
new file mode 100644 (file)
index 0000000..f703a99
--- /dev/null
@@ -0,0 +1,146 @@
+(in-package :alexandria)
+
+;;; To propagate return type and allow the compiler to eliminate the IF when
+;;; it is known if the argument is function or not.
+(declaim (inline ensure-function))
+
+(declaim (ftype (function (t) (values function &optional))
+                ensure-function))
+(defun ensure-function (function-designator)
+  "Returns the function designated by FUNCTION-DESIGNATOR:
+if FUNCTION-DESIGNATOR is a function, it is returned, otherwise
+it must be a function name and its FDEFINITION is returned."
+  (if (functionp function-designator)
+      function-designator
+      (fdefinition function-designator)))
+
+(define-modify-macro ensure-functionf/1 () ensure-function)
+
+(defmacro ensure-functionf (&rest places)
+  "Multiple-place modify macro for ENSURE-FUNCTION: ensures that each of
+PLACES contains a function."
+  `(progn ,@(mapcar (lambda (x) `(ensure-functionf/1 ,x)) places)))
+
+(defun disjoin (predicate &rest more-predicates)
+  "Returns a function that applies each of PREDICATE and MORE-PREDICATE
+functions in turn to its arguments, returning the primary value of the first
+predicate that returns true, without calling the remaining predicates.
+If none of the predicates returns true, NIL is returned."
+  (declare (optimize (speed 3) (safety 1) (debug 1)))
+  (let ((predicate (ensure-function predicate))
+       (more-predicates (mapcar #'ensure-function more-predicates)))
+    (lambda (&rest arguments)
+      (or (apply predicate arguments)
+         (some (lambda (p)
+                 (declare (type function p))
+                 (apply p arguments))
+               more-predicates)))))
+
+(defun conjoin (predicate &rest more-predicates)
+  "Returns a function that applies each of PREDICATE and MORE-PREDICATE
+functions in turn to its arguments, returning NIL if any of the predicates
+returns false, without calling the remaining predicates. If none of the
+predicates returns false, returns the primary value of the last predicate."
+  (if (null more-predicates)
+      predicate
+      (lambda (&rest arguments)
+       (and (apply predicate arguments)
+            ;; Cannot simply use CL:EVERY because we want to return the
+            ;; non-NIL value of the last predicate if all succeed.
+            (do ((tail (cdr more-predicates) (cdr tail))
+                 (head (car more-predicates) (car tail)))
+                ((not tail)
+                 (apply head arguments))
+              (unless (apply head arguments)
+                (return nil)))))))
+
+
+(defun compose (function &rest more-functions)
+  "Returns a function composed of FUNCTION and MORE-FUNCTIONS that applies its
+arguments to to each in turn, starting from the rightmost of MORE-FUNCTIONS,
+and then calling the next one with the primary value of the last."
+  (declare (optimize (speed 3) (safety 1) (debug 1)))
+  (reduce (lambda (f g)
+           (let ((f (ensure-function f))
+                 (g (ensure-function g)))
+             (lambda (&rest arguments)
+               (declare (dynamic-extent arguments))
+               (funcall f (apply g arguments)))))
+          more-functions
+          :initial-value function))
+
+(define-compiler-macro compose (function &rest more-functions)
+  (labels ((compose-1 (funs)
+             (if (cdr funs)
+                 `(funcall ,(car funs) ,(compose-1 (cdr funs)))
+                 `(apply ,(car funs) arguments))))
+    (let* ((args (cons function more-functions))
+           (funs (make-gensym-list (length args) "COMPOSE")))
+      `(let ,(loop for f in funs for arg in args
+                  collect `(,f (ensure-function ,arg)))
+         (declare (optimize (speed 3) (safety 1) (debug 1)))
+         (lambda (&rest arguments)
+           (declare (dynamic-extent arguments))
+           ,(compose-1 funs))))))
+
+(defun multiple-value-compose (function &rest more-functions)
+    "Returns a function composed of FUNCTION and MORE-FUNCTIONS that applies
+its arguments to each in turn, starting from the rightmost of
+MORE-FUNCTIONS, and then calling the next one with all the return values of
+the last."
+  (declare (optimize (speed 3) (safety 1) (debug 1)))
+  (reduce (lambda (f g)
+           (let ((f (ensure-function f))
+                 (g (ensure-function g)))
+             (lambda (&rest arguments)
+               (declare (dynamic-extent arguments))
+               (multiple-value-call f (apply g arguments)))))
+          more-functions
+          :initial-value function))
+
+(define-compiler-macro multiple-value-compose (function &rest more-functions)
+  (labels ((compose-1 (funs)
+             (if (cdr funs)
+                 `(multiple-value-call ,(car funs) ,(compose-1 (cdr funs)))
+                 `(apply ,(car funs) arguments))))
+    (let* ((args (cons function more-functions))
+           (funs (make-gensym-list (length args) "MV-COMPOSE")))
+      `(let ,(mapcar #'list funs args)
+         (declare (optimize (speed 3) (safety 1) (debug 1)))
+         (lambda (&rest arguments)
+           (declare (dynamic-extent arguments))
+           ,(compose-1 funs))))))
+
+(defun curry (function &rest arguments)
+  "Returns a function that applies ARGUMENTS and the arguments
+it is called with to FUNCTION."
+  (declare (optimize (speed 3) (safety 1) (debug 1)))
+  (let ((fn (ensure-function function)))
+    (lambda (&rest more)
+      (declare (dynamic-extent more))
+      ;; Using M-V-C we don't need to append the arguments.
+      (multiple-value-call fn (values-list arguments) (values-list more)))))
+
+(define-compiler-macro curry (function &rest arguments)
+  (let ((curries (make-gensym-list (length arguments) "CURRY"))
+        (fun (gensym "FUN")))
+    `(let ((,fun (ensure-function ,function))
+           ,@(mapcar #'list curries arguments))
+       (declare (optimize (speed 3) (safety 1) (debug 1)))
+       (lambda (&rest more)
+         (apply ,fun ,@curries more)))))
+
+(defun rcurry (function &rest arguments)
+  "Returns a function that applies the arguments it is called
+with and ARGUMENTS to FUNCTION."
+  (declare (optimize (speed 3) (safety 1) (debug 1)))
+  (let ((fn (ensure-function function)))
+    (lambda (&rest more)
+      (declare (dynamic-extent more))
+      (multiple-value-call fn (values-list more) (values-list arguments)))))
+
+(defmacro named-lambda (name lambda-list &body body)
+  "Expands into a lambda-expression within whose BODY NAME denotes the
+corresponding function."
+  `(labels ((,name ,lambda-list ,@body))
+     #',name))
\ No newline at end of file
diff --git a/contrib/alexandria_2012_08_14/hash-tables.lisp b/contrib/alexandria_2012_08_14/hash-tables.lisp
new file mode 100644 (file)
index 0000000..65253e7
--- /dev/null
@@ -0,0 +1,99 @@
+(in-package :alexandria)
+
+(defun copy-hash-table (table &key key test size
+                                   rehash-size rehash-threshold)
+  "Returns a copy of hash table TABLE, with the same keys and values
+as the TABLE. The copy has the same properties as the original, unless
+overridden by the keyword arguments.
+
+Before each of the original values is set into the new hash-table, KEY
+is invoked on the value. As KEY defaults to CL:IDENTITY, a shallow
+copy is returned by default."
+  (setf key (or key 'identity))
+  (setf test (or test (hash-table-test table)))
+  (setf size (or size (hash-table-size table)))
+  (setf rehash-size (or rehash-size (hash-table-rehash-size table)))
+  (setf rehash-threshold (or rehash-threshold (hash-table-rehash-threshold table)))
+  (let ((copy (make-hash-table :test test :size size
+                               :rehash-size rehash-size
+                               :rehash-threshold rehash-threshold)))
+    (maphash (lambda (k v)
+               (setf (gethash k copy) (funcall key v)))
+             table)
+    copy))
+
+(declaim (inline maphash-keys))
+(defun maphash-keys (function table)
+  "Like MAPHASH, but calls FUNCTION with each key in the hash table TABLE."
+  (maphash (lambda (k v)
+             (declare (ignore v))
+             (funcall function k))
+           table))
+
+(declaim (inline maphash-values))
+(defun maphash-values (function table)
+  "Like MAPHASH, but calls FUNCTION with each value in the hash table TABLE."
+  (maphash (lambda (k v)
+             (declare (ignore k))
+             (funcall function v))
+           table))
+
+(defun hash-table-keys (table)
+  "Returns a list containing the keys of hash table TABLE."
+  (let ((keys nil))
+    (maphash-keys (lambda (k)
+                    (push k keys))
+                  table)
+    keys))
+
+(defun hash-table-values (table)
+  "Returns a list containing the values of hash table TABLE."
+  (let ((values nil))
+    (maphash-values (lambda (v)
+                      (push v values))
+                    table)
+    values))
+
+(defun hash-table-alist (table)
+  "Returns an association list containing the keys and values of hash table
+TABLE."
+  (let ((alist nil))
+    (maphash (lambda (k v)
+               (push (cons k v) alist))
+             table)
+    alist))
+
+(defun hash-table-plist (table)
+  "Returns a property list containing the keys and values of hash table
+TABLE."
+  (let ((plist nil))
+    (maphash (lambda (k v)
+               (setf plist (list* k v plist)))
+             table)
+    plist))
+
+(defun alist-hash-table (alist &rest hash-table-initargs)
+  "Returns a hash table containing the keys and values of the association list
+ALIST. Hash table is initialized using the HASH-TABLE-INITARGS."
+  (let ((table (apply #'make-hash-table hash-table-initargs)))
+    (dolist (cons alist)
+      (setf (gethash (car cons) table) (cdr cons)))
+    table))
+
+(defun plist-hash-table (plist &rest hash-table-initargs)
+  "Returns a hash table containing the keys and values of the property list
+PLIST. Hash table is initialized using the HASH-TABLE-INITARGS."
+  (let ((table (apply #'make-hash-table hash-table-initargs)))
+    (do ((tail plist (cddr tail)))
+        ((not tail))
+      (setf (gethash (car tail) table) (cadr tail)))
+    table))
+
+(defmacro ensure-gethash (key hash-table &optional default)
+  "Like GETHASH, but if KEY is not found in the HASH-TABLE saves the DEFAULT
+under key before returning it. Secondary return value is true if key was
+already in the table."
+  `(multiple-value-bind (value ok) (gethash ,key ,hash-table)
+     (if ok
+         (values value ok)
+         (values (setf (gethash ,key ,hash-table) ,default) nil))))
diff --git a/contrib/alexandria_2012_08_14/io.lisp b/contrib/alexandria_2012_08_14/io.lisp
new file mode 100644 (file)
index 0000000..52551c7
--- /dev/null
@@ -0,0 +1,149 @@
+;; Copyright (c) 2002-2006, Edward Marco Baringer
+;; All rights reserved.
+
+(in-package :alexandria)
+
+(defmacro with-open-file* ((stream filespec &key direction element-type
+                                   if-exists if-does-not-exist external-format)
+                           &body body)
+  "Just like WITH-OPEN-FILE, but NIL values in the keyword arguments mean to use
+the default value specified for OPEN."
+  (once-only (direction element-type if-exists if-does-not-exist external-format)
+    `(with-open-stream
+         (,stream (apply #'open ,filespec
+                         (append
+                          (when ,direction
+                            (list :direction ,direction))
+                          (when ,element-type
+                            (list :element-type ,element-type))
+                          (when ,if-exists
+                 &