Yaroslav Kavenchuk wrote:
Thus (let ((custom:*foreign-encoding* charset:foo))) won't work as
expected, you It does ext:letf[*]
Thanks, Yaroslav. I forgot about that one, which is odd since IIRC it's me who pressed Sam Steingold to explicitly mention this is the CLISP impnotes. -- Blush.
Still I don't appreciate interfaces that need unwind-protect etc. or special variables to work. I very much prefer functional APIs. The other ones get scoping typically wrong. Consider th effect of (ext:letf ((custom:*foreign-encoding* charset:utf-16)) (convert-some-string) (foreign-funcall some-function-which calls back into Lisp)) Within the extent of the callback, the encoding would be set to an unusual value...
Regards, Jorg.