[slim-vim] Starting: problems in process-available-input

Tomas Zellerin zellerin at gmail.com
Tue Aug 15 00:48:00 CDT 2006


On 8/14/06, Brad Beveridge <brad.beveridge at gmail.com> wrote:
> On 14/08/06, Tomas Zellerin <zellerin at gmail.com> wrote:
> > I do as suggested in README, getting to <Leader>-sc (backslash being
> > the leader), and then the vim shouts "Wrong number of arguments passed
> > to function slime:process-available-input, and then bunch of "0 is an
> > illegal frs index.", and then vim crashes.
> >
> Yeash, that sounds bad!  Can you please confirm that
> process-available-input looks like this?
> (defun process-available-input (stream)
>  (loop while (listen stream) do
>  (vector-push-extend (read-char stream) *input*))
>  (loop for message = (swank-protocol:decode-message *input*)
>  while message
>  do (dispatch-event message)))

Yes, the one in ecl-slime yes. (there is also another in
slime/swank.lisp, with different signature, but that should not come
into play on vim side I guess)

>
> And if you look in your vim directory ./runtime/if_ecl.lisp, do you
> have this code?
> (let ((callbacks (make-hash-table)))
>  ;; the hashtable is kept to ensure callback closures
>  ;; are not garbage collected.
>
>  (defun make-network-callback (stream callback)
>    (let ((first t))
>      (lambda ()
>        (when (and first (listen stream))
>          (unwind-protect
>            (progn
>              (setf first nil)
>              (ignore-errors
>                (cl:funcall callback stream)))
>            (setf first t))))))
>
>  (defun add-input-listener (stream callback)
>    "Registers a callback to be invoked when data arrives to a stream"
>    (check-type stream stream)
>    (check-type callback function)
>    (let ((network-callback (make-network-callback stream callback)))
>      (setf (gethash stream callbacks) network-callback)
>      (add-input-listener-int stream network-callback))
>    t)
>
>  (defun remove-input-listener (stream)
>    "Unregisters the input-listener for a stream"
>    (check-type stream stream)
>    (remove-input-listener-int stream)
>    (remhash stream callbacks)
>    t))
>
No, I am missing the make-network-callback part. Does that mean that I
have to recompile the vim to get up-to-date version, or only runtime
files were changed?

Tomas


More information about the slim-vim mailing list