On New IDEs

There has been some brouhaha about the state of Common Lisp IDEs, and a few notable reactions to that, so I’m adding my two Euro cents to the conversation. What is a community ? It’s a common mistake to refer to some people doing a certain thing as a “community”, and it’s easy to imagine ridiculous examples: the community of suburban lawn-mowing dwellers, the community of wearers of green jackets, the community of programmers-at-large etc…

Read more...

Native TravisCI Support for Common Lisp

Being used to Continuous Integration at work, I wanted to use it for my Lisp projects too. Looking around, the choice was pretty easy: TravisCI is a very nice platform developed by a company in Berlin, which offers free testing for open-source projects hosted at Github. I saw that Luís Oliveira preceded me, so I followed the instructions at cl-travis and created a .travis.yml for all my libraries. Cl-travis contains a script that is run in the setup phase of the test and relies on CIM to provide a wrapper for common command line parameters of Lisp compilers.

Read more...

Controlling compiler-macro expansion

One of my projects, static-vectors, makes extensive use of compiler macros which I need to test in addition to the main function definition. As far as I know, there’s no standard way to inhibit or force compiler-macro expansion and mucking with INLINE, NOTINLINE and SPEED declarations may or may not work, so are there implementation-specific ways to achieve that ? I could cleverly use (FUNCALL (COMPILER-MACRO-FUNCTION …)) to test the compiler macro, but in testing the main function there’s no guarantee that a compiler won’t use the compiler-macro in a (FUNCALL #‘FUNCTION) or (FUNCALL (FDEFINITION ‘FUNCTION).

Read more...

IOLib@ILC2012 slides

I’m at ECLM in Madrid and I realized that I didn’t publish the slides from the IOLib talk at ILC 2012, so here they are.

The why of version.lisp-expr

In all projects I manage, instead of including the version string verbatim in .asd files, I relegate it to an external file named version.lisp-expr which I then include in all .asd files, typically at least two: 1;; foo.asd 2 3(asdf:defsystem :foo 4 :version #.(with-open-file (f (merge-pathnames "version.lisp-expr" 5 (or *compile-file-pathname* 6 *load-truename*))) 7 (read f)) 8...) 9 10;; and version.lisp-expr 11 12;; -*- lisp -*- 13"0.0.1" Q: Why this approach ?

Read more...

Today's round of releases

I just released Split-sequence 1.1, Parse-number 1.3, FiveAM 1.0, Static-Vectors 1.4 and Bordeaux-Threads 0.8.2 If you can’t wait until the next Quicklisp update, download them and let me know if you encounter any issues

The Future of Fiveam

FiveAM is my favorite and one of the best testing frameworks for Common Lisp; it has gone undeveloped for the past 3 years but now its author, Marco Baringer, has kindly accepted to let me take over the project and continue its development. I created a new project for it on common-lisp.net with its own mailing list, converted the sources to git and put them on github. I’ll slowly integrate the various forks and patches I found around so if you have feature requests or you’re just interested join fiveam-devel.

Read more...
1 of 1