Re: Bison 3.0 updates

Поиск
Список
Период
Сортировка
От Vik Fearing
Тема Re: Bison 3.0 updates
Дата
Msg-id 537CCFFF.3020607@dalibo.com
обсуждение исходный текст
Ответ на Bison 3.0 updates  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Bison 3.0 updates
Список pgsql-hackers
I'm getting some more of these, including some I thought you had fixed.

Bison 3.0.2 on current head.


<>
Writing postgres.bki
Writing schemapg.h
Writing postgres.description
Writing postgres.shdescription
gram.y:172.1-13: warning: deprecated directive, use ‘%name-prefix’ [-Wdeprecated]
 %name-prefix="base_yy"
 ^^^^^^^^^^^^^
Writing fmgroids.h
Writing fmgrtab.c
bootparse.y:96.1-13: warning: deprecated directive, use ‘%name-prefix’ [-Wdeprecated]
 %name-prefix="boot_yy"
 ^^^^^^^^^^^^^
In file included from gram.y:14004:0:
scan.c: In function ‘yy_try_NUL_trans’:
scan.c:10188:23: warning: unused variable ‘yyg’ [-Wunused-variable]
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
                       ^
repl_gram.y:43.1-13: warning: deprecated directive, use ‘%name-prefix’ [-Wdeprecated]
 %name-prefix="replication_yy"
 ^^^^^^^^^^^^^
preproc.y:576.1-13: warning: deprecated directive, use ‘%name-prefix’ [-Wdeprecated]
 %name-prefix="base_yy"
 ^^^^^^^^^^^^^
pl_gram.y:113.1-13: warning: deprecated directive, use ‘%name-prefix’ [-Wdeprecated]
 %name-prefix="plpgsql_yy"
 ^^^^^^^^^^^^^
cubeparse.y:42.1-13: warning: deprecated directive, use ‘%name-prefix’ [-Wdeprecated]
 %name-prefix="cube_yy"
 ^^^^^^^^^^^^^
segparse.y:45.1-13: warning: deprecated directive, use ‘%name-prefix’ [-Wdeprecated]
 %name-prefix="seg_yy"
 ^^^^^^^^^^^^^
PostgreSQL, contrib, and documentation installation complete.
</>



On 07/29/2013 01:05 AM, Tom Lane wrote:
Buildfarm member anchovy has been failing for the last couple of days,
evidently because its owner just couldn't wait to adopt bison 3.0,
which is all of 3 days old.  The failures look like

cubeparse.y:42.1-13: warning: deprecated directive, use '%name-prefix' [-Wdeprecated]%name-prefix="cube_yy"^^^^^^^^^^^^^

(which looks like 3.0 isn't actually ready for prime time, but at least
it's only a warning)

cubeparse.c:163:5: error: conflicting types for 'cube_yyparse'int cube_yyparse (void);    ^
cubeparse.y:32:5: note: previous declaration of 'cube_yyparse' was hereint cube_yyparse(void *result);    ^

A look in the Bison release notes explains this one: they stopped
supporting YYPARSE_PARAM, which contrib/cube and contrib/seg both use.
The recommended replacement is %parse-param, which is certainly a whole
lot cleaner: it lets you specify the datatype of the extra parser
parameter, instead of having it default to "void *".  This option also
changes the signature of yyerror(), but that's not a problem.

At first I thought this was going to make us go through a tool upgrade
exercise, because I couldn't find %parse-param in the documentation for
bison 1.875, which is our oldest supported version.  But further
research shows that %parse-param actually was introduced in 1.875,
they just forgot to document it :-(.

So I propose the attached patch, which I've verified still works with
1.875.  I don't plan to install 3.0 just to test this, but I assume it's
OK there.

I'm thinking we should apply this to all supported branches, in case
somebody gets the idea to build an older branch with bleeding-edge
tools.  Any objections?
		regards, tom lane





-- 
Vik

В списке pgsql-hackers по дате отправления: