Code: Select all
* (documentation 'INF_node 'structure)
"A boolean expression in If-then-else Normal Form (INF).
i.e. the nodes for our (R)OBDD."
Code: Select all
[2]> (documentation 'INF_node 'structure)
NIL
Code: Select all
* (documentation 'INF_node 'structure)
"A boolean expression in If-then-else Normal Form (INF).
i.e. the nodes for our (R)OBDD."
Code: Select all
[2]> (documentation 'INF_node 'structure)
NIL
Code: Select all
(defstruct INF_node
"A boolean expression in If-then-else Normal Form (INF).\
i.e. the nodes for our (R)OBDD."
(var nil) ; The input variable this statement is for (integer from 1 to n)
(low nil) ; Expression or terminal to follow if var's value is 0
(high nil) ; Expression or terminal to follow if var's value is 1
)
It doesn't, actually, at least on default settings. DESCRIBE shows the structure documentation, and it is stored in SYMBOL-PLIST. It seems there is something wrong in documentation function logic for structures which have a structure class, but I am not quite sure what, since I have never really looked at CLISP internals. On my system (CLISP 2.48 on Gentoo) it seems to go into an infinite loop when I pass a structure class to (clos::class-documentation ...).gugamilare wrote:The Hyperspec states that "an implementation is permitted to discard documentation strings at any time for implementation-defined reasons." I guess Clisp chooses to discard documentations to keep the memory consumption low, since using low memory is one of Clisp's main advantage.
You're right, they can discard. The weird thing is that it keeps the doc strings for functions, and possibly everything else but structs. It's not going to really effect me... but it bugs me, no pun intended.gugamilare wrote:The Hyperspec states that "an implementation is permitted to discard documentation strings at any time for implementation-defined reasons." I guess Clisp chooses to discard documentations to keep the memory consumption low, since using low memory is one of Clisp's main advantage.