digitalmars.D.bugs - [Issue 15370] New: Some way to manually allocate the closure for
- via Digitalmars-d-bugs (33/33) Nov 21 2015 https://issues.dlang.org/show_bug.cgi?id=15370
https://issues.dlang.org/show_bug.cgi?id=15370 Issue ID: 15370 Summary: Some way to manually allocate the closure for delegates to nested functions. Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: joeyemmons yahoo.com There has been a strong push to move away from the GC, being able to allocate closures with out it would be another step in that direction. As far as I can tell there is no current way to manually allocate a closure. It would be great if there was a solution that could work with allocators to be able to manually allocate closures. Example: auto foo(int x) { int bar(){ return x; } return &bar; // implicitly allocates a closure with the gc // No way to manually allocate it currently } Maybe it could be something as simple as __traits(setClosureAllocator, Mallocator.instance); to set the allocator for the closure of the current function. Allocators then would need to handle the case of freeing the delegate closure as well. --
Nov 21 2015