1. 12 Jun, 2017 9 commits
    • Philipp Stephani's avatar
      Use Autoconf to generate the test module Makefile · c90a97ad
      Philipp Stephani authored
      This makes it easier to pass compilation flags around.
      
      * configure.ac: Also build test module Makefile.
      
      * test/data/emacs-module/Makefile.in: New makefile template.
      
      * test/Makefile.in ($(test_module)): No longer necessary to pass
      @MODULES_SUFFIX@ around.
      
      * .gitignore: Test module Makefile can now be ignored.
      c90a97ad
    • Philipp Stephani's avatar
      Also compile test module as C11 · 909dfaf3
      Philipp Stephani authored
      * test/data/emacs-module/Makefile (CFLAGS): Compile test module as C11
      909dfaf3
    • Philipp Stephani's avatar
      Implement module assertions for users · cf971327
      Philipp Stephani authored
      Add a new command-line option '-module-assertions' that users can
      enable developing or debugging a module.  If this option is present,
      Emacs performs additional checks to verify that modules fulfill their
      requirements.  These checks are expensive and crash Emacs if modules
      are invalid, so disable them by default.
      
      This is a command-line option instead of an ordinary variable because
      changing it while Emacs is running would cause data structure
      imbalances.
      
      * src/emacs.c (main): New command line option '-module-assertions'.
      
      * src/emacs-module.c (module_assert_main_thread)
      (module_assert_runtime, module_assert_env, module_assert_value):
      New functions to assert module requirements.
      (syms_of_module): New uninterned variable 'module-runtimes'.
      (init_module_assertions, in_main_thread, module_abort): New helper
      functions.
      (initialize_environment): Initialize value list.  If assertions are
      enabled, use a heap-allocated environment object.
      (finalize_environment): Add assertion that environment list is never
      empty.
      (finalize_runtime_unwind): Pop module runtime object stack.
      (value_to_lisp): Assert that the value is valid.
      (lisp_to_value): Record new value if assertions are enabled.
      (mark_modules): Mark allocated object list.
      (MODULE_FUNCTION_BEGIN_NO_CATCH)
      (module_non_local_exit_check, module_non_local_exit_clear)
      (module_non_local_exit_get, module_non_local_exit_signal)
      (module_non_local_exit_throw): Assert thread and environment.
      (module_get_environment): Assert thread and runtime.
      (module_make_function, module_funcall, module_intern)
      (module_funcall, module_make_integer, module_make_float)
      (module_make_string, module_make_user_ptr, module_vec_get)
      (funcall_module, Fmodule_load): Adapt callers.
      (module_make_global_ref): If assertions are enabled, use the global
      environment to store global values.
      (module_free_global_ref): Remove value from global value list.
      
      * test/Makefile.in (EMACSOPT): Enable module assertions when testing
      modules.
      
      * test/data/emacs-module/mod-test.c (Fmod_test_invalid_store)
      (Fmod_test_invalid_load): New functions to test module assertions.
      (emacs_module_init): Bind the new functions.
      
      * test/src/emacs-module-tests.el (mod-test-emacs): New constant for
      the Emacs binary file.
      (mod-test-file): New constant for the test module file name.
      (module--test-assertions): New unit test.
      cf971327
    • Philipp Stephani's avatar
      emacs-module: Use __attribute__((nonnull)) · b49dd3b0
      Philipp Stephani authored
      Annotate all parameters with __attribute__((nonnull)) that may not be
      NULL.
      b49dd3b0
    • Philipp Stephani's avatar
      Explicitly require C11 or C++11 in emacs-module.h · 9dc6e93b
      Philipp Stephani authored
      We already implicitly require them by including stdbool.h.  Just make
      the error message a bit clearer, and remove an unnecessary version
      comparison.
      9dc6e93b
    • Philipp Stephani's avatar
      Add missing 'require' forms to prevent compiler warnings. · 3f89df5c
      Philipp Stephani authored
      * lisp/eshell/esh-ext.el (esh-arg, esh-proc): Add missing
      requirements.
      3f89df5c
    • Paul Eggert's avatar
      Merge from gnulib · 07ab8374
      Paul Eggert authored
      This incorporates:
      2017-06-11 getopt-posix: port to glibc 2.25.90
      2017-06-04 same-inode: port better to VMS 8.2 and later
      * doc/misc/texinfo.tex, lib/getopt-pfx-core.h, lib/getopt-pfx-ext.h:
      * m4/sys_types_h.m4: Copy from gnulib.
      07ab8374
    • Paul Eggert's avatar
      Remove Lisp_Misc_Float · bb534f6a
      Paul Eggert authored
      * src/data.c (Ftype_of): Do not worry about Lisp_Misc_Float.
      * src/lisp.h (Lisp_Misc_Float): Remove.  This placeholder has been
      unused for two decades; if we ever want to change floats to be a
      misc type we can bring it back then.
      bb534f6a
    • Paul Eggert's avatar
      Make two symbols private to emacs-module.c · d0ff364f
      Paul Eggert authored
      * src/lisp.h (allocate_module_function, XSET_MODULE_FUNCTION):
      Move from here ...
      * src/emacs-module.c: ... to here.
      d0ff364f
  2. 11 Jun, 2017 10 commits
    • Glenn Morris's avatar
      Merge from origin/emacs-25 · 3a63d808
      Glenn Morris authored
      da62c153 (origin/emacs-25) Improve the documentation of filesets
      3a63d808
    • Glenn Morris's avatar
      ; Merge from origin/emacs-25 · 933f91a3
      Glenn Morris authored
      The following commits were skipped:
      
      16ef7539 Don't advertise s_client in tls.el docs
      94a6c964 Remove s_client usage from tls.el
      933f91a3
    • Glenn Morris's avatar
      Merge from origin/emacs-25 · 030df01c
      Glenn Morris authored
      e80f6a21 Describe problems with Microsoft Intellipoint
      a73ec1ed More accurate documentation of the ':box' face attribute
      030df01c
    • Glenn Morris's avatar
      ; Merge from origin/emacs-25 · 30963b4e
      Glenn Morris authored
      The following commit was skipped:
      
      50b4f857 ; Bump Emacs version past 25.2
      30963b4e
    • Glenn Morris's avatar
      Merge from origin/emacs-25 · f5ea4efb
      Glenn Morris authored
      eaa00584 Improve documentation of 'gnutls-verify-error'
      908498cc ; etc/PROBLEMS: Describe GTK-related crashes on elementar...
      741daec6 ; Describe the problem with ksh when resizing shell window
      f5ea4efb
    • Michael Albinus's avatar
      Some further improvements for tramp-gvfs.el · 87958db4
      Michael Albinus authored
      * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name)
      (tramp-gvfs-get-file-attributes)
      (tramp-gvfs-maybe-open-connection): Handle davs? properly.
      (tramp-gvfs-handler-askquestion): Improve `yes-or-no-p' prompt.
      Show question also in batch mode.  Cache result.
      
      * test/lisp/net/tramp-tests.el (tramp-test24-file-name-completion):
      Support completion for host names and ports.
      87958db4
    • Simen Heggestøyl's avatar
      Fix highlighting of CSS selectors with double hyphens · ee051688
      Simen Heggestøyl authored
      * lisp/textmodes/css-mode.el (css--font-lock-keywords): Fix
      highlighting of selectors that contain double hyphens.  They would be
      mistaken for a variable.
      ee051688
    • Philipp Stephani's avatar
      Support threads in modules · 8160c7d9
      Philipp Stephani authored
      Rather than checking for the main thread, check for the current
      thread.
      
      * emacs-module.c (check_thread): New function.
      (MODULE_FUNCTION_BEGIN_NO_CATCH, module_get_environment)
      (module_non_local_exit_check, module_non_local_exit_clear)
      (module_non_local_exit_get, module_non_local_exit_signal)
      (module_non_local_exit_throw, module_is_not_nil, module_eq): Use it.
      8160c7d9
    • Philipp Stephani's avatar
      Allow non-local exits in module initializers · 9a86966e
      Philipp Stephani authored
      Previously signals, throws, and quits from module initialization
      functions were ignored.  These function aren't special, and better
      errors can be reported using signals than with the initialization
      return code, so allow non-local exits.
      
      * src/emacs-module.c (module_signal_or_throw): New helper function.
      (Fmodule_load, funcall_module): Use it.
      (Fmodule_load): Also allow quitting.
      9a86966e
    • Noam Postavsky's avatar
      Let eshell/sudo handle absolute command names (Bug#27167) · cf557fa9
      Noam Postavsky authored
      * lisp/eshell/esh-ext.el (eshell-find-interpreter): Don't change
      absolute paths into relative ones.
      cf557fa9
  3. 10 Jun, 2017 8 commits
  4. 09 Jun, 2017 1 commit
    • Philipp Stephani's avatar
      Give test files a -tests.el suffix · 39121649
      Philipp Stephani authored
      Rename a couple of test files that have the same name as the library
      they test.  This harmonizes the naming pattern and makes it possible
      to have the tests directories in the load path.
      39121649
  5. 08 Jun, 2017 4 commits
  6. 07 Jun, 2017 7 commits
  7. 06 Jun, 2017 1 commit
    • Glenn Morris's avatar
      More authors.el updates · 43885eac
      Glenn Morris authored
      * admin/authors.el (authors-obsolete-files-regexps)
      (authors-valid-file-names, authors-renamed-files-alist)
      (authors-renamed-files-regexps): Additions.
      43885eac