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