Hi All,

I'm releasing 3.00.0 of NYACC, the first from my github account.
I've moved away from savannah due to performance issues, like others.

Matt


NYACC, for Not Yet Another Compiler Compiler, is set of guile modules for
generating parsers and lexical analyzers.  It also provides sample parsers
and pretty-printers using SXML trees as an intermediate representation.

It provides a decent C parser and a `FFI Helper' tool to help create
Guile Scheme bindings for C-based libraries.

It provides (partially implemented) compilers based on above mentioned
parsers to allow execution with Guile as extension languages.

Changes for V3.00.0 from V2.02.3:
* Removed support for bytestructures
* Updated C parser to handle typedefs better.
    typedef int foo; int bar(foo foo) { ... }
    typedef int foo; struct { foo foo; } x;
    typedef int foo; int bar() { typedef short foo; ... }
  This amounted to updating a custom make-lalr-parser procedure
  which converts unexpected typename tokens to $ident.
* The C parser handles more integer type combinations correctly.
* The C parser now outputs canonical fixed (aka integer) types.
  on parsing "short int" it used to output "short int" but now "short".
* Updated nyacc/foreign/arch-info.scm to handle complex types.  This
  includes new mtypes z32le, z64le, z32be and z64be.
* Added support of PKG_CONFIG env var to provide path to pkg-config.
* ffi functions returing in or float will not be converted to cdata;
  This "feature" had been introduced in one of the earlier 2.0 series.
* Added support for __int128; fixed type: i128 -> s128
* c99(cxeval.scm): fix alignof-type expr in eval-c99-cx
* c99(mach.scm): allow attribute-specifier for compound literal
* ffi-help-cd(udecl->sexp): for typedef struct ref, if struct def was
  previously defined use it instead of 'void
* lang/util.scm(move-if-changed): use system* instead of system, for MES
* lang/util.scm: add def of string-every, for MES
* c99/mach.scm(parse-rhs): changed to syntax-rules from syntax-case
  with aid from new macro wrap-term which detects ident's, for MEs

NYACC maturity is production/stable level.

NYACC is free software; the full source distribution is available through

* the tarball repository:
    https://github.com/mwette/nyacc/releases
  pre 3.00:
    https://download.savannah.gnu.org/releases/nyacc/

* the git repository:
    git://github.com:mwette/nyacc.git
  pre 3.00:
    git://git.savannah.nongnu.org/nyacc.git

home page, project page and user's guides:
  https://github.com/mwette/nyacc/wiki

Report bugs:
  https://github.com/mwette/nyacc/issues



Reply via email to