pkgsrc/devel/bison/Makefile
wiz 6d80b0f636 Update to 2.7:
* Noteworthy changes in release 2.7 (2012-12-12) [stable]

** Bug fixes

  Warnings about uninitialized yylloc in yyparse have been fixed.

  Restored C90 compliance (yet no report was ever made).

** Diagnostics are improved

*** Changes in the format of error messages

  This used to be the format of many error reports:

    input.y:2.7-12: %type redeclaration for exp
    input.y:1.7-12: previous declaration

  It is now:

    input.y:2.7-12: error: %type redeclaration for exp
    input.y:1.7-12:     previous declaration

*** New format for error reports: carets

  Caret errors have been added to Bison:

    input.y:2.7-12: error: %type redeclaration for exp
     %type <sval> exp
           ^^^^^^
    input.y:1.7-12:     previous declaration
     %type <ival> exp
           ^^^^^^

  or

    input.y:3.20-23: error: ambiguous reference: '$exp'
     exp: exp '+' exp { $exp = $1 + $3; };
                        ^^^^
    input.y:3.1-3:       refers to: $exp at $$
     exp: exp '+' exp { $exp = $1 + $3; };
     ^^^
    input.y:3.6-8:       refers to: $exp at $1
     exp: exp '+' exp { $exp = $1 + $3; };
          ^^^
    input.y:3.14-16:     refers to: $exp at $3
     exp: exp '+' exp { $exp = $1 + $3; };
                  ^^^

  The default behaviour for now is still not to display these unless
  explictly asked with -fcaret (or -fall). However, in a later release, it
  will be made the default behavior (but may still be deactivated with
  -fno-caret).

** New value for %define variable: api.pure full

  The %define variable api.pure requests a pure (reentrant) parser. However,
  for historical reasons, using it in a location-tracking Yacc parser
  resulted in a yyerror function that did not take a location as a
  parameter. With this new value, the user may request a better pure parser,
  where yyerror does take a location as a parameter (in location-tracking
  parsers).

  The use of "%define api.pure true" is deprecated in favor of this new
  "%define api.pure full".

** New %define variable: api.location.type (glr.cc, lalr1.cc, lalr1.java)

  The %define variable api.location.type defines the name of the type to use
  for locations.  When defined, Bison no longer generates the position.hh
  and location.hh files, nor does the parser will include them: the user is
  then responsible to define her type.

  This can be used in programs with several parsers to factor their location
  and position files: let one of them generate them, and the others just use
  them.

  This feature was actually introduced, but not documented, in Bison 2.5,
  under the name "location_type" (which is maintained for backward
  compatibility).

  For consistency, lalr1.java's %define variables location_type and
  position_type are deprecated in favor of api.location.type and
  api.position.type.

** Exception safety (lalr1.cc)

  The parse function now catches exceptions, uses the %destructors to
  release memory (the lookahead symbol and the symbols pushed on the stack)
  before re-throwing the exception.

  This feature is somewhat experimental.  User feedback would be
  appreciated.

** Graph improvements in DOT and XSLT

  The graphical presentation of the states is more readable: their shape is
  now rectangular, the state number is clearly displayed, and the items are
  numbered and left-justified.

  The reductions are now explicitly represented as transitions to other
  diamond shaped nodes.

  These changes are present in both --graph output and xml2dot.xsl XSLT
  processing, with minor (documented) differences.

** %language is no longer an experimental feature.

  The introduction of this feature, in 2.4, was four years ago. The
  --language option and the %language directive are no longer experimental.

** Documentation

  The sections about shift/reduce and reduce/reduce conflicts resolution
  have been fixed and extended.

  Although introduced more than four years ago, XML and Graphviz reports
  were not properly documented.

  The translation of mid-rule actions is now described.
2012-12-16 10:46:17 +00:00

42 lines
1.1 KiB
Makefile

# $NetBSD: Makefile,v 1.89 2012/12/16 10:46:17 wiz Exp $
DISTNAME= bison-2.7
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU:=bison/}
EXTRACT_SUFX= .tar.xz
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://www.gnu.org/software/bison/bison.html
COMMENT= GNU yacc(1) replacement
LICENSE= gnu-gpl-v3
PKG_INSTALLATION_TYPES= overwrite pkgviews
USE_LANGUAGES= c c++
USE_PKGLOCALEDIR= yes
USE_TOOLS+= grep gm4:run msgfmt flex
GNU_CONFIGURE= yes
CONFIGURE_ENV+= gt_cv_func_gnugettext1_libintl=yes
CONFIGURE_ENV+= ac_cv_prog_M4=${TOOLS_PATH.gm4}
INFO_FILES= yes
TEST_TARGET= check
# Avoid rebuilding manpage
pre-build:
${TOUCH} ${WRKSRC}/doc/bison.1
# "bison" wants a recent version of "gettext" which at least some
# NetBSD versions don't provide. Figure out whether it will install
# the locale files or not.
PLIST_SRC= ${WRKDIR}/PLIST
post-configure:
if grep -q '^POSUB = po$$' ${WRKSRC}/Makefile; then \
${CP} ${PKGDIR}/PLIST ${PLIST_SRC}; \
else \
${GREP} -v '^share/locale/' ${PKGDIR}/PLIST >${PLIST_SRC}; \
fi
.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"