[M3commit] CVS Update: cm3

Rodney M. Bates rodney_bates at lcwb.coop
Mon Nov 22 20:44:00 CET 2010


Jay, I think you overestimate the connection between static links
and closures/trampolines, which is really quite weak.  They are
almost orthogonal mechanisms.

Closures come into play only when you pass a nested procedure
as an actual parameter, and then call it via the corresponding
formal.  The closure only stores a pointer to an activation record
during the interval between these two events.  A trampoline does
the same, using a different mechanism.

Where the AR pointer came from before it was stored in the closure
and how it is used after it is pulled out of the closure during
the call through the actual parameter are no different than when
nested procedures are called only as procedure constants and thus
no closures exist at all.

If the static link mechanism works without passing/calling nested
procedures as parameters (and thus without any closures being
involved), then it should work fine with the above too.

Jay Krell wrote:
> CVSROOT:	/usr/cvs
> Changes by:	jkrell at birch.	10/11/21 23:39:11
> 
> Modified files:
> 	cm3/m3-sys/m3cc/gcc-4.5/gcc/: tree-cfg.c 
> 
> Log message:
> 	disable another static chain check
> 	
> 	arg, clearly I did an adequate job of getting
> 	the static link stuff to "work" with gcc-4.5
> 	but not so good at getting it to work with optimizations
> 	and checking; I still suspect there is a disconnect
> 	between our "closures" and gcc's expectations.
> 
> 



More information about the M3commit mailing list