[Ecls-list] How to optimize compiler's output?

mokehehe at gmail.com mokehehe at gmail.com
Thu Mar 6 22:41:50 UTC 2008


Hello, I read new manual,

| 4.4. Use of Declarations to Improve Efficiency
| http://ecls.sourceforge.net/new-manual/ch23s04.html

I tried it, but it lack right paren? I put it after 'proclaim'.

> (eval-when (compile)
>   (proclaim '(function tak (fixnum fixnum fixnum) fixnum)))
>
> (defun tak (x y z)
>   (declare (fixnum x y z))
>   (if (not (< y x))
>       z
>     (tak (tak (1- x) y z)
>          (tak (1- y) z x)
>          (tak (1- z) x y))))

I compile it, but I couldn't get optimized output.
When I compile this source file, warning message is appeared:

| > (compile-file "tak.l" :system-p t :c-file "tak.c")
| ;;; Compiling tak.l.;;; Warning: The variable name (FIXNUM FIXNUM
FIXNUM) is not a symbol.

How do I proclaim function's argument and return value type, and
optimized compiler's output?

I use ecl-0.9j, and compile on msvc, Windows XP.
Thanks.

-- 
mokehehe




More information about the ecl-devel mailing list