diff options
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 247 |
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 @@ | |||
| 1 | 2015-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 | |||
| 8 | 2015-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 | |||
| 37 | 2015-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 | |||
| 58 | 2015-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 | |||
| 76 | 2015-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 | |||
| 109 | 2015-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 | |||
| 137 | 2015-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 | |||
| 142 | 2015-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 | |||
| 148 | 2015-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 | |||
| 154 | 2015-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 | |||
| 1 | 2015-01-04 Paul Eggert <eggert@cs.ucla.edu> | 244 | 2015-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 | ||
| 392 | 2014-12-27 Eli Zaretskii <eliz@gnu.org> | ||
| 393 | |||
| 394 | * window.c (Fwindow_body_width): Doc fix. (Bug#19395) | ||
| 395 | |||
| 149 | 2014-12-27 Stefan Monnier <monnier@iro.umontreal.ca> | 396 | 2014-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. |