GNU bug report logs - #31750
simplify and tune Emacs stack-related allocation

Previous Next

Package: emacs;

Reported by: Paul Eggert <eggert <at> cs.ucla.edu>

Date: Fri, 8 Jun 2018 02:29:01 UTC

Severity: normal

Tags: patch

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Emacs bugs <bug-gnu-emacs <at> gnu.org>
Subject: simplify and tune Emacs stack-related allocation
Date: Thu, 7 Jun 2018 19:27:52 -0700
[Message part 1 (text/plain, inline)]
While looking into the Emacs garbage collector's stack-overflow problems 
I noticed several opportunities for improving performance and 
simplifying the code in minor ways. I plan to install the attached 
patches to take advantage of these opportunities; although they don't 
address stack overflow, they can be thought of as a first, cleanup step 
toward addressing stack overflow.

Overall these patches trim about 250 lines from the C source code, and 
should improve efficiency by not creating objects on the heap to handle 
stack-related events such as implementing save-excursion. This patch 
also removes primitives like 'free_misc' that ask for trouble by 
second-guessing the garbage collector. I'm filing this as a bug report 
in order to give the patches a bit of time to cool before installing. 
Comments welcome, as usual.

[0001-New-mint_ptr-representation-for-C-pointers.patch (text/x-patch, attachment)]
[0002-Simplify-init_module_assertions.patch (text/x-patch, attachment)]
[0003-Avoid-Lisp_Misc-allocation-if-C-stack-suffices.patch (text/x-patch, attachment)]
[0004-Use-record_unwind_protect_ptr-to-avoid-allocation.patch (text/x-patch, attachment)]
[0005-Avoid-allocating-a-Lisp_Save_Value-in-ftfont.c.patch (text/x-patch, attachment)]
[0006-Just-use-cons-in-macfont_descriptor_entity.patch (text/x-patch, attachment)]
[0007-Avoid-allocating-Lisp_Save_Value-for-excursions.patch (text/x-patch, attachment)]
[0008-Avoid-allocating-Lisp_Save_Value-for-arrays.patch (text/x-patch, attachment)]
[0009-New-type-Lisp_Misc_Ptr.patch (text/x-patch, attachment)]
[0010-Remove-Lisp_Misc_Save_Value.patch (text/x-patch, attachment)]

This bug report was last modified 6 years and 346 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.