Wed, 05-Jun-2019 by Matthias Bloch edit post
The main thing I have been doing over the last month is to make the optree-walking functions in op.c non-recursive and/or non-leaky. In auto-generated code, such as $a[0][0][0][0].. and things involving arbitrary-deep nesting of braces and parentheses, it's easy during compilation to create a deep optree. Many functions in op.c walk those trees using recursion, which can blow the stack and cause a crash. This is especially noticeable under threads, where each thread by default only gets a relatively small stack. Some functions were modified to malloc() a buffer to keep track, but that could leak if the compiler croaked during tree traversal. SUMMARY: 1:00 fix 32-bit builds 26:55 make optree functions in op.c non-recursive and/or non-leaky. ------ 27:55 TOTAL (HH::MM) 293.7 weeks 3338.1 total hours 11.4 average hours per week There are 128 hours left on the grant
The Perl Foundation - supporting the Perl community since 2000. Find out more at www.perlfoundation.org.