Re: pure parsers and reentrant scanners

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Eisentraut <peter@eisentraut.org>
Cc: Andreas Karlsson <andreas@proxel.se>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-12-18T17:43:31Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Return yyparse() result not via global variable

  2. Remove flex version checks

  3. Drop warning-free support for Flex 2.5.35

  4. plpgsql: pure parser and reentrant scanner

  5. flex code modernization: Replace YY_EXTRA_TYPE define with flex option

  6. guc: reentrant scanner

  7. jsonpath scanner: reentrant scanner

  8. syncrep parser: pure parser and reentrant scanner

  9. replication parser: pure parser and reentrant scanner

  10. bootstrap: pure parser and reentrant scanner

  11. Small whitespace improvement

  12. Prevent redeclaration of typedef yyscan_t

  13. seg: pure parser and reentrant scanner

  14. cube: pure parser and reentrant scanner

Peter Eisentraut <peter@eisentraut.org> writes:
> I started committing the cube and seg pieces.  There were a couple of 
> complaints from the buildfarm, like
> segscan.c:348:15: error: redefinition of typedef 'yyscan_t' is a C11 
> feature [-Werror,-Wtypedef-redefinition]
> typedef void* yyscan_t;
> ...
> (Also, we should probably figure out a way to get these warnings before 
> things hit the buildfarm.)

Interestingly, while sifaka shows that, its sibling indri doesn't.
Same compiler, same CFLAGS.  I think the relevant difference must
be that sifaka is using a much older Bison version (the Apple-supplied
2.3, versus MacPorts' up-to-the-minute version).  I think that sort of
thing is exactly why we have the buildfarm.  It would not be
reasonable to expect CI to cover that many cases.  Trying to do so
would just make CI slow enough that we'd start looking for a new test
phase to put in front of it.

			regards, tom lane