freenode/#clasp - IRC Chatlog
Search
17:55:48
Selwyn
would it be possible to expose C structs and functions in Clasp in much the same way as c++ classes and methods are?
17:57:20
Selwyn
I wonder whether it is worth the effort to have GSL available in Clasp as a 'first class citizen' so to speak - the GSLL library uses a FFI interface to communicate with the GSL API.
17:57:45
drmeister
Re: "would it be possible to expose C structs and functions in Clasp in much the same way as c++ classes and methods are?"
17:59:17
drmeister
A first class citizen means there need to be changes to the GSL code so that its objects can be managed by the garbage collector. That would be non-trivial but not impossible.
18:00:43
drmeister
There are three choices (1) CFFI interface (already done IIUC) (2) clbind wrappers for C++ interface (easy) (3) Modify source code to make library exposed to the GC directly (hard).
18:09:50
drmeister
I'd start recursively grepping clasp source *.cc *.h *.l*sp for that. And then I'd start grepping other libraries that Clasp is loading. Weird.
18:10:03
kpoeck_
I pulled changes and did my own, so I don't know whether is caused that or some other commit
18:20:17
kpoeck_
the form is (handler-case (list (make-array '(0) :element-type nil)) (error () nil))
18:20:45
Bike
i did some stuff to open code make-array that would make it err at compile time for a weird element type
18:26:17
Bike
i really ought to remember that the compiler should not signal errors except for compiler bugs
18:46:22
kpoeck_
(handler-case (make-array '(2 2) :element-type '(integer 0 (256)) :initial-contents '((34 98)(14 119)))(error (e) e))
18:46:54
kpoeck_
Condition of type: TYPE-ERROR (34 98) is not of type EXT:BYTE8. No restarts available.
19:24:15
drmeister
kpoeck_: I responded to one of your questions about the pull request. Try canceling it and submitting a new one.
19:28:48
kpoeck_
(bit-and (make-array nil :element-type 'bit :initial-element 1)(make-array nil :element-type 'bit :initial-element 1)) fails in dev clasp
19:30:42
kpoeck_
I my version now (bit-and (make-array (list 2 2) :element-type 'bit :initial-element 0 :adjustable t) (make-array (list 2 2) :element-type 'bit :initial-element 0 :adjustable t)) works
19:31:37
kpoeck_
and (bit-and (make-array (list 2 2) :element-type 'bit :initial-element 0) (make-array (list 2 2) :element-type 'bit :initial-element 1))