I had used cl-ppcre package recently and I am very curious about how they optimize this package because I want to learn optimizing common lisp. I notice they use Sharpsign Dot a lot in declare expression, like here. The optimized setting is here.
Why do they write like this? Is there any benefit? Or some rule has them to do?
Update: I run
(defvar *b* '(optimize speed))
(pprint (macroexpand-1 '(declaim *b*)))
(pprint (macroexpand-1 '(declaim #.*b*))) ;; => this one is right
So, #.
will eval value even before macro call? Like it eval the value first and replaces it in the macro argument.
declaim
is a macro that takes as parameter "a declaration specifier; not evaluated." – Axenic