Skip to content
clasp Common Lisp environment
C++ Common Lisp Python C Shell Dockerfile Other
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs got mps build working again Nov 1, 2018
extensions Recurse for options Mar 25, 2019
include/clasp Merge branch 'dev' of origin Sep 25, 2019
licenses Updated license info #312 Nov 25, 2016
src Allow describe to work with cxx-objects Sep 29, 2019
tools-for-build Add primitive deftransform Sep 4, 2019
tools Add dbg_safe_println calls to lldb Jan 22, 2019
.clang-format added stuff for clang-format May 16, 2015
.dir-locals.el emacs config: disable automatic whitespace cleanup, but display faults. Feb 16, 2018
.dockerignore ensure the clasp-build run artifact can be ADDed to clasp Apr 12, 2017
.gitignore Update tools-for-build/build-waf.sh, move fetch-git-revision.sh there… Mar 27, 2018
.mailmap Add .mailmap for better git shortlog -sn Feb 8, 2016
CONTRIBUTING.md Minor fixes to the CONTRIBUTING doc. Aug 16, 2016
README.md 1) Clarify many things about building with subsystems, namely Cando. Jul 8, 2019
RELEASE-NOTES Updated README.md and RELEASE-NOTES Jun 3, 2017
build-more-systems.README 1) Clarify many things about building with subsystems, namely Cando. Jul 8, 2019
build-more-systems.sh Add two TODO items. Jul 10, 2019
docker-compose.yml changes to get docker build working Aug 9, 2018
env-default.sh 1) Clarify many things about building with subsystems, namely Cando. Jul 8, 2019
env-local_example.sh 1) Clarify many things about building with subsystems, namely Cando. Jul 8, 2019
lib.sh sync lib.sh with deploy Aug 3, 2019
makefile Allow meta-dot for clasp c++ and h files (after make TAGS) Sep 13, 2019
waf Upgraded waf to 2.0.10 Aug 16, 2018
wscript merged from origin Sep 17, 2019
wscript.config.debian10 Force build for debian 10 Sep 20, 2018
wscript.config.freebsd-example Fine-tune some FreeBSD items. Jul 31, 2018
wscript.config.osx-brew Add config file example for OSX with brew. Jul 8, 2019
wscript.config.template More fixes to set PREFIX Sep 13, 2018

README.md

Clasp — Bringing Common Lisp and C++ Together

NOTE: November 28, 2018 - This contains a pre-release of Clasp 0.9.

We have a new talk up on youtube!

Overview

Clasp is a new Common Lisp implementation that seamlessly interoperates with C++ libraries and programs using LLVM for compilation to native code. This allows Clasp to take advantage of a vast array of preexisting libraries and programs, such as out of the scientific computing ecosystem. Embedding them in a Common Lisp environment allows you to make use of rapid prototyping, incremental development, and other capabilities that make it a powerful language.

Latest Release

The upcoming release is Clasp 0.9. Changes

See the RELEASE-NOTES

Building Clasp

At the moment, Clasp is supported on Linux, Mac OS X and FreeBSD. On these systems, you should be able to build it from source.

Follow the instructions.

In case things go wrong, the quickest way to get help is to either file an issue, or to chat with us directly.

Building takes a lot of resources. In parallel mode ('USE_PARALLEL_BUILD = True' in wscript.config) you will not be able to survive with only 8 GB of RAM and it will be 1-2 hours build time. If you have 8 GB of RAM you can turn off the parallel build which will then run for a day or so. Make sure to have some paging space ("swapfile") configured.

There is a docker image for a superset of Clasp called Cando

Currently there are no binary releases available, however you can extract a working /opt/clasp tree for Debian 10 out of the docker image.

Common Lisp Ecosystem Support

Clasp supports the following major components:

Post on the issues or contact us if you're interested in changing that.

Contributing to Clasp

We very much welcome any kind of contribution to Clasp, even if it is just bug finding and testing. A lot can be done all around the project, if you want to dive into something large. See the CONTRIBUTING file for the few guidelines we've set up around contributions.

Reporting Problems

Generally you can report problems in two fashions, either by opening an issue ticket or by chatting with us directly. In both cases, though, you should have the following pieces handy in order for us to be able to help you out as quickly and painlessly as possible:

  • Your operating system name and version.
  • The branches that you're using of Clasp and Externals-Clasp.
  • A paste of the build log or failure point that you reached.
  • Patience.

IRC

Clasp has an IRC channel on Freenode called #clasp. If you have questions, problems, suggestions, or generally would like to just hang out with us devs, come and stop by!

More on Clasp

For more information on Clasp and the discussion around it, see the following sites:

Acknowledgments

Clasp was supported by:

  • The Defense Threat Reduction Agency (DOD-DTRA) (HDTRA1-09-1-0009)
  • The National Institutes of Health (NIH/NIGMS Grant number: 2R01GM067866-07A2)
  • The National Science Foundation (Grant number: 1300231)
You can’t perform that action at this time.