Inspecting intermediate C files

Daniel Kochmański daniel at turtleware.eu
Thu Nov 26 06:16:27 UTC 2015


Hi,

I'm not sure if I miss something, but this mail seems to be sent to the
ecl-devel-owner at common-lisp.net . Correct ML address is
ecl-devel at common-lisp.net . I'm fast forwarding the mail there.

Brian Beckman writes:

> Hello --
>
> I am experimenting with ECL for actual embedded applications
> (in the sense of "embedded systems," i.e., small computers running
> disconnected controller software.
>
> The hardware team insists on inspecting the generated C code from
> the ECL compiler.  I found, in the ECL manual, directions for
> producing .o files, .a files, .fasl files, and standalone executables.
> I also found prose that says that it is possible to emit the
> actual .c and .h files.  However, I can't find instructions on how
> to emit the actual .c and .h files.

Generated code is readable, but it's a generated code after all. It's
not pretty.
>
> I can (compile-file "hello.lisp" :system-p t), but that produces
> only a .o file.  I need to see the .c and .h files.  My hardware
> team won't permit ECL-generated code until they can visually read
> and inspect the generated .c and .h files.

To prevent ECL from deleting these intermediate files you need to set
special variable c::*delete-files* to nil.

  (setf c::*delete-files* nil)

Intermediate files are *.c, *.h and *.data . The last one contains some
untranslatable expressions (rare occasion – if you work with infinities
for instance) and debugging/reflection information (like the path to the
source file).

This problem has been tacled by Earl Ducaine here:
https://github.com/earl-ducaine/stupid-ecl-tricks-1 .
>
> Can you help me figure out how to generate them?  I can't find
> the instructions in the manual.  I am starting to read the source
> code, but perhaps you can give me correct pointers into the manual
> or some other kind of instructions.

I'm now in-process of revising manual and rewriting it into texi
sources. I'll keep in mind to document this. It would be great
if you could file an issue on
gitlab.com/embeddable-common-lisp/ecl/issues (with the label
"documentation"). Thanks!

>
> Thanks!

Regards,
Daniel

-- 
Daniel Kochmański | Poznań, Poland
;; aka jackdaniel

"Be the change that you wish to see in the world." - Mahatma Gandhi



More information about the ecl-devel mailing list