[Ecls-list] compile problem binding special variables in a lambda list

Chris Baker electro at 1939worldsfair.com
Fri Nov 15 10:58:05 UTC 2002

Hi everyone,

I just started looking at ecl, so please bear with me :)

I have in test.lsp:

		(defun test (&optional (*standard-input* *standard-input*))

In ecl:

		$ ecl
		ECL (Embeddable Common-Lisp) 0.7b
		Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
		Copyright (C) 1993 Giuseppe Attardi
		Copyright (C) 2000 Juan J. Garcia-Ripoll
			ECL is free software, and you are welcome to redistribute it
		under certain conditions; see file 'Copyright' for details.
		Type :h for Help.  Top level.
		> (compile-file "/tmp/test.lsp")
		;;; This system does not support loading dynamically linked libraries.
		;;; Therefore, COMPILE-FILE without :SYSTEM-P T is unsupported.
		;;; Compiling /tmp/test.lsp.
		;;; Compiling (DEFUN TEST ...).
		;;; End of Pass 1.  
		;;; Emitting code for TEST.
		;;; Calling the C compiler... 
		"gcc -g -O2 -Dcygwin  -O -I/usr/local/lib/ecl//h -w -c /tmp/test.c -o /tmp/test.o"/tmp/test.c: In function `L1':
		/tmp/test.c:12: parse error before `;'
		(SYSTEM "gcc -g -O2 -Dcygwin  -O -I/usr/local/lib/ecl//h -w -c /tmp/test.c -o /tmp/test.o") returned non-zero value 1
		Broken at COMPILE-FILE.

Here are the contents of test.c:

		#include <ecl-cmp.h>
		#include "/tmp/test.h"
		/*	function definition for TEST                                  */
		static cl_object L1(int narg, ...)
			cl_object value0;
			{int i=0;
			cl_va_list args; cl_va_start(args,narg,narg,0);
			if (i==narg) goto L1;
			bds_bind(((cl_object)(cl_symbols+49)),cl_va_arg(args););/*  *STANDARD-INPUT**/
			goto L2;
			bds_push(((cl_object)(cl_symbols+49)));   /*  *STANDARD-INPUT**/
			value0=Cnil; NValues=1;
			return value0;

This is under cygwin, but I've reproduced it in linux as well.

Thanks for any and all help,

Chris Baker

 10:45:57 up 24 days, 12:28,  2 users,  load average: 0.33, 0.34, 0.20

More information about the ecl-devel mailing list