bug-gnulib@gnu.org mirror (unofficial)
 help / color / mirror / Atom feed
* [PATCH] parse-datetime: avoid "%pure-parser" deprecation warning from Bison 3.4
@ 2019-07-18 23:17 Bernhard Voelker
  2019-07-19  3:03 ` Bruno Haible
  0 siblings, 1 reply; 5+ messages in thread
From: Bernhard Voelker @ 2019-07-18 23:17 UTC (permalink / raw)
  To: bug-gnulib; +Cc: Bernhard Voelker

* lib/parse-datetime.y: Use "%define api.pure" rather than obsolescent
"%pure-parser".  The former is available since Bison 2.3b (2008, [1]),
while the latter is marked as obsolete since version 3.4 (May 2019, [2]):

  ./lib/parse-datetime.y:568.1-12: warning: deprecated directive, \
    use '%define api.pure' [-Wdeprecated]
  568 | %pure-parser
      | ^~~~~~~~~~~~

[1] https://git.sv.gnu.org/cgit/bison.git/commit/?id=d9df47b656fd
[2] https://git.sv.gnu.org/cgit/bison.git/commit/?id=de5207244b5c
---
 ChangeLog            | 7 +++++++
 lib/parse-datetime.y | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 08bcf1082..2f427010f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2019-07-19  Bernhard Voelker  <mail@bernhard-voelker.de>
+
+	parse-datetime: avoid "%pure-parser" deprecation warning from Bison 3.4
+	* lib/parse-datetime.y: Use "%define api.pure" rather than obsolescent
+	"%pure-parser".  The former is available since Bison 2.3b (2008),
+	while the latter is marked as obsolete since version 3.4 (May 2019).
+
 2019-07-16  Bruno Haible  <bruno@clisp.org>
 
 	update-copyright: Make it work again (regression from 2019-06-15).
diff --git a/lib/parse-datetime.y b/lib/parse-datetime.y
index b264bb7fb..780575919 100644
--- a/lib/parse-datetime.y
+++ b/lib/parse-datetime.y
@@ -565,7 +565,7 @@ debug_print_relative_time (char const *item, parser_control const *pc)
 
 /* We want a reentrant parser, even if the TZ manipulation and the calls to
    localtime and gmtime are not reentrant.  */
-%pure-parser
+%define api.pure
 %parse-param { parser_control *pc }
 %lex-param { parser_control *pc }
 
-- 
2.22.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] parse-datetime: avoid "%pure-parser" deprecation warning from Bison 3.4
  2019-07-18 23:17 [PATCH] parse-datetime: avoid "%pure-parser" deprecation warning from Bison 3.4 Bernhard Voelker
@ 2019-07-19  3:03 ` Bruno Haible
  2019-07-19  7:45   ` Bernhard Voelker
  0 siblings, 1 reply; 5+ messages in thread
From: Bruno Haible @ 2019-07-19  3:03 UTC (permalink / raw)
  To: bug-gnulib; +Cc: Bernhard Voelker

Hi Bernhard,

> +	parse-datetime: avoid "%pure-parser" deprecation warning from Bison 3.4

I've pushed your change.

However, I think it would be good for "make" to behave reasonably when bison
is not found or too old.

Here's a proposed patch (untested so far):


2019-07-19  Bruno Haible  <bruno@clisp.org>

	parse-datetime: Require Bison 2.7 or newer.
	* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Set PARSE_DATETIME_BISON.
	Code taken from gettext's intl.m4.
	* modules/parse-datetime (Makefile.am): Use PARSE_DATETIME_BISON instead
	of YACC.

diff --git a/m4/parse-datetime.m4 b/m4/parse-datetime.m4
index 597a44c..dd5e643 100644
--- a/m4/parse-datetime.m4
+++ b/m4/parse-datetime.m4
@@ -1,4 +1,4 @@
-# parse-datetime.m4 serial 22
+# parse-datetime.m4 serial 23
 dnl Copyright (C) 2002-2006, 2008-2019 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -26,6 +26,37 @@ AC_DEFUN([gl_C_COMPOUND_LITERALS],
 
 AC_DEFUN([gl_PARSE_DATETIME],
 [
+  dnl parse-datetime.c is generated from parse-datetime.y. It requires bison,
+  dnl because parse-datetime.y uses bison specific features. It requires at
+  dnl least bison-2.7 for %define api.pure.
+  dnl bison is only needed for the maintainer (who touches parse-datetime.y).
+  dnl But in order to avoid separate Makefiles or --enable-maintainer-mode,
+  dnl we put the rule in general Makefile. Now, some people carelessly touch
+  dnl the files or have a broken "make" program, hence the parse-datetime.c
+  dnl rule will sometimes fire. To avoid an error, defines PARSE_DATETIME_BISON
+  dnl to ":" if it is not present or too old.
+  AC_CHECK_PROGS([PARSE_DATETIME_BISON], [bison])
+  if test -z "$PARSE_DATETIME_BISON"; then
+    ac_verc_fail=yes
+  else
+    dnl Found it, now check the version.
+    AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+    ac_prog_version=`$PARSE_DATETIME_BISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+    case $ac_prog_version in
+      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+      2.[7-9]* | [3-9].*)
+changequote([,])dnl
+         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+    esac
+    AC_MSG_RESULT([$ac_prog_version])
+  fi
+  if test $ac_verc_fail = yes; then
+    PARSE_DATETIME_BISON=:
+  fi
+  AC_SUBST([PARSE_DATETIME_BISON])
+
   dnl Prerequisites of lib/parse-datetime.h.
   AC_REQUIRE([AM_STDBOOL_H])
   AC_REQUIRE([gl_TIMESPEC])
diff --git a/modules/parse-datetime b/modules/parse-datetime
index 692da25..d54dafd 100644
--- a/modules/parse-datetime
+++ b/modules/parse-datetime
@@ -38,7 +38,7 @@ parse-datetime.c: parse-datetime.y
 	                              y.tab.c parse-datetime.c \
 	                              y.tab.h parse-datetime.h \
 	                              y.output parse-datetime.output \
-	                              -- $(YACC) $(YFLAGS) $(AM_YFLAGS) && \
+	                              -- $(PARSE_DATETIME_BISON) -y -d $(YFLAGS) $(AM_YFLAGS) && \
 	sed -e 's|".*/parse-datetime.y"|"parse-datetime.y"|' \
 	 < parse-datetime.c > parse-datetime.c-t && \
 	rm -f parse-datetime.c && \



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] parse-datetime: avoid "%pure-parser" deprecation warning from Bison 3.4
  2019-07-19  3:03 ` Bruno Haible
@ 2019-07-19  7:45   ` Bernhard Voelker
  2019-07-19 22:57     ` Bruno Haible
  0 siblings, 1 reply; 5+ messages in thread
From: Bernhard Voelker @ 2019-07-19  7:45 UTC (permalink / raw)
  To: Bruno Haible, bug-gnulib

Hi Bruno,

On 7/19/19 5:03 AM, Bruno Haible wrote:
>> +	parse-datetime: avoid "%pure-parser" deprecation warning from Bison 3.4
> 
> I've pushed your change.

thanks.

> However, I think it would be good for "make" to behave reasonably when bison
> is not found or too old.
> 
> Here's a proposed patch (untested so far):

I see 2 issues with this patch ...

> 2019-07-19  Bruno Haible  <bruno@clisp.org>
> 
> 	parse-datetime: Require Bison 2.7 or newer.
> 	* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Set PARSE_DATETIME_BISON.
> 	Code taken from gettext's intl.m4.
> 	* modules/parse-datetime (Makefile.am): Use PARSE_DATETIME_BISON instead
> 	of YACC.
> 
> diff --git a/m4/parse-datetime.m4 b/m4/parse-datetime.m4
> index 597a44c..dd5e643 100644
> --- a/m4/parse-datetime.m4
> +++ b/m4/parse-datetime.m4
> @@ -1,4 +1,4 @@
> -# parse-datetime.m4 serial 22
> +# parse-datetime.m4 serial 23
>  dnl Copyright (C) 2002-2006, 2008-2019 Free Software Foundation, Inc.
>  dnl This file is free software; the Free Software Foundation
>  dnl gives unlimited permission to copy and/or distribute it,
> @@ -26,6 +26,37 @@ AC_DEFUN([gl_C_COMPOUND_LITERALS],
>  
>  AC_DEFUN([gl_PARSE_DATETIME],
>  [
> +  dnl parse-datetime.c is generated from parse-datetime.y. It requires bison,
> +  dnl because parse-datetime.y uses bison specific features. It requires at
> +  dnl least bison-2.7 for %define api.pure.
> +  dnl bison is only needed for the maintainer (who touches parse-datetime.y).
> +  dnl But in order to avoid separate Makefiles or --enable-maintainer-mode,
> +  dnl we put the rule in general Makefile. Now, some people carelessly touch
> +  dnl the files or have a broken "make" program, hence the parse-datetime.c
> +  dnl rule will sometimes fire. To avoid an error, defines PARSE_DATETIME_BISON
> +  dnl to ":" if it is not present or too old.
> +  AC_CHECK_PROGS([PARSE_DATETIME_BISON], [bison])
> +  if test -z "$PARSE_DATETIME_BISON"; then
> +    ac_verc_fail=yes
> +  else
> +    dnl Found it, now check the version.
> +    AC_MSG_CHECKING([version of bison])
> +changequote(<<,>>)dnl
> +    ac_prog_version=`$PARSE_DATETIME_BISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
> +    case $ac_prog_version in
> +      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
> +      2.[7-9]* | [3-9].*)

This would run into a little problem in quite far future ...... when GNU Bison
reaches version 10.x.  Maybe adjust to:

+      2.[7-9]* | [3-9].* | [1-9][0-9].*)

?

> +changequote([,])dnl
> +         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
> +      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
> +    esac
> +    AC_MSG_RESULT([$ac_prog_version])
> +  fi
> +  if test $ac_verc_fail = yes; then
> +    PARSE_DATETIME_BISON=:
> +  fi
> +  AC_SUBST([PARSE_DATETIME_BISON])
> +
>    dnl Prerequisites of lib/parse-datetime.h.
>    AC_REQUIRE([AM_STDBOOL_H])
>    AC_REQUIRE([gl_TIMESPEC])
> diff --git a/modules/parse-datetime b/modules/parse-datetime
> index 692da25..d54dafd 100644
> --- a/modules/parse-datetime
> +++ b/modules/parse-datetime
> @@ -38,7 +38,7 @@ parse-datetime.c: parse-datetime.y
>  	                              y.tab.c parse-datetime.c \
>  	                              y.tab.h parse-datetime.h \
>  	                              y.output parse-datetime.output \
> -	                              -- $(YACC) $(YFLAGS) $(AM_YFLAGS) && \
> +	                              -- $(PARSE_DATETIME_BISON) -y -d $(YFLAGS) $(AM_YFLAGS) && \
>  	sed -e 's|".*/parse-datetime.y"|"parse-datetime.y"|' \
>  	 < parse-datetime.c > parse-datetime.c-t && \
>  	rm -f parse-datetime.c && \
> 

During generation of parse-datetime.c, I'm getting these 2 new warnings:

  /home/berny/coreutils/./lib/parse-datetime.y:568.1-7: warning: POSIX Yacc does not support %define [-Wyacc]
    568 | %define api.pure
        | ^~~~~~~
  /home/berny/coreutils/./lib/parse-datetime.y:573.1-7: warning: POSIX Yacc does not support %expect [-Wyacc]
    573 | %expect 31
        | ^~~~~~~

Thanks & have a nice day,
Berny


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] parse-datetime: avoid "%pure-parser" deprecation warning from Bison 3.4
  2019-07-19  7:45   ` Bernhard Voelker
@ 2019-07-19 22:57     ` Bruno Haible
  2019-07-21 15:05       ` Bernhard Voelker
  0 siblings, 1 reply; 5+ messages in thread
From: Bruno Haible @ 2019-07-19 22:57 UTC (permalink / raw)
  To: Bernhard Voelker; +Cc: bug-gnulib

[-- Attachment #1: Type: text/plain, Size: 1672 bytes --]

Hi Berny,

> > 2019-07-19  Bruno Haible  <bruno@clisp.org>
> > 
> > 	parse-datetime: Require Bison 2.7 or newer.

Actually it requires Bison 2.4 or newer.

> > +    case $ac_prog_version in
> > +      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
> > +      2.[7-9]* | [3-9].*)
> 
> This would run into a little problem in quite far future ...... when GNU Bison
> reaches version 10.x.  Maybe adjust to:
> 
> +      2.[7-9]* | [3-9].* | [1-9][0-9].*)

Good point. We don't know how the future version numbers will look like. The
only knowledge we have is on the version numbers of past releases.

Addressed in the first patch.

> During generation of parse-datetime.c, I'm getting these 2 new warnings:
> 
>   /home/berny/coreutils/./lib/parse-datetime.y:568.1-7: warning: POSIX Yacc does not support %define [-Wyacc]
>     568 | %define api.pure
>         | ^~~~~~~
>   /home/berny/coreutils/./lib/parse-datetime.y:573.1-7: warning: POSIX Yacc does not support %expect [-Wyacc]
>     573 | %expect 31
>         | ^~~~~~~
> 

Addressed in the second patch.

Thanks for these reports; I fixed the original code in GNU gettext as well.

Bruno


2019-07-19  Bruno Haible  <bruno@clisp.org>

	parse-datetime: Require Bison 2.4 or newer.
	* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Set PARSE_DATETIME_BISON.
	Code taken from gettext's intl.m4.
	* modules/parse-datetime (Makefile.am): Use PARSE_DATETIME_BISON instead
	of YACC.

2019-07-19  Bruno Haible  <bruno@clisp.org>

	parse-datetime: Avoid warnings from bison versions >= 3.3.
	Reported by Bernhard Voelker <mail@bernhard-voelker.de>.
	* modules/parse-datetime (Makefile.am): Don't pass option '-y' to bison.


[-- Attachment #2: 0001-parse-datetime-Require-Bison-2.4-or-newer.patch --]
[-- Type: text/x-patch, Size: 3943 bytes --]

From 56d28ccbbc69a7d16f3a4f64288900777623fdf1 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Fri, 19 Jul 2019 05:00:10 +0200
Subject: [PATCH 1/2] parse-datetime: Require Bison 2.4 or newer.

* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Set PARSE_DATETIME_BISON.
Code taken from gettext's intl.m4.
* modules/parse-datetime (Makefile.am): Use PARSE_DATETIME_BISON instead
of YACC.
---
 ChangeLog              |  8 ++++++++
 m4/parse-datetime.m4   | 33 ++++++++++++++++++++++++++++++++-
 modules/parse-datetime |  2 +-
 3 files changed, 41 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 67ef791..f8c1541 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2019-07-19  Bruno Haible  <bruno@clisp.org>
 
+	parse-datetime: Require Bison 2.4 or newer.
+	* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Set PARSE_DATETIME_BISON.
+	Code taken from gettext's intl.m4.
+	* modules/parse-datetime (Makefile.am): Use PARSE_DATETIME_BISON instead
+	of YACC.
+
+2019-07-19  Bruno Haible  <bruno@clisp.org>
+
 	areadlink-with-size, xgethostname, xgetdomainname: Fix GCC warning.
 	* lib/areadlink-with-size.c: Include <string.h>.
 	* lib/areadlinkat-with-size.c: Likewise.
diff --git a/m4/parse-datetime.m4 b/m4/parse-datetime.m4
index 597a44c..885fa57 100644
--- a/m4/parse-datetime.m4
+++ b/m4/parse-datetime.m4
@@ -1,4 +1,4 @@
-# parse-datetime.m4 serial 22
+# parse-datetime.m4 serial 23
 dnl Copyright (C) 2002-2006, 2008-2019 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -26,6 +26,37 @@ AC_DEFUN([gl_C_COMPOUND_LITERALS],
 
 AC_DEFUN([gl_PARSE_DATETIME],
 [
+  dnl parse-datetime.c is generated from parse-datetime.y. It requires bison,
+  dnl because parse-datetime.y uses bison specific features. It requires at
+  dnl least bison-2.4 for %define api.pure.
+  dnl bison is only needed for the maintainer (who touches parse-datetime.y).
+  dnl But in order to avoid separate Makefiles or --enable-maintainer-mode,
+  dnl we put the rule in general Makefile. Now, some people carelessly touch
+  dnl the files or have a broken "make" program, hence the parse-datetime.c
+  dnl rule will sometimes fire. To avoid an error, defines PARSE_DATETIME_BISON
+  dnl to ":" if it is not present or too old.
+  AC_CHECK_PROGS([PARSE_DATETIME_BISON], [bison])
+  if test -z "$PARSE_DATETIME_BISON"; then
+    ac_verc_fail=yes
+  else
+    dnl Found it, now check the version.
+    AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+    ac_prog_version=`$PARSE_DATETIME_BISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+    case $ac_prog_version in
+      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+      1.* | 2.[0-3] | 2.[0-3].*)
+changequote([,])dnl
+         ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+      *) ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    esac
+    AC_MSG_RESULT([$ac_prog_version])
+  fi
+  if test $ac_verc_fail = yes; then
+    PARSE_DATETIME_BISON=:
+  fi
+  AC_SUBST([PARSE_DATETIME_BISON])
+
   dnl Prerequisites of lib/parse-datetime.h.
   AC_REQUIRE([AM_STDBOOL_H])
   AC_REQUIRE([gl_TIMESPEC])
diff --git a/modules/parse-datetime b/modules/parse-datetime
index 692da25..d54dafd 100644
--- a/modules/parse-datetime
+++ b/modules/parse-datetime
@@ -38,7 +38,7 @@ parse-datetime.c: parse-datetime.y
 	                              y.tab.c parse-datetime.c \
 	                              y.tab.h parse-datetime.h \
 	                              y.output parse-datetime.output \
-	                              -- $(YACC) $(YFLAGS) $(AM_YFLAGS) && \
+	                              -- $(PARSE_DATETIME_BISON) -y -d $(YFLAGS) $(AM_YFLAGS) && \
 	sed -e 's|".*/parse-datetime.y"|"parse-datetime.y"|' \
 	 < parse-datetime.c > parse-datetime.c-t && \
 	rm -f parse-datetime.c && \
-- 
2.7.4


[-- Attachment #3: 0002-parse-datetime-Avoid-warnings-from-bison-versions-3..patch --]
[-- Type: text/x-patch, Size: 3341 bytes --]

From 3e75e00c40ff97b0b72a22c28e4bb9b8086602fb Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Sat, 20 Jul 2019 00:51:26 +0200
Subject: [PATCH 2/2] parse-datetime: Avoid warnings from bison versions >=
 3.3.

Reported by Bernhard Voelker <mail@bernhard-voelker.de>.

* modules/parse-datetime (Makefile.am): Don't pass option '-y' to bison.
---
 ChangeLog              |  6 ++++++
 modules/parse-datetime | 30 +++++++++++++++++-------------
 2 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f8c1541..40d3e67 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2019-07-19  Bruno Haible  <bruno@clisp.org>
 
+	parse-datetime: Avoid warnings from bison versions >= 3.3.
+	Reported by Bernhard Voelker <mail@bernhard-voelker.de>.
+	* modules/parse-datetime (Makefile.am): Don't pass option '-y' to bison.
+
+2019-07-19  Bruno Haible  <bruno@clisp.org>
+
 	parse-datetime: Require Bison 2.4 or newer.
 	* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Set PARSE_DATETIME_BISON.
 	Code taken from gettext's intl.m4.
diff --git a/modules/parse-datetime b/modules/parse-datetime
index d54dafd..5ef3264 100644
--- a/modules/parse-datetime
+++ b/modules/parse-datetime
@@ -30,22 +30,26 @@ configure.ac:
 gl_PARSE_DATETIME
 
 Makefile.am:
-# This rule overrides the Automake generated .y.c rule, to ensure that the
-# parse-datetime.c file gets generated in the source directory, not in the
-# build directory.
+# The Automake generated .y.c rule is broken: When executed in a VPATH build,
+#   - The .c file gets generated in the build directory. But since it requires
+#     special tools to rebuild it, we need to distribute it in the tarballs,
+#     and by the GNU Coding Standards
+#     <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>
+#     the file should be generated in the source directory.
+#   - The #line numbers in the .c file refer to a nonexistent file once it
+#     has been moved from the build directory to the source directory. This
+#     leads to error if 'lcov' is used later.
+# Additionally, here we assume GNU Bison and therefore don't need the ylwrap
+# script.
+# Therefore we override this rule.
 parse-datetime.c: parse-datetime.y
-	$(AM_V_GEN)$(SHELL) $(YLWRAP) $(srcdir)/parse-datetime.y \
-	                              y.tab.c parse-datetime.c \
-	                              y.tab.h parse-datetime.h \
-	                              y.output parse-datetime.output \
-	                              -- $(PARSE_DATETIME_BISON) -y -d $(YFLAGS) $(AM_YFLAGS) && \
-	sed -e 's|".*/parse-datetime.y"|"parse-datetime.y"|' \
-	 < parse-datetime.c > parse-datetime.c-t && \
-	rm -f parse-datetime.c && \
-	mv parse-datetime.c-t $(srcdir)/parse-datetime.c
+	$(AM_V_YACC)$(PARSE_DATETIME_BISON) -d $(YFLAGS) $(AM_YFLAGS) $(srcdir)/parse-datetime.y \
+	&& sed -e 's|".*/parse-datetime.y"|"parse-datetime.y"|' < parse-datetime.tab.c > parse-datetime.c-t \
+	&& rm -f parse-datetime.tab.c parse-datetime.tab.h \
+	&& mv parse-datetime.c-t $(srcdir)/parse-datetime.c
 lib_SOURCES += parse-datetime.y
 BUILT_SOURCES += parse-datetime.c
-MOSTLYCLEANFILES += parse-datetime.c-t
+MOSTLYCLEANFILES += parse-datetime.tab.c parse-datetime.tab.h parse-datetime.c-t
 MAINTAINERCLEANFILES += parse-datetime.c
 EXTRA_DIST += parse-datetime.c
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] parse-datetime: avoid "%pure-parser" deprecation warning from Bison 3.4
  2019-07-19 22:57     ` Bruno Haible
@ 2019-07-21 15:05       ` Bernhard Voelker
  0 siblings, 0 replies; 5+ messages in thread
From: Bernhard Voelker @ 2019-07-21 15:05 UTC (permalink / raw)
  To: Bruno Haible; +Cc: bug-gnulib

Hi Bruno,

On 7/20/19 12:57 AM, Bruno Haible wrote:
> Hi Berny,
> 
>>> 2019-07-19  Bruno Haible  <bruno@clisp.org>
>>>
>>> 	parse-datetime: Require Bison 2.7 or newer.
> 
> Actually it requires Bison 2.4 or newer.

good spot.

>>> +    case $ac_prog_version in
>>> +      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
>>> +      2.[7-9]* | [3-9].*)
>>
>> This would run into a little problem in quite far future ...... when GNU Bison
>> reaches version 10.x.  Maybe adjust to:
>>
>> +      2.[7-9]* | [3-9].* | [1-9][0-9].*)

Even better - thinking positive. ;-)

> Good point. We don't know how the future version numbers will look like. The
> only knowledge we have is on the version numbers of past releases.
> 
> Addressed in the first patch.
> 
>> During generation of parse-datetime.c, I'm getting these 2 new warnings:
>>
>>   /home/berny/coreutils/./lib/parse-datetime.y:568.1-7: warning: POSIX Yacc does not support %define [-Wyacc]
>>     568 | %define api.pure
>>         | ^~~~~~~
>>   /home/berny/coreutils/./lib/parse-datetime.y:573.1-7: warning: POSIX Yacc does not support %expect [-Wyacc]
>>     573 | %expect 31
>>         | ^~~~~~~
>>
> 
> Addressed in the second patch.

Thanks, both patches work for me.

Have a nice day,
Berny


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-07-21 15:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-18 23:17 [PATCH] parse-datetime: avoid "%pure-parser" deprecation warning from Bison 3.4 Bernhard Voelker
2019-07-19  3:03 ` Bruno Haible
2019-07-19  7:45   ` Bernhard Voelker
2019-07-19 22:57     ` Bruno Haible
2019-07-21 15:05       ` Bernhard Voelker

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).