Dan Sugalski:
# which builds up a native call pmc that can be invoked. W is the new 
# PMC for the function (we create it), X is a handle to a dlopened 
# library, Y is the function name, and Z is the signature.

OK, clarification on something please.  Is this essentially XS, or
something more primitive?

# The data's stored in a PMC of type NCI. The data pointer holds a 
# pointer to the main routine to call, while the struct value holds a 
# pointer to an ancillary routine.  In the starting case the ancillary 
# routine will be the actual C function, while the main routine is one 
# that knows how to extract the parameters out of the various 
# registers, pass them in, and store the result somewhere. Later the 
# ancillary routine may be nonexistant if we build up the function 
# headers on the fly and embed the destination function into them. 

Oh JITters... ;^)

If this is going to be the basic XS mechanism, why don't we just ask the
user (or, more likely, the preprocessor) to write an argument-handling
routine?

--Brent Dax <[EMAIL PROTECTED]>
@roles=map {"Parrot $_"} qw(embedding regexen Configure)

"If you want to propagate an outrageously evil idea, your conclusion
must be brazenly clear, but your proof unintelligible."
    --Ayn Rand, explaining how today's philosophies came to be

Reply via email to