Если вы посмотрите на исходный код dribble
(в частности, process-dribble
), вы увидите, что CCL перенаправляет поток *TERMINAL-IO*
в двусторонний поток. Если вы попытаетесь записать напрямую в этот поток (и, возможно, после этого позвоните finish-output
), тогда файл будет записан в.
> (dribble "/tmp/log")
> (print "test" *terminal-io*)
> (dribble)
Вариант использования Dribble, по крайней мере, реализованный в CCL (поведение Dribble практически не определено), должен использоваться с терминала, где вы не можете легко записать свой сеанс. В среде IDE, такой как Lispbox / Slime, существуют другие механизмы для хранения команд, например, буфер, в котором хранится текущий REPL.