Share

foil - Foreign Object Interface for Lisp

Tracker: Bugs

5 no object creation possible under clisp - ID: 1203040
Last Update: Comment added ( jkalsbach )

Hi, I tried to run foil under clisp on a windows machine.
When I instantiate anything (e.g. a java.util.Date) I get
the following exception:

[44]> (setf *fvm* (make-instance 'foreign-vm
:stream
(socket-connect 13581)))

#<FOREIGN-VM #x19F9289D>
[45]> (date.new)

*** - java.lang.Exception: unsupported macro sequence
'1'
at com.richhickey.foil.MessageReader.
readMacro(MessageReader.java:113)
at com.richhickey.foil.MessageReader.
readDelimitedList(MessageReader.java:81)
at com.richhickey.foil.MessageReader.
readSexpr(MessageReader.java:45)
at com.richhickey.foil.MessageReader.
readMessage(MessageReader.java:39)
at com.richhickey.foil.RuntimeServer.
processMessages(RuntimeServer.java:68)
at com.richhickey.foil.RuntimeServer.
processMessagesOnSocket(RuntimeServer.java:391)
at com.richhickey.foil.RuntimeServer.
main(RuntimeServer.java:429)

Break 1 [46]>

Any help with this problem is appreciated.

Many thanks in advance. If you have any further
questions please do not hesitate to contact me.

Best regards

J Kalsbach

On the java side the RuntimeServer sees the following
forms in its processMessages method:

(:TREF "java.util.Date")
(:NEW #1=#}1. 1. 0. NIL)



jkalsbach ( jkalsbach ) - 2005-05-16 18:43

5

Open

None

Nobody/Anonymous

None

None

Public


Comments ( 2 )

Date: 2005-05-18 19:16
Sender: jkalsbach

Logged In: YES
user_id=1279756

Hi, I patched send-message to
(defun send-message (&rest args)
(with-standard-io-syntax
(let* ((send-stream (get-fvm-stream))
(free-list (fvm-free-list *fvm*)))
(when free-list
(setf (fvm-free-list *fvm*) nil)
(free-frefs send-stream free-list))
(format send-stream "~A" args)
(force-output send-stream)
(process-return-message))))

as recommended. Now there is another error.

Executing
(load "./foil")
(load "./java-util")
(use-package :foil)
(use-package :ext)
(use-package "java.util")
(setf *fvm* (make-instance 'foreign-vm
:stream
(socket-connect 13580)))

(date.new)

gives
[1]> (setf (default-directory) "c:/software/foil")

"c:/software/foil"
[2]> (load "cfoil")

;; Loading file C:\software\foil\cfoil.lisp ...
;; Loading file C:\software\foil\foil.fas ...
;; Loaded file C:\software\foil\foil.fas
;; Loading file C:\software\foil\java-util.fas ...
;; Loaded file C:\software\foil\java-util.fas
*** - java.lang.Exception: unsupported message
at com.richhickey.foil.RuntimeServer.
processMessages(RuntimeServer.java:249)
at com.richhickey.foil.RuntimeServer.
processMessagesOnSocket(RuntimeServer.java:391)
at com.richhickey.foil.RuntimeServer.main(RuntimeServer.
java:429)

Break 1 [3]>
on the repl and
c:\software\foil>java -jar ./foil.jar 13580
java -jar ./foil.jar 13580
(TREF java.util.Date)

on the java side. The ":" before TREF seems to be missing.
Any clues? Many thanks in advance!

Regards,

J Kalsbach


Date: 2005-05-17 11:10
Sender: rhickeyProject Admin

Logged In: YES
user_id=803844

There was a thread on this on the mailing list:

http://sourceforge.net/mailarchive/message.php?msg_id=11484644


Attached File

No Files Currently Attached

Change

No changes have been made to this artifact.