Subject: bug#23949: 25.0.95; Regression in handling error caused by (string-match-p "." nil)

From: Kaushal Modi <[email-masked]>
Date: Mon, 11 Jul 2016 20:12:10 +0000

As I do not understand the true nature of this bug, the title of this
debbugs could be confusing. Please read the below in entirety.

Related discussion is also on emacs-devel:
https://lists.gnu.org/archive/html/emacs-devel/2016-07/msg00519.html

Evaluating the below in emacs 24.5 emacs -Q results in the below error
backtrace as expected:

=====
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  string-match("." nil nil)
  string-match-p("." nil)
  (progn (require (quote package)) (if (member (quote ("melpa" . "
http://melpa.org/packages/")) package-archives) package-archives (setq
package-archives (append package-archives (list (quote ("melpa" . "
http://melpa.org/packages/")))))) (package-initialize)
(package-refresh-contents) (package-install (quote projectile)) (require
(quote projectile)) (projectile-global-mode) (string-match-p "." nil))
  eval((progn (require (quote package)) (if (member (quote ("melpa" . "
http://melpa.org/packages/")) package-archives) package-archives (setq
package-archives (append package-archives (list (quote ("melpa" . "
http://melpa.org/packages/")))))) (package-initialize)
(package-refresh-contents) (package-install (quote projectile)) (require
(quote projectile)) (projectile-global-mode) (string-match-p "." nil)) nil)
  eval-last-sexp-1(nil)
  eval-last-sexp(nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)
=====

Minimal code to reproduce the issue:
=====
(progn
  (require 'package)
  (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/")
t)
  (package-initialize)
  (package-refresh-contents)
  (package-install 'projectile)

  (require 'projectile)
  (projectile-global-mode)
  (string-match-p "." nil))
=====

But evaluating the same on emacs-25 build results in:

=====
Entering debugger...
help-function-arglist: End of file during parsing
=====

Also evaluating the above after M-x toggle-debug-on-error does not give a
backtrace on the "help-function-arglist: End of file during parsing" error.

This is a regression from how the actual error (wrong-type-argument stringp
nil) backtrace showed up correctly on emacs 24.5 but is giving confusing
and difficult to debug error on emacs-25.

emacs-25 build info:

In GNU Emacs 25.0.95.11 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.23)
 of 2016-06-29 built on ulcf41.cld.analog.com
Repository revision: 6192b6c3a4374b2cb6e02ca865e1899a04a7f7dc
Windowing system distributor 'The X.Org Foundation', version 11.0.60900000
System Description: Red Hat Enterprise Linux Workstation release 6.6
(Santiago)

Configured using:
 'configure --with-modules
 --prefix=/home/kmodi/usr_local/apps/6/emacs/emacs-25
 'CPPFLAGS=-fgnu89-inline -I/home/kmodi/usr_local/6/include
 -I/usr/include/freetype2 -I/usr/include' 'CFLAGS=-ggdb3 -O0'
 'CXXFLAGS=-ggdb3 -O0' 'LDFLAGS=-L/home/kmodi/usr_local/6/lib
 -L/home/kmodi/usr_local/6/lib64 -ggdb3'
 PKG_CONFIG_PATH=/home/kmodi/usr_local/6/lib/pkgconfig:/home/kmodi/usr_local/6/lib64/pkgconfig:/cad/adi/apps/gnu/linux/x86_64/6/lib/pkgconfig:/cad/adi/apps/gnu/linux/x86_64/6/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig:/lib64/pkgconfig'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK2 X11 MODULES

-- 

-- 
Kaushal Modi