[Ecls-list] Building CLX on i386?

Prut Flut prutflut at m-net.arbornet.org
Sun Mar 14 23:50:01 UTC 2004


Hello,

I tried to build CLX on i386 with ecl but ran into a couple
of problems:
a. there was no clx/ directory in the build/ directory
   (I had configured with --with-x)
b. the defsystem-like facility did not work for me: it does
   not produce any *.o files, so that the build aborts with
   an error message #P".../package.o" not a valid path name
c. in depdefs.lsp, the macro defCinline is not found unless
   it is prefixed by ``ffi::'' (perhaps one colon would be
   ebough).  Also, these functions are quite low-level and
   the cl_object strucure seems to have changed.
d. several (declare (type (function ...))) stopped the build,
   complaining ``undefined function si::find-registered-tag''.
   This function is defined in predlib.lsp, but when I load
   it prior to building, ECL dumps core.

What I did to go further:
a. I copied the src/clx/ directory to build/ and worked in
   the resulting build/clx/
b. I compiled and loaded by hand the files in the same order
   as they are listed in defsys.lsp.in (this looks like this:
   > :cf package
   ...
   > :ld package
   > :cf depdefs
   ...
   > :ld depdefs
   and so on.
c. I added the ffi:: where necessary.  I have also changed
   things like ``(#1)->ust.ust_self'' and ``(#1)->st.st_self''
   to ``(#1)->string.self''
d. I commented out the declaration, as I am willing to take
   the speed hit, to see if it runs.

Result:
I was able to compile and load everything, but demo/hello.lsp
fails.  I fear that this may be partly because of my setup and
that the necessary permissions are not present in my X server.

Questions:
a. when trying to call xlib:open-display, I get an error that
   si::write-bytes does not exist.  I found only an error message
   in file.d (si_do_write_sequence) containing the text
   ``write-bytes'', so I replaced write-bytes with write-sequence.
   It did not help.  What was I supposed to do?
b. What is special with how CLX interacts with X that I have to
   keep in mind?
c. should I rather spend my effort on getting clocc (open code
   collection) going with ecl (at the moment, it fails because
   (setf (values ...) (values ...)) is not allowed, dixit error
   message)?  clocc contains CLX sources.
d. Has someone managed to compile and use CLX on i386
   (with ecl-0.9d) and is willing to share his experience?

Thanks for your patience through this long post

Philippe




More information about the ecl-devel mailing list