Hi Marten,

unfortunately I know nothing of Smalltalk, but maybe I can help you with the C mistakes. Compare this

On Fri, Aug 5, 2011 at 1:43 PM, Marten Feldtmann <itlists@schrievkrom.de> wrote:
        form = c_string_to_object("(+ 1 1)");
        result = si_safe_eval(3, form, Cnil, g_eclEvalErrorSymbol);

and this
 
result = si_safe_eval(3, ecl_make_simple_base_string("(+ 1 1)",-1), Cnil, OBJNULL);

In the first case you first convert a string to a Lisp object (a list '(+ 1 1) in Common Lisp notation) and then this list is evaluated to give a number. In the second case you are evaluating a string (as in (eval "(+ 1 1)")) and thus the output is a string

* where is the cl_object definition located .... seems to be strange for you,
  but I was not able to find the location of the definition

cl_object is a pointer to a union. it is defined in object.h
 
* when trying to create ecl under Windows - my anti virus software named
  antivir complains, that the newly created dpp.exe has a virus. Therefore
  I have to turn off the antivirus software, create the stuff and then
  turn it on again.

Sorry, but this is not our fault, but your C compiler's.

Juanjo

--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com