[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