[fpc-devel] Pure function development
J. Gareth Moreton
gareth at moreton-family.com
Fri May 1 11:41:14 CEST 2020
I'm still learning these things - bear with me! I'll get one set up
when I have something preliminary working.
At the moment I haven't been able to unite the constant propagation code
with my pure functions because they work in fundamentally different ways
- for inline functions constant propagation makes a copy of a node tree
then transmorphs them as it propagates the constants, while my code just
takes the node tree and steps through it without modifying it. I guess
there's merits for both approaches, but because of pure functions'
ability to be recursive, I'm worried about malicious functions causing a
massive ballooning of nodes and memory issues before the compiler
detects an infinite loop (or one that is simply too long) before
destroying all of the nodes again, throwing a warning and keeping the
original call node. Also, there are places where nodes can't actually
be used, like in the definition of constants, and they simply have to
have their results calculated.
We'll see though - this could prove to be insightful.
Gareth aka. Kit
This email has been checked for viruses by Avast antivirus software.
More information about the fpc-devel