Opened 11 years ago

Last modified 8 years ago

#343 new enhancement

SWANK interface layer

Reported by: gb Owned by: gz
Priority: minor Milestone:
Component: Runtime (threads, GC) Version:
Keywords: Cc:

Description

We should try to develop a thin layer that exposes functionality that SWANK needs while hiding internal details.

(I suppose that "what SWANK needs" may change a bit over time.)

Change History (5)

comment:1 Changed 11 years ago by gb

  • Priority changed from major to minor

comment:2 Changed 11 years ago by gz

and ilisp and eli.

comment:3 Changed 11 years ago by gz

  • Owner changed from gb to gz

I will do this.

comment:4 Changed 9 years ago by rme

r12463 appears to address at least part of this.

comment:5 Changed 8 years ago by rme

In the version of swank-ccl.lisp that I'm using, I see the use of the following unexported symbols:

ccl::*openmcl-major-version*
ccl::*openmcl-minor-version*

;; Presumably what they want here is ccl:stream-device
(defimplementation socket-fd (stream)
  (ccl::ioblock-device (ccl::stream-ioblock stream t)))

ccl::getpid
ccl::closure-function
ccl::closure-closed-over-values

;; Not sure what they mean here
(defimplementation kill-thread (thread)
  ;;(ccl:process-kill thread) ; doesn't cut it
  (ccl::process-initial-form-exited thread :kill))

(defimplementation interrupt-thread (thread function)
  (ccl:process-interrupt
   thread
   (lambda ()
     (let ((ccl:*top-error-frame* (ccl::%current-exception-frame)))
       (funcall function)))))

(defimplementation set-default-initial-binding (var form)
  (eval `(ccl::def-standard-initial-binding ,var ,form)))
Note: See TracTickets for help on using tickets.