> On May 27, 2022, at 2:47 AM, Sven Barth via fpc-pascal 
> <fpc-pascal@lists.freepascal.org> wrote:
> 
> Further RTL enhancements like the declaration of TProc<> or the addition of a 
> TThread.Queue() that takes a function reference will come in the near future 
> now that the basics on the compiler side are done. Maybe we can now also 
> tackle ports of libraries like Spring4D and OmniThreadLibrary. There's also 
> the idea to introduce a syntax to control whether symbols are captured 
> by-reference (as currently) or by-value.
> 
> Enjoy!

Huge news, I’m so excited about this. Thank you both.

As discussed over the last years, now that we’ve implemented the anonymous 
functions part can we consider an optimization for closures that don’t leave 
the current scope? I explored the possibility of using the existing nested 
function feature and I think that would work great with the anonymous functions 
syntax.

The open questions are:

1) How does the compiler know the closure will not leave the scope?
2) The actual implementation, leverage the nested functions which are stacked 
based objects or change the closure capture object to be a record instead of an 
interface (much more work I believe).

Regards,
        Ryan Joseph

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to