Mail Archives: cygwin/2021/09/19/19:30:55
X-Recipient: | archive-cygwin AT delorie DOT com
|
X-Original-To: | cygwin AT cygwin DOT com
|
Delivered-To: | cygwin AT cygwin DOT com
|
DMARC-Filter: | OpenDMARC Filter v1.4.1 sourceware.org 5ECBD3858D3C
|
Authentication-Results: | sourceware.org; dmarc=none (p=none dis=none)
|
| header.from=SystematicSW.ab.ca
|
Authentication-Results: | sourceware.org;
|
| spf=none smtp.mailfrom=systematicsw.ab.ca
|
X-Authority-Analysis: | v=2.4 cv=Bbi7bph2 c=1 sm=1 tr=0 ts=6147c73a
|
| a=T+ovY1NZ+FAi/xYICV7Bgg==:117 a=T+ovY1NZ+FAi/xYICV7Bgg==:17 a=mDV3o1hIAAAA:8
|
| a=gu6fZOg2AAAA:8 a=qQsM2SJeto8ZqgeK_0kA:9 a=-FEs8UIgK8oA:10 a=NWVoK91CQyQA:10
|
| a=_FVE-zBwftR9WsbkzFJk:22 a=2RSlZUUhi9gRBrsHwhhZ:22
|
From: | Cygwin bison Co-Maintainer <Brian DOT Inglis AT SystematicSW DOT ab DOT ca>
|
To: | cygwin AT cygwin DOT com
|
Date: | Sun, 19 Sep 2021 17:20:45 -0600
|
Message-Id: | <announce.20210919172045.42097-1-Brian.Inglis@SystematicSW.ab.ca>
|
Subject: | [ANNOUNCEMENT] Updated: bison 3.8.1
|
X-CMAE-Envelope: | MS4xfDMAiuKdA2lle3py8YPrtrc+jfyVJKlvREnT+bNCkHpcySD0UqXtBkxU+yPEKy2h3a3Jcr6cDcLxD2WobZBkCi6QXgoFhujMy6wzqU2THfFqmXwKq+OT
|
| GBoDE3ftZkxwz9hdgL06PLaIcPRl4EFxf7SikrHKshuHLqIFH5Zn+evcya9yIAG1aimVstrPkLdYmPeD19AZTbnazxzTRGEZDSFcumytye70VFC0adLBrDoO
|
| 8rGtmZIrpMpvSlP1Y3Y76jxQSWXbx181vqBfeGW0ugc=
|
X-Spam-Status: | No, score=-1159.8 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS,
|
| KAM_INFOUSMEBIZ, KAM_LAZY_DOMAIN_SECURITY, KAM_NUMSUBJECT, KAM_SHORT,
|
| PP_MIME_FAKE_ASCII_TEXT, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE,
|
| RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE,
|
| TXREP autolearn=no autolearn_force=no version=3.4.4
|
X-Spam-Checker-Version: | SpamAssassin 3.4.4 (2020-01-24) on
|
| server2.sourceware.org
|
X-BeenThere: | cygwin-announce AT cygwin DOT com
|
X-Mailman-Version: | 2.1.29
|
X-Mailer: | Perl5 Mail::Internet v2.20
|
X-BeenThere: | cygwin AT cygwin DOT com
|
List-Id: | General Cygwin discussions and problem reports <cygwin.cygwin.com>
|
List-Archive: | <https://cygwin.com/pipermail/cygwin/>
|
List-Post: | <mailto:cygwin AT cygwin DOT com>
|
List-Help: | <mailto:cygwin-request AT cygwin DOT com?subject=help>
|
List-Subscribe: | <https://cygwin.com/mailman/listinfo/cygwin>,
|
| <mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
|
Reply-To: | cygwin AT cygwin DOT com
|
MIME-Version: | 1.0
|
Sender: | "Cygwin" <cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com>
|
--===============3944429065081925196==
Content-Type: text/plain
The following packages have been upgraded in the Cygwin distribution:
* bison 3.8.1
Bison is a general-purpose parser generator that converts an annotated
context-free grammar into a deterministic LR or generalized LR (GLR)
parser employing LALR(1) parser tables. As an experimental feature,
Bison can also generate IELR(1) or canonical LR(1) parser tables. Once
you are proficient with Bison, you can use it to develop a wide range of
language parsers, from those used in simple desk calculators to complex
programming languages.
Bison is upward compatible with Yacc: all properly-written Yacc grammars
ought to work with Bison with no change. Anyone familiar with Yacc
should be able to use Bison with little trouble. You need to be fluent
in C or C++ programming in order to use Bison. Java is also supported as
an experimental feature.
For more information see the project home pages:
https://www.gnu.org/software/bison/
https://sv.gnu.org/projects/bison/
For changes since the previous Cygwin release please see below or read
/usr/share/doc/bison/NEWS after installation; for complete details see:
/usr/share/doc/bison/ChangeLog
https://git.sv.gnu.org/gitweb/?p=bison.git;a=log;h=refs/tags/v3.8.1
Noteworthy changes in release 3.8.1 (2021-09-11) [stable]
The generation of prototypes for yylex and yyerror in Yacc mode is
breaking existing grammar files. To avoid breaking too many grammars, the
prototypes are now generated when `-y/--yacc` is used *and* the
`POSIXLY_CORRECT` environment variable is defined.
Avoid using `-y`/`--yacc` simply to comply with Yacc's file name
conventions, rather, use `-o y.tab.c`. Autoconf's AC_PROG_YACC macro uses
`-y`. Avoid it if possible, for instance by using gnulib's gl_PROG_BISON.
Noteworthy changes in release 3.8 (2021-09-07) [stable]
* Backward incompatible changes
In conformance with the recommendations of the Graphviz team
(https://marc.info/?l=graphviz-devel&m=129418103126092), `-g`/`--graph`
now generates a *.gv file by default, instead of *.dot. A transition
started in Bison 3.4.
To comply with the latest POSIX standard, in Yacc compatibility mode
(options `-y`/`--yacc`) Bison now generates prototypes for yyerror and
yylex. In some situations, this is breaking compatibility: if the user
has already declared these functions but with some differences (e.g., to
declare them as static, or to use specific attributes), the generated
parser will fail to compile. To disable these prototypes, #define yyerror
(to `yyerror`), and likewise for yylex.
* Deprecated features
Support for the YYPRINT macro is removed. It worked only with yacc.c and
only for tokens. It was obsoleted by %printer, introduced in Bison 1.50
(November 2002).
It has always been recommended to prefer `%define api.value.type foo` to
`#define YYSTYPE foo`. The latter is supported in C for compatibility
with Yacc, but not in C++. Warnings are now issued if `#define YYSTYPE`
is used in C++, and eventually support will be removed.
In C++ code, prefer value_type to semantic_type to denote the semantic
value type, which is specified by the `api.value.type` %define variable.
* New features
- A skeleton for the D programming language
The "lalr1.d" skeleton is now officially part of Bison.
It was originally contributed by Oliver Mangold, based on Paolo Bonzini's
lalr1.java, and was improved by H. S. Teoh. Adela Vais then took over
maintenance and invested a lot of efforts to complete, test and document
it.
It now supports all the bells and whistles of the other deterministic
parsers, which include: pull/push interfaces, verbose and custom error
messages, lookahead correction, token constructors, internationalization,
locations, printers, token and symbol prefixes, etc.
Two examples demonstrate the D parsers: a basic one (examples/d/simple),
and an advanced one (examples/d/calc).
- Option -H, --header and directive %header
The option `-H`/`--header` supersedes the option `--defines`, and the
directive %header supersedes %defines. Both `--defines` and `%defines`
are, of course, maintained for backward compatibility.
- Option --html
Since version 2.4 Bison can be used to generate HTML reports. However it
was a two-step process: first bison must be invoked with option `--xml`,
and then xsltproc must be run to the convert the XML reports into HTML.
The new option `--html` combines these steps. The xsltproc program must
be available.
- A C++ native GLR parser
A new version of the C++ GLR parser was added: "glr2.cc". It generates
"true C++11", instead of a C++ wrapper around a C parser as does the
existing "glr.cc" parser. As a first significant consequence, it supports
`%define api.value.type variant`, contrary to glr.cc.
It should be upward compatible in terms of interface, feature and
performance to "glr.cc". To try it out, simply use
%skeleton "glr2.cc"
It will eventually replace "glr.cc". However we need user feedback on
this skeleton. _Please_ report your results and comments about it.
- Counterexamples
Counterexamples now show the rule numbers, and always show ε for rules
with an empty right-hand side. For instance
exp
↳ 1: e1 e2 "a"
↳ 3: ε • ↳ 1: ε
instead of
exp
↳ e1 e2 "a"
↳ • ↳ ε
- Lookahead correction in Java
The Java skeleton (lalr1.java) now supports LAC, via the `parse.lac`
%define variable.
- Abort parsing for memory exhaustion (C)
User actions may now use `YYNOMEM` (similar to `YYACCEPT` and `YYABORT`)
to abort the current parse with memory exhaustion.
- Printing locations in debug traces (C)
The `YYLOCATION_PRINT(File, Loc)` macro prints a location. It is defined
when (i) locations are enabled, (ii) the default type for locations is
used, (iii) debug traces are enabled, and (iv) `YYLOCATION_PRINT` is not
already defined.
Users may define `YYLOCATION_PRINT` to cover other cases.
- GLR traces
There were no debug traces for deferred calls to user actions. They are
logged now.
--===============3944429065081925196==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
--===============3944429065081925196==--
- Raw text -