<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/modules, branch fix/not-defined-at-runtime</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>Fix module test to use ptrdiff_t nargs too</title>
<updated>2015-11-20T20:18:17+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-11-20T20:17:55+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=39d13206f3b37261bf4a2ebadfc1103414f4fd3e'/>
<id>39d13206f3b37261bf4a2ebadfc1103414f4fd3e</id>
<content type='text'>
* modules/mod-test/mod-test.c (Fmod_test_return_t)
(Fmod_test_sum, Fmod_test_signal, Fmod_test_throw)
(Fmod_test_non_local_exit_funcall, Fmod_test_globref_make)
(Fmod_test_string_a_to_b, Fmod_test_userptr_make)
(Fmod_test_userptr_get, Fmod_test_vector_fill)
(Fmod_test_vector_eq): Arg counts are ptrdiff_t, not int.
(finalizer): Remove; no longer used.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* modules/mod-test/mod-test.c (Fmod_test_return_t)
(Fmod_test_sum, Fmod_test_signal, Fmod_test_throw)
(Fmod_test_non_local_exit_funcall, Fmod_test_globref_make)
(Fmod_test_string_a_to_b, Fmod_test_userptr_make)
(Fmod_test_userptr_get, Fmod_test_vector_fill)
(Fmod_test_vector_eq): Arg counts are ptrdiff_t, not int.
(finalizer): Remove; no longer used.
</pre>
</div>
</content>
</entry>
<entry>
<title>Minor improvements in module test</title>
<updated>2015-11-20T11:37:25+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2015-11-20T11:37:25+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c0c309e4cd618ef660b04a13e5fc68c1a43031a6'/>
<id>c0c309e4cd618ef660b04a13e5fc68c1a43031a6</id>
<content type='text'>
* modules/mod-test/mod-test.c: Include stdlib.h, to avoid warnings
about missing prototype of malloc.
* modules/mod-test/Makefile (CFLAGS): Add -std=gnu99, to avoid
compiler warnings.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* modules/mod-test/mod-test.c: Include stdlib.h, to avoid warnings
about missing prototype of malloc.
* modules/mod-test/Makefile (CFLAGS): Add -std=gnu99, to avoid
compiler warnings.
</pre>
</div>
</content>
</entry>
<entry>
<title>Prefer signed integer types in module code</title>
<updated>2015-11-19T23:01:49+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-11-19T23:01:26+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=92949781eb0963fd1b25f1eec4e2d72d2c8ae32e'/>
<id>92949781eb0963fd1b25f1eec4e2d72d2c8ae32e</id>
<content type='text'>
Generally speaking, at the C level the Emacs source code prefers
signed types like ‘ptrdiff_t’ to unsigned types like ‘size_t’,
partly to avoid the usual signedness confusion when comparing values.
Change the module API to follow this convention.
Use ‘int’ for small values that can’t exceed INT_MAX.
* modules/mod-test/mod-test.c (Fmod_test_globref_make)
(Fmod_test_string_a_to_b, Fmod_test_vector_fill)
(Fmod_test_vector_eq):
* src/emacs-module.c (struct emacs_value_frame)
(module_make_global_ref, module_free_global_ref)
(module_copy_string_contents, module_make_string)
(module_vec_set, module_vec_get, module_vec_size):
* src/emacs-module.h (struct emacs_runtime, struct emacs_env_25):
* src/lread.c (suffix_p):
Prefer signed to unsigned integer types.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Generally speaking, at the C level the Emacs source code prefers
signed types like ‘ptrdiff_t’ to unsigned types like ‘size_t’,
partly to avoid the usual signedness confusion when comparing values.
Change the module API to follow this convention.
Use ‘int’ for small values that can’t exceed INT_MAX.
* modules/mod-test/mod-test.c (Fmod_test_globref_make)
(Fmod_test_string_a_to_b, Fmod_test_vector_fill)
(Fmod_test_vector_eq):
* src/emacs-module.c (struct emacs_value_frame)
(module_make_global_ref, module_free_global_ref)
(module_copy_string_contents, module_make_string)
(module_vec_set, module_vec_get, module_vec_size):
* src/emacs-module.h (struct emacs_runtime, struct emacs_env_25):
* src/lread.c (suffix_p):
Prefer signed to unsigned integer types.
</pre>
</div>
</content>
</entry>
<entry>
<title>Omit ‘const’ on locals</title>
<updated>2015-11-19T22:25:17+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-11-19T22:24:50+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=d9b300af5c7b07bd870046e73df53e19e860fdb9'/>
<id>d9b300af5c7b07bd870046e73df53e19e860fdb9</id>
<content type='text'>
Remove ‘const’ qualifier from locals that were newly added.
We don’t normally bother declaring locals with ‘const’ even
though they are not modified, for the same reason we don’t
bother declaring them with ‘register’ even though their
addresses are not taken; the advantage in compile-time
checking isn’t worth the loss of readability.
* modules/mod-test/mod-test.c (Fmod_test_non_local_exit_funcall)
(Fmod_test_vector_fill, Fmod_test_vector_eq):
* src/emacs-module.c (MODULE_SETJMP_1)
(module_make_global_ref, module_free_global_ref)
(module_non_local_exit_get, module_make_function)
(module_extract_integer, module_extract_float)
(module_get_user_ptr, module_set_user_ptr)
(module_get_user_finalizer, module_set_user_finalizer)
(module_vec_get, Fmodule_call)
(module_non_local_exit_signal_1)
(module_non_local_exit_throw_1, lisp_to_value)
(finalize_storage, allocate_emacs_value, mark_modules)
(module_handle_signal, module_handle_throw)
(module_format_fun_env):
* src/eval.c (push_handler, push_handler_nosignal)
(init_handler):
* src/lread.c (suffix_p):
Omit unnecessary ‘const’.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove ‘const’ qualifier from locals that were newly added.
We don’t normally bother declaring locals with ‘const’ even
though they are not modified, for the same reason we don’t
bother declaring them with ‘register’ even though their
addresses are not taken; the advantage in compile-time
checking isn’t worth the loss of readability.
* modules/mod-test/mod-test.c (Fmod_test_non_local_exit_funcall)
(Fmod_test_vector_fill, Fmod_test_vector_eq):
* src/emacs-module.c (MODULE_SETJMP_1)
(module_make_global_ref, module_free_global_ref)
(module_non_local_exit_get, module_make_function)
(module_extract_integer, module_extract_float)
(module_get_user_ptr, module_set_user_ptr)
(module_get_user_finalizer, module_set_user_finalizer)
(module_vec_get, Fmodule_call)
(module_non_local_exit_signal_1)
(module_non_local_exit_throw_1, lisp_to_value)
(finalize_storage, allocate_emacs_value, mark_modules)
(module_handle_signal, module_handle_throw)
(module_format_fun_env):
* src/eval.c (push_handler, push_handler_nosignal)
(init_handler):
* src/lread.c (suffix_p):
Omit unnecessary ‘const’.
</pre>
</div>
</content>
</entry>
<entry>
<title>Prefer intmax_t to int64_t in module code</title>
<updated>2015-11-19T22:04:00+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-11-19T22:03:29+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=68d58e69738db41061812b10f2f3f50b6a1b9aa0'/>
<id>68d58e69738db41061812b10f2f3f50b6a1b9aa0</id>
<content type='text'>
* modules/mod-test/mod-test.c (sum, Fmod_test_sum):
* src/emacs-module.c (module_extract_integer)
(module_make_integer):
* src/emacs-module.h (struct emacs_env_25):
Prefer intmax_t to int64_t.  This doesn’t change the generated
code on any of the machines Emacs currently ports to, but it’s
at least in theory more future-proof as C99 doesn’t guarantee
that int64_t exists.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* modules/mod-test/mod-test.c (sum, Fmod_test_sum):
* src/emacs-module.c (module_extract_integer)
(module_make_integer):
* src/emacs-module.h (struct emacs_env_25):
Prefer intmax_t to int64_t.  This doesn’t change the generated
code on any of the machines Emacs currently ports to, but it’s
at least in theory more future-proof as C99 doesn’t guarantee
that int64_t exists.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename module.c to emacs-module.c, etc.</title>
<updated>2015-11-19T21:51:24+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-11-19T21:50:23+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f2c002592196297a3517b3ed1f05c8ac7b096044'/>
<id>f2c002592196297a3517b3ed1f05c8ac7b096044</id>
<content type='text'>
* src/emacs-module.c: Rename from src/module.c.
* src/emacs-module.h: Rename from src/module.h.
All uses changed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/emacs-module.c: Rename from src/module.c.
* src/emacs-module.h: Rename from src/module.h.
All uses changed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Style fixes for indenting etc. in module code</title>
<updated>2015-11-19T19:32:21+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-11-19T19:31:45+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c8a972b0c3082edfcca4a85562224499f75bfe9b'/>
<id>c8a972b0c3082edfcca4a85562224499f75bfe9b</id>
<content type='text'>
This is mostly indenting and spacing changes.  Also, remove
some unnecessary static decls instead of bothering to reindent them.
* src/module.h (EMACS_EXTERN_C_BEGIN): Remove, and do this inline,
as most other Emacs files do for this sort of thing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is mostly indenting and spacing changes.  Also, remove
some unnecessary static decls instead of bothering to reindent them.
* src/module.h (EMACS_EXTERN_C_BEGIN): Remove, and do this inline,
as most other Emacs files do for this sort of thing.
</pre>
</div>
</content>
</entry>
<entry>
<title>Minor improvements in modules testing Makefile</title>
<updated>2015-11-19T17:49:29+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2015-11-19T17:49:29+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=7cd728c813f2c472a2f6a0cb0c3fb3ee46c9d8ad'/>
<id>7cd728c813f2c472a2f6a0cb0c3fb3ee46c9d8ad</id>
<content type='text'>
* modules/mod-test/Makefile (EMACS, SO): New variables.
(CFLAGS): When SO = dll, don't use -fPIC.
(check): New target, runs the test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* modules/mod-test/Makefile (EMACS, SO): New variables.
(CFLAGS): When SO = dll, don't use -fPIC.
(check): New target, runs the test.
</pre>
</div>
</content>
</entry>
<entry>
<title>Migrate modules/.gitignore into .gitignore</title>
<updated>2015-11-19T16:21:41+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-11-19T16:21:10+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=ca3bc790a76dd91d7063d13ba41b77ebc8bd2cb8'/>
<id>ca3bc790a76dd91d7063d13ba41b77ebc8bd2cb8</id>
<content type='text'>
* .gitignore: Add former contents of modules/.gitignore.
* modules/.gitignore: Remove.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* .gitignore: Add former contents of modules/.gitignore.
* modules/.gitignore: Remove.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add copyright notices to module code</title>
<updated>2015-11-19T16:14:51+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-11-19T16:14:00+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c8404f48a33ad39bca57e1442e23fc02573aed20'/>
<id>c8404f48a33ad39bca57e1442e23fc02573aed20</id>
<content type='text'>
Put them in the usual format for GNU Emacs copyright notices.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Put them in the usual format for GNU Emacs copyright notices.
</pre>
</div>
</content>
</entry>
</feed>
