Daniel Kochmański | 23 Apr 10:18 2016

[website][new look]

Dear all,

I've updated the website. It's now powered by coleslaw, has an RSS feed
and it's easier to post news. Please let me know what do you think about
it :-)


Best regards,

PS. Sorry for doubleposting, my email configuration was messed up (not
sure if the first post reached the ml).


Daniel Kochmański ;; aka jackdaniel | Poznań, Poland
TurtleWare - Daniel Kochmański      | www.turtleware.eu

"Be the change that you wish to see in the world." - Mahatma Gandhi

Enrique Gabriel Baquela | 15 Apr 16:38 2016

Problem installing ECL from sources in Fedora

Hi. I'm trying to install ECL 16.1.2 from source in Linux Fedora. I follow the steps indicated in https://common-lisp.net/project/ecl/manual/pr01s06.html :

gunzip -c ecl-16.1.2.tgz | tar xf -
$ cd ecl-16.1.2 $ ./configure --prefix=/usr/local
$ make
But the following error is generated:

cd /home/Descargas/ecl-16.1.2/src/../.git && ctags -o tags -R --langmap=c:+.d ../src || true
/bin/sh: línea 0: cd: /home/Descargas/ecl-16.1.2/src/../.git: No existe el fichero o el directorio
if test "xetags" != "x"; then \
srcfiles=`find /home/Descargas/ecl-16.1.2/src/c /home/Descargas/ecl-16.1.2/src/h -name '*.[chd]'` && \
etags --language=c    -o TAGS $srcfiles && \
etags --language=none -o TAGS --append \
      --regex='/ <at> \([-:*a-zA-z]+\)/\1/' \
      --regex='/ <at> (defun \([-:*a-zA-z]+\)/\1/' \
      $srcfiles; \
touch TAGS

Note: No existe el fichero o el directorio = The file or directory doesn't exist.

Can anybody help me?

Faré | 13 Apr 04:12 2016

segfault while testing lil

lil passes all tests for me on sbcl, ccl, allegro, clisp, but on ecl I get:

Detected access to an invalid or protected memory address.

Which precise test causes the segfault varies at each try.

To reproduce:

rlwrap ecl -eval "'(#.(require \"asdf\")#.(asdf:test-system :lil))"

:b shows failure either in
or in

and probably at slightly different places therein.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
For followers of most ideologies (openly religious or not), toleration is
a concession of defeat. For libertarians, it is victory itself.

Tomas Hlavaty | 7 Apr 23:36 2016

error: 'aux_closure' undeclared (first use in this function)


I was curious how far would ecl get when compiling sbcl and found that
ecl seems to struggle with compiling local functions (error log bellow).

The problem is that the huge function parse-lambda-list being compiled
has a flet (scan-opt/key) inside, which is compiled into a separate C
function which does not see the other stuff, namely "volatile struct
ecl_cclosure aux_closure;" is missing in the separate C function for
flet scan-opt/key.

I could not find a reduced testcase but I guess this is a bug in the ecl



;;; Compiling src/compiler/parse-lambda-list.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;; Compiling (DEFUN LL-KWDS-RESTP ...).
;;; Compiling (DEFUN LL-KWDS-KEYP ...).
;;; Compiling (DEFUN LL-KWDS-ALLOWP ...).
;;; Compiling (DEFUN PARSE-LAMBDA-LIST ...).
;;; Compiling (DEFUN PARSE-DS-LAMBDA-LIST ...).
;;; Compiling (DEFUN PARSE-KEY-ARG-SPEC ...).
;;; Compiling (DEFUN MAKE-LAMBDA-LIST ...).
;;; Compiling (DEFUN DS-LAMBDA-LIST-MATCH-P ...).
;;; Compiling (DEFUN EMIT-DS-BIND-CHECK ...).
;;; Compiling (DEFUN EXPAND-DS-BIND ...).
;;; Compiling (DEFUN COMPILER-MACRO-ARGS ...).
;;; Compiling (DEFUN GET-DS-BIND-CONTEXT ...).
;;; Compiling (DEFUN DS-BIND-ERROR ...).
;;; Compiling (DEFUN CHECK-DS-BIND-KEYS ...).
;;; Compiling (DEFUN CHECK-DS-LIST ...).
;;; Compiling (DEFUN CHECK-DS-LIST/&REST ...).
;;; Compiling (DEFUN CHECK-DS-LIST/&KEY ...).
;;; Compiling (DEFUN CMACRO-CHECK-DS-LIST/&KEY ...).
;;; Compiling (DEFUN DS-GETF ...).
;;; Compiling (DEF!MACRO NAMED-DS-BIND ...).
;;; Compiling (DEFUN MAKE-MACRO-LAMBDA ...).
;;; Compiling (DEFUN STRIP-LAMBDA-LIST ...).
;;; End of Pass 1.
;;; Emitting code for LAMBDA-LIST-KEYWORD-MASK.
;;; Emitting code for LL-KWDS-RESTP.
;;; Emitting code for LL-KWDS-KEYP.
;;; Emitting code for LL-KWDS-ALLOWP.
;;; Emitting code for PARSE-LAMBDA-LIST.
;;; Emitting code for CROAK.
;;; Emitting code for DEFAULTP.
;;; Emitting code for NEED-BINDABLE.
;;; Emitting code for NEED-SYMBOL.
;;; Emitting code for NEED-ARG.
;;; Emitting code for REPORT-SUSPICIOUS.
;;; Emitting code for CHECK-SUSPICIOUS.
;;; Emitting code for PROBABLY-LL-KEYWORD-P.
;;; Emitting code for DESTRUCTURING-P.
;;; Emitting code for SCAN-OPT/KEY.
;;; Emitting code for PARSE-DS-LAMBDA-LIST.
;;; Emitting code for PARSE*.
;;; Emitting code for PARSE.
;;; Emitting code for #:G116.
;;; Emitting code for #:G117.
;;; Emitting code for WITH-DS-LAMBDA-LIST-PARTS.
;;; Emitting code for PARSE-OPTIONAL-ARG-SPEC.
;;; Emitting code for PARSE-KEY-ARG-SPEC.
;;; Emitting code for RECURSE.
;;; Emitting code for PROCESS-OPT/KEY.
;;; Emitting code for #:G175.
;;; Emitting code for MAKE-LAMBDA-LIST.
;;; Emitting code for UNPARSE-DS-LAMBDA-LIST.
;;; Emitting code for MEMOIZE.
;;; Emitting code for RECURSE.
;;; Emitting code for MAYBE-DEFAULT.
;;; Emitting code for PROCESS-OPT.
;;; Emitting code for #:G230.
;;; Emitting code for DS-LAMBDA-LIST-VARIABLES.
;;; Emitting code for SCAN.
;;; Emitting code for SUPPLIEDP-VAR.
;;; Emitting code for COPY.
;;; Emitting code for RECURSE.
;;; Emitting code for DS-LAMBDA-LIST-MATCH-P.
;;; Emitting code for RECURSE.
;;; Emitting code for DS-LAMBDA-LIST-MATCHER.
;;; Emitting code for EMIT-DS-LAMBDA-LIST-MATCH.
;;; Emitting code for EMIT-DS-BIND-CHECK.
;;; Emitting code for EXPAND-DS-BIND.
;;; Emitting code for DESCEND.
;;; Emitting code for GEN-TEST.
;;; Emitting code for BIND-IF.
;;; Emitting code for BIND-PAT.
;;; Emitting code for CAST/POP.
;;; Emitting code for COMPILER-MACRO-ARGS.
;;; Emitting code for GET-DS-BIND-CONTEXT.
;;; Emitting code for DS-BIND-ERROR.
;;; Emitting code for CHECK-DS-BIND-KEYS.
;;; Emitting code for CHECK-DS-LIST.
;;; Emitting code for CHECK-DS-LIST/&REST.
;;; Emitting code for CHECK-DS-LIST/&KEY.
;;; Emitting code for CMACRO-CHECK-DS-LIST/&KEY.
;;; Emitting code for DS-GETF.
;;; Emitting code for NAMED-DS-BIND.
;;; Emitting code for MAKE-MACRO-LAMBDA.
;;; Emitting code for #:G485.
;;; Emitting code for STRIP-LAMBDA-LIST.
;;; Emitting code for #:G489.
;;; Emitting code for #:G509.
In file included from /nix/store/4ha569nsijgnp7ywq89prpn6643h132m-ecl-16.1.2/include/ecl/ecl.h:84:0,
                 from /nix/store/4ha569nsijgnp7ywq89prpn6643h132m-ecl-16.1.2/include/ecl/ecl-cmp.h:29,
                 from obj/from-host/src/compiler/parse-lambda-list.c:5:
obj/from-host/src/compiler/parse-lambda-list.c: In function 'LC14scan_opt_key':
obj/from-host/src/compiler/parse-lambda-list.c:1222:15: error: 'aux_closure' undeclared (first
use in this function)
v5arg, v2what_kind)))) { goto L8; }
/nix/store/4ha569nsijgnp7ywq89prpn6643h132m-ecl-16.1.2/include/ecl/cons.h:27:27: note: in
definition of macro 'Null'
 #define Null(x)         ((x)==ECL_NIL)
obj/from-host/src/compiler/parse-lambda-list.c:1222:15: note: each undeclared identifier is
reported only once for each function it appears in
v5arg, v2what_kind)))) { goto L8; }
/nix/store/4ha569nsijgnp7ywq89prpn6643h132m-ecl-16.1.2/include/ecl/cons.h:27:27: note: in
definition of macro 'Null'
 #define Null(x)         ((x)==ECL_NIL)
obj/from-host/src/compiler/parse-lambda-list.c:1222:31: error: 'env0' undeclared (first use in
this function)
v5arg, v2what_kind)))) { goto L8; }
/nix/store/4ha569nsijgnp7ywq89prpn6643h132m-ecl-16.1.2/include/ecl/cons.h:27:27: note: in
definition of macro 'Null'
 #define Null(x)         ((x)==ECL_NIL)
;;; Internal error:
;;;   ** Error code 1 when executing
;;; (RUN-PROGRAM "gcc" ("-I."
"-I/nix/store/nnjvmplfmzpc22ls4p9h4c7c61rppzc5-libffi-3.2.1/include" "-D_GNU_SOURCE" ...))
Condition of type: SIMPLE-ERROR
couldn't compile "src/compiler/parse-lambda-list.lisp"

Available restarts:

1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.

(Position #1305)

Didier Verna | 6 Apr 14:20 2016

[CFPart] ELS'16, 9th European Lisp Symposium, May 9-10, Kraków, Poland

		 ELS'16 - 9th European Lisp Symposium

		    Department of Computer Science
	       AGH University of Science and Technology
			    Kraków, Poland

			    May 9-10, 2016

		   In cooperation with: ACM SIGPLAN

	  Sponsored by EPITA, Franz Inc., LispWorks Ltd., IdEx
		 and Dept. of Computer Science AGH UST


Recent news:

- Full programme now available online
- Registration now open (early registration deadline: April 25)

The purpose of the European Lisp Symposium is to provide a forum for
the discussion and dissemination of all aspects of design,
implementation and application of any of the Lisp and Lisp-inspired
dialects, including Common Lisp, Scheme, Emacs Lisp, AutoLisp, ISLISP,
Dylan, Clojure, ACL2, ECMAScript, Racket, SKILL, Hop and so on. We
encourage everyone interested in Lisp to participate.

Keynote speakers:

- Pierre Castéran -- Program Proving with Coq
- Stephan Karpinski -- Julia: to Lisp or Not to Lisp?
- Francis Sergeraert -- Lexical Closures and Complexity

Important dates:

-   25 Apr 2016 Early registration deadline
- 9-10 May 2016 Symposium

Programme chair:
  Irène Durand, LaBRI, University of Bordeaux, France

Local chair:
  Michał Psota, Emergent Network Defense, Kraków, Poland

Programme committee:
  Antonio Leitao — INESC-ID / Instituto Superior Técnico, Universidade
    de Lisboa, Portugal
  Charlotte Heerzel — IMEC, Leuven, Belgium
  Christian Queinnec — University Pierre et Marie Curie, Paris 6, France
  Christophe Rhodes — Goldsmiths, University of London, United Kingdom
  Didier Verna  — EPITA Research and Development Laboratory, France
  Erick Gallesio — University of Nice-Sophia Antipolis, France
  François-René Rideau, Google, USA
  Giuseppe Attardi — University of Pisa, Italy
  Kent Pitman, HyperMeta Inc., USA
  Leonie Dreschler-Fischer — University of Hamburg, Germany
  Pascal Costanza — Intel Corporation, Belgium
  Robert Strandh — University of Bordeaux, France

Search Keywords:

#els2016, ELS 2016, ELS '16, European Lisp Symposium 2016,
European Lisp Symposium '16, 9th ELS, 9th European Lisp Symposium,
European Lisp Conference 2016, European Lisp Conference '16


Resistance is futile. You will be jazzimilated.

Lisp, Jazz, Aïkido: http://www.didierverna.info

Alexander Artemenko | 3 Apr 00:43 2016

Compiled program complaints on absent UIOP/OS and UIOP/PATHNAME


I have created a command line program:

I've tried to build it with sbcl and it worked fine.
But when I compiled it with ECL, I found
that right after running, it outputs following error:

Condition of type: SIMPLE-ERROR
The packages
  ((UIOP/OS . #<UIOP/OS package>) (UIOP/PATHNAME . #<UIOP/PATHNAME package>))
were referenced in compiled file
but have not been created
Available restarts:

1. (IGNORE) Ignore the error, and try the operation again

Top level in: #<process TOP-LEVEL>.

Tried ECL 16.1.4 on Ubuntu and ECL 16.0.0 on OSX.

What is the reason of this error, and how to fix it?

Alexander Artemenko (a.k.a. Svetlyak 40wt)
Blog: http://dev.svetlyak.ru
Photos: http://svetlyak.ru
Jabber: svetlyak.40wt-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Fabrizio Fabbri | 31 Mar 17:15 2016

Native thread

Hi all,

quick question.


I’ve got my embedded ecl on a multi thread windows service.


Before doing anything I call cl_boot.


Then multiple request coming in served by different thread.


At this point I call ecl_import_current_thread and the evaluate some lisp code with cl_safe_eval with Cnil as environment.

After I call ecl_release_current_thread.


Please note that those are native thread not created with gc wrapper.


Are those evaluation happen in different lisp processes?


Kindest regards




Andreas Thiele | 25 Mar 09:24 2016

ECL on very small chips?



can I use ECL to write software for a chip without OS?


In my case I’d like to write software for NXP1769 which is ARM Cortex M3, 64kB Ram, 512kB Flash.





Robert P. Goldman | 23 Mar 21:40 2016

ASDF 3.1.7 has been released

ASDF 3.1.7 is a bugfix release, enhancing the 3.1.x ASDF series.  To the
best of our knowledge, it only fixes bugs, and should thus be a low-risk
upgrade for inclusion in implementations.

Thanks, as ever, to Faré for many fixes, and to other bug reporters and

See the Changelog (below) for a summary of changes.

  Bug fix and portability release:
  * Fix compilation on Genera.
  * Fix UIOP:FILE-EXISTS-P for dotfiles on CCL.
  * Fix infinite loop in source registry configuration that can occur
when there are cycles in the filesystem (typically caused by symlinks)
on some CL implementations.
  * Miscellaneous bug fixes.
  * Documentation improvements.
  * Restore original Makefile.

 -- Robert P. Goldman <rpgoldman@...>  Wed, 23 Mar 2016 09:34:14 -0500

Helmut Jarausch | 9 Mar 16:35 2016

EclAndroid-0.0.1 on Android 6.0 ?

Has anybody tried EclAndroid-0.0.1 on Android 6.0 ?
Here on my Galaxy S5 with rooted Android 6.01 it crashes during start  

Many thanks for some info,

Juraj Variny | 8 Mar 22:04 2016

Some thread/GC questions


can you please tell me how to:

1. Initialize lisp environment in a thread that was already created by C/C++ 
app? Is it possible for it to share existing lisp environment?

2. Is accessing and modification of the shared lisp environment from a new 
thread made by (mp:process-run-function) threadsafe? For example I am running 
swank this way, is this a safe practice?

3. In the environment where only ECL is garbage collected: Calling 
ecl_base_string_pointer_safe(si_copy_to_simple_base_string(obj)) means that 
resulting C string will be eventually garbage collected?

4. Likewise (ffi:c-inline () () :cstring "...") returns the value via 
ecl_cstring_to_base_string_or_nil() which causes trouble when C side 
deallocates it, I presume?