aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog247
1 files changed, 247 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 8cf269680de..8f441be3307 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,246 @@
12015-01-11 Paul Eggert <eggert@cs.ucla.edu>
2
3 Port to MSB hosts without optimization
4 E.g., when configuring --with-wide-int CFLAGS='-O0' on x86,
5 the inline function XTYPE needs to be declared before being used.
6 * lisp.h (XTYPE): New forward declaration.
7
82015-01-10 Paul Eggert <eggert@cs.ucla.edu>
9
10 Port to 32-bit --with-wide-int
11 Prefer symbol indexes to struct Lisp_Symbol * casted and then
12 widened, as the latter had trouble with GCC on Fedora 21 when
13 configured --with-wide-int and when used in static initializers.
14 * alloc.c (garbage_collect_1, which_symbols):
15 * lread.c (init_obarray):
16 Prefer builtin_lisp_symbol when it can be used.
17 * dispextern.h (struct image_type.type):
18 * font.c (font_property_table.key):
19 * frame.c (struct frame_parm_table.sym):
20 * keyboard.c (scroll_bar_parts, struct event_head):
21 * xdisp.c (struct props.name):
22 Use the index of a builtin symbol rather than its address.
23 All uses changed.
24 * lisp.h (TAG_SYMPTR, XSYMBOL_INIT): Remove, replacing with ...
25 (TAG_SYMOFFSET, SYMBOL_INDEX): ... new macros that deal with
26 symbol indexes rather than pointers, and which work better on MSB
27 hosts because they shift right before tagging. All uses changed.
28 (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
29 No longer noops on wide-int hosts, since they work now.
30 (builtin_lisp_symbol): New function.
31
32 Port to HAVE_FREETYPE && !HAVE_XFT
33 * dispextern.h (struct face.extra) [HAVE_FREETYPE && !HAVE_XFT]:
34 * font.h (syms_of_xftfont) [HAVE_FREETYPE && !HAVE_XFT]:
35 Declare in this case too.
36
372015-01-10 Eli Zaretskii <eliz@gnu.org>
38
39 * w32fns.c (Fw32_register_hot_key): Use XINT instead of XLI.
40
41 * w32notify.c (Fw32notify_add_watch, w32_get_watch_object): Use
42 make_pointer_integer instead of XIL.
43 (Fw32notify_rm_watch): Use XINTPTR instead of XLI.
44
45 * w32inevt.c (handle_file_notifications): Use make_pointer_integer
46 instead of XIL. Put a list of the descriptor, action, and file
47 name in event->arg, instead of spreading them between event->code
48 and event->arg.
49
50 * w32term.c (queue_notifications): Use make_pointer_integer
51 instead of XIL. Put a list of the descriptor, action, and file
52 name in event->arg, instead of spreading them between event->code
53 and event->arg.
54
55 * keyboard.c (kbd_buffer_get_event) [HAVE_W32NOTIFY]: Adjust Lisp
56 event creation to changes in w32term.c and w32inevt.c above.
57
582015-01-09 Paul Eggert <eggert@cs.ucla.edu>
59
60 Port Qnil==0 changes to 32-bit --with-wide-int
61 * lisp.h (lisp_h_XSYMBOL, XSYMBOL): Assume USE_LSB_TAG in the
62 macro-implemented version. For the non-USE_LSB_TAG case, supply
63 a new inline function that is the inverse of the new TAG_SYMPTR.
64 (lisp_h_XUNTAGBASE, XUNTAGBASE): Remove. All uses removed.
65 (TAG_SYMPTR) [!USE_LSB_TAG]: If the pointer subtraction yields a
66 negative number, don't allow sign bits to bleed into the encoded
67 value. Shift in zero bits instead.
68
69 Refactor pointer-to-integer conversion
70 * gfilenotify.c (monitor_to_lisp, lisp_to_monitor):
71 Rename and move to lisp.h. All uses changed.
72 * lisp.h (XINTPTR, make_pointer_integer): New inline functions,
73 which are renamed from gfilenotify.c's lisp_to_monitor and
74 monitor_to_lisp, and with more-generic void * signatures.
75
762015-01-08 Eli Zaretskii <eliz@gnu.org>
77
78 * dispnew.c (buffer_posn_from_coords): Fix the value of the column
79 returned for right-to-left screen lines. (Before the change on
80 2014-12-30, the incorrectly-computed X pixel coordinate concealed
81 this bug.)
82
83 * .gdbinit (xsymname): New subroutine.
84 (xprintsym, initial-tbreak): Use it to access the name of a symbol
85 in a way that doesn't cause GDB to barf when it tries to
86 dereference a NULL pointer.
87
88 * xdisp.c (next_element_from_c_string): Use Lisp integer zero as
89 the object.
90 (set_cursor_from_row, try_cursor_movement, dump_glyph)
91 (insert_left_trunc_glyphs, append_space_for_newline)
92 (extend_face_to_end_of_line, highlight_trailing_whitespace)
93 (find_row_edges, ROW_GLYPH_NEWLINE_P, Fmove_point_visually)
94 (Fbidi_resolved_levels, produce_special_glyphs)
95 (rows_from_pos_range, mouse_face_from_buffer_pos)
96 (note_mouse_highlight): Use nil as the object for glyphs inserted
97 by the display engine, and test with NILP instead of INTEGERP.
98 (Bug#19535)
99
100 * w32fns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
101 the display engine.
102
103 * xfns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
104 the display engine.
105
106 * dispextern.h (struct glyph, struct it): Update comments for the
107 OBJECT members.
108
1092015-01-08 Paul Eggert <eggert@cs.ucla.edu>
110
111 Port new Lisp symbol init to x86 --with-wide-int
112 * lisp.h (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
113 Define to empty on platforms where EMACS_INT_MAX != INTPTR_MAX, as
114 GCC (at least) does not allow a constant initializer to widen an
115 address constant.
116
117 * lisp.h (TAG_SYMPTR): Don't do arithmetic on NULL.
118 This is a followup to the "Port Qnil==0 XUNTAG to clang" patch.
119 Although clang doesn't need it, some other compiler might, and
120 it's easy enough to be safe.
121
122 * conf_post.h (ATTRIBUTE_ALLOC_SIZE): Port to clang 3.5.0.
123 Apparently clang removed support for the alloc_size attribute.
124
125 Port Qnil==0 XUNTAG to clang
126 clang has undefined behavior if the program subtracts an integer
127 from (char *) 0. Problem reported by YAMAMOTO Mitsuharu in:
128 http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00132.html
129 * lisp.h (lisp_h_XUNTAG) [USE_LSB_TAG]:
130 (XUNTAG) [!USE_LSB_TAG]: Port to clang 3.5.0.
131
132 Port GFileMonitor * hack to Qnil==0 platforms
133 Reported by Glenn Morris in: http://bugs.gnu.org/15880#112
134 * gfilenotify.c (monitor_to_lisp, lisp_to_monitor): New functions.
135 (dir_monitor_callback, Fgfile_add_watch, Fgfile_rm_watch): Use them.
136
1372015-01-06 Jan Djärv <jan.h.d@swipnet.se>
138
139 * nsterm.m (x_set_window_size): Call updateFrameSize to get real
140 size instead of using widht/height. The frame may be constrained.
141
1422015-01-05 Paul Eggert <eggert@cs.ucla.edu>
143
144 * lisp.h (XSYMBOL): Parenthesize id in forward decl.
145 Needed when neither optimizing nor inlining.
146 Also, sort decls alphabetically.
147
1482015-01-05 Eli Zaretskii <eliz@gnu.org>
149
150 * w32proc.c, w32.h, w32fns.c, w32font.c, w32menu.c, w32notify.c:
151 * w32proc.c, w32select.c, w32term.c, w32uniscribe.c: Remove
152 declarations of Q* variables that represent symbols.
153
1542015-01-05 Paul Eggert <eggert@cs.ucla.edu>
155
156 Use 0 for Qnil
157 Fixes Bug#15880.
158 If USE_LSB_TAG, arrange for the representation of Qnil to be zero so
159 that NILP (x) is equivalent to testing whether x is 0 at the
160 machine level. The overall effects of this and the previous patch
161 shrink the size of the text segment by 2.3% and speeds up
162 compilation of all the .elc files by about 0.5% on my platform,
163 which is Fedora 20 x86-64.
164 * lisp.h (lisp_h_XPNTR, lisp_h_XSYMBOL, lisp_h_XUNTAG)
165 (make_lisp_symbol) [USE_LSB_TAG]:
166 Symbols now tag the difference from lispsym, not the pointer.
167 (lisp_h_XUNTAGBASE, TAG_SYMPTR): New macros.
168 (Lisp_Int0, Lisp_Int1, Lisp_Symbol, Lisp_Misc, Lisp_String, Lisp_Cons):
169 Renumber so that Lisp_Symbol is 0, so that Qnil is zero.
170 (XSYMBOL): New forward decl.
171 (XUNTAGBASE): New function.
172 (XUNTAG): Use it.
173
174 Compute C decls for DEFSYMs automatically
175 Fixes Bug#15880.
176 This patch also makes Q constants (e.g., Qnil) constant addresses
177 from the C point of view.
178 * alloc.c, bidi.c, buffer.c, bytecode.c, callint.c, casefiddle.c:
179 * casetab.c, category.c, ccl.c, charset.c, chartab.c, cmds.c, coding.c:
180 * composite.c, data.c, dbusbind.c, decompress.c, dired.c, dispnew.c:
181 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, fns.c, font.c, fontset.c:
182 * frame.c, fringe.c, ftfont.c, ftxfont.c, gfilenotify.c, gnutls.c:
183 * image.c, inotify.c, insdel.c, keyboard.c, keymap.c, lread.c:
184 * macfont.m, macros.c, minibuf.c, nsfns.m, nsfont.m, nsimage.m:
185 * nsmenu.m, nsselect.m, nsterm.m, print.c, process.c, profiler.c:
186 * search.c, sound.c, syntax.c, term.c, terminal.c, textprop.c, undo.c:
187 * window.c, xdisp.c, xfaces.c, xfns.c, xftfont.c, xmenu.c, xml.c:
188 * xselect.c, xsettings.c, xterm.c:
189 Remove Q vars that represent symbols (e.g., Qnil, Qt, Qemacs).
190 These names are now defined automatically by make-docfile.
191 * alloc.c (init_symbol): New function.
192 (Fmake_symbol): Use it.
193 (c_symbol_p): New function.
194 (valid_lisp_object_p, purecopy): Use it.
195 * alloc.c (marked_pinned_symbols):
196 Use make_lisp_symbol instead of make_lisp_ptr.
197 (garbage_collect_1): Mark lispsym symbols.
198 (CHECK_ALLOCATED_AND_LIVE_SYMBOL): New macro.
199 (mark_object): Use it.
200 (sweep_symbols): Sweep lispsym symbols.
201 (symbol_uses_obj): New function.
202 (which_symbols): Use it. Work for lispsym symbols, too.
203 (init_alloc_once): Initialize Vpurify_flag here; no need to wait,
204 since Qt's address is already known now.
205 (syms_of_alloc): Add lispsym count to symbols_consed.
206 * buffer.c (init_buffer_once): Compare to Qnil, not to make_number (0),
207 when testing whether storage is all bits zero.
208 * dispextern.h (struct image_type):
209 * font.c (font_property_table):
210 * frame.c (struct frame_parm_table, frame_parms):
211 * keyboard.c (scroll_bar_parts, struct event_head):
212 * xdisp.c (struct props):
213 Use XSYMBOL_INIT (Qfoo) and struct Lisp_Symbol * rather than &Qfoo and
214 Lisp_Object *, since Qfoo is no longer an object whose address can be
215 taken. All uses changed.
216 * eval.c (run_hook): New function. Most uses of Frun_hooks changed to
217 use it, so that they no longer need to take the address of a Lisp sym.
218 (syms_of_eval): Don't use DEFSYM on Vrun_hooks, as it's a variable.
219 * frame.c (syms_of_frame): Add defsyms for the frame_parms table.
220 * keyboard.c (syms_of_keyboard): Don't DEFSYM Qmenu_bar here.
221 DEFSYM Qdeactivate_mark before the corresponding var.
222 * keymap.c (syms_of_keymap): Use DEFSYM for Qmenu_bar and Qmode_line
223 instead of interning their symbols; this avoids duplicates.
224 (LISP_INITIALLY, TAG_PTR)
225 (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END, XSYMBOL_INIT):
226 New macros.
227 (LISP_INITIALLY_ZERO): Use it.
228 (enum symbol_interned, enum symbol_redirect, struct Lisp_Symbol)
229 (EXFUN, DEFUN_ARGS_MANY, DEFUN_ARGS_UNEVALLED, DEFUN_ARGS_*):
230 Move decls up, to avoid forward uses. Include globals.h earlier, too.
231 (make_lisp_symbol): New function.
232 (XSETSYMBOL): Use it.
233 (DEFSYM): Now just a placeholder for make-docfile.
234 * lread.c (DEFINE_SYMBOLS): Define, for globals.h.
235 (intern_sym): New function, with body taken from old intern_driver.
236 (intern_driver): Use it. Last arg is now Lisp integer, not ptrdiff_t.
237 All uses changed.
238 (define_symbol): New function.
239 (init_obarray): Define the C symbols taken from lispsym.
240 Use plain DEFSYM for Qt and Qnil.
241 * syntax.c (init_syntax_once): No need to worry about
242 Qchar_table_extra_slots.
243
12015-01-04 Paul Eggert <eggert@cs.ucla.edu> 2442015-01-04 Paul Eggert <eggert@cs.ucla.edu>
2 245
3 'temacs -nw' should not call missing functions 246 'temacs -nw' should not call missing functions
@@ -146,6 +389,10 @@
146 * xterm.c (do_ewmh_fullscreen): Don't remove maximized_horz/vert 389 * xterm.c (do_ewmh_fullscreen): Don't remove maximized_horz/vert
147 when going to fullscreen (Bug#0x180004f). 390 when going to fullscreen (Bug#0x180004f).
148 391
3922014-12-27 Eli Zaretskii <eliz@gnu.org>
393
394 * window.c (Fwindow_body_width): Doc fix. (Bug#19395)
395
1492014-12-27 Stefan Monnier <monnier@iro.umontreal.ca> 3962014-12-27 Stefan Monnier <monnier@iro.umontreal.ca>
150 397
151 * buffer.c (syms_of_buffer) <Vafter_change_functions>: fix docstring. 398 * buffer.c (syms_of_buffer) <Vafter_change_functions>: fix docstring.