On 11/16/10 12:19 AM, Cyrus Harmon wrote:
I neglected to mention that the previous example requires some changes to CFFI to get things to compile in the first place. The attached patch is my attempt at bringing the ABCL CFFI code forward to support the :calling-convention -> :convention that must have been made a while back.
It looks like we should relax the restriction on ABCL's internal socket routines to accept subtypes of (UNSIGNED-BYTE 8) as allowed by the attached patch.
This gets DRAKMA a little further with SSL connections, but then the CL+SSL code fails as follows as we need an implementation of callbacks in CFFI. Not sure how much work that would be, but I'll take a look when I get time (if someone else wants to jump in here, please do by all means).
callback support unimplemented [Condition of type SIMPLE-ERROR]
Restarts: 0: [RETRY] Retry SLIME REPL evaluation request. 1: [*ABORT] Return to SLIME's top level. 2: [ABORT] Abort thread.
Backtrace: 0: (#<FUNCTION {20913236}> #<SIMPLE-ERROR {7D63B1F4}> #<FUNCTION {20913236}>) 1: (APPLY #<FUNCTION {20913236}> (#<SIMPLE-ERROR {7D63B1F4}> #<FUNCTION {20913236}>)) 2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<SIMPLE-ERROR {7D63B1F4}> #<FUNCTION {20913236}>) 3: (INVOKE-DEBUGGER #<SIMPLE-ERROR {7D63B1F4}>) 4: (ERROR "callback support unimplemented") 5: (CFFI-SYS:%CALLBACK CL+SSL::LISP-WRITE) 6: (CL+SSL:MAKE-SSL-CLIENT-STREAM #<TWO-WAY-STREAM {593C7B26}> :CLOSE-CALLBACK #<FUNCTION {11B9298F}>) 7: (DRAKMA::MAKE-SSL-STREAM #<TWO-WAY-STREAM {593C7B26}>) 8: (DRAKMA:HTTP-REQUEST "https://www.google.com")