I've been working on parsing the function prototypes in the
GL/GLU/GLUT/GLX headers, in preparation for generating bindings for all
of them during the Parrot build.

Currently my prototype parser is able to compute NCI signatures for all
but 14 out of the 1835 total prototypes found in my system's headers.
Those 14 failures break down as follows:

  5   Parrot NCI doesn't handle 'long long', only 'long long *'
  4   Callback registration functions neither Parrot nor I handle yet
  3   GetProcAddress-type functions; not sure how to deal with these
  2   SGI-specific (IRIS?) headers required, which I don't have
 --
 14   TOTAL

The second group I'll handle soon, and the fourth group I'll just ignore
for now.  That leaves the first and third groups, for which I could use
some advice:

1. Any suggestions on a sane way to handle 'long long' NCI arguments,
   when Parrot could be built with either 32 or 64 bit INTVAL?

2. How do you create an NCI Sub (like the dlfunc op does) using a
   function pointer returned "anonymously" by a function, instead
   of by name using the normal dlfunc op?

Also, I'm having to squash away signed/unsigned distinctions for
non-pointer NCI arguments with integer types, because current Parrot NCI
always forces integer types to signed.  Any way to lift this limitation?


-'f


Reply via email to