August 23, 2010
> Detouring of function calls is done via the C preprocessor. In fact the current code is most probably invalid in 64Bit environments since MX_COMPAT_32 isn't handled correctly yet.

I forgot to mention that any combination of ARRAY_ACCESS_INLINING, MX_COMPAT_32, ARGCHECK needs to be handled.
Even the Matlab devs seem to be unsure about that:

"
#if 0

/*
 * Conflicts with 32-bit compatibility (-> MX_COMPAT_32)
 * Needs revisiting.  Is this layer still worthwhile?
 * XXX
 */

#ifdef ARGCHECK
"
August 23, 2010
> I don't know if there is a way to handle all this without string mixins.

i.e. something along the lines of

mixin(foo("
...

/**
 * Get pointer to dimension array
 */
const(mwSize)* mxGetDimensions(const(mxArray)* pa);

...
"));

and foo replaces the function defs with func(...){return func_730(...)} via RegEx replace if MX_COMPAT_32 is not defined and so on.

(IF RegEx works at compile-time)
1 2
Next ›   Last »