path: root/miniany/REQUIREMENTS
diff options
Diffstat (limited to 'miniany/REQUIREMENTS')
1 files changed, 9 insertions, 1 deletions
diff --git a/miniany/REQUIREMENTS b/miniany/REQUIREMENTS
index 985def7..a6fce03 100644
--- a/miniany/REQUIREMENTS
+++ b/miniany/REQUIREMENTS
@@ -130,5 +130,13 @@ TODO:
semicolon after the last triplet). IMHO a for loop makes sense for SIMD
operations only when we can use a stricter grammar to optimize certain
+- c4: recursive descent parsing requires forward function declarations. Forward
+ function declarations are not that easy to implement, because you have to
+ generate a placeholder for the call address before you get the whole
+ definition of the forwarded function (especially its entry address).
+ Or we create sort of a temporary jump into a jump table (sort of a GOT) which
+ we patch when we know the address of the implementation of the function.
+ Having a global table at one place scales easier, as we don't have to keep
+ the whole generated code around just for patching (remember, we have tapes
+ and memory, no seek of files).