emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Emacs-diffs] trunk r117912: Minor improvements to new stack-allocat


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....



reply via email to

[Prev in Thread] Current Thread [Next in Thread]