[Ecls-list] Return values sometimes missing on REPL

Erik Winkels aerique at xs4all.nl
Tue Jun 1 12:23:31 UTC 2010

I'm starting a REPL by doing this in C++:

    cl_object obj = ecl_read_from_cstring("si:top-level");
    cl_funcall(1, obj);

Now when calling functions that have been created with ecl_def_c_function
I almost never get the return value back at the REPL, but they are set
when I call the same function with setf or defparameter.  Like so:

    ECL (Embeddable Common-Lisp) 10.4.1
    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 in: #<process SI:TOP-LEVEL 09f32fc0>.
    OGRE[1]> (get-actual-height *viewport*)
    OGRE[2]> (defparameter height (get-actual-height *viewport*))
    OGRE[3]> height
    OGRE[4]> (camera-get-position *camera*)
    #(100.0 100.0 100.0)

As you can see, the last form did return a value.  That one returns a
cl_object created with cl_vector(...).  All the others are generally
created with ecl_make_... function or are just plain Ct or Cnil.  Could
that be the issue?

It would make REPL life a little easier if all of them returned values
at the REPL.  Any ideas?

More information about the ecl-devel mailing list