| Commit message (Expand) | Author | Age | Files | Lines |
* | Rework C source files to avoid ^(...Work around Bug#22884 by rewording comments and strings to avoid ‘(’
at the start of a line unless it starts a function. This change
is a short-term hack; in the longer run we plan to fix cc-mode’s
performance for C files that have ‘(’ at the start of a line in a
comment or string.
| Paul Eggert | 2016-03-10 | 1 | -2/+2 |
* | Update copyright year to 2016...Run admin/update-copyright.
| Paul Eggert | 2016-01-01 | 3 | -3/+3 |
* | Port mod-test to 32-bit Emacs --without-wide-int...* modules/mod-test/test.el (mod-test-sum-test):
Bring back the 2**29 tests, but port them to 32-bit Emacs
--without-wide-int.
| Paul Eggert | 2015-12-06 | 1 | -0/+5 |
* | Port mod-test to x86-64 GNU/Linux running 32-bit...* modules/mod-test/test.el (mod-test-sum-test):
Don’t attempt to match descriptions to operating systems.
It didn’t work on Fedora x86-64 running a 32-bit executable,
and it’s not worth the trouble anyway.
Port to 32-bit platforms by removing an assumption about
fixnum widths.
| Paul Eggert | 2015-12-06 | 1 | -9/+7 |
* | More emacs-module.c fixes for wide ints...* 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.
| Eli Zaretskii | 2015-12-02 | 1 | -1/+6 |
* | Fix emacs-module.c for wide ints...* 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.
| Eli Zaretskii | 2015-12-01 | 1 | -1/+5 |
* | Rely on conservative stack scanning to find "emacs_value"s...* 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.
| Stefan Monnier | 2015-11-30 | 1 | -2/+2 |
* | Spelling and grammar fixes | Paul Eggert | 2015-11-29 | 1 | -1/+1 |
* | Update mod-test-sum-test...* modules/mod-test/test.el (mod-test-sum-test): Update to
accommodate the lack of dladdr on Cygwin.
| Ken Brown | 2015-11-29 | 1 | -1/+3 |
* | ; * modules/mod-test/Makefile: Fix typo. | Ken Brown | 2015-11-28 | 1 | -1/+1 |
* | Add module tests for wrong-type-argument...* modules/mod-test/test.el (mod-test-sum-test): Add tests for
wrong-type-argument.
| Eli Zaretskii | 2015-11-27 | 1 | -1/+3 |
* | Add one more mod-test test...* modules/mod-test/test.el (mod-test-sum-test): Test the error
signaled when the function is invoked with a wrong number of
arguments.
| Eli Zaretskii | 2015-11-24 | 1 | -1/+11 |
* | * modules/mod-test/mod-test.c (Fmod_test_sum): Verify there are 2 args. | Philipp Stephani | 2015-11-24 | 1 | -0/+2 |
* | Fix module test to use ptrdiff_t nargs too...* 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.
| Paul Eggert | 2015-11-20 | 1 | -20/+18 |
* | Minor improvements in module test...* 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.
| Eli Zaretskii | 2015-11-20 | 2 | -2/+3 |
* | Prefer signed integer types in module code...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.
| Paul Eggert | 2015-11-19 | 1 | -7/+7 |
* | Omit ‘const’ on locals...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’.
| Paul Eggert | 2015-11-19 | 1 | -5/+5 |
* | Prefer intmax_t to int64_t in module code...* 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.
| Paul Eggert | 2015-11-19 | 1 | -4/+5 |
* | Rename module.c to emacs-module.c, etc....* src/emacs-module.c: Rename from src/module.c.
* src/emacs-module.h: Rename from src/module.h.
All uses changed.
| Paul Eggert | 2015-11-19 | 1 | -1/+1 |
* | Style fixes for indenting etc. in module code...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.
| Paul Eggert | 2015-11-19 | 2 | -99/+94 |
* | Minor improvements in modules testing Makefile...* modules/mod-test/Makefile (EMACS, SO): New variables.
(CFLAGS): When SO = dll, don't use -fPIC.
(check): New target, runs the test.
| Eli Zaretskii | 2015-11-19 | 1 | -4/+16 |
* | Add copyright notices to module code...Put them in the usual format for GNU Emacs copyright notices.
| Paul Eggert | 2015-11-19 | 3 | -3/+55 |
* | Rename emacs_module.h to module.h...* src/module.h: Rename from src/emacs_module.h.
All uses changed.
| Paul Eggert | 2015-11-19 | 1 | -1/+1 |
* | Add dynamic module test and helper script...Add 'modhelp.py' script (python2) to automate module testing and
module generation.
To build and test all modules in the modules/ dir
$ ./modhelp.py test
To generate a module from template code (good starting point)
$ ./modhelp init mynewtestmodule
See the script -h option for more documentation.
* modules/modhelp.py: New module helper script.
* modules/mod-test/Makefile: New file. Makefile for the test module.
* modules/mod-test/mod-test.c: New file. Test module source file.
* modules/mod-test/test.el: New file. ert test suite for the test module.
* modules/.gitignore: New file. Local .gitignore file.
Co-authored-by: Philipp Stephani <phst@google.com>
| Aurélien Aptel | 2015-11-18 | 3 | -0/+360 |