[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-janitors] [Chicken-bugs] #384: define-foreign-record: allow cus
From: |
Chicken Scheme |
Subject: |
[Chicken-janitors] [Chicken-bugs] #384: define-foreign-record: allow customization of foreign record type |
Date: |
Mon, 10 Dec 2007 21:38:05 -0000 |
#384: define-foreign-record: allow customization of foreign record type
---------------------------------------+------------------------------------
Reporter: Hans Bulfone <address@hidden> | Type: enhancement
Status: new | Priority: minor
Milestone: | Component: compiler
Version: 2.7 | Keywords: ffi define-foreign-record
---------------------------------------+------------------------------------
normally the accessor procedures created by define-foreign-record accept a
c-pointer like
argument for the record instance. it would be cool if that could be
customized to be able
to store the instances in blobs and/or wrap them in scheme records.
for example:
{{{
(define-record dfb-point blob)
(define-foreign-type dfb-point blob dfb-point-blob)
(let ((g0 make-dfb-point))
(set! make-dfb-point
(lambda ()
(g0 (make-blob (foreign-value "sizeof(DFBPoint)" int))))))
(define-record-printer (dfb-point g2 g3)
(for-each
(cut display <> g3)
(list #\# #\< 'dfb-point #\space
(dfb-point-x g2) #\space
(dfb-point-y g2) #\>)))
(define-foreign-record (dfb-point "DFBPoint")
(existing-foreign-type: dfb-point)
(int x)
(int y))
}}}
--
Ticket URL: <http://trac.callcc.org/ticket/384>
Chicken Scheme <http://www.call-with-current-continuation.org/>
The CHICKEN Scheme-to-C compiler
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Chicken-janitors] [Chicken-bugs] #384: define-foreign-record: allow customization of foreign record type,
Chicken Scheme <=