compiler error involving #+ and an undefined reader macro, #_
Trying to compile the local-time library, available at
common-lisp.net. It has this function definition, which gets an error
at the #_gettimeofday:
(defun %unix-gettimeofday ()
"Cross-implementation gettimeofday abstraction"
#+cmu
(unix:unix-gettimeofday)
#+sbcl
(sb-unix:unix-gettimeofday)
#+ccl
(ccl::rlet ((tv :timeval))
(#_gettimeofday tv (ccl::%null-ptr)) ;; <=== ERROR on #_
(values t (ccl::pref tv :timeval.tv_sec) (ccl::pref tv :timeval.tv_usec)))
#-(or cmu sbcl ccl)
(values t (get-universal-time) 0))
:ccl is not in *FEATURES*.
I got around it by
#-ccl
(set-dispatch-macro-character #\# #\_ (constantly nil))
which seems to work. (On the other hand, I'm not terribly familiar
with reader macros, so this may've been, uh, sub-optimal. :)
My question is, why does LW try to process the reader macro at all,
since it's protected (if that's the right word) by #+ccl?
-- Larry