diff options
| author | Vibhav Pant | 2017-02-13 22:54:05 +0530 |
|---|---|---|
| committer | Vibhav Pant | 2017-02-13 22:56:17 +0530 |
| commit | fffd4ffd747fe46bb7849a874e4ae265b6eda54e (patch) | |
| tree | c3f2bc175f35c17cc4527da1bc075f5c6c6a34b0 | |
| parent | 271dcf8652ccf94d8582b2bcdb26f066d0b946a2 (diff) | |
| download | emacs-fffd4ffd747fe46bb7849a874e4ae265b6eda54e.tar.gz emacs-fffd4ffd747fe46bb7849a874e4ae265b6eda54e.zip | |
; etc/TODO: Remove 'switch' item, as it is now implemented.
| -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. |