From: Vibhav Pant Date: Mon, 13 Feb 2017 17:24:05 +0000 (+0530) Subject: ; etc/TODO: Remove 'switch' item, as it is now implemented. X-Git-Tag: emacs-26.0.90~838 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=fffd4ffd747fe46bb7849a874e4ae265b6eda54e;p=emacs.git ; etc/TODO: Remove 'switch' item, as it is now implemented. --- diff --git a/etc/TODO b/etc/TODO index fc442f93077..b102bdf35f0 100644 --- a/etc/TODO +++ b/etc/TODO @@ -35,20 +35,6 @@ Change src/bytecode.c so that calls from byte-code functions to byte-code functions don't go through Ffuncall/funcall_lambda/exec_byte_code but instead stay within exec_byte_code. -** Add new 'switch' byte-code -This byte-code would take one argument from the stack (the object to test) -and one argument from the constant-pool (a switch table, implemented as an -'eq' hash table) and would jump to the "label" contained in the hash table. - -Then add a 'case' special-form that can be compiled to this byte-code. -This would behave just like cl-case, but instead of expanding to cond+eq it -would be its own special form and would be compiled specially. - -Then change pcase to use 'case' when applicable. - -Then change the byte-compiler to recognize (cond ((eq x 'foo) bar) ...) -and turn it into a 'case' for more efficient execution. - ** Improve the byte-compiler to recognize immutable (lexical) bindings and get rid of them if they're used only once and/or they're bound to a constant expression.