Claspをビルドする2021-11-19

そろそろClaspは1.0が出そうだが、着実にバージョンアップが依存ライブラリの方も上がっており、 Claspをビルドする2020-05 - gos-k’s blog 従来の手順をなぞってもビルドできない。

なので再びビルドに挑戦する。

ビルド手順としての主な変更は恐らくLLVM 13に依存ライブラリーが変わったこと。

dockerを立ち上げる。

docker pull ubuntu:impish
docker run -it --name roswell-clasp ubuntu:impish

関係ライブラリーをインストールする。

apt update
apt install -y sbcl
apt install -y git make build-essential curl
apt install -y libboost-filesystem-dev libboost-graph-dev libboost-regex-dev libboost-date-time-dev libboost-program-options-dev libboost-system-dev libboost-iostreams-dev
apt install -y libgmp-dev libffi-dev zlib1g-dev libelf-dev libncurses-dev libbsd-dev
apt install -y llvm-13 clang-13 libclang-13-dev
apt install -y python
apt install -y wget libgc-dev
apt install -y language-pack-en

clasp用のboehm gcをビルドする。

git clone https://github.com/clasp-developers/clasp-boehm
cd clasp-boehm
mkdir -p /opt/clasp-support
make get
make build
make -C gc-8.0.4 install

claspをビルドする。

git clone https://github.com/clasp-developers/clasp.git
cd clasp
git checkout 01e77db41ae1927dbe33489a27f78ad38ad5288f
cp wscript.config.debian10 wscript.config
echo 'INCLUDES = ["/opt/clasp-support/include"]' >> wscript.config
echo 'LINKFLAGS = ["-L/opt/clasp-support/lib"]' >> wscript.config
./waf distclean
./waf configure
./waf build_dboehmprecise

実行する。

/build/clasp 
../../src/llvmo/llvmoExpose.cc:4978:operator() CLASP_NO_JIT_GDB not defined Adding ObjLinkingLayer plugin for orc::createJITLoaderGDBRegistrar
Starting cclasp-boehmprecise-0.4.2-4831-g01e77db41-cst ... loading image...
Top level in: #<PROCESS TOP-LEVEL @0x7f5dbbe21f09 (Running)>.
COMMON-LISP-USER> 

未だにバージョン番号らしきのが0.4.2だが、果たしてバージョンアップされるんだろうか