|
From: | Paul Eggert |
Subject: | Re: [Emacs-diffs] trunk r117912: Minor improvements to new stack-allocated Lisp objects. |
Date: | Sun, 21 Sep 2014 22:40:11 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.1.1 |
Stefan Monnier wrote:
I'm already doubtful that the local_* thingies will be useful, so I think distinguishing between local_* and scoped_* is way beyond the limit of diminishing returns.
The more I look at it the more I think local_cons and local_list* are mistakes and should be discarded.
For example, build_desired_tool_bar_string has a loop, each iteration of which creates temporaries; here local_list4 could exhaust the stack whereas scoped_list4 is fine, and trunk bzr 117912 fixed that by replacing local_list4 with scoped_list4. There appear to be similar problems in every function that currently uses local_cons or local_list*, so I'm thinking we should remove these macros and go back to Fcons and list*.
We should also audit uses of make_local_vector, make_local_string, and build_local_string to make sure that none of them are in loops that could blow the stack. I think most uses of these are OK but some are questionable.
If there's significant doubt whether the local_* and scoped_* thingies are useful perhaps we should simply remove all of them....
[Prev in Thread] | Current Thread | [Next in Thread] |