https://github.com/Lovesan/bike

Велосипед представляет из себя интерфейс Common Lisp к .Net Core.

Рантайм последнего подгружается в лисп, и дергается за разные интересные места. В том числе поддерживаются коллбеки - из лисповых функций можно делать делегаты и передавать в дотнет, навешивать на эвенты и так далее.

Абсолютно кроссплатформенно.

Вобщем, ящитаю, проблема с библиотеками у Common Lisp решена.

(use-package :bike)

(import-assembly 'System.Runtime.InteropServices.RuntimeInformation)

(use-namespace 'System.Runtime.InteropServices)

(defun hello ()
(let* ((os (property 'RuntimeInformation 'OSDescription))
(delegate (new '(System.Action :string)
(lambda (who)
(format t "Hello ~a!~%You are running .Net Core~% inside ~a ~a~% on ~a"
who
(lisp-implementation-type)
(lisp-implementation-version)
os))))
(user (property 'System.Environment 'UserName)))
(invoke delegate 'invoke user)))

(hello)

;; ==>

;; Hello lovesan!
;; You are running .Net Core
;; inside SBCL 1.5.3
;; on Linux 4.15.0-1041-aws #43-Ubuntu SMP Thu Jun 6 13:39:11 UTC 2019







 , ,






URL записи