diff options
author | Mike Pall <mike> | 2011-11-20 19:14:39 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2011-11-20 19:16:40 +0100 |
commit | cecbe3c15fc62921098f3468b9de86cf0b631b9e (patch) | |
tree | d1b18c59652a3e163ce050e58b7b647fdf312271 /doc | |
parent | cc7a12be93660677a5128124c11c68127cfe33eb (diff) | |
download | luajit-cecbe3c15fc62921098f3468b9de86cf0b631b9e.tar.gz luajit-cecbe3c15fc62921098f3468b9de86cf0b631b9e.tar.bz2 luajit-cecbe3c15fc62921098f3468b9de86cf0b631b9e.zip |
Specialize to prototype for non-monomorphic functions.
Solves the trace-explosion problem with closure-heavy programming.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/status.html | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/doc/status.html b/doc/status.html index d386e1aa..5f8fa463 100644 --- a/doc/status.html +++ b/doc/status.html | |||
@@ -148,14 +148,6 @@ with me, before writing major improvements, to avoid duplication of | |||
148 | effort. | 148 | effort. |
149 | </li> | 149 | </li> |
150 | <li> | 150 | <li> |
151 | The trace compiler currently doesn't back off specialization for | ||
152 | function call dispatch. It should really fall back to specializing on | ||
153 | the prototype, not the closure identity. This can lead to the so-called | ||
154 | "trace explosion" problem with <b>closure-heavy programming</b>. The | ||
155 | trace linking heuristics prevent this, but in the worst case this | ||
156 | means the code always falls back to the interpreter. | ||
157 | </li> | ||
158 | <li> | ||
159 | <b>Trace management</b> needs more tuning: less drastic countermeasures | 151 | <b>Trace management</b> needs more tuning: less drastic countermeasures |
160 | against trace explosion and better heuristics in general. | 152 | against trace explosion and better heuristics in general. |
161 | </li> | 153 | </li> |