Hi, "Maciek Godek" <[EMAIL PROTECTED]> writes:
> is there any portable and recommended way for passing C pointers around > in guile environment? > I think of something like scm_to_ptr (analogous to scm_to_int etc.). > Certainly such a value would be completely useless for the interpreter. > One can achieve simillar functionality using the aforementioned > scm_to_int (keeping track on the word length of the build target), > but it seems rather unnatural. If the goal is to make a C object pointed to by some pointer available to Scheme functions, the recommended (and simplest) way is to use a "SMOB" (see the manual for details). In practice, SMOBs incur some storage overhead because they hold 4 machines words, while you may only need one. Another possibility is to use a "uo" field in a struct: it allows you to have a struct field holding a machine word inaccessible to Scheme functions (see the "Vtables" node of the manual). Hope this helps, Ludovic.