[M3devel] C math interop..

Jay K jay.krell at cornell.edu
Sat Sep 8 11:50:19 CEST 2012


This also occured in FPU.ic
Math.ic.c:217: error: conflicting types for ‘signgam’/usr/include/architecture/i386/math.h:543: error: previous declaration of ‘signgam’ was hereMath.ic.c:298: warning: conflicting types for built-in function ‘cabs’Math.ic.c:302: error: conflicting types for ‘frexp’Math.ic.c:306: error: conflicting types for ‘ldexp’Math.ic.c:310: error: conflicting types for ‘modf’Math.ic.c:329: error: conflicting types for ‘jn’Math.ic.c:339: error: conflicting types for ‘yn’

Generally int vs. INTEGER confusion.To fix these errors, I'm going to provide C wrappers for these functions, and everything else in the file.

This hints at some new way to do interop, fast like the old way, but with static checking,where the generated C #includes the relevant .h files.But this is a bit abstraction bending -- the backend isn't supposed to be doing these checks.The frontend does.You'd have to have changes in the <* extern *> pragma like  - this isn't an actual function signature, necessarily..and the address can'tnecessarily be taken, but something close enough to this will materialize from a C header   - specify the C header 

Imagine a world with a good C backend, and a good other one.Modules that interoperate with C could be sent off to the C backend automatically.

Anyway, just crazy stuff, nothing really happening here beyond I'll add C wrappers. :)

When I get to it, #include <Xlib.h> along with our declarations..it will be interestingto see if things match. And <windows.h>...There will be problems. We have one UINT32 type in the generated C.Win32 has unsigned int and unsigned long used kind of interchangably.There will be clashes.

 - Jay 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20120908/8d50538d/attachment-0001.html>


More information about the M3devel mailing list