diff options
| -rw-r--r-- | etc/TODO | 14 |
1 files changed, 0 insertions, 14 deletions
| @@ -35,20 +35,6 @@ Change src/bytecode.c so that calls from byte-code functions to byte-code | |||
| 35 | functions don't go through Ffuncall/funcall_lambda/exec_byte_code but instead | 35 | functions don't go through Ffuncall/funcall_lambda/exec_byte_code but instead |
| 36 | stay within exec_byte_code. | 36 | stay within exec_byte_code. |
| 37 | 37 | ||
| 38 | ** Add new 'switch' byte-code | ||
| 39 | This byte-code would take one argument from the stack (the object to test) | ||
| 40 | and one argument from the constant-pool (a switch table, implemented as an | ||
| 41 | 'eq' hash table) and would jump to the "label" contained in the hash table. | ||
| 42 | |||
| 43 | Then add a 'case' special-form that can be compiled to this byte-code. | ||
| 44 | This would behave just like cl-case, but instead of expanding to cond+eq it | ||
| 45 | would be its own special form and would be compiled specially. | ||
| 46 | |||
| 47 | Then change pcase to use 'case' when applicable. | ||
| 48 | |||
| 49 | Then change the byte-compiler to recognize (cond ((eq x 'foo) bar) ...) | ||
| 50 | and turn it into a 'case' for more efficient execution. | ||
| 51 | |||
| 52 | ** Improve the byte-compiler to recognize immutable (lexical) bindings | 38 | ** Improve the byte-compiler to recognize immutable (lexical) bindings |
| 53 | and get rid of them if they're used only once and/or they're bound to | 39 | and get rid of them if they're used only once and/or they're bound to |
| 54 | a constant expression. | 40 | a constant expression. |