Blaise wrote on Wed, 09 Dec 2015:

On 09.03.2015 16:36, [email protected] wrote:

A) Things that work (at least, expected to -- before the merge):
* accessing outer variables/parameters/Selves from such routines and from routines nested in them;

First of all, thanks for your work, and sorry for the late reaction.

I was wondering whether you could rework the above functionality based on the code in ncgnstld.pas/ncgnstmm.pas. That is code which is used by the JVM and LLVM code generators to access nested variables. It adds all variables that are used by nested routines to a record, and then passes a pointer to this record as "parentfp" parameter (since those platforms do not have a stack or frame pointer register that can be passed on). This seems quite similar to what you're doing with load_captured_sym() etc. Alternatively, maybe your code is better and that code could be refactored to make use of your routines. I have not yet studied your code in detail yet.

One advantage would be that the existing code already handles this too (for plain nested routines):

B) Things that do not work (not planned to be addressed before the merge):
* accessing outer local-variables/parameters/Selves that are located more than one level higher than the nameless routine;


Jonas
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to