Hey Morgan, could you add the reference - which blog post? And post the actual code you used? You can find sample C code here: https://github.com/earl-ducaine/stupid-ecl-tricks-1 with swank example. Also in git repository there is subdirectory examples/, although be aware that examples in directory embed/ are temporaliry broken wrt initializing ECL produced libraries[1]. Crude sample: #include <stdio.h> #include <ecl/ecl.h> int main (int argc, char **argv) { /* Initialize ECL */ cl_boot(argc, argv); cl_eval(c_string_to_object("(format t \"Hello world\")")); cl_shutdown(); return 0; } Call to cl_load should look as follows (borrowed from Earl's tricks): cl_object cl_start_swank_path = c_string_to_object("foo.lisp"); cl_object cl_load = ecl_make_symbol("LOAD","CL"); cl_funcall(2, cl_load, cl_start_swank_path); Best regards, Daniel [1] https://gitlab.com/embeddable-common-lisp/ecl/issues/177 Morgan Howe writes:
Hey guys,
I'm playing around with embedding ECL into a C program. I've followed the blog post which was very useful, but as far as calling lisp functions, didn't really get beyond the cl_safe_eval type operations. I'd like to be able to get a handle to a specific lisp function, and call that function passing some arguments. What I've tried is basically this series of steps (omitting boot, shutdown, etc for brevity):
* cl_safe_eval some code doing (load "foo.lisp") // From the blog example, works fine * ecl_make_symbol("BAR", "CL-USER") // Quite sure this is where I'm going wrong * cl_funcall the symbol from step 2, which gives me this a few times before dropping to debugger: Condition of type: SIMPLE-ERROR 0 is an illegal frs index. No restarts available.
I'm sure step 2 is where I'm going wrong and the symbol I try to retrieve is not valid, thus the issue in step 3. Sorry if this is too basic a question, but could someone give me a working example of doing something like this?
Thanks, Morgan
-- Daniel Kochmański | Poznań, Poland ;; aka jackdaniel "Be the change that you wish to see in the world." - Mahatma Gandhi