<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/modules/mod-test, branch scratch/follow</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>More emacs-module.c fixes for wide ints</title>
<updated>2015-12-02T14:06:01+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2015-12-02T14:06:01+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=36dbe6fc3e141e5b4c87efec5026931b89f026a5'/>
<id>36dbe6fc3e141e5b4c87efec5026931b89f026a5</id>
<content type='text'>
* src/emacs-module.c (value_to_lisp) [WIDE_EMACS_INT]: Use
unsigned data types to manipulate pointers, to avoid sign
extension coming after us with a vengeance.

* modules/mod-test/test.el (mod-test-sum-test): Add tests for
Emacs with wide ints that verify integer values near the critical
value that requires us to switch to a cons cell.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/emacs-module.c (value_to_lisp) [WIDE_EMACS_INT]: Use
unsigned data types to manipulate pointers, to avoid sign
extension coming after us with a vengeance.

* modules/mod-test/test.el (mod-test-sum-test): Add tests for
Emacs with wide ints that verify integer values near the critical
value that requires us to switch to a cons cell.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix emacs-module.c for wide ints</title>
<updated>2015-12-01T18:34:12+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2015-12-01T18:34:12+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=bdebeb77a001fc4d9ee8392829cd7bc6cd11d7d1'/>
<id>bdebeb77a001fc4d9ee8392829cd7bc6cd11d7d1</id>
<content type='text'>
* src/emacs-module.c (lisp_to_value): Compare the produced value
with the original Lisp object, not with the one potentially
converted into a Lisp_Cons.  Fixes assertion violations when
working with integers larger than fit into a 32-bit value.

* modules/mod-test/test.el (mod-test-sum-test): Add tests for
large integers, to test --with-wide-int.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/emacs-module.c (lisp_to_value): Compare the produced value
with the original Lisp object, not with the one potentially
converted into a Lisp_Cons.  Fixes assertion violations when
working with integers larger than fit into a 32-bit value.

* modules/mod-test/test.el (mod-test-sum-test): Add tests for
large integers, to test --with-wide-int.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rely on conservative stack scanning to find "emacs_value"s</title>
<updated>2015-11-30T19:34:42+00:00</updated>
<author>
<name>Stefan Monnier</name>
</author>
<published>2015-11-30T19:34:42+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=3eb93c07f7a60ac9ce8a16f10c3afd5a3a31243a'/>
<id>3eb93c07f7a60ac9ce8a16f10c3afd5a3a31243a</id>
<content type='text'>
* src/emacs-module.c (struct emacs_value_tag)
(struct emacs_value_frame, struct emacs_value_storage): Remove.
(value_frame_size): Remove constant.
(struct emacs_env_private): Use Lisp_Object for non_local_exit info.
(lisp_to_value): Remove first arg.
(module_nil): New constant.
Use it instead of NULL when returning an emacs_value.
(module_make_function): Adjust to new calling convention of
Qinternal_module_call.
(DEFUN): Receive args in an array rather than a list.
Use SAFE_ALLOCA rather than xnmalloc.  Skip the lisp_to_value loop when
we don't have WIDE_EMACS_INT.  Adjust to new type of non_local_exit info.
(module_non_local_exit_signal_1, module_non_local_exit_throw_1):
Adjust to new type of non_local_exit info.
(ltv_mark) [WIDE_EMACS_INT]: New constant.
(value_to_lisp, lisp_to_value): Rewrite.
(initialize_frame, initialize_storage, finalize_storage): Remove functions.
(allocate_emacs_value): Remove function.
(mark_modules): Gut it.
(initialize_environment): Don't initialize storage any more.
Keep the actual env object on Vmodule_environments.
(finalize_environment): Don't finalize storage any more.
(syms_of_module): Initialize ltv_mark and module_nil.

* src/emacs-module.h (emacs_value): Make it more clear that this type
is really opaque, including the fact that NULL may not be valid.

* modules/mod-test/mod-test.c (Fmod_test_signal, Fmod_test_throw):
Don't assume that NULL is a valid emacs_value.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/emacs-module.c (struct emacs_value_tag)
(struct emacs_value_frame, struct emacs_value_storage): Remove.
(value_frame_size): Remove constant.
(struct emacs_env_private): Use Lisp_Object for non_local_exit info.
(lisp_to_value): Remove first arg.
(module_nil): New constant.
Use it instead of NULL when returning an emacs_value.
(module_make_function): Adjust to new calling convention of
Qinternal_module_call.
(DEFUN): Receive args in an array rather than a list.
Use SAFE_ALLOCA rather than xnmalloc.  Skip the lisp_to_value loop when
we don't have WIDE_EMACS_INT.  Adjust to new type of non_local_exit info.
(module_non_local_exit_signal_1, module_non_local_exit_throw_1):
Adjust to new type of non_local_exit info.
(ltv_mark) [WIDE_EMACS_INT]: New constant.
(value_to_lisp, lisp_to_value): Rewrite.
(initialize_frame, initialize_storage, finalize_storage): Remove functions.
(allocate_emacs_value): Remove function.
(mark_modules): Gut it.
(initialize_environment): Don't initialize storage any more.
Keep the actual env object on Vmodule_environments.
(finalize_environment): Don't finalize storage any more.
(syms_of_module): Initialize ltv_mark and module_nil.

* src/emacs-module.h (emacs_value): Make it more clear that this type
is really opaque, including the fact that NULL may not be valid.

* modules/mod-test/mod-test.c (Fmod_test_signal, Fmod_test_throw):
Don't assume that NULL is a valid emacs_value.
</pre>
</div>
</content>
</entry>
<entry>
<title>Spelling and grammar fixes</title>
<updated>2015-11-30T05:52:17+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-11-30T05:50:59+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=36649e0150fa7be91040b9d74009ccc085f8a363'/>
<id>36649e0150fa7be91040b9d74009ccc085f8a363</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update mod-test-sum-test</title>
<updated>2015-11-29T16:23:32+00:00</updated>
<author>
<name>Ken Brown</name>
</author>
<published>2015-11-29T16:23:32+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=ff21f455b71d9c566b8526e770632bac6c682f5d'/>
<id>ff21f455b71d9c566b8526e770632bac6c682f5d</id>
<content type='text'>
* modules/mod-test/test.el (mod-test-sum-test): Update to
accommodate the lack of dladdr on Cygwin.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* modules/mod-test/test.el (mod-test-sum-test): Update to
accommodate the lack of dladdr on Cygwin.
</pre>
</div>
</content>
</entry>
<entry>
<title>; * modules/mod-test/Makefile: Fix typo.</title>
<updated>2015-11-29T01:31:17+00:00</updated>
<author>
<name>Ken Brown</name>
</author>
<published>2015-11-29T01:31:17+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=0c517aa613cf1265dafd0d4cdc6edf9892803d2b'/>
<id>0c517aa613cf1265dafd0d4cdc6edf9892803d2b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add module tests for wrong-type-argument</title>
<updated>2015-11-27T11:11:00+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2015-11-27T11:11:00+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=8dcdca346f02ebb93feab9f9b8c9091bc39eb058'/>
<id>8dcdca346f02ebb93feab9f9b8c9091bc39eb058</id>
<content type='text'>
* modules/mod-test/test.el (mod-test-sum-test): Add tests for
wrong-type-argument.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* modules/mod-test/test.el (mod-test-sum-test): Add tests for
wrong-type-argument.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add one more mod-test test</title>
<updated>2015-11-24T19:13:46+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2015-11-24T19:13:46+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=33ec2ff0f8b77f3c10af395d3e8979508cd78c0a'/>
<id>33ec2ff0f8b77f3c10af395d3e8979508cd78c0a</id>
<content type='text'>
* modules/mod-test/test.el (mod-test-sum-test): Test the error
signaled when the function is invoked with a wrong number of
arguments.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* modules/mod-test/test.el (mod-test-sum-test): Test the error
signaled when the function is invoked with a wrong number of
arguments.
</pre>
</div>
</content>
</entry>
<entry>
<title>* modules/mod-test/mod-test.c (Fmod_test_sum): Verify there are 2 args.</title>
<updated>2015-11-24T19:08:22+00:00</updated>
<author>
<name>Philipp Stephani</name>
</author>
<published>2015-11-24T19:08:22+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=298b2b3f3520a6ad6dd9ae24fc8bd02a6ec9126e'/>
<id>298b2b3f3520a6ad6dd9ae24fc8bd02a6ec9126e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<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>
</feed>
