* emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
@ 2019-02-11 1:21 hx
2019-02-11 16:39 ` Eli Zaretskii
2019-02-11 23:39 ` Paul Eggert
0 siblings, 2 replies; 14+ messages in thread
From: hx @ 2019-02-11 1:21 UTC (permalink / raw)
To: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 452 bytes --]
Hi list,
can't compile emacs26 today after git pull,
CentOS7 X64:
make[2]: Entering directory `/emacs-26-src/lisp'
ELC ../lisp/international/ucs-normalize.elc
In toplevel form:
international/ucs-normalize.el:266:56:Error: Symbol’s function definition
is void: regexp-opt-charset
make[2]: *** [../lisp/international/ucs-normalize.elc] Error 1
$ git status
# On branch emacs-26
nothing to commit, working directory clean
[-- Attachment #2: Type: text/html, Size: 731 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-11 1:21 emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset hx
@ 2019-02-11 16:39 ` Eli Zaretskii
2019-02-12 0:16 ` hx
2019-02-11 23:39 ` Paul Eggert
1 sibling, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2019-02-11 16:39 UTC (permalink / raw)
To: hx; +Cc: emacs-devel
> From: hx <silent2600@gmail.com>
> Date: Mon, 11 Feb 2019 09:21:20 +0800
>
> can't compile emacs26 today after git pull,
> CentOS7 X64:
>
> make[2]: Entering directory `/emacs-26-src/lisp'
> ELC ../lisp/international/ucs-normalize.elc
>
> In toplevel form:
> international/ucs-normalize.el:266:56:Error: Symbol’s function definition is void: regexp-opt-charset
> make[2]: *** [../lisp/international/ucs-normalize.elc] Error 1
I think I understand why, but just so I'm sure: can you tell how you
configured this build? What was the command line with which you
invoked the 'configure' script?
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-11 16:39 ` Eli Zaretskii
@ 2019-02-12 0:16 ` hx
0 siblings, 0 replies; 14+ messages in thread
From: hx @ 2019-02-12 0:16 UTC (permalink / raw)
To: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 1520 bytes --]
CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" \
./configure --prefix=/home/xyz/emacs26 --disable-largefile --without-pop
--without-sound \
--with-x-toolkit=no --without-xpm --without-jpeg --without-tiff
--without-gif --without-png --without-rsvg --without-xft \
--without-libotf --without-m17n-flt --without-toolkit-scroll-bars
--without-xaw3d --without-xim --without-gpm \
--without-dbus --without-gconf -without-x \
--without-selinux --disable-acl --with-modules --without-makeinfo \
--without-gnutls
yesterday, I manually open emacs and make byte-compile on the
ucs-normalize.el, then run make again, it worked.
today, I just do make clean && make distclean, delete all .elc files, sh
autogen.sh, configure with above options,
make success without error.
On Tue, Feb 12, 2019 at 12:39 AM Eli Zaretskii <eliz@gnu.org> wrote:
> > From: hx <silent2600@gmail.com>
> > Date: Mon, 11 Feb 2019 09:21:20 +0800
> >
> > can't compile emacs26 today after git pull,
> > CentOS7 X64:
> >
> > make[2]: Entering directory `/emacs-26-src/lisp'
> > ELC ../lisp/international/ucs-normalize.elc
> >
> > In toplevel form:
> > international/ucs-normalize.el:266:56:Error: Symbol’s function
> definition is void: regexp-opt-charset
> > make[2]: *** [../lisp/international/ucs-normalize.elc] Error 1
>
> I think I understand why, but just so I'm sure: can you tell how you
> configured this build? What was the command line with which you
> invoked the 'configure' script?
>
>
[-- Attachment #2: Type: text/html, Size: 2112 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-11 1:21 emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset hx
2019-02-11 16:39 ` Eli Zaretskii
@ 2019-02-11 23:39 ` Paul Eggert
2019-02-12 3:35 ` Eli Zaretskii
1 sibling, 1 reply; 14+ messages in thread
From: Paul Eggert @ 2019-02-11 23:39 UTC (permalink / raw)
To: hx; +Cc: emacs-devel
On 2/10/19 5:21 PM, hx wrote:
>
> can't compile emacs26 today after git pull,
> CentOS7 X64:
I am not seeing any problem on Fedora 29 x86-64 with a fresh checkout
after I run:
./autogen.sh && ./configure && make
I'm using the emacs-26 commit 3aaa2d2058125a755bd6226cb4009811089812f8.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-11 23:39 ` Paul Eggert
@ 2019-02-12 3:35 ` Eli Zaretskii
2019-02-13 18:49 ` Paul Eggert
0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2019-02-12 3:35 UTC (permalink / raw)
To: Paul Eggert; +Cc: silent2600, emacs-devel
> From: Paul Eggert <eggert@cs.ucla.edu>
> Date: Mon, 11 Feb 2019 15:39:14 -0800
> Cc: emacs-devel <emacs-devel@gnu.org>
>
> On 2/10/19 5:21 PM, hx wrote:
> >
> > can't compile emacs26 today after git pull,
> > CentOS7 X64:
>
> I am not seeing any problem on Fedora 29 x86-64 with a fresh checkout
> after I run:
>
> ./autogen.sh && ./configure && make
Even if you configure --without-x? regexp-opt is preloaded only if
x-create-frame is fboundp. So I thought we'd need an autoload form in
ucs-normalize.el for when regexp-opt is not preloaded.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-12 3:35 ` Eli Zaretskii
@ 2019-02-13 18:49 ` Paul Eggert
2019-02-13 19:18 ` Eli Zaretskii
2019-02-13 20:04 ` Glenn Morris
0 siblings, 2 replies; 14+ messages in thread
From: Paul Eggert @ 2019-02-13 18:49 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: silent2600, emacs-devel
On 2/11/19 7:35 PM, Eli Zaretskii wrote:
>> I am not seeing any problem on Fedora 29 x86-64 with a fresh checkout
>> after I run:
>>
>> ./autogen.sh && ./configure && make
> Even if you configure --without-x? regexp-opt is preloaded only if
> x-create-frame is fboundp. So I thought we'd need an autoload form in
> ucs-normalize.el for when regexp-opt is not preloaded.
On my platform (Fedora 29 x86-64) I don't see a problem in the emacs-26
branch even if I configure --without-x. The relevant output lines are:
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-tmp1/lisp'
ELC ../lisp/international/ucs-normalize.elc
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-tmp1/lisp'
This is with commit 2019-02-13T15:39:31Z!eliz@gnu.org
(6d89120b156576ca24e03472563f5ea0f01313f8).
I also could not reproduce the problem with commands very close to hx's
in a fresh checkout of the same commit. I used:
./autogen.sh && ./configure --prefix=/home/xyz/emacs26
--disable-largefile --without-pop --without-sound --with-x-toolkit=no
--without-xpm --without-jpeg --without-tiff --without-gif --without-png
--without-rsvg --without-xft --without-libotf --without-m17n-flt
--without-toolkit-scroll-bars --without-xaw3d --without-xim
--without-gpm --without-dbus --without-gconf -without-x
--without-selinux --disable-acl --with-modules --without-makeinfo
--without-gnutls CFLAGS='-march=native -O2 -pipe -fomit-frame-pointer'
&& make
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-13 18:49 ` Paul Eggert
@ 2019-02-13 19:18 ` Eli Zaretskii
2019-02-13 20:04 ` Glenn Morris
1 sibling, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2019-02-13 19:18 UTC (permalink / raw)
To: Paul Eggert; +Cc: silent2600, emacs-devel
> Cc: silent2600@gmail.com, emacs-devel@gnu.org
> From: Paul Eggert <eggert@cs.ucla.edu>
> Date: Wed, 13 Feb 2019 10:49:43 -0800
>
> On 2/11/19 7:35 PM, Eli Zaretskii wrote:
> >> I am not seeing any problem on Fedora 29 x86-64 with a fresh checkout
> >> after I run:
> >>
> >> ./autogen.sh && ./configure && make
> > Even if you configure --without-x? regexp-opt is preloaded only if
> > x-create-frame is fboundp. So I thought we'd need an autoload form in
> > ucs-normalize.el for when regexp-opt is not preloaded.
>
> On my platform (Fedora 29 x86-64) I don't see a problem in the emacs-26
> branch even if I configure --without-x.
OK, thanks for testing.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-13 18:49 ` Paul Eggert
2019-02-13 19:18 ` Eli Zaretskii
@ 2019-02-13 20:04 ` Glenn Morris
2019-02-13 20:15 ` Stefan Monnier
2019-02-13 23:04 ` Paul Eggert
1 sibling, 2 replies; 14+ messages in thread
From: Glenn Morris @ 2019-02-13 20:04 UTC (permalink / raw)
To: Paul Eggert; +Cc: Eli Zaretskii, silent2600, emacs-devel
Although a --without-x bootstrap does work (eg this is what the
hydra.nixos "tarball" job is), it's not clear to me why it works.
(Maybe something calls regexp-opt during bootstrap, which triggers an
autoload?) There is a problem, however, as shown by the fact that in a
--without-x build post-bootstrap, this fails:
./src/emacs -Q -batch -f batch-byte-compile lisp/international/ucs-normalize.el
Error: Symbol's function definition is void: regexp-opt-charset
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-13 20:04 ` Glenn Morris
@ 2019-02-13 20:15 ` Stefan Monnier
2019-02-14 3:32 ` Eli Zaretskii
2019-02-13 23:04 ` Paul Eggert
1 sibling, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2019-02-13 20:15 UTC (permalink / raw)
To: emacs-devel
> Although a --without-x bootstrap does work (eg this is what the
> hydra.nixos "tarball" job is), it's not clear to me why it works.
> (Maybe something calls regexp-opt during bootstrap, which triggers an
> autoload?) There is a problem, however, as shown by the fact that in a
> --without-x build post-bootstrap, this fails:
Most likely regexp-opt gets loaded during the first run of "loadup", so
the compilation of ucs-normalize by the initial bootstrap-emacs
succeeds, even tough the compilation of that same file by the
`emacs` fails.
So a later "make" can succeed or fail depending on which files needs to
be recompiled.
Stefan
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-13 20:15 ` Stefan Monnier
@ 2019-02-14 3:32 ` Eli Zaretskii
2019-02-14 4:21 ` Stefan Monnier
0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2019-02-14 3:32 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Wed, 13 Feb 2019 15:15:25 -0500
>
> Most likely regexp-opt gets loaded during the first run of "loadup", so
> the compilation of ucs-normalize by the initial bootstrap-emacs
> succeeds, even tough the compilation of that same file by the
> `emacs` fails.
Why is the first run of loadup different from the rest? The condition
to load regexp-opt depends only on what functions were compiled into
the binary, not on anything else.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-14 3:32 ` Eli Zaretskii
@ 2019-02-14 4:21 ` Stefan Monnier
0 siblings, 0 replies; 14+ messages in thread
From: Stefan Monnier @ 2019-02-14 4:21 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
>> Most likely regexp-opt gets loaded during the first run of "loadup", so
>> the compilation of ucs-normalize by the initial bootstrap-emacs
>> succeeds, even tough the compilation of that same file by the
>> `emacs` fails.
> Why is the first run of loadup different from the rest?
Because the first run of loadup is done with not-yet-compiled Elisp
files, so it loads a crapload more packages (because of things like
(eval-when-compile (require <foo>)) and autoloaded macros) than the
second run (performed after the preloaded files have all been
byte-compiled).
Stefan
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-13 20:04 ` Glenn Morris
2019-02-13 20:15 ` Stefan Monnier
@ 2019-02-13 23:04 ` Paul Eggert
2019-02-14 3:37 ` Eli Zaretskii
1 sibling, 1 reply; 14+ messages in thread
From: Paul Eggert @ 2019-02-13 23:04 UTC (permalink / raw)
To: Glenn Morris; +Cc: Eli Zaretskii, silent2600, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 551 bytes --]
On 2/13/19 12:04 PM, Glenn Morris wrote:
> There is a problem, however, as shown by the fact that in a
> --without-x build post-bootstrap, this fails:
>
> ./src/emacs -Q -batch -f batch-byte-compile lisp/international/ucs-normalize.el
>
> Error: Symbol's function definition is void: regexp-opt-charset
Yes, I observe that problem too. I fixed it by installing the attached
patch into the master branch. It's not clear to me whether it's worth
backporting this into emacs-26, as the problem occurs only with unusual
actions after unusual builds.
[-- Attachment #2: 0001-Add-missing-dependency-to-ucs-normalize.el.patch --]
[-- Type: text/x-patch, Size: 908 bytes --]
From d1dc424721e5d13fc1ddf69ab4057517e4e77c64 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Wed, 13 Feb 2019 15:03:01 -0800
Subject: [PATCH] Add missing dependency to ucs-normalize.el
* lisp/international/ucs-normalize.el:
Require regexp-opt when compiling. Problem reported by hx in:
https://lists.gnu.org/r/emacs-devel/2019-02/msg00334.html
---
lisp/international/ucs-normalize.el | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lisp/international/ucs-normalize.el b/lisp/international/ucs-normalize.el
index 9d55470d94..6f1e770c09 100644
--- a/lisp/international/ucs-normalize.el
+++ b/lisp/international/ucs-normalize.el
@@ -109,7 +109,9 @@
(defconst ucs-normalize-version "1.2")
-(eval-when-compile (require 'cl-lib))
+(eval-when-compile
+ (require 'cl-lib)
+ (require 'regexp-opt))
(declare-function nfd "ucs-normalize" (char))
--
2.20.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-13 23:04 ` Paul Eggert
@ 2019-02-14 3:37 ` Eli Zaretskii
2019-02-14 18:48 ` Paul Eggert
0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2019-02-14 3:37 UTC (permalink / raw)
To: Paul Eggert; +Cc: rgm, silent2600, emacs-devel
> Cc: Eli Zaretskii <eliz@gnu.org>, silent2600@gmail.com, emacs-devel@gnu.org
> From: Paul Eggert <eggert@cs.ucla.edu>
> Date: Wed, 13 Feb 2019 15:04:18 -0800
>
> diff --git a/lisp/international/ucs-normalize.el b/lisp/international/ucs-normalize.el
> index 9d55470d94..6f1e770c09 100644
> --- a/lisp/international/ucs-normalize.el
> +++ b/lisp/international/ucs-normalize.el
> @@ -109,7 +109,9 @@
>
> (defconst ucs-normalize-version "1.2")
>
> -(eval-when-compile (require 'cl-lib))
> +(eval-when-compile
> + (require 'cl-lib)
> + (require 'regexp-opt))
I think it would be better to add the 'require' in the same
eval-when-compile form which calls regexp-opt-charset.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset
2019-02-14 3:37 ` Eli Zaretskii
@ 2019-02-14 18:48 ` Paul Eggert
0 siblings, 0 replies; 14+ messages in thread
From: Paul Eggert @ 2019-02-14 18:48 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: rgm, silent2600, emacs-devel
On 2/13/19 7:37 PM, Eli Zaretskii wrote:
>> -(eval-when-compile (require 'cl-lib))
>> +(eval-when-compile
>> + (require 'cl-lib)
>> + (require 'regexp-opt))
> I think it would be better to add the 'require' in the same
> eval-when-compile form which calls regexp-opt-charset.
There's more than one such form. At some point it's easier to treat
regexp-opt functions like cl-lib functions, i.e., available to any code
within an eval-when-compile in that module.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2019-02-14 18:48 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-11 1:21 emacs26, ucs-normalize.el, Symbol’s function definition is void: regexp-opt-charset hx
2019-02-11 16:39 ` Eli Zaretskii
2019-02-12 0:16 ` hx
2019-02-11 23:39 ` Paul Eggert
2019-02-12 3:35 ` Eli Zaretskii
2019-02-13 18:49 ` Paul Eggert
2019-02-13 19:18 ` Eli Zaretskii
2019-02-13 20:04 ` Glenn Morris
2019-02-13 20:15 ` Stefan Monnier
2019-02-14 3:32 ` Eli Zaretskii
2019-02-14 4:21 ` Stefan Monnier
2019-02-13 23:04 ` Paul Eggert
2019-02-14 3:37 ` Eli Zaretskii
2019-02-14 18:48 ` Paul Eggert
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).