* Re: master fffd4ff: ; etc/TODO: Remove 'switch' item, as it is now implemented. [not found] ` <20170213172606.E451B232B9@vcs0.savannah.gnu.org> @ 2017-02-13 23:10 ` Mark Oteiza 2017-02-14 6:22 ` Vibhav Pant 2017-02-14 14:08 ` Stefan Monnier 0 siblings, 2 replies; 3+ messages in thread From: Mark Oteiza @ 2017-02-13 23:10 UTC (permalink / raw) To: emacs-devel; +Cc: Vibhav Pant vibhavp@gmail.com (Vibhav Pant) writes: > diff --git a/etc/TODO b/etc/TODO > index fc442f9..b102bdf 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. What about the second and third items? ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: master fffd4ff: ; etc/TODO: Remove 'switch' item, as it is now implemented. 2017-02-13 23:10 ` master fffd4ff: ; etc/TODO: Remove 'switch' item, as it is now implemented Mark Oteiza @ 2017-02-14 6:22 ` Vibhav Pant 2017-02-14 14:08 ` Stefan Monnier 1 sibling, 0 replies; 3+ messages in thread From: Vibhav Pant @ 2017-02-14 6:22 UTC (permalink / raw) To: Mark Oteiza; +Cc: emacs-devel@gnu.org On Tue, Feb 14, 2017 at 4:40 AM, Mark Oteiza <mvoteiza@udel.edu> wrote: > > vibhavp@gmail.com (Vibhav Pant) writes: >> diff --git a/etc/TODO b/etc/TODO >> index fc442f9..b102bdf 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. > > What about the second and third items? Both pcase and cl-cond are macros that expand to a cond form, so they also compile to switch bytecode. -- Vibhav Pant vibhavp@gmail.com ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: master fffd4ff: ; etc/TODO: Remove 'switch' item, as it is now implemented. 2017-02-13 23:10 ` master fffd4ff: ; etc/TODO: Remove 'switch' item, as it is now implemented Mark Oteiza 2017-02-14 6:22 ` Vibhav Pant @ 2017-02-14 14:08 ` Stefan Monnier 1 sibling, 0 replies; 3+ messages in thread From: Stefan Monnier @ 2017-02-14 14:08 UTC (permalink / raw) To: emacs-devel > What about the second and third items? To the extend that he recognizes the `cond` forms, the others aren't really needed. Stefan ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-02-14 14:08 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20170213172606.5097.68821@vcs0.savannah.gnu.org> [not found] ` <20170213172606.E451B232B9@vcs0.savannah.gnu.org> 2017-02-13 23:10 ` master fffd4ff: ; etc/TODO: Remove 'switch' item, as it is now implemented Mark Oteiza 2017-02-14 6:22 ` Vibhav Pant 2017-02-14 14:08 ` Stefan Monnier
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.