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