Does Marc have the ___NAME stuff documented somewhere? I know that if I read the compiler code I'd probably figure it out, but someone might have done that already. From the small bits and peaces I've seen, mainly from FFI code in gambit, it reminds me of an assembly/register machine in C.
Pavel
On Mon, Feb 16, 2009 at 3:17 PM, Guillaume Cartier gcartier@jazzscheme.org wrote:
Here's how Marc does it in his Xlib.scm example : (define GCFunction ((c-lambda () unsigned-long "___result = GCFunction;"))) (define GCPlaneMask ((c-lambda () unsigned-long "___result = GCPlaneMask;"))) (define GCForeground ((c-lambda () unsigned-long "___result = GCForeground;"))) (define GCBackground ((c-lambda () unsigned-long "___result = GCBackground;"))) (define GCLineWidth ((c-lambda () unsigned-long "___result = GCLineWidth;")))
On Mon, Feb 16, 2009 at 5:40 PM, lowly coder lowlycoder@huoyanjinjing.com wrote:
looking at the glut ffi at the dumping grounds, we have lines like:
(define GL_NORMAL_ARRAY #x8075) (define GL_COLOR_ARRAY #x8076) (define GL_INDEX_ARRAY #x8077) (define GL_TEXTURE_COORD_ARRAY #x8078)
this is really cool because ... now, in scheme land, I also know the values of these defines
suppose however, I didn't care about the values of these globals in scheme land ... and suppose, i'm writing the ffi for naother library and I don't want to manually (or write a script) to get the value of each of these constants, is there anyway I can do something like:
(c-define-foreign-varaible gl_normal_array "GL_NORMAL_ARRAY")
and have gl_normal_array (only in compiled mode, I recognize this will fail in interpted mode) just get expanded to "GL_NORMAL_ARRAY" during compilation?
thanks!
(I also dislike the eralier method in that ... if API changes causes the global vars to have different values ... i'll have lots of fun with silent var value changes
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list