Lisp HUG Maillist Archive

Another MOP bug report...

Hi,

You don't implement READER-METHOD-CLASS and WRITER-METHOD-CLASS.


All the best,
Pascal

--
ECOOP 2004 Workshops - Oslo, Norway:
*1st European Lisp and Scheme Workshop, June 13*
http://www.cs.uni-bonn.de/~costanza/lisp-ecoop/
*2nd Post-Java Workshop, June 14*
http://prog.vub.ac.be/~wdmeuter/PostJava04/


Evaluating forms in a delivered LW app

I am making a binary app of a cl-http application in LW under Mac OS 10.3.3.

I'd like to figure out a good way to evaluate forms in a listener both
locally and over the net.

Anybody have experience and recommendations?

I'm thinking a telnet server running in lisp that only talks to the local
host would work.

Anybody tried this?

What about ssh?

Alternatives?

(and yes, I suppose I could use Web listener example from cl-http, perhaps with
some additional enhancements.)


Re: Evaluating forms in a delivered LW app

Thanks Sven!

This looks like a good approach.

It would be nice if the code had some error handling and allowed access
to the LW text debugger.

A command to debug a process would  be nice too.

For that matter, a command processor and lisp  evaluator like
the LispM 3600-login protocol would  be ideal.

At 7:31 PM +0200 5/24/04, Sven Van Caekenberghe wrote:
>This is the code that I am currently using:
>
>; A Remote REPL for LispWorks
>
>(defpackage :remote-repl
>  (:use :cl)
>  (:documentation "A trivial remote REPL for LispWorks"))
>
>(in-package :remote-repl)
>
>(export
> '(start-remote-repl
>   exit))
>
>(defun run-listener (stream)
>  "Run a top-level listener"
>  (unwind-protect
>      (progn
>        (format stream "~&Welcome to ~a ~a~%" (lisp-implementation-type) (lisp-implementation-version))
>        (format stream "This is a remote read-eval-print loop, use (remote-repl:exit) to stop~%")
>        (system::listener-top-level stream))
>    (close stream)))
>
>(defun make-stream-and-run-listener (socket-handle)
>  "Function to be used as :function parameter to comm:start-up-server (allows local connections only)"
>  (if (eql (comm:get-socket-address socket-handle)
>           (comm:get-socket-peer-address socket-handle))
>      (let ((socket-stream (make-instance 'comm:socket-stream
>                                          :socket socket-handle
>                                          :direction :io
>                                          :element-type 'base-char)))
>        (mp:process-run-function "listener-top-level"
>                                 ()
>                                 #'run-listener
>                                 socket-stream))
>    (progn
>      (format *terminal-io* "Non-local connection refused~%")
>      (comm::close-socket socket-handle))))
>
>(defun start-remote-repl (&optional (port 24365))
>  "Start up a server that accepts remote (localhost only) listener connections"
>  (comm:start-up-server :function #'make-stream-and-run-listener
>                        :process-name "remote-repl"
>                        :service port))
>
>(defun kill-current-process ()
>  (mp:process-kill mp:*current-process*))
>
>(defun exit ()
>  "Exit this REPL by killing the current process"
>  (kill-current-process))
>
>; eof
>
>And so far, this works fine..
>
>Sven
>
>On 24 May 2004, at 19:21, John C. Mallery wrote:
>
>>I am making a binary app of a cl-http application in LW under Mac OS 10.3.3.
>>
>>I'd like to figure out a good way to evaluate forms in a listener both
>>locally and over the net.
>>
>>Anybody have experience and recommendations?
>>
>>I'm thinking a telnet server running in lisp that only talks to the local
>>host would work.
>>
>>Anybody tried this?
>>
>>What about ssh?
>>
>>Alternatives?
>>
>>(and yes, I suppose I could use Web listener example from cl-http, perhaps with
>>some additional enhancements.)


Re: Evaluating forms in a delivered LW app

Ah ha, I see that it does get you the text-based debugger. Very nice. So simple!


Re: Evaluating forms in a delivered LW app

Thanks for your code, Sven.

I have tuned it up some for my purposes and you will find it attached.

It would be nice to email backtraces easily too.

Perhaps there are some additional commands that would be convenient
for remote debugging.

Regards, John
Updated at: 2020-12-10 08:56 UTC