[M3devel] Enumeration or subrange value out of range

Jay K jay.krell at cornell.edu
Thu Dec 2 10:41:13 CET 2010


A C/C++ backend is definitely easier than anything else.
It requires no learning of the target form!
 I know C and C++ very well, very little of C++ is relevant, mainly exception handling (*),
  and surely there is far more familiarity in the world of C and C++ than LLVM or gcc trees.


* -- other parts of C++ might be interesting, such as putting module initializers
in statics with constructors. This feature of C++ doesn't work well, but this would
possibly help e.g. LoadLibrary/dlopen(mod3.dll) run the module initializers.
Though here again, there is a way to do in C for NT and probably C in general, with
platform-specific code.


 - Jay

From: dragisha at m3w.org
Date: Thu, 2 Dec 2010 10:29:24 +0100
To: jay.krell at cornell.edu
CC: m3devel at elegosoft.com
Subject: Re: [M3devel] Enumeration or subrange value out of range




On Dec 2, 2010, at 10:17 AM, Jay K wrote:The gcc intermediate form does support exception handling.
Efficient exception handling doesn't motivate gcc to llvm switch.
As well, generating C++ is a good option for this reason.
  At least on non-NT/Tru64/VMS systems.
As well, since this is multiple axes, an initial C backend could generate code
like we do today -- pthread_getspecific/setjmp.

Switching to LLVM is a big task.
As big as making C++ backend?
I don't see it as a switch. Just as another backend.
And yes, I know it's easier from audience. It is your call, but anything C, C++, GCC is pain long term. We will probably all reap benefits of that C backend, as good intermediate solution if nothing else, but sooner we settle on LLVM, and forget GCC's wriggling backend, better.
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20101202/65718e21/attachment-0002.html>


More information about the M3devel mailing list