diff options
Diffstat (limited to 'admin')
-rw-r--r-- | admin/CPP-DEFINES | 45 | ||||
-rw-r--r-- | admin/MAINTAINERS | 7 | ||||
-rw-r--r-- | admin/admin.el | 13 | ||||
-rw-r--r-- | admin/authors.el | 6 | ||||
-rw-r--r-- | admin/charsets/Makefile.in | 23 | ||||
-rw-r--r-- | admin/charsets/eucjp-ms.awk | 2 | ||||
-rw-r--r-- | admin/charsets/mapfiles/README | 4 | ||||
-rw-r--r-- | admin/charsets/mule-charsets.el | 2 | ||||
-rwxr-xr-x | admin/check-doc-strings | 57 | ||||
-rw-r--r-- | admin/cus-test.el | 12 | ||||
-rwxr-xr-x | admin/emake | 16 | ||||
-rw-r--r-- | admin/gitmerge.el | 2 | ||||
-rw-r--r-- | admin/grammars/Makefile.in | 58 | ||||
-rw-r--r-- | admin/grammars/c.by | 2 | ||||
-rw-r--r-- | admin/grammars/grammar.wy | 10 | ||||
-rw-r--r-- | admin/grammars/python.wy | 33 | ||||
-rw-r--r-- | admin/make-tarball.txt | 107 | ||||
-rwxr-xr-x | admin/merge-gnulib | 2 | ||||
-rw-r--r-- | admin/notes/emba | 15 | ||||
-rw-r--r-- | admin/notes/years | 6 | ||||
-rw-r--r-- | admin/unidata/Makefile.in | 33 | ||||
-rw-r--r-- | admin/unidata/unidata-gen.el | 6 | ||||
-rwxr-xr-x | admin/update_autogen | 12 |
23 files changed, 286 insertions, 187 deletions
diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES index a40b4302723..68c12438f5a 100644 --- a/admin/CPP-DEFINES +++ b/admin/CPP-DEFINES @@ -81,7 +81,6 @@ anymore, so they can be removed. AMPERSAND_FULL_NAME BROKEN_DATAGRAM_SOCKETS -BROKEN_FIONREAD BROKEN_GET_CURRENT_DIR_NAME BROKEN_PTY_READ_AFTER_EAGAIN DEFAULT_SOUND_DEVICE @@ -94,16 +93,12 @@ EMACS_CONFIG_OPTIONS EMACS_INT EMACS_UINT GC_MARK_SECONDARY_STACK -GC_MARK_STACK GC_SETJMP_WORKS GNU_MALLOC -HAVE_AIX_SMT_EXP -HAVE_ALARM HAVE_ALLOCA HAVE_ALLOCA_H HAVE_ALSA HAVE_BDFFONT -HAVE_BOXES HAVE_CFMAKERAW HAVE_CFSETSPEED HAVE_CLOCK_GETTIME @@ -117,7 +112,6 @@ HAVE_DBUS_VALIDATE_INTERFACE HAVE_DBUS_VALIDATE_MEMBER HAVE_DBUS_VALIDATE_PATH HAVE_DBUS_WATCH_GET_UNIX_FD -HAVE_DECL_GETENV HAVE_DECL_LOCALTIME_R HAVE_DECL_STRMODE HAVE_DECL_STRTOIMAX @@ -126,8 +120,6 @@ HAVE_DECL_STRTOULL HAVE_DECL_STRTOUMAX HAVE_DECL_TZNAME HAVE_DIALOGS -HAVE_DIFFTIME -HAVE_DUP2 HAVE_ENDGRENT HAVE_ENDPWENT HAVE_ENVIRON_DECL @@ -141,11 +133,9 @@ HAVE_FUTIMES HAVE_FUTIMESAT HAVE_GAI_STRERROR HAVE_GCONF -HAVE_GETDELIM HAVE_GETGRENT HAVE_GETHOSTNAME HAVE_GETIFADDRS -HAVE_GETLINE HAVE_GETLOADAVG HAVE_GETOPT_H HAVE_GETOPT_LONG_ONLY @@ -164,18 +154,8 @@ HAVE_GPM HAVE_GRANTPT HAVE_GSETTINGS HAVE_GTK3 -HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE -HAVE_GTK_DIALOG_GET_ACTION_AREA HAVE_GTK_FILE_SELECTION_NEW -HAVE_GTK_MAIN -HAVE_GTK_MULTIDISPLAY -HAVE_GTK_ORIENTABLE_SET_ORIENTATION -HAVE_GTK_WIDGET_GET_MAPPED -HAVE_GTK_WIDGET_GET_SENSITIVE -HAVE_GTK_WIDGET_GET_WINDOW -HAVE_GTK_WIDGET_SET_HAS_WINDOW HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP -HAVE_G_TYPE_INIT HAVE_IFADDRS_H HAVE_IMAGEMAGICK HAVE_INTTYPES_H @@ -193,10 +173,8 @@ HAVE_LIBLOCKFILE HAVE_LIBMAIL HAVE_LIBOTF HAVE_LIBPERFSTAT -HAVE_LIBPNG_PNG_H HAVE_LIBSELINUX HAVE_LIBXML2 -HAVE_LIBXMU HAVE_LOCALTIME_R HAVE_LOCAL_SOCKETS HAVE_LRAND48 @@ -209,24 +187,18 @@ HAVE_MAGICKEXPORTIMAGEPIXELS HAVE_MAGICKMERGEIMAGELAYERS HAVE_MAILLOCK_H HAVE_MALLOC_MALLOC_H -HAVE_MATHERR HAVE_MBSTATE_T -HAVE_MEMCMP -HAVE_MEMMOVE HAVE_MEMORY_H HAVE_MEMSET -HAVE_MENUS HAVE_MKSTEMP HAVE_MMAP HAVE_MULTILINGUAL_MENU -HAVE_NANOTIME HAVE_NET_IF_DL_H HAVE_NET_IF_H HAVE_NLIST_H HAVE_OTF_GET_VARIATION_GLYPHS HAVE_PERSONALITY_ADDR_NO_RANDOMIZE HAVE_PNG -HAVE_PNG_H HAVE_POSIX_MEMALIGN HAVE_PROCFS HAVE_PSELECT @@ -263,15 +235,12 @@ HAVE_SOUNDCARD_H HAVE_STDINT_H HAVE_STDIO_EXT_H HAVE_STDLIB_H -HAVE_STLIB_H_1 HAVE_STRINGS_H HAVE_STRING_H -HAVE_STRNCASECMP HAVE_STRSIGNAL HAVE_STRTOIMAX HAVE_STRTOLL HAVE_STRTOULL -HAVE_STRTOUMAX HAVE_STRUCT_ERA_ENTRY HAVE_STRUCT_IFREQ_IFR_ADDR HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN @@ -287,9 +256,7 @@ HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC -HAVE_STRUCT_TIMEZONE HAVE_STRUCT_TM_TM_ZONE -HAVE_STRUCT_UTIMBUF HAVE_ST_DM_MODE HAVE_SYMLINK HAVE_SYNC @@ -303,26 +270,20 @@ HAVE_SYS_SOCKET_H HAVE_SYS_SOUNDCARD_H HAVE_SYS_STAT_H HAVE_SYS_SYSTEMINFO_H -HAVE_SYS_TIMEB_H HAVE_SYS_TIME_H HAVE_SYS_TYPES_H HAVE_SYS_UN_H HAVE_SYS_UTSNAME_H HAVE_SYS_VLIMIT_H HAVE_SYS_WAIT_H -HAVE_TCATTR HAVE_TERM_H HAVE_TIFF -HAVE_TIMEVAL HAVE_TM_GMTOFF HAVE_TM_ZONE HAVE_TOUCHLOCK HAVE_TZNAME -HAVE_TZSET HAVE_UTIL_H HAVE_UTIMENSAT -HAVE_UTIMES -HAVE_UTIME_H HAVE_UTMP_H HAVE_VFORK HAVE_VFORK_H @@ -342,14 +303,10 @@ HAVE_XRMSETDATABASE HAVE_XSCREENNUMBEROFSCREEN HAVE_XSCREENRESOURCESTRING HAVE_X_I18N -HAVE_X_MENU HAVE_X_SM HAVE_X_WINDOWS -HAVE__BOOL -HAVE__FTIME HAVE___BUILTIN_UNWIND_INIT HAVE___EXECUTABLE_START -HAVE___FPENDING INTERNAL_TERMINAL IS_ANY_SEP IS_DIRECTORY_SEP @@ -359,7 +316,6 @@ MAIL_USE_POP MAIL_USE_SYSTEM_LOCK MAXPATHLEN NLIST_STRUCT -NO_EDITRES NSIG NSIG_MINIMUM NULL_DEVICE @@ -378,7 +334,6 @@ SYSTEM_MALLOC TAB3 TABDLY TERM -TIME_WITH_SYS_TIME TIOCSIGSEND TM_IN_SYS_TIME UNIX98_PTYS diff --git a/admin/MAINTAINERS b/admin/MAINTAINERS index 53afe87a0f8..02b8cf39bd6 100644 --- a/admin/MAINTAINERS +++ b/admin/MAINTAINERS @@ -131,6 +131,13 @@ Amin Bandali lisp/erc/* doc/misc/erc.texi +Andrea Corallo + Lisp native compiler + src/comp.c + lisp/emacs-lisp/comp.el + lisp/emacs-lisp/comp-cstr.el + test/src/comp-*.el + ============================================================================== 2. Areas that someone is willing to maintain, although he would not necessarily mind if someone else was the official maintainer. diff --git a/admin/admin.el b/admin/admin.el index d032c1ceb85..ad4208beef0 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -151,7 +151,7 @@ Root must be the root of an Emacs source tree." (display-warning 'admin "NEWS file contains empty sections - remove them?")) (goto-char (point-min)) - (if (re-search-forward "^\\(\\+\\+\\+ *$\\|--- *$\\|Temporary note:\\)" nil t) + (if (re-search-forward "^\\(\\+\\+\\+? *$\\|---? *$\\|Temporary note:\\)" nil t) (display-warning 'admin "NEWS file still contains temporary markup. Documentation changes might not have been completed!")))) @@ -545,7 +545,7 @@ Leave point after the table." (forward-line 1) (while (not done) (cond ((re-search-forward "<tr><td.*• \\(<a.*</a>\\)\ -:</td><td> </td><td[^>]*>\\(.*\\)" (line-end-position) t) +:?</td><td> </td><td[^>]*>\\(.*\\)" (line-end-position) t) (replace-match (format "<tr><td%s>\\1</td>\n<td>\\2" (if table-workaround " bgcolor=\"white\"" ""))) @@ -665,6 +665,8 @@ style=\"text-align:left\">") (defconst make-manuals-dist-output-variables '(("@\\(top_\\)?srcdir@" . ".") ; top_srcdir is wrong, but not used + ("@\\(abs_\\)?top_builddir@" . ".") ; wrong but unused + ("^\\(EMACS *=\\).*" . "\\1 emacs") ("^\\(\\(?:texinfo\\|buildinfo\\|emacs\\)dir *=\\).*" . "\\1 .") ("^\\(clean:.*\\)" . "\\1 infoclean") ("@MAKEINFO@" . "makeinfo") @@ -682,9 +684,7 @@ style=\"text-align:left\">") ("@INSTALL@" . "install -c") ("@INSTALL_DATA@" . "${INSTALL} -m 644") ("@configure_input@" . "") - ("@AM_DEFAULT_VERBOSITY@" . "0") - ("@AM_V@" . "${V}") - ("@AM_DEFAULT_V@" . "${AM_DEFAULT_VERBOSITY}")) + ("@AM_DEFAULT_VERBOSITY@" . "0")) "Alist of (REGEXP . REPLACEMENT) pairs for `make-manuals-dist'.") (defun make-manuals-dist--1 (root type) @@ -714,7 +714,8 @@ style=\"text-align:left\">") (string-match-p "\\.\\(eps\\|pdf\\)\\'" file))) (copy-file file stem))) (with-temp-buffer - (let ((outvars make-manuals-dist-output-variables)) + (let ((outvars make-manuals-dist-output-variables) + (case-fold-search nil)) (push `("@version@" . ,version) outvars) (insert-file-contents (format "../doc/%s/Makefile.in" type)) (dolist (cons outvars) diff --git a/admin/authors.el b/admin/authors.el index 6c81c7872fc..b4e6c934b67 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -1330,7 +1330,7 @@ to print a message if FILE is not found." (unless (or valid (member file authors-ignored-files) (authors-obsolete-file-p file) - (string-match "[*]" file) + (string-search "*" file) (string-match "^[0-9.]+$" file) laxlog) (setq authors-invalid-file-names @@ -1465,7 +1465,7 @@ Suggested\\|Trivial\\|Version\\|Originally\\|From:\\|Patch[ \t]+[Bb]y\\)"))) ((looking-at "^[ \t]+\\*") (let ((line (buffer-substring-no-properties (match-end 0) (line-end-position)))) - (while (and (not (string-match ":" line)) + (while (and (not (string-search ":" line)) (forward-line 1) (not (looking-at ":\\|^[ \t]*$"))) (setq line (concat line @@ -1475,7 +1475,7 @@ Suggested\\|Trivial\\|Version\\|Originally\\|From:\\|Patch[ \t]+[Bb]y\\)"))) (when (string-match ":" line) (setq line (substring line 0 (match-beginning 0))) (setq line (replace-regexp-in-string "[[(<{].*$" "" line)) - (setq line (replace-regexp-in-string "," "" line)) + (setq line (string-replace "," "" line)) (dolist (file (split-string line)) (when (setq file (authors-canonical-file-name file log-file pos (car authors))) (dolist (author authors) diff --git a/admin/charsets/Makefile.in b/admin/charsets/Makefile.in index 0fd130d346e..f043077e318 100644 --- a/admin/charsets/Makefile.in +++ b/admin/charsets/Makefile.in @@ -31,6 +31,7 @@ AWK = @AWK@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ +top_builddir = @top_builddir@ charsetdir = ${top_srcdir}/etc/charsets lispintdir = ${top_srcdir}/lisp/international @@ -38,16 +39,7 @@ mapfiledir = ${srcdir}/mapfiles GLIBC_CHARMAPS = ${srcdir}/glibc -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = - -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = +-include ${top_builddir}/src/verbose.mk # Note: We can not prepend "ISO-" to these map files because of file # name limits on DOS. @@ -305,17 +297,18 @@ ${charsetdir}/%.map: ${GLIBC_CHARMAPS}/%.gz ${mapconv} ${compact} ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@ -.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean +.PHONY: clean bootstrap-clean distclean maintainer-clean gen-clean clean: +## IMO this should also run gen-clean. bootstrap-clean: clean distclean: clean rm -f Makefile -maintainer-clean: distclean - -## Do not remove these files, even in a bootstrap. They rarely change. -extraclean: +gen-clean: rm -f ${CHARSETS} ${SED_SCRIPT} ${TRANS_TABLE} ${srcdir}/charsets.stamp + +maintainer-clean: gen-clean distclean + diff --git a/admin/charsets/eucjp-ms.awk b/admin/charsets/eucjp-ms.awk index ca9a317611b..033b37f5ede 100644 --- a/admin/charsets/eucjp-ms.awk +++ b/admin/charsets/eucjp-ms.awk @@ -38,7 +38,7 @@ BEGIN { JISX0208_FROM2 = "/xf5/xa1"; JISX0212_FROM = "/x8f/xf3/xf3"; - print ";;; eucjp-ms.el -- translation table for eucJP-ms -*- lexical-binding:t -*-"; + print ";;; eucjp-ms.el --- translation table for eucJP-ms -*- lexical-binding:t -*-"; print ";;; Automatically generated from /usr/share/i18n/charmaps/EUC-JP-MS.gz"; print "(let ((map"; print " '(;JISEXT<->UNICODE"; diff --git a/admin/charsets/mapfiles/README b/admin/charsets/mapfiles/README index 60f09125a91..fb078269d6f 100644 --- a/admin/charsets/mapfiles/README +++ b/admin/charsets/mapfiles/README @@ -63,8 +63,8 @@ to "JIS X 0213:2004". * MULE-*.map -Created by using ../mule-charsets.el in Emacs 22 as this: - % emacs-22 -batch -l ../mule-charsets.el +Created by using ../mule-charsets.el in Emacs as this: + % emacs -batch -l ../mule-charsets.el This file is part of GNU Emacs. diff --git a/admin/charsets/mule-charsets.el b/admin/charsets/mule-charsets.el index 99a8c60d880..7bcceb39b23 100644 --- a/admin/charsets/mule-charsets.el +++ b/admin/charsets/mule-charsets.el @@ -1,4 +1,4 @@ -;; mule-charsets.el -- Generate Mule-original charset maps. -*- lexical-binding: t -*- +;;; mule-charsets.el --- Generate Mule-original charset maps. -*- lexical-binding: t -*- ;; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H13PRO009 diff --git a/admin/check-doc-strings b/admin/check-doc-strings index 63856d32871..135090b34ce 100755 --- a/admin/check-doc-strings +++ b/admin/check-doc-strings @@ -59,7 +59,7 @@ sub Check_texi_function { $arglist_parm{$parm} = 1; } - foreach my $parm ($docstring =~ /\@var{([^{}]+)}/g) { + foreach my $parm ($docstring =~ /\@var\{([^{}]+)\}/g) { $docstring_parm{$parm} = 1; } @@ -111,7 +111,9 @@ sub Check_function { # $arglist_parm{$parm} = 1; #} foreach my $parm (@parms) { - next if $parm eq '&optional' || $parm eq '&rest'; + next if $parm eq '&optional' + || $parm eq '&rest' + || $parm eq 'Lisp-Object'; $arglist_parm{$parm} = 1; } my $doc_tmp = $docstring; @@ -150,6 +152,22 @@ sub Check_function { next if $parm eq 'primary'; next if $parm eq 'secondary'; next if $parm eq 'clipboard'; + next if $parm eq 'bbdb'; + next if $parm eq 'dos'; + next if $parm eq 'erc'; + next if $parm eq 'exif'; + next if $parm eq 'ldap'; + next if $parm eq 'ime'; + next if $parm eq 'rfc'; + next if $parm eq 'ms-dos'; + next if $parm eq 'url'; + next if $parm eq 'w32'; + next if $parm eq 'todo'; # org-mode + next if $parm eq 'done'; # org-mode + next if $parm eq 'waiting'; #org-mode + next if $parm eq 'ordered'; #org-mode + next if $parm eq 'deadline'; #org-mode + next if $parm eq 'scheduled'; #org-mode next if length $parm < 3; if (! exists $arglist_parm{$parm}) { print "bogus parm: $function: $parm\n"; @@ -228,20 +246,43 @@ open (FIND, "find src -name '*.c' -print |") or die; while (my $file = <FIND>) { my @matches = ((FileContents $file) =~ - /\bDEFUN\s*\(\s*\"((?:[^\\\"]|\\.)+)\"\s*,\s*\S+\s*,\s*(\S+)\s*,\s*(\S+)\s*,\s*((?:0|\"(?:(?:[^\\\"]|\\.)*)\"))\s*,\s*\/\*(.*?)\*\/\s*\(([^()]*)\)\)/sgo); + /\b + DEFUN\s*\(\s* + ## $function + \"((?:[^\\\"]|\\.)+)\"\s*, + \s*\S+\s*, \s*\S+\s*, + ## $minargs + \s*(\S+)\s*, + ## $maxargs + \s*(\S+)\s*, + ## $interactive + \s*((?:0|\"(?:(?:[^\\\"]|\\.)*)\"))\s*, + ## $docstring + \s*doc:\s*\/\*\s*(.*?)\s*\*\/ + # attributes -- skip + (?:\s*attributes:\s* + (?:noreturn|const) + \s*)? + \s*\) + ### $parms + \s*\( + ([^()]*) + \) + /sgox); while (@matches) { my ($function, $minargs, $maxargs, $interactive, $docstring, $parms) = splice (@matches, 0, 6); $docstring =~ s/^\n+//s; $docstring =~ s/\n+$//s; $parms =~ s/,/ /g; - my @parms = split (' ',$parms); + my @parms = $parms eq 'void' ? () : split (' ', $parms); for (@parms) { tr/_/-/; s/-$//; } if ($parms !~ /Lisp_Object/) { if ($minargs < @parms) { - if ($maxargs =~ /^\d+$/) { - die unless $maxargs eq @parms; - splice (@parms, $minargs, 0, '&optional'); - } + if ($maxargs =~ /^\d+$/) { + die "$function: $maxargs" + unless $maxargs eq @parms; + splice (@parms, $minargs, 0, '&optional'); + } } } my $funtype = ($interactive =~ /\"/ ? 'Command' : 'Function'); diff --git a/admin/cus-test.el b/admin/cus-test.el index 995586f9c71..30b5f655617 100644 --- a/admin/cus-test.el +++ b/admin/cus-test.el @@ -37,6 +37,13 @@ ;; ;; src/emacs -batch -l admin/cus-test.el -f cus-test-noloads ;; +;; or as a part of the test suite with +;; +;; make -C test test-custom-opts +;; make -C test test-custom-deps +;; make -C test test-custom-libs +;; make -C test test-custom-noloads +;; ;; in the emacs source directory. ;; ;; For interactive use: Load this file. Then @@ -320,7 +327,8 @@ If it is \"all\", load all Lisp files." (lambda (file) (condition-case alpha (unless (member file cus-test-libs-noloads) - (load (file-name-sans-extension (expand-file-name file lispdir))) + (load (file-name-sans-extension (expand-file-name file lispdir)) + nil t) (push file cus-test-libs-loaded)) (error (push (cons file alpha) cus-test-libs-errors) @@ -349,6 +357,8 @@ Optional argument ALL non-nil means list all (non-obsolete) Lisp files." (mapcar (lambda (e) (substring e 2)) (apply #'process-lines find-program "." "-name" "obsolete" "-prune" "-o" + "-name" "ldefs-boot.el" "-prune" "-o" + "-name" "*loaddefs.el" "-prune" "-o" "-name" "[^.]*.el" ; ignore .dir-locals.el (if all '("-print") diff --git a/admin/emake b/admin/emake index d9aa4ea74bd..bdaabc026b3 100755 --- a/admin/emake +++ b/admin/emake @@ -27,19 +27,21 @@ s#^Configuring local git # Configuring local git # s#^Installing git hooks...# Installing git hooks...# s#^Running # Running # s#^Configured for # Configured for # -s#^./temacs # ./temacs # -s#^Dumping under the name# Dumping under the name# +s#^./temacs.*# \\& # ' | \ egrep --line-buffered -v "^make|\ ^Loading|\ SCRAPE|\ -INFO.*Scraping.*[.]\$|\ +INFO.*Scraping.*[.] ?\$|\ +INFO.*Scraping.*done\$|\ +GEN.*etc/DOC|\ ^Waiting for git|\ ^Finding pointers|\ ^Using load-path|\ ^Adding name|\ ^Dump mode|\ ^Dumping finger|\ +^Dumping under the name|\ ^Byte counts|\ ^Reloc counts|\ ^Pure-hashed|\ @@ -68,6 +70,8 @@ GEN.*loaddefs|\ ^\"configure\" file built.|\ ^There seems to be no|\ ^config.status:|\ +ELN_DESTDIR|\ +--bin-dest |\ ^ *$|\ ^Makefile built|\ The GNU allocators don't work|\ @@ -83,3 +87,9 @@ do [[ "X${REPLY:0:3}" == "X " ]] && C="\033[1;31m" [[ "X$C" == "X" ]] && printf "%s\n" "$REPLY" || printf "$C%s\033[0m\n" "$REPLY" done + +# Run a "make check" on all test files belonging to files that have +# changed since last time. +make -j$cores check-maybe 2>&1 | \ + sed -n '/contained unexpected results/,$p' | \ + egrep --line-buffered -v "^make" diff --git a/admin/gitmerge.el b/admin/gitmerge.el index b92ecc7c78f..851212c7bb1 100644 --- a/admin/gitmerge.el +++ b/admin/gitmerge.el @@ -7,6 +7,8 @@ ;; Keywords: maint +;; This file is part of GNU Emacs. + ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or diff --git a/admin/grammars/Makefile.in b/admin/grammars/Makefile.in index 98c9c623abc..aaf95c08973 100644 --- a/admin/grammars/Makefile.in +++ b/admin/grammars/Makefile.in @@ -28,24 +28,13 @@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ -# 'make' verbosity. -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ - -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = - -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = +-include ${top_builddir}/src/verbose.mk # Prevent any settings in the user environment causing problems. unexport EMACSDATA EMACSDOC EMACSPATH EMACS = ${top_builddir}/src/emacs -emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp +emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp --eval '(setq load-prefer-newer t)' make_bovine = ${emacs} -l semantic/bovine/grammar -f bovine-batch-make-parser make_wisent = ${emacs} -l semantic/wisent/grammar -f wisent-batch-make-parser @@ -54,19 +43,19 @@ cedetdir = ${top_srcdir}/lisp/cedet bovinedir = ${cedetdir}/semantic/bovine wisentdir = ${cedetdir}/semantic/wisent +grammar_bovine = ${bovinedir}/grammar.el +grammar_wisent = ${wisentdir}/grammar.el + BOVINE = \ ${bovinedir}/c-by.el \ ${bovinedir}/make-by.el \ ${bovinedir}/scm-by.el -## FIXME Should include this one too: -## ${cedetdir}/semantic/grammar-wy.el -## but semantic/grammar.el (which is what we use to generate grammar-wy.el) -## requires it! -WISENT = \ - ${wisentdir}/javat-wy.el \ - ${wisentdir}/js-wy.el \ - ${wisentdir}/python-wy.el \ +WISENT = \ + ${cedetdir}/semantic/grammar-wy.el \ + ${wisentdir}/javat-wy.el \ + ${wisentdir}/js-wy.el \ + ${wisentdir}/python-wy.el \ ${cedetdir}/srecode/srt-wy.el ALL = ${BOVINE} ${WISENT} @@ -80,46 +69,45 @@ bovine: ${BOVINE} wisent: ${WISENT} ## c-by.el, make-by.el. -${bovinedir}/%-by.el: ${srcdir}/%.by +${bovinedir}/%-by.el: ${srcdir}/%.by ${grammar_bovine} $(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@" $(AM_V_at)${make_bovine} -o "$@" $< -${bovinedir}/scm-by.el: ${srcdir}/scheme.by +${bovinedir}/scm-by.el: ${srcdir}/scheme.by ${grammar_bovine} $(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@" $(AM_V_at)${make_bovine} -o "$@" $< ## grammar-wy.el -${cedetdir}/semantic/%-wy.el: ${srcdir}/%.wy +${cedetdir}/semantic/%-wy.el: ${srcdir}/%.wy ${grammar_wisent} $(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@" $(AM_V_at)${make_wisent} -o "$@" $< ## js-wy.el, python-wy.el -${wisentdir}/%-wy.el: ${srcdir}/%.wy +${wisentdir}/%-wy.el: ${srcdir}/%.wy ${grammar_wisent} $(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@" $(AM_V_at)${make_wisent} -o "$@" $< -${wisentdir}/javat-wy.el: ${srcdir}/java-tags.wy +${wisentdir}/javat-wy.el: ${srcdir}/java-tags.wy ${grammar_wisent} $(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@" $(AM_V_at)${make_wisent} -o "$@" $< -${cedetdir}/srecode/srt-wy.el: ${srcdir}/srecode-template.wy +${cedetdir}/srecode/srt-wy.el: ${srcdir}/srecode-template.wy ${grammar_wisent} $(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@" $(AM_V_at)${make_wisent} -o "$@" $< - -.PHONY: distclean bootstrap-clean maintainer-clean extraclean +.PHONY: distclean bootstrap-clean maintainer-clean gen-clean distclean: rm -f Makefile -## Perhaps this should do what extraclean (qv) does. +## IMO this should run gen-clean. bootstrap-clean: -maintainer-clean: distclean - -## We do not normally delete the generated files, even in bootstrap. -## Creating them does not take long, so we could easily change this. -extraclean: +gen-clean: rm -f ${ALL} +maintainer-clean: gen-clean distclean + + + # Makefile.in ends here diff --git a/admin/grammars/c.by b/admin/grammars/c.by index 2d04c999aca..289081e3ced 100644 --- a/admin/grammars/c.by +++ b/admin/grammars/c.by @@ -415,7 +415,7 @@ typesimple : struct-or-class opt-class opt-name opt-template-specifier opt-class-parents semantic-list (TYPE-TAG (car $3) (car $1) - (let ((semantic-c-classname (cons (car ,$3) (car ,$1)))) + (dlet ((semantic-c-classname (cons (car ,$3) (car ,$1)))) (EXPANDFULL $6 classsubparts)) $5 :template-specifier $4 diff --git a/admin/grammars/grammar.wy b/admin/grammars/grammar.wy index 054e85bf70d..35fb7e832e9 100644 --- a/admin/grammars/grammar.wy +++ b/admin/grammars/grammar.wy @@ -128,7 +128,7 @@ epilogue: ;; declaration: decl - (eval $1) + (eval $1 t) ; decl: @@ -206,7 +206,7 @@ put_decl: put_name_list: BRACE_BLOCK - (mapcar 'semantic-tag-name (EXPANDFULL $1 put_names)) + (mapcar #'semantic-tag-name (EXPANDFULL $1 put_names)) ; put_names: @@ -226,7 +226,7 @@ put_name: put_value_list: BRACE_BLOCK - (mapcar 'semantic-tag-code-detail (EXPANDFULL $1 put_values)) + (mapcar #'semantic-tag-code-detail (EXPANDFULL $1 put_values)) ; put_values: @@ -300,7 +300,7 @@ plist: use_name_list: BRACE_BLOCK - (mapcar 'semantic-tag-name (EXPANDFULL $1 use_names)) + (mapcar #'semantic-tag-name (EXPANDFULL $1 use_names)) ; use_names: @@ -356,7 +356,7 @@ nonterminal: rules: lifo_rules - (apply 'nconc (nreverse $1)) + (apply #'nconc (nreverse $1)) ; lifo_rules: diff --git a/admin/grammars/python.wy b/admin/grammars/python.wy index aaa25ced202..2539d1bec8c 100644 --- a/admin/grammars/python.wy +++ b/admin/grammars/python.wy @@ -88,15 +88,17 @@ %package wisent-python-wy %provide semantic/wisent/python-wy -%expectedconflicts 4 +%expectedconflicts 5 %{ +(require 'semantic/tag) (declare-function wisent-python-reconstitute-function-tag "semantic/wisent/python" (tag suite)) (declare-function wisent-python-reconstitute-class-tag "semantic/wisent/python" (tag)) (declare-function semantic-parse-region "semantic" (start end &optional nonterminal depth returnonerror)) +(defvar wisent-python-EXPANDING-block) } %languagemode python-mode @@ -184,6 +186,7 @@ %token <punctuation> ASSIGN "=" %token <punctuation> BACKQUOTE "`" %token <punctuation> AT "@" +%token <punctuation> FOLLOWS "->" ;; ----------------- @@ -808,12 +811,17 @@ decorators ;; funcdef: [decorators] 'def' NAME parameters ':' suite funcdef - : DEF NAME function_parameter_list COLON suite + : DEF NAME function_parameter_list return_type_hint COLON suite (wisent-python-reconstitute-function-tag - (FUNCTION-TAG $2 nil $3) $5) - | decorators DEF NAME function_parameter_list COLON suite + (FUNCTION-TAG $2 nil $3) $6) + | decorators DEF NAME function_parameter_list return_type_hint COLON suite (wisent-python-reconstitute-function-tag - (FUNCTION-TAG $3 nil $4 :decorators $1) $6) + (FUNCTION-TAG $3 nil $4 :decorators $1) $7) + ; + +return_type_hint + : ;;EMPTY + | FOLLOWS type ; function_parameter_list @@ -865,7 +873,7 @@ paren_class_list_opt paren_class_list : PAREN_BLOCK (let ((wisent-python-EXPANDING-block t)) - (mapcar 'semantic-tag-name (EXPANDFULL $1 paren_classes))) + (mapcar #'semantic-tag-name (EXPANDFULL $1 paren_classes))) ; ;; parameters: '(' [varargslist] ')' @@ -887,7 +895,7 @@ paren_classes ;; parser can parse general expressions, I don't see much benefit in ;; generating a string of expression as base class "name". paren_class - : dotted_name + : type ; ;;;**************************************************************************** @@ -1140,7 +1148,7 @@ fpdef_opt_test ;; fpdef: NAME | '(' fplist ')' fpdef - : NAME + : NAME type_hint (VARIABLE-TAG $1 nil nil) ;; Below breaks the parser. Don't know why, but my guess is that ;; LPAREN/RPAREN clashes with the ones in function_parameters. @@ -1160,6 +1168,15 @@ fpdef ;; | fpdef_list COMMA fpdef ;; ; +type_hint + : ;;EMPTY + | COLON type + ; + +type + : test + ; + ;; ['=' test] eq_test_opt : ;;EMPTY diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index 5125086e881..ae007d76b03 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -33,6 +33,11 @@ General steps (for each step, check for possible errors): or some form of "git clean -x". It's probably simpler and safer to make a new working directory exclusively for the release branch. + If the working directory has subdirectories created when making + previous releases or pretests, remove those subdirectories, as the + command which updates the ChangeLog file might attempt to recurse + there and scan any ChangeLog.* files there. + Make sure the tree is built, or at least configured. That's because some of the commands below run Make, so they need Makefiles to be present. @@ -68,20 +73,29 @@ General steps (for each step, check for possible errors): 3. Set the version number (M-x load-file RET admin/admin.el RET, then M-x set-version RET). For a pretest, start at version .90. After - .99, use .990 (so that it sorts). + .99, use .990 (so that it sorts). Commit the resulting changes + as one, with nothing else included, and using a log message + of the format "Bump Emacs version to ...", so that the commit can + be skipped when merging branches (see admin/gitmerge.el). The final pretest should be a release candidate. Before a release candidate is made, the tasks listed in admin/release-process must be completed. - Set the version number to that of the actual release. Pick a date - about a week from now when you intend to make the release. Use M-x - add-release-logs to add entries to etc/HISTORY and the ChangeLog - file. It's best not to commit these files until the release is - actually made. Merge the entries from (unversioned) ChangeLog - into the top of the current versioned ChangeLog.N and commit that - along with etc/HISTORY. Then you can tag that commit as the - release. + Set the version number to that of the actual release (commit in + one, as described above). Pick a date about a week from now when + you intend to make the release. Use M-x add-release-logs to add + entries to etc/HISTORY and the ChangeLog file. It's best not to + commit these files until the release is actually made. Merge the + entries from (unversioned) ChangeLog into the top of the current + versioned ChangeLog.N and commit that along with etc/HISTORY. + Then you can tag that commit as the release. + + Alternatively, you can commit and tag with the RC tag right away, + and delay the final tagging until you actually decide to make a + release and announce it. The "git tag" command can tag a specific + commit if you give it the SHA1 of that commit, even if additional + commits have been pushed in the meantime. Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the following week, you can simply rename the file and use it for the @@ -96,11 +110,11 @@ General steps (for each step, check for possible errors): Never replace an existing tarfile! If you need to fix something, always upload it with a different name. -4. autoreconf -i -I m4 --force - make bootstrap +4. autoreconf -i -I m4 --force + make bootstrap - make -C etc/refcards - make -C etc/refcards clean + make -C etc/refcards + make -C etc/refcards clean If some of the etc/refcards, especially the non-English ones, fail to build, you probably need to install some TeX/LaTeX packages, in @@ -114,13 +128,18 @@ General steps (for each step, check for possible errors): 5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the - files changed by M-x set-version. + files changed by M-x set-version. The easiest way of doing that + is "C-x v d ROOT-DIR RET", then go to the first modified file, + press 'M' to mark all modified files, and finally 'v' to commit + them. Make sure the commit log message mentions all the changes + in all modified files, as by default 'v' doesn't necessarily do + so. If someone else made a commit between step 1 and now, you need to repeat from step 4 onwards. (You can commit the files from step 2 and 3 earlier to reduce the chance of this.) -6. ./make-dist --snapshot --no-compress +6. ./make-dist --snapshot --no-compress Check the contents of the new tar with admin/diff-tar-files against the previous release (if this is the first pretest) or the @@ -128,6 +147,14 @@ General steps (for each step, check for possible errors): yourself, find it at <https://alpha.gnu.org/gnu/emacs/pretest>. Releases are of course at <https://ftp.gnu.org/pub/gnu/emacs/>. + ./admin/diff-tar-files emacs-OLD.tar.gz emacs-NEW.tar.gz + + Alternatively: + + tar tJf emacs-OLD.tar.xz | sed -e 's,^[^/]*,,' | sort > old_tmp + tar tJf emacs-NEW.tar.xz | sed -e 's,^[^/]*,,' | sort > new_tmp + diff -u old_tmp new_tmp + If this is the first pretest of a major release, just comparing with the previous release may overlook many new files. You can try something like 'find . | sort' in a clean repository, and compare the @@ -135,6 +162,7 @@ General steps (for each step, check for possible errors): 7. tar -xf emacs-NEW.tar; cd emacs-NEW ./configure --prefix=/tmp/emacs && make check && make install + Use 'script' or M-x compile to save the compilation log in compile-NEW.log and compare it against an old one. The easiest way to do that is to visit the old log in Emacs, change the version @@ -142,8 +170,23 @@ General steps (for each step, check for possible errors): M-x ediff. Especially check that Info files aren't built, and that no autotools (autoconf etc) run. -8. cd EMACS_ROOT_DIR && git tag -a TAG && git push origin tag TAG - TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release. +8. You can now tag the release/pretest and push it together with the + last commit: + + cd EMACS_ROOT_DIR && git tag -a TAG -m "Emacs TAG" + git push + git push --tags + + Here TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release. + For a release, if you are producing a release candidate first, use + emacs-XX.Y-rcN (N = 1, 2, ...) when you tar the RC, and add the + actual release tag later, when the official release tarball is + uploaded to ftp.gnu.org. When adding a tag later, it is safer to + use the SHA1 of the last commit which went into the release + tarball, in case there were some intervening commits since then: + + git tag -a TAG -m "Emacs TAG" SHA1 + git push --tags 9. Decide what compression schemes to offer. For a release, at least gz and xz: @@ -207,26 +250,48 @@ General steps (for each step, check for possible errors): because replies that invariably are not announcements also get sent out as if they were.) -12. After a release, update the Emacs pages as below. +12. After a release, update the Emacs pages as described below. +13. Bump the Emacs version on the release branch. + If the released version was XX.Y, use 'set-version' from + admin/admin.el to bump the version on the release branch to + XX.Y.50. Commit the changes. UPDATING THE EMACS WEB PAGES AFTER A RELEASE -As soon as possible after a release, the Emacs web pages should be updated. -(See admin/notes/www for general information.) +As soon as possible after a release, the Emacs web pages at +https://www.gnu.org/software/emacs/ should be updated. (See +admin/notes/www for general information.) The pages to update are: emacs.html (for a new major release, a more thorough update is needed) history.html add the new NEWS file as news/NEWS.xx.y +Copy new etc/MACHINES to MACHINES and CONTRIBUTE to CONTRIBUTE For every new release, a banner is displayed on top of the emacs.html page. Uncomment and the release banner in emacs.html. Keep it on the -page for about a month, then comment it again. +page for about a month, then comment it again. The new release banner +looks like this: + + <div class="release-banner"> + <div class="container"> + <h2><em>Emacs 27.1 is out</em>, download it <a href="download.html">here</a>!</h2> + </div> + </div> Regenerate the various manuals in manual/. The scripts admin/make-manuals and admin/upload-manuals summarize the process. +If you have Texinfo installed locally, make-manuals might fail if it +cannot find epsf.tex. In that case define in the environment + + TEXINPUTS=:/path/to/texinfo-tree/doc + +where /path/to/texinfo-tree is the absolute file name of the top-level +directory where you have the Texinfo source tree. Then re-run +make-manuals. + Browsing <https://web.cvs.savannah.gnu.org/viewvc/?root=emacs> is one way to check for any files that still need updating. diff --git a/admin/merge-gnulib b/admin/merge-gnulib index 1c8b4427000..c12e83dd2fa 100755 --- a/admin/merge-gnulib +++ b/admin/merge-gnulib @@ -33,7 +33,7 @@ GNULIB_MODULES=' crypto/md5-buffer crypto/sha1-buffer crypto/sha256-buffer crypto/sha512-buffer d-type diffseq double-slash-root dtoastr dtotimespec dup2 environ execinfo explicit_bzero faccessat - fchmodat fcntl fcntl-h fdopendir + fchmodat fcntl fcntl-h fdopendir file-has-acl filemode filename filevercmp flexmember fpieee free-posix fstatat fsusage fsync futimens getloadavg getopt-gnu getrandom gettime gettimeofday gitlog-to-changelog diff --git a/admin/notes/emba b/admin/notes/emba index adebcefcf3e..36b126e7735 100644 --- a/admin/notes/emba +++ b/admin/notes/emba @@ -36,6 +36,21 @@ of the Emacs git repository to perform a bootstrap and test of Emacs. This could happen for several jobs with changed configuration, compile and test parameters. +There are different types of jobs: 'prep-image-base' is responsible to +prepare the environment for the following jobs. 'build-image-*' jobs +are responsible to compile Emacs in different configuration. The +corresponding 'test-*' jobs run the ert tests. + +A special job is 'test-all-inotify', which runs 'make check-expensive'. +While most of the jobs run as soon as a respective file has been +committed into the Emacs git repository, this test job runs scheduled, +every 8 hours. + +The log files for every test job are kept on the server for a week. +They can be downloaded from the server, visiting the URL +<https://emba.gnu.org/emacs/emacs/-/pipelines>, and selecting the job +in question. + * Emba configuration The emba configuration files are hosted on diff --git a/admin/notes/years b/admin/notes/years index b56d94a1eda..19c72c39184 100644 --- a/admin/notes/years +++ b/admin/notes/years @@ -5,6 +5,12 @@ rolls around, add that year to every FSF (and AIST) copyright notice. Do this by running the 'admin/update-copyright' script on a fresh repo checkout. Inspect the results for plausibility, then commit them. +You should also run the etags test suite in test/manual/etags/. It +will most probably fail because the contents of the test files changes +due to copyright years update, so you need to move each ETAGS and +CTAGS file produced by the test runs into the corresponding +ETAGS.good* and CTAGS.good files, and then commit the new test files. + There's no need to worry about whether an individual file has changed in a given year - it's sufficient that Emacs as a whole has changed. diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in index f31e1bb09fd..357b8126783 100644 --- a/admin/unidata/Makefile.in +++ b/admin/unidata/Makefile.in @@ -36,23 +36,7 @@ emacs = "${EMACS}" -batch --no-site-file --no-site-lisp lparen = ( unifiles = $(addprefix ${unidir}/,$(sort $(shell sed -n 's/^[ \t][ \t]*${lparen}"\(uni-[^"]*\)"$$/\1/p' ${srcdir}/unidata-gen.el))) -# 'make' verbosity. -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ - -AM_V_ELC = $(am__v_ELC_@AM_V@) -am__v_ELC_ = $(am__v_ELC_@AM_DEFAULT_V@) -am__v_ELC_0 = @echo " ELC " $@; -am__v_ELC_1 = - -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = - -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = +-include ${top_builddir}/src/verbose.mk .PHONY: all @@ -101,26 +85,25 @@ ${unidir}/charscript.el: ${srcdir}/Blocks.txt ${blocks} $(AM_V_GEN)$(AWK) -f ${blocks} < $< > $@ -.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean +.PHONY: clean bootstrap-clean distclean maintainer-clean gen-clean clean: rm -f ${srcdir}/*.elc unidata.txt +## IMO this should also run gen-clean. bootstrap-clean: clean distclean: clean rm -f Makefile -maintainer-clean: distclean - -## Do not remove these files, even in a bootstrap, because they rarely -## change and it slows down bootstrap (a tiny bit). -## Cf leim/ja-dic (which is much slower). - ## macuvs.h is a generated file, but it's also checked in because ## macOS builds would need to do a headless bootstrap without it, ## which is currently awkward. To avoid changing checked-in files ## from a make target, we don't delete it here. -extraclean: distclean +gen-clean: rm -f ${unidir}/charscript.el* rm -f ${unifiles} ${unidir}/charprop.el +## ref: https://lists.gnu.org/r/emacs-devel/2013-11/msg01029.html + +maintainer-clean: gen-clean distclean + diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el index 221c9b104e0..abd41e34a48 100644 --- a/admin/unidata/unidata-gen.el +++ b/admin/unidata/unidata-gen.el @@ -1,4 +1,4 @@ -;; unidata-gen.el -- Create files containing character property data -*- lexical-binding:t -*- +;;; unidata-gen.el --- Create files containing character property data -*- lexical-binding:t -*- ;; Copyright (C) 2008-2021 Free Software Foundation, Inc. @@ -1446,7 +1446,7 @@ Property value is a symbol `o' (Open), `c' (Close), or `n' (None)." ";; no-byte-compile: t\n" ";; no-update-autoloads: t\n" ";; End:\n\n" - (format ";; %s ends here\n" basename))))) + (format ";;; %s ends here\n" basename))))) (or noninteractive (message "Generating %s...done" file))) (defun unidata-gen-charprop (&optional charprop-file) @@ -1470,7 +1470,7 @@ Property value is a symbol `o' (Open), `c' (Close), or `n' (None)." ";; no-byte-compile: t\n" ";; no-update-autoloads: t\n" ";; End:\n\n" - (format ";; %s ends here\n" + (format ";;; %s ends here\n" (file-name-nondirectory charprop-file))))) diff --git a/admin/update_autogen b/admin/update_autogen index 35c391da19e..11c4313ae37 100755 --- a/admin/update_autogen +++ b/admin/update_autogen @@ -317,7 +317,7 @@ EOF echo "Finding loaddef targets..." find lisp -name '*.el' -exec grep '^;.*generated-autoload-file:' {} + | \ - sed -e '/loaddefs\|esh-groups/d' -e 's|/[^/]*: "|/|' -e 's/"//g' \ + sed -e '/loaddefs\|esh-groups/d' -e 's|/[^/]*: "|/|' -e 's/"//g' \ >| $tempfile || die "Error finding targets" genfiles= @@ -363,17 +363,23 @@ make -C lisp "$@" autoloads EMACS=../src/bootstrap-emacs || die "make src error" ## Ignore comment differences. -[ ! "$lboot_flag" ] || \ +[ ! "$lboot_flag" ] || \ diff -q -I '^;' $ldefs_in $ldefs_out || \ cp $ldefs_in $ldefs_out || die "cp ldefs_boot error" +# Refresh the prebuilt grammar-wy.el +grammar_in=lisp/cedet/semantic/grammar-wy.el +grammar_out=lisp/cedet/semantic/grm-wy-boot.el +make -C admin/grammars/ ../../$grammar_in +cp $grammar_in $grammar_out || die "cp grm_wy_boot error" + echo "Checking status of loaddef files..." ## It probably would be fine to just check+commit lisp/, since ## making autoloads should not effect any other files. But better ## safe than sorry. -modified=$(status $genfiles $ldefs_out) || die +modified=$(status $genfiles $ldefs_out $grammar_out) || die commit "loaddefs" $modified || die "commit error" |