AtCoderのCommon Lispは
コンパイルされているの?

  • AtCoderのCommon LispはSBCLでコンパイルされて実行されている。
  • 以前はsbcl --scriptでスクリプト実行されていたが、現在はcompile-fileでコンパイルしてから実行される。

関連記事

1. Common Lispの実行コマンド

AtCoderの問題にCommon Lispで提出したら、「メモリ制限超過」になってしまいました。

「もしかして、コンパイルされていないのかな」と思って調べてみると、確かに以前はスクリプトとして実行することもあったようです2[/efn_note]3

AtCoder Common Lisp 実行方式の変化 以前 Main.lisp sbcl –script インタープリタ実行 コンパイルなし 現在 (2026) Main.lisp 入力 Main.fasl 出力 compile-file で変換 バイナリ実行 コンパイルは正常。メモリ超過の原因は別にある。
sbcl --script Main.lispCode language: CSS (css)
1. Common Lispの実行コマンド

でも、今(2026-03-14)確認すると、コンパイルコマンドが追加されています4

export SBCL_HOME=/usr/local/lib/sbcl
./sbcl --eval '(compile-file "Main.lisp")' --quit
if [ -f Main.fasl ]; then
chmod +x Main.fasl
fiCode language: JavaScript (javascript)
1. Common Lispの実行コマンド

ちゃんとコンパイルされるようになっていました。

うーむ、そうするとメモリ制限超過は、アルゴリズムの問題ということですね……

  1. Language Test – AtCoder1
  2. AtCoder Beginner Contest 128にCommon Lispで参加した – Lambdaカクテル 2019-05-27
  3. ルール – AtCoder Beginner Contest 128