[M3commit] [modula3/cm3] 7b8dd3: Infrastructure for passing static link rightmost (...

Jay K jay.krell at cornell.edu
Fri Dec 11 02:15:56 CET 2015


I gave up e.g. on C/m3cc ABI compatibility.It would be nice. But it isn't trivial.

We could do it, maybe, if we change m3cc.i.e. break all/most existing ABIs.

Thoughts?

Or maybe we should just remove taking the addressof nested functions from the language? Problem solved?

Nested functions w/o address-taken I think are ok, as they'donly be called from code compiled with the same backend.It is only the escape by address-taken that presents the problem.

As well, we'd like go quite far if we just didn't use this feature in m3core/libm3.

Gosh -- if we remove the address-taken from nested functions, a bunch ofugliness goes away.. maybe implement them more like C++ lambdas -- requirecaller to know the difference..

 - Jay

Date: Thu, 10 Dec 2015 16:54:36 -0800
From: rodney.m.bates at acm.org
To: m3commit at elegosoft.com
Subject: [M3commit] [modula3/cm3] 7b8dd3: Infrastructure for passing static link rightmost (...

  Branch: refs/heads/master
  Home:   https://github.com/modula3/cm3
  Commit: 7b8dd3fc8f5b05d1c69774d92234ea50d143a692
      https://github.com/modula3/cm3/commit/7b8dd3fc8f5b05d1c69774d92234ea50d143a692
  Author: Rodney Bates <rodney.m.bates at acm.org>
  Date:   2015-12-10 (Thu, 10 Dec 2015)
 
  Changed paths:
    M m3-sys/llvm3.6.1/src/M3CG_LLVM.m3
 
  Log Message:
  -----------
  Infrastructure for passing static link rightmost (currently disabled.)
 
This may be useful in the future, but it did not fix the ABI
incompatability between m3llvm and m3cc backends.  And
putting it first will make life easier for a debugger,
probably a lot.  Leaving it in but disabled for now, i.e.,
static link is currently passed as leftmost parameter, as
it has been.
 
 

_______________________________________________
M3commit mailing list
M3commit at elegosoft.com
https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3commit 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3commit/attachments/20151211/719cc26a/attachment-0002.html>


More information about the M3commit mailing list