commit 5959b48ece0abe4639667c023da6363859088676 (HEAD, refs/remotes/origin/master) Author: Paul Eggert Date: Sun Dec 17 18:43:14 2017 -0800 Default CHECK_LISP_OBJECT_TYPE to "no" * configure.ac: Go back to not defining CHECK_LISP_OBJECT_TYPE by default for developer builds, since it is no longer that useful. We can make it a no-op entirely later, if in practice it's not that helpful to enable it. diff --git a/configure.ac b/configure.ac index 562b19afe6..ec1418b99e 100644 --- a/configure.ac +++ b/configure.ac @@ -900,10 +900,9 @@ AC_ARG_ENABLE([gcc-warnings], AC_ARG_ENABLE([check-lisp-object-type], [AS_HELP_STRING([--enable-check-lisp-object-type], - [Enable compile-time checks for the Lisp_Object data type, - which can catch some bugs during development. - The default is "no" if --enable-gcc-warnings is "no".])]) -if test "${enable_check_lisp_object_type-$gl_gcc_warnings}" != "no"; then + [Enable compile time checks for the Lisp_Object data type, + which can catch some bugs during development.])]) +if test "$enable_check_lisp_object_type" = yes; then AC_DEFINE([CHECK_LISP_OBJECT_TYPE], 1, [Define to enable compile-time checks for the Lisp_Object data type.]) fi diff --git a/etc/NEWS b/etc/NEWS index 1382f96a37..1ab1930ea7 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -38,6 +38,13 @@ interpreter or modules that it uses. If your platform supports it you can enable it when configuring, e.g., './configure CFLAGS="-g3 -O2 -mmpx -fcheck-pointer-bounds"' on Intel MPX platforms. +** Emacs now normally uses a pointer type instead of an integer type +for the fundamental word in the Emacs Lisp interpreter, to help +catch typos and support -fcheck-pointer-bounds. The 'configure' +option --enable-check-lisp-object-type is therefore no longer as +useful and so is no longer enabled by default in developer builds, +to reduce differences between developer and production builds. + * Startup Changes in Emacs 27.1 commit b4486de0c6484a09dcd6485c19062419279ca296 Author: Michael Albinus Date: Sun Dec 17 11:31:23 2017 +0100 Minor fixes in Tramp * lisp/net/tramp-archive.el (tramp-archive-handle-temporary-file-directory): New defun. (tramp-archive-file-name-handler-alist): Use it. * test/lisp/net/tramp-archive-tests.el (tramp-archive-test99-libarchive-tests): Rename it. * test/lisp/net/tramp-tests.el (tramp-test34-vc-registered): Skip for older Emacsen. diff --git a/lisp/net/tramp-archive.el b/lisp/net/tramp-archive.el index cfd68fb836..d3b2712fb3 100644 --- a/lisp/net/tramp-archive.el +++ b/lisp/net/tramp-archive.el @@ -245,7 +245,7 @@ It must be supported by libarchive(3).") (shell-command . tramp-archive-handle-not-implemented) (start-file-process . tramp-archive-handle-not-implemented) ;; `substitute-in-file-name' performed by default handler. - ;; `temporary-file-directory' performed by default handler. + (temporary-file-directory . tramp-archive-handle-temporary-file-directory) (unhandled-file-name-directory . ignore) (vc-registered . ignore) (verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime) @@ -530,6 +530,14 @@ offered." (load (tramp-archive-gvfs-file-name file) noerror nomessage nosuffix must-suffix)) +(defun tramp-archive-handle-temporary-file-directory () + "Like `temporary-file-directory' for Tramp files." + ;; If the default directory, the file archive, is located on a + ;; mounted directory, it is returned as it. Not what we want. + (with-parsed-tramp-archive-file-name default-directory nil + (let ((default-directory (file-name-directory archive))) + (temporary-file-directory)))) + (defun tramp-archive-handle-not-implemented (operation &rest args) "Generic handler for operations not implemented for file archives." (let ((v (ignore-errors diff --git a/test/lisp/net/tramp-archive-tests.el b/test/lisp/net/tramp-archive-tests.el index 2c9f56e47c..464eb6c8b8 100644 --- a/test/lisp/net/tramp-archive-tests.el +++ b/test/lisp/net/tramp-archive-tests.el @@ -19,6 +19,9 @@ ;;; Code: +;; The `tramp-archive-testnn-*' tests correspond to the respective +;; tests in tramp-tests.el. + (require 'ert) (require 'tramp-archive) @@ -206,6 +209,7 @@ variables, so we check the Emacs version directly." This checks also `file-name-as-directory', `file-name-directory', `file-name-nondirectory' and `unhandled-file-name-directory'." (skip-unless tramp-gvfs-enabled) + (should (string-equal (directory-file-name "/foo.tar/path/to/file") "/foo.tar/path/to/file")) @@ -734,7 +738,7 @@ This tests also `file-executable-p', `file-writable-p' and `set-file-modes'." (zerop (nth 1 fsi)) (zerop (nth 2 fsi)))))) -(ert-deftest tramp-archive-test41-libarchive-tests () +(ert-deftest tramp-archive-test99-libarchive-tests () "Run tests of libarchive test files." :tags '(:expensive-test) (skip-unless tramp-gvfs-enabled) diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el index 41687e41c8..5a52059158 100644 --- a/test/lisp/net/tramp-tests.el +++ b/test/lisp/net/tramp-tests.el @@ -3783,11 +3783,9 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'." (vc-register (list (car vc-handled-backends) (list (file-name-nondirectory tmp-name2)))) - ;; `vc-register' has changed its arguments in Emacs 25.1. - (error - (vc-register - nil (list (car vc-handled-backends) - (list (file-name-nondirectory tmp-name2)))))) + ;; `vc-register' has changed its arguments in Emacs + ;; 25.1. Let's skip it for older Emacsen. + (error (skip-unless (>= emacs-major-version 25)))) ;; vc-git uses an own process sentinel, Tramp's sentinel ;; for flushing the cache isn't used. (dired-uncache (concat (file-remote-p default-directory) "/"))