aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index d2d629f31b4..ae4200e7d09 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,44 @@
12014-09-30 Paul Eggert <eggert@cs.ucla.edu>
2
3 Simplify stack-allocated Lisp objects, and make them more portable.
4 The build_local_string macro was used in two ways: (1) string
5 literals for which scoped allocation suffices, and (2) file name
6 components, where it's not safe in general to assume bounded-size
7 ASCII data. Simplify by defining a new macro SCOPED_STRING that
8 allocates a block-scope string, and by using SCOPED_STRING for (1)
9 and build_string for (2). Furthermore, actually use stack
10 allocation only for objects known to have sufficient alignment.
11 This simpler implementation means Emacs can make
12 USE_STACK_LISP_OBJECTS the default unless GC_MARK_STACK !=
13 GC_MAKE_GCPROS_NOOPS.
14 * lisp.h (GCALIGNED): Align even if !USE_STACK_LISP_OBJECTS,
15 for fewer differences among implementations.
16 (struct Lisp_String): Now GCALIGNED.
17 (USE_STACK_LISP_OBJECTS): Default to true, since the
18 implementation no longer insists on a nonempty GCALIGNED.
19 But make it false if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS.
20 (SCOPED_CONS_INITIALIZER): Remove, since it's no longer needed
21 separately. Move definiens to scoped_cons. The old definition
22 was incorrect when GCALIGNED was defined to be empty.
23 (union Aligned_String): New type.
24 (USE_STACK_CONS, USE_STACK_STRING): New constants, so that the
25 implementation ports to compilers that don't align strictly enough.
26 Don't worry about the union sizes; it's not worth bothering about.
27 (scoped_cons, scoped_list1, scoped_list3, scoped_list4):
28 Rewrite using USE_STACK_CONS.
29 (scoped_cons): Assume the use of union Aligned_Cons.
30 (lisp_string_size, make_local_string, build_local_string): Remove.
31 Unless otherwise specified, all callers of build_local_string
32 changed to use SCOPED_STRING.
33 (SCOPED_STRING): New macro.
34 * data.c (wrong_choice):
35 * menu.c (single_menu_item):
36 * process.c (Fformat_network_address):
37 Hoist use of SCOPED_STRING out of a scope, so that its returned
38 object lives long enough.
39 * fileio.c (Fexpand_file_name): Use build_string, not SCOPED_STRING,
40 as the string might be long or might not be ASCII.
41
12014-09-29 Eli Zaretskii <eliz@gnu.org> 422014-09-29 Eli Zaretskii <eliz@gnu.org>
2 43
3 * msdos.c (internal_terminal_init): Bump version to 25. 44 * msdos.c (internal_terminal_init): Bump version to 25.