listibearp

lisp + stibear = predicate?

ECLビルド

お久しぶりです。ECLをMSVCでビルドしたときにてこずったのでメモとして。

MSVCの入手

Announcing Visual C++ Build Tools 2015 – standalone C++ tools for build environments | Visual C++ Team Blog

ECLのソースコードの入手

Index of /project/ecl/files

からcurrent-release.tgzをダウンロード。

ビルド前準備

ビルドする前にいくつかのファイルに修正が必要だった。

VS2015 build issues (#213) · Issues · Embeddable Common-Lisp / ECL · GitLab

ここにあるようにsrc/c/dpp.cmsvc/ecl/config.h.msvc6src/c/file.dを修正。さらに,

ECL (Embeddable Common-Lisp) 15.2.21をVisual Studio 2013でビルドした記録 - 新・日々録 by TRASH BOX@Eel

ここにあるようにsrc/c/main.dを修正。上で記載していないファイルについては修正が必要なかった。

そして,yasm(1.2.0)をPATHが通った場所においておけばよい。

ビルド

あとはMakefileを好きなように弄って,nmake & nmake installすればビルドが通ったっぽい。

ECL (Embeddable Common-Lisp) 16.1.2 (git:UNKNOWN)
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2000 Juan J. Garcia-Ripoll
Copyright (C) 2015 Daniel Kochmanski
ECL is free software, and you are welcome to redistribute it
under certain conditions; see file 'Copyright' for details.
Type :h for Help.  Top level in: #<process TOP-LEVEL>.
>

追記

しかし(require "asdf")すらできない…

> (require "asdf")
;;; Loading #P"C:/Users/raebi/src/ecl-16.1.2/msvc/package/asdf.fas"

Condition of type: SIMPLE-ERROR
LOAD: Could not load file #P"C:/Users/raebi/src/ecl-16.1.2/msvc/package/asdf.fas" (Error: "この操作を正しく終了しました。
")
Available restarts:

1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.

Broken at SI:BYTECODES. [Evaluation of: (REQUIRE "asdf")] In: #<process TOP-LEVEL>.
>>