[xcvb-devel] Installation problem

szergling senatorzergling at gmail.com
Mon Aug 24 11:58:53 UTC 2009


On Sat, Aug 15, 2009 at 8:16 AM, Faré<fahree at gmail.com> wrote:
> Dear Senator Zergling,
>
> 2009/8/14 szergling <senatorzergling at gmail.com>:

Hi Faré,

Sorry for the long delay -- I'm only hacking on this whenever I find
time and motivation etc...

It looks like I've fallen into the cracks here, so I'm not sure if any
changes would be required to xcvb to support my configuration/setup,
so take the following steps or hacks as just something to be aware
of. So in spite of the long rambling email (as I tend to do), I only
have one question about the issue with make-makefile.

> I assume you chose that install directory. Then don't forget to include
> /home/tyc20/hda/code/lisp/libs/xcvb-0.349-install/bin
> in your PATH afterwards so you will be able to call xcvb and cl-launch.
>
>> Either I've done something real dumb, or there's a bug somewhere...
> There was a bug in my packaging code indeed. It should be fixed, as
> I've managed to install-using-asdf on one of my machines. Note that if
> you are using either sbcl or clisp, I recommend to install using the
> bootstrapped xcvb files.

Well the bootstrap files worked for clisp, but not for my SBCL
1.0.15. These symbols were not present:

sb-kernel:uninteresting-redefinition
sb-kernel:undefined-alien-style-warning
sb-kernel:lexical-environment-too-complex

I encountered another problem with (require :sb-posix) which convinced
me to get the latest SBCL. At the same time, I also downloaded the
xcvb-0.357 tarball.

The new SBCL also had that same issue with (require
:sb-posix). Running (require :sb-posix) means we need to look into
SBCL's contrib directory. Somehow, I had to set SBCL_HOME to the
contrib folder directly, eg

$ export SBCL_HOME=/home/tyc20/hda/sbcl/sbcl-1.0.29-x86-linux/contrib/

where sbcl-1.0.29-x86-linux is the contents of the binary tarball
downloaded from sbcl.org/Sourceforge.

SBCL's INSTALL file talked about SBCL_HOME being the path to sbcl.core
too, so this sounds like a conflict/overloaded environment
variable. XCVB is quite consistent in the --core option though, so
perhaps SBCL_HOME could be used exclusively for the /contrib folder,
and not the core file? I think there are valid reasons to having the
SBCL binary in non-default locations.  In my case, I needed to keep
multiple versions around. Someone else may need to keep the binary
local to his homedir, for example.

--------------------

Anyway, the SBCL bootstrap works after this. After modifying the
Makefile (the main one) further, adding/hardcoding the SBCL_HOME
option to OPTIONS, if I remember correctly,
"xcvb-bootstrapped-install" seems to run. I said "seems" because I
kept getting fatal errors, but make just kept going and finished
creating an xcvb executable. See attachment.

xcvb seems to work, as I can get a 'xcvb repl', and after patching a
small bug, also tried an asdf conversion. Another example:

tyc20 at binks:~/hda/code/lisp/libs/xcvb-0.357/xcvb/test/mock/a/c$ xcvb
show-search-path
Discarding invalid path element "/home/tyc20/.local/share/common-lisp/source/"
Discarding invalid path element "/usr/share/common-lisp/source/xcvb/"
Discarding invalid path element "/usr/local/share/common-lisp/source/"
Registered search paths:
 #P"/home/tyc20/hda/code/lisp/libs/xcvb-0.357/xcvb/test/mock/a/c/"
 #P"/usr/share/common-lisp/source/"

Builds found in the search paths:
 (:BUILD "/c") in
"/home/tyc20/hda/code/lisp/libs/xcvb-0.357/xcvb/test/mock/a/c/build.xcvb"
 (:BUILD "/c/x") in
"/home/tyc20/hda/code/lisp/libs/xcvb-0.357/xcvb/test/mock/a/c/x/build.xcvb"
 (:BUILD "/c/y") in
"/home/tyc20/hda/code/lisp/libs/xcvb-0.357/xcvb/test/mock/a/c/y/build.xcvb"

However, at the moment, I still couldn't get make-makefile to run:

tyc20 at binks:~/hda/code/lisp/my-first-xcvb-test$ xcvb make-makefile --build .
end of file on #<SB-SYS:FD-STREAM for "file
/home/tyc20/hda/code/lisp/my-first-xcvb-test/obj/target-properties.lisp-expr"
{AB591F1}>
0:
unhandled PRINT-NOT-READABLE: #<error printing object> cannot be
printed readably.

Argh! error within --disable-debugger error handling
tyc20 at binks:~/hda/code/lisp/my-first-xcvb-test$ ls
build.xcvb   module1.lisp   module2.fas  module2.lisp
build.xcvb~  module1.lisp~  module2.lib  obj
tyc20 at binks:~/hda/code/lisp/my-first-xcvb-test$ cat
obj/target-properties.lisp-expr
tyc20 at binks:~/hda/code/lisp/my-first-xcvb-test$ ls obj/
target-properties.lisp-expr

Ignore the .fas .lib stuff. I think they were leftover from a previous
attempt (that's clisp, not SBCL). Is target-properties.lisp-expr
supposed to ever be empty? What is read-first-file-form supposed to
return for empty files (instead of read with errorp t), nil?  In both
places that use it, there are some checks, eg read-target-properties:

(let* ((file (target-properties-file))
       (form (read-first-file-form file)))
  (unless (and (consp form) (eq 'setf (car form)))
    (error "Malformed target properties file ~S" file))
  ...)

so (read in nil nil) could work. Or have I not got the right things in
the target file?

>> (mapc (lambda (x) (load (compile-file (append-path x))))
>>      '("driver" "pkgdcl" "macros" ...))
>>
>> Could be automated somewhat by direct extraction of the form in
>> xcvb.asd.
>>
> Nope. XCVB is a binary that has to be created by cl-launch somehow and
> be in your $PATH.

So do that mapc thing (and asdf load dependencies), then save-image
and resave image with cl-launch? Although if xcvb can do some of the
building instead of using make, that could be easier too.

>> While I'm here, does xcvb even support plain ol' Lisp style REPL and
>> system construction 'within 1 image'? If you can do distributed
>> multiple images, surely we can also do it all within the same image?
>> 99% of use case today is like that.
>>
> It is in our plans to add this feature, but this hasn't been implemented yet.
> We know how to do it, it isn't even *THAT* hard, but someone has to just do it.

Next time, I'm gonna try and run MAKE-MAKEFILE, REMOVE-XCVB-COMMAND
(in main.lisp) etc on the REPL. Is that how you are all using it at
the moment?

Thanks for the help, I will continue to explore when I find time.

Yong.
-------------- next part --------------
tyc20 at binks:~/hda/code/lisp/libs/xcvb-0.357$ make install
mkdir -p /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/share/common-lisp/source/cl-launch /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/bin
./dependencies/cl-launch/cl-launch.sh \
                -l /home/tyc20/hda/sbcl/sbcl-1.0.29-x86-linux/src/runtime/sbcl \                -I /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/share/common-lisp/source/cl-launch \
                -o /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/bin/cl-launch \
                -B install
mkdir -p /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/share/common-lisp/source/cl-launch
create_file 644 /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/share/common-lisp/source/cl-launch/wrapper.sh print_shell_wrapper
create_file 644 /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/share/common-lisp/source/cl-launch/launcher.lisp print_lisp_launcher
create_file 644 /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/share/common-lisp/source/cl-launch/cl-launch.asd print_cl_launch_asd
create_file 644 /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/share/common-lisp/source/cl-launch/build.xcvb print_build_xcvb
create_file 755 /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/bin/cl-launch print_configured_launcher
mkdir -p /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/bin
# make  -f xcvb.mk./home/tyc20/hda/sbcl/sbcl-1.0.29-x86-linux/src/runtime/sbcl obj/xcvb.image
ln -s ../obj xcvb/
make -C xcvb xcvb-bootstrapped-install PREFIX=/home/tyc20/hda/code/lisp/libs/xcvb-0.357-install LISP=/home/tyc20/hda/sbcl/sbcl-1.0.29-x86-linux/src/runtime/sbcl INSTALL_BIN=/home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/bin INSTALL_LISP=/home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/share/common-lisp LISP_SOURCE=/home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/share/common-lisp/source LISP_SYSTEMS=/home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/share/common-lisp/systems SBCL_HOME=/home/tyc20/hda/sbcl/sbcl-1.0.29-x86-linux/contrib/
/home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/bin/cl-launch: line 2407: implementation_/home/tyc20/hda/sbcl/sbcl-1.0.29-x86-linux/src/runtime/sbcl: No such file or directory
/home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/bin/cl-launch: line 2399: implementation_/home/tyc20/hda/sbcl/sbcl-1.0.29-x86-linux/src/runtime/sbcl: No such file or directory
fatal error encountered in SBCL pid 7412(tid 1075367040):
can't find core file

make[1]: Entering directory `/home/tyc20/hda/code/lisp/libs/xcvb-0.357/xcvb'
mkdir -p /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/bin
cl-launch  --lisp '/home/tyc20/hda/sbcl/sbcl-1.0.29-x86-linux/src/runtime/sbcl sbcl clisp ccl' --path /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/share/common-lisp/systems --no-include --image $PWD/obj/xcvb.image \
                        --output /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/bin/xcvb --dump ! --init '(xcvb::main)'
/home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/bin/cl-launch: line 1548: implementation_/home/tyc20/hda/sbcl/sbcl-1.0.29-x86-linux/src/runtime/sbcl: No such file or directory
/home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/bin/cl-launch: line 1548: implementation_/home/tyc20/hda/sbcl/sbcl-1.0.29-x86-linux/src/runtime/sbcl: No such file or directory
[undoing binding stack and other enclosing state... done]
[saving current Lisp image into /home/tyc20/hda/code/lisp/libs/xcvb-0.357-install/bin/xcvb:
writing 2752 bytes from the read-only space at 0x01000000
writing 1712 bytes from the static space at 0x01100000
writing 28524544 bytes from the dynamic space at 0x09000000
done]
make[1]: Leaving directory `/home/tyc20/hda/code/lisp/libs/xcvb-0.357/xcvb'
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Minor-fix-to-verbosity-arg.patch
Type: text/x-patch
Size: 706 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/xcvb-devel/attachments/20090824/c56c61a1/attachment.bin>


More information about the xcvb-devel mailing list