From: Bruno H. <br...@cl...> - 2009-09-23 21:27:27
|
Sam wrote: > the compiler folds the get-dispatch-macro-character call > because the function is marked as seclass_read. > (this is done in c-DIRECT-FUNCTION-CALL). Indeed, it should not do that: CLHS says that for get-dispatch-macro-character "an error is signaled if disp-char is not a dispatching macro character in readtable." So this is not something that the compiler may optimize away. > I wonder if all functions which can signal errors should be marked as > *seclass-dirty*... Not all functions, but those which have a non-empty "Exceptional Situations" section in CLHS yes. The seclass to be used for them is - see for example in c-THROW - an seclass with :modifies 'T. The :uses and :uses-binding parts can be left unchanged. Bruno |