Я торопился, поэтому написал невнятно.
Вот какой результат мне видно в случае pprint:
(((|include| (|set|)) (|include| (|set.hxx|)) (|include| (|set|))
(|include| (|set.hxx|)) (|include| (|common| |types| |set.hxx|)))
(|module| |name.name.name|
(|version| "0.0.1"
(:COMMENT "/* sdfg
sdfgdsfg */"
"// test 1 2 3a"))
(|const| NIL |uint32| MANAGER_INSTANCE_ID 1)
(|const| NIL |uint32| TEST_INSTANCE_ID 2)
(|enum| RESULT_TYPE
(RESULT_OK 1 :COMMENT "/*
* Operation successful
*/")
(RESULT_ERROR_GENERIC 2 :COMMENT "/*
* If no more specific error matches the problem, this
* is the default error enum. The request will not be
* repeated if RESULT_ERROR_GENERIC is returned.
*/")
(RESULT_ERROR_DATABASES_NOT_AVAILABLE) :COMMENT "/* enum 1
comment */")
(|struct| |Component|
(|string| |componentName| :COMMENT "/*
* componentName should be the internal name of the component or
* database. It should not be a translated string.
*/")
(|int8| |versionInfo[5]| :COMMENT "// blah blah") :COMMENT "/*
* Generic return type that describes a database with name and version.
*/")
(|interface| |RegionInfo| (|version| "0.0.3" NIL)
(|request| |asdfasdf| (|sdfg.sdfg.sdfg| |sdfg|) (|uint16| |requestID|))
(|reply| |asdfasdf| (|sdfg.sdfg.sdfg| |sdfg|) (|uint16| |requestID|))
(|request| |asdfasdf| (|sdfg.sdfg.sdfg| |sdfg|) (|uint16| |requestID|))
:COMMENT "/*
* Interface between ConnectedNav and Navigation
*/")
:COMMENT "/* module comment */"))TНо во втором случае, при использовании multiple-value-bind, остаётся только T, весь основной результат работы не сохраняется.
Я уже тыкался-пыкался со значениями * (я имею в виду последнее возвращаемое значение в репле), но там тоже только Т.
У меня такое ощущение, что with-open-file как-то чудит, но я не уверен.
Ещё некоторые (но не все) функции обёрнуты в такую форму:
(eval-when (:compile-toplevel :load-toplevel :execute)
...)Я, к сожалению, не знаю что именно она делает, особенно учитывая, что замыканий в ней нет, только обычные функции.
Может быть, в ней тоже дело.