[plt-scheme] _bitmask usage in foreign.ss
On Sep 11, Jon Rafkind wrote:
> This pertains to the foreign function interface( foreign.ss ) in
> mzscheme. Given the following C code
> #define a 1
> #define b 2
> #define c 4
> #define d 8
> #define foo (a|c)
>
> What is the equivalent with the _bitmask syntax? Could something like
> (_bitmask '(a 1
> b 2
> c 4
> d 8
> foo (a|c)))
>
> be supported in the future?
No, you'd use
(_bitmask '(a = 1
...
d = 8))
then you can pass '(a c) as a value that will be translated to 5, or
you can define foo as a new symbol for that:
(_bitmask '(a = 1
...
d = 8
foo = ,(bitwise-ior 1 4)))
but this means that if it is used as a result value, and that value is
5, the translation to Scheme will give you '(a c foo), since 5
contains all of them.
> Also, Eli, could you add an example usage of _enum and _bitmask on
> the documentation on the website? I keep having to remind myself how
> to use them.
Ugh... So why not write a short example with some nice text and mail
me...?
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://www.barzilay.org/ Maze is Life!