<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/src/emacs-module.c, branch feature/mhtml-mode</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Use float instead of Lisp_Object for rehash_size</title>
<updated>2017-02-21T23:39:17+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2017-02-21T23:31:29+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=83c9c6fc1cc943f239a021b42a8ca9b0e162198c'/>
<id>83c9c6fc1cc943f239a021b42a8ca9b0e162198c</id>
<content type='text'>
* src/alloc.c (purecopy_hash_table):
* src/fns.c (maybe_resize_hash_table, Fmake_hash_table):
(Fhash_table_rehash_size):
* src/lisp.h (struct Lisp_Hash_Table.rehash_size):
The rehash_size member of struct Lisp_Hash_Table is now a
float, not a Lisp_Object.
* src/alloc.c (purecopy_hash_table): Assign members in order.
* src/fns.c (make_hash_table): Use EMACS_INT for size and
float for rehash_size, instead of Lisp_Object for both.
All callers changed.
* src/lisp.h (DEFAULT_REHASH_SIZE): Now float, not double,
and 1 smaller.
* src/print.c (print_object): Simplify by calling
Fhash_table_rehash_size and Fhash_table_rehash_threshold.
Avoid unnecessary NILP.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/alloc.c (purecopy_hash_table):
* src/fns.c (maybe_resize_hash_table, Fmake_hash_table):
(Fhash_table_rehash_size):
* src/lisp.h (struct Lisp_Hash_Table.rehash_size):
The rehash_size member of struct Lisp_Hash_Table is now a
float, not a Lisp_Object.
* src/alloc.c (purecopy_hash_table): Assign members in order.
* src/fns.c (make_hash_table): Use EMACS_INT for size and
float for rehash_size, instead of Lisp_Object for both.
All callers changed.
* src/lisp.h (DEFAULT_REHASH_SIZE): Now float, not double,
and 1 smaller.
* src/print.c (print_object): Simplify by calling
Fhash_table_rehash_size and Fhash_table_rehash_threshold.
Avoid unnecessary NILP.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid aborts during loadup</title>
<updated>2017-02-19T16:32:51+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2017-02-19T16:32:51+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b36f8a4d350735006293e01ab87208b579e67bf6'/>
<id>b36f8a4d350735006293e01ab87208b579e67bf6</id>
<content type='text'>
* src/emacs-module.c (syms_of_module):
* src/image.c (xpm_make_color_table_h): Update calls to
make_hash_table to adjust to a recent change in fns.c.
* src/fns.c (make_hash_table):
* src/lisp.h (make_hash_table): 4th arg is now of type double.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/emacs-module.c (syms_of_module):
* src/image.c (xpm_make_color_table_h): Update calls to
make_hash_table to adjust to a recent change in fns.c.
* src/fns.c (make_hash_table):
* src/lisp.h (make_hash_table): 4th arg is now of type double.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix hash tables not being purified correctly.</title>
<updated>2017-01-30T06:33:23+00:00</updated>
<author>
<name>Vibhav Pant</name>
</author>
<published>2017-01-30T06:33:23+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=9c4dfdd1af9f97c6a8d7e922b68a39052116790c'/>
<id>9c4dfdd1af9f97c6a8d7e922b68a39052116790c</id>
<content type='text'>
* src/alloc.c
(purecopy_hash_table) New function, makes a copy of the given hash
table in pure storage.
Add new struct `pinned_object' and `pinned_objects' linked list for
pinning objects.
(Fpurecopy) Allow purifying hash tables
(purecopy) Pin hash tables that are either weak or not declared with
`:purecopy t`, use purecopy_hash_table otherwise.
(marked_pinned_objects) New function, marks all objects in pinned_objects.
(garbage_collect_1) Use it. Mark all pinned objects before sweeping.
* src/lisp.h Add new field `pure' to struct `Lisp_Hash_Table'.
* src/fns.c: Add `purecopy' parameter to hash tables.
(Fmake_hash_table): Check for a `:purecopy PURECOPY' argument, pass it
to make_hash_table.
(make_hash_table): Add `pure' parameter, set h-&gt;pure to it.
(Fclrhash, Fremhash, Fputhash): Enforce that the table is impure with
CHECK_IMPURE.
* src/lread.c: (read1) Parse for `purecopy' parameter while reading
  hash tables.
* src/print.c: (print_object) add the `purecopy' parameter while
  printing hash tables.
* src/category.c, src/emacs-module.c, src/image.c, src/profiler.c,
  src/xterm.c: Use new (make_hash_table).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/alloc.c
(purecopy_hash_table) New function, makes a copy of the given hash
table in pure storage.
Add new struct `pinned_object' and `pinned_objects' linked list for
pinning objects.
(Fpurecopy) Allow purifying hash tables
(purecopy) Pin hash tables that are either weak or not declared with
`:purecopy t`, use purecopy_hash_table otherwise.
(marked_pinned_objects) New function, marks all objects in pinned_objects.
(garbage_collect_1) Use it. Mark all pinned objects before sweeping.
* src/lisp.h Add new field `pure' to struct `Lisp_Hash_Table'.
* src/fns.c: Add `purecopy' parameter to hash tables.
(Fmake_hash_table): Check for a `:purecopy PURECOPY' argument, pass it
to make_hash_table.
(make_hash_table): Add `pure' parameter, set h-&gt;pure to it.
(Fclrhash, Fremhash, Fputhash): Enforce that the table is impure with
CHECK_IMPURE.
* src/lread.c: (read1) Parse for `purecopy' parameter while reading
  hash tables.
* src/print.c: (print_object) add the `purecopy' parameter while
  printing hash tables.
* src/category.c, src/emacs-module.c, src/image.c, src/profiler.c,
  src/xterm.c: Use new (make_hash_table).
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge from origin/emacs-25</title>
<updated>2017-01-01T09:10:47+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2017-01-01T09:10:47+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=bcf244ef9be0fe61f4b9a48d3412b2c8a9f1edb9'/>
<id>bcf244ef9be0fe61f4b9a48d3412b2c8a9f1edb9</id>
<content type='text'>
2e2a806 Fix copyright years by hand
5badc81 Update copyright year to 2017
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
2e2a806 Fix copyright years by hand
5badc81 Update copyright year to 2017
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright year to 2017</title>
<updated>2017-01-01T03:42:26+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2017-01-01T03:14:01+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=5badc81c1cdfbb261ad3e6d1b753defb15712f26'/>
<id>5badc81c1cdfbb261ad3e6d1b753defb15712f26</id>
<content type='text'>
Run admin/update-copyright.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Run admin/update-copyright.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename main_thread to main_thread_id and simplify</title>
<updated>2016-12-30T21:05:25+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2016-12-30T21:01:39+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=966d51592f07ad9de6afebcd828e667cce0f6a27'/>
<id>966d51592f07ad9de6afebcd828e667cce0f6a27</id>
<content type='text'>
* src/emacs-module.c: Include syssignal.h, for main_thread_id.
[HAVE_PTHREAD]: Do not include pthread.h.
(main_thread): Remove.  All uses replaced by main_thread_id,
or by dwMainThreadId on NT.  Since the HAVE_PTHREAD code is now using
the main_thread_id established by sysdep.c, there is no need for a
separate copy of the main thread ID here.
(module_init): Remove.  All uses removed.
* src/sysdep.c (main_thread_id) [HAVE_PTHREAD]:
Rename from main_thread.  All uses changed.  Now extern.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/emacs-module.c: Include syssignal.h, for main_thread_id.
[HAVE_PTHREAD]: Do not include pthread.h.
(main_thread): Remove.  All uses replaced by main_thread_id,
or by dwMainThreadId on NT.  Since the HAVE_PTHREAD code is now using
the main_thread_id established by sysdep.c, there is no need for a
separate copy of the main thread ID here.
(module_init): Remove.  All uses removed.
* src/sysdep.c (main_thread_id) [HAVE_PTHREAD]:
Rename from main_thread.  All uses changed.  Now extern.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge from origin/emacs-25</title>
<updated>2016-11-19T22:31:05+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2016-11-19T22:31:05+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c61ee94959ba96b2a327df0684593f7e569e30be'/>
<id>c61ee94959ba96b2a327df0684593f7e569e30be</id>
<content type='text'>
4af5981 Add a comment in generated refcards about the source
ef880a5 ; * etc/refcards/calccard.tex: Remove obsolete comment.
4887e7c js-mode: Fix indent problem after a regexp
e992ac0 Fix sluggish display of symbols in UTF-8 language environment
1fc101b Don't confuse how Texinfo outputs @var with the input
91aa5d1 * doc/lispref/display.texi (Scroll Bars): * doc/lispref/frame...
f758fcd * doc/emacs/cmdargs.texi (Initial Options): Copyedit for --da...
5b0cddd More fixes in copyright notices in etc/refcards/
f994c20 Update copyright text in refcards
9ad2ae7 Fix Outline command names
26c3554 Send text received by bracketed paste to process
db0b58d Correct the statement about programming modes always running ...
78aece4 Improve documentation of 'occur'
eb364fd Do call debugger on failed cl-assert
3ef4ee8 Avoid infloop in python
8da810f Don't refer to obsolete FEATURE-unload-hook
4f478ca Improve documentation of dabbrevs
7272e5d * lisp/chistory.el (list-command-history): Doc fix.  (Bug#24890)
89b7482 * lisp/simple.el (set-mark-command): Doc fix.  (Bug#24890)
3b199f7 Improve documentation of some Help commands
93d3a0e Fix documentation of yes-or-no prompts
af04919 Fix documentation of partial completion style
ed80184 Fix documentation of the mode line on emacsclient frames
e6be855 Fix description of 'C-z' in User manual
16f7007 Improve and clarify documentation of Outline Mode
31d93aa Add Emacs version number to nt/README.W32
0b6b815 Fix python-mode hideshow regexp
dc152c5 Modernize usage of 'macOS' in doc and comments
84c5343 Prefer comments /* like this */ in C code
bb61e50 * doc/lispref/loading.texi (Autoload): Better link (Bug#24845).
3ef86fd Clarify documentation of face attribute functions
de51d59 ; * nt/README.W32: Minor copyedits.
db436e9 Don't call debug on failed cl-assert

# Conflicts:
#	doc/emacs/cmdargs.texi
#	etc/NEWS
#	etc/PROBLEMS
#	lisp/auth-source.el
#	lisp/net/tramp-sh.el
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
4af5981 Add a comment in generated refcards about the source
ef880a5 ; * etc/refcards/calccard.tex: Remove obsolete comment.
4887e7c js-mode: Fix indent problem after a regexp
e992ac0 Fix sluggish display of symbols in UTF-8 language environment
1fc101b Don't confuse how Texinfo outputs @var with the input
91aa5d1 * doc/lispref/display.texi (Scroll Bars): * doc/lispref/frame...
f758fcd * doc/emacs/cmdargs.texi (Initial Options): Copyedit for --da...
5b0cddd More fixes in copyright notices in etc/refcards/
f994c20 Update copyright text in refcards
9ad2ae7 Fix Outline command names
26c3554 Send text received by bracketed paste to process
db0b58d Correct the statement about programming modes always running ...
78aece4 Improve documentation of 'occur'
eb364fd Do call debugger on failed cl-assert
3ef4ee8 Avoid infloop in python
8da810f Don't refer to obsolete FEATURE-unload-hook
4f478ca Improve documentation of dabbrevs
7272e5d * lisp/chistory.el (list-command-history): Doc fix.  (Bug#24890)
89b7482 * lisp/simple.el (set-mark-command): Doc fix.  (Bug#24890)
3b199f7 Improve documentation of some Help commands
93d3a0e Fix documentation of yes-or-no prompts
af04919 Fix documentation of partial completion style
ed80184 Fix documentation of the mode line on emacsclient frames
e6be855 Fix description of 'C-z' in User manual
16f7007 Improve and clarify documentation of Outline Mode
31d93aa Add Emacs version number to nt/README.W32
0b6b815 Fix python-mode hideshow regexp
dc152c5 Modernize usage of 'macOS' in doc and comments
84c5343 Prefer comments /* like this */ in C code
bb61e50 * doc/lispref/loading.texi (Autoload): Better link (Bug#24845).
3ef86fd Clarify documentation of face attribute functions
de51d59 ; * nt/README.W32: Minor copyedits.
db436e9 Don't call debug on failed cl-assert

# Conflicts:
#	doc/emacs/cmdargs.texi
#	etc/NEWS
#	etc/PROBLEMS
#	lisp/auth-source.el
#	lisp/net/tramp-sh.el
</pre>
</div>
</content>
</entry>
<entry>
<title>Prefer comments /* like this */ in C code</title>
<updated>2016-11-06T03:42:10+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2016-11-06T03:41:37+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=84c53436ab25b6c8f76c133e59b34e533ea33cc7'/>
<id>84c53436ab25b6c8f76c133e59b34e533ea33cc7</id>
<content type='text'>
Emacs C code assumes C99 features, but has long used traditional
comments /* like this */ instead of C99-style comments // like this.
Stick with traditional comments for now, partly for style, partly as
it may be safer with compilers that are not fully in C99 mode.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Emacs C code assumes C99 features, but has long used traditional
comments /* like this */ instead of C99-style comments // like this.
Stick with traditional comments for now, partly for style, partly as
it may be safer with compilers that are not fully in C99 mode.
</pre>
</div>
</content>
</entry>
<entry>
<title>Limit &lt;config.h&gt;’s includes</title>
<updated>2016-09-30T19:38:52+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2016-09-30T19:14:04+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f4eb8900295d75c4afec256f75aea22494376fde'/>
<id>f4eb8900295d75c4afec256f75aea22494376fde</id>
<content type='text'>
This follows up on recent problems with the fact that config.h
includes stdlib.h etc.; some files need to include stdlib.h later.
config.h generally should limit itself to includes that are
universally safe; outside of MS-Windows, only stdbool.h makes
the cut among the files currently included.  So, move the
other includes to just the files that need them (Bug#24506).
* configure.ac (config_opsysfile): Remove, as this generic hook
is no longer needed.
* lib-src/etags.c, src/unexmacosx.c, src/w32.c, src/w32notify.c:
* src/w32proc.c (_GNU_SOURCE):
Remove, as it’s OK for config.h to do this now.
* src/conf_post.h: Include &lt;ms-w32.h&gt;, instead of the generic
config_opsysfile, for simplicity as this old way of configuring is
now done only for the MS-Windows port.  Do not include &lt;ms-w32.h&gt;
if DEFER_MS_W32_H, for the benefit of the few files that want its
effects later.  Do not include &lt;alloca.h&gt;, &lt;string.h&gt;, or
&lt;stdlib.h&gt;.  Other files modified to include these headers as
needed, or to not include headers that are no longer needed.
* src/lisp.h: Include &lt;alloca.h&gt; and &lt;string.h&gt; here, since
some of the inline functions need them.
* src/regex.c: Include &lt;alloca.h&gt; if not emacs.  (If emacs,
we can rely on SAFE_ALLOCA.)  There is no longer any need to
worry about HAVE_ALLOCA_H.
* src/unexmacosx.c: Rely on config.h not including stdlib.h.
* src/w32.c, src/w32notify.c, src/w32proc.c (DEFER_MS_W32_H):
Define before including &lt;config.h&gt; first, and include &lt;ms-w32.h&gt;
after the troublesome headers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This follows up on recent problems with the fact that config.h
includes stdlib.h etc.; some files need to include stdlib.h later.
config.h generally should limit itself to includes that are
universally safe; outside of MS-Windows, only stdbool.h makes
the cut among the files currently included.  So, move the
other includes to just the files that need them (Bug#24506).
* configure.ac (config_opsysfile): Remove, as this generic hook
is no longer needed.
* lib-src/etags.c, src/unexmacosx.c, src/w32.c, src/w32notify.c:
* src/w32proc.c (_GNU_SOURCE):
Remove, as it’s OK for config.h to do this now.
* src/conf_post.h: Include &lt;ms-w32.h&gt;, instead of the generic
config_opsysfile, for simplicity as this old way of configuring is
now done only for the MS-Windows port.  Do not include &lt;ms-w32.h&gt;
if DEFER_MS_W32_H, for the benefit of the few files that want its
effects later.  Do not include &lt;alloca.h&gt;, &lt;string.h&gt;, or
&lt;stdlib.h&gt;.  Other files modified to include these headers as
needed, or to not include headers that are no longer needed.
* src/lisp.h: Include &lt;alloca.h&gt; and &lt;string.h&gt; here, since
some of the inline functions need them.
* src/regex.c: Include &lt;alloca.h&gt; if not emacs.  (If emacs,
we can rely on SAFE_ALLOCA.)  There is no longer any need to
worry about HAVE_ALLOCA_H.
* src/unexmacosx.c: Rely on config.h not including stdlib.h.
* src/w32.c, src/w32notify.c, src/w32proc.c (DEFER_MS_W32_H):
Define before including &lt;config.h&gt; first, and include &lt;ms-w32.h&gt;
after the troublesome headers.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve integer overflow handling a bit</title>
<updated>2016-09-24T09:35:29+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2016-09-24T09:35:13+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b3e1b382456b0f7d108c57d6f902bbddfdd97b2a'/>
<id>b3e1b382456b0f7d108c57d6f902bbddfdd97b2a</id>
<content type='text'>
* src/charset.c (read_hex): Use INT_LEFT_SHIFT_OVERFLOW for clarity.
The machine code is the same on my platform.
* src/doprnt.c (doprnt):
* src/emacs-module.c (module_funcall):
* src/font.c (font_intern_prop):
* src/keyboard.c (Frecursion_depth):
* src/lread.c (read1):
Use WRAPV macros instead of checking overflow by hand.
* src/editfns.c (hi_time, time_arith, decode_time_components):
* src/emacs-module.c (Fmodule_load):
Simplify by using FIXNUM_OVERFLOW_P.
* src/emacs-module.c: Include intprops.h.
* src/xdisp.c (percent99): New function.
(decode_mode_spec): Use it to simplify overflow avoidance and
formatting of %p and %P.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/charset.c (read_hex): Use INT_LEFT_SHIFT_OVERFLOW for clarity.
The machine code is the same on my platform.
* src/doprnt.c (doprnt):
* src/emacs-module.c (module_funcall):
* src/font.c (font_intern_prop):
* src/keyboard.c (Frecursion_depth):
* src/lread.c (read1):
Use WRAPV macros instead of checking overflow by hand.
* src/editfns.c (hi_time, time_arith, decode_time_components):
* src/emacs-module.c (Fmodule_load):
Simplify by using FIXNUM_OVERFLOW_P.
* src/emacs-module.c: Include intprops.h.
* src/xdisp.c (percent99): New function.
(decode_mode_spec): Use it to simplify overflow avoidance and
formatting of %p and %P.
</pre>
</div>
</content>
</entry>
</feed>
