* [ANN] nyacc 0.81.0 released
@ 2017-09-02 13:46 Matt Wette
[not found] ` <F0B08C97-F54A-4305-9A1C-BCE771593C38@gmail.com>
0 siblings, 1 reply; 5+ messages in thread
From: Matt Wette @ 2017-09-02 13:46 UTC (permalink / raw)
To: Guile User Mailing List
Nyacc 0.81.0 is released.
This includes the following updates:
1) fix to parsing C comments (nyacc/lex.scm)
2) addition for parsing several GNU C extensions (e.g., asm, statement expressions)
3) fixed bug in cpp.scm where drain-input was used instead of string-get-all
4) in examples/../c99, updates to ffi-helper
5) much hacking on the C99 munging code (c99/util2.scm)
5) numerous other bug fixes
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.
NYACC maturity is beta level.
NYACC is free software; the full source distribution is available through
tarball repository:
https://download.savannah.gnu.org/releases/nyacc/
git repository:
git://git.savannah.nongnu.org/nyacc.git
home page, project page, user's guide:
http://www.nongnu.org/nyacc
https://savannah.nongnu.org/projects/nyacc
http://www.nongnu.org/nyacc/nyacc-ug.html
For support see:
https://savannah.nongnu.org/support/?group=nyacc
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ANN] nyacc 0.82.0 released
[not found] ` <F0B08C97-F54A-4305-9A1C-BCE771593C38@gmail.com>
@ 2017-09-10 18:17 ` Matt Wette
2017-09-16 16:53 ` [ANN] nyacc 0.82.1 released Matt Wette
1 sibling, 0 replies; 5+ messages in thread
From: Matt Wette @ 2017-09-10 18:17 UTC (permalink / raw)
To: Guile User Mailing List; +Cc: guile-devel
> On Sep 10, 2017, at 8:37 AM, Matt Wette <matt.wette@gmail.com> wrote:
>
> Nyacc 0.82.0 has been released
>
> In this version I have cleaned up more of the FFI Helper. Note:
> 1) In the distribution, you will see example .ffi files in examples/ffi/.
> 2) use of the FFI Helper required the bytestructures package, available from:
> https://github.com/TaylanUB/scheme-bytestructures
> 3) ffi/cairo.ffi is converted to ffi/cairo.scm by the command
> $ guild compile-ffi ffi/cairo.ffi
> 4) It works on my mac. I don't know what else: the code needs to have access
> to files in odd places (e.g., lib/gcc/..../include
> 5) If you do `make install', and have bytestructures in the SITE_SCM_DIR, then
> this should work:
> $ make install-ffi-help
> ...
> +++ warning: the FFI Helper is experimental
> ffi-help: can't do varargs (yet)
> wrote `/var/tmp/zz/scm/ffi/sqlite3.scm'
> wrote `/var/tmp/zz/go/ffi/sqlite3.go'
> +++ warning: the FFI Helper is experimental
> ffi-help: can't do varargs (yet)
> wrote `/var/tmp/zz/scm/ffi/libgit2.scm'
> wrote `/var/tmp/zz/go/ffi/libgit2.go'
> +++ warning: the FFI Helper is experimental
> ffi-help: can't do varargs (yet)
> ffi-help: no FFI float-type for "long double"
> wrote `/var/tmp/zz/scm/ffi/glib.scm'
> wrote `/var/tmp/zz/go/ffi/glib.go'
Some additional notes:
6) compile-ffi and compile may take significant time. I have seen compile-ffi take time on
include files that have a large number of re-includes. Nyacc does not try to skip re-reading
include files (like gcc does). And compile takes a long time because the .scm files can be
huge. On my machine, ffi/gio.scm turns out to be about 24 K lines and the gio.go file is 8 MB.
7) In examples I show that passing strings to function is done via (foo (string->pointer "abc")).
Using string->pointer is not required: unwrap~pointer will now deal with this.
8) the FFI Helper files .scm files are distributed in SCM_DIR -- not under nyacc/ :
+ scripts/compile-ffi.scm is the compiler driver invoked by `guild'
+ system/ffi-help-rt.scm is the FFI Helper runtime (macros for defining types, etc)
+ ffi/ is the conventional place to host .ffi files, so ffi/glib.scm is code for (ffi glib)
9) I will need to look into how to add some needed types in guile FFI: intptr_t, long long, long
double.
Matt
^ permalink raw reply [flat|nested] 5+ messages in thread
* [ANN] nyacc 0.82.1 released
[not found] ` <F0B08C97-F54A-4305-9A1C-BCE771593C38@gmail.com>
2017-09-10 18:17 ` [ANN] nyacc 0.82.0 released Matt Wette
@ 2017-09-16 16:53 ` Matt Wette
2017-11-11 14:27 ` Jan Nieuwenhuizen
1 sibling, 1 reply; 5+ messages in thread
From: Matt Wette @ 2017-09-16 16:53 UTC (permalink / raw)
To: guile-devel; +Cc: Guile User Mailing List
Nyacc 0.82.1 has been released.
This is a fix to 0.82.0, which has issues with running the FFI helper.
I can now run the cairo ffi helper demo on Centos. To run the ffi helper
cairo demo, check the file HACKING in the distribution.
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.
NYACC maturity is beta level.
NYACC is free software; the full source distribution is available through
tarball repository:
https://download.savannah.gnu.org/releases/nyacc/
git repository:
git://git.savannah.nongnu.org/nyacc.git
home page, project page, user's guide:
http://www.nongnu.org/nyacc
https://savannah.nongnu.org/projects/nyacc
http://www.nongnu.org/nyacc/nyacc-ug.html
For support see:
https://savannah.nongnu.org/support/?group=nyacc
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ANN] nyacc 0.82.1 released
2017-09-16 16:53 ` [ANN] nyacc 0.82.1 released Matt Wette
@ 2017-11-11 14:27 ` Jan Nieuwenhuizen
2017-11-11 15:22 ` Matt Wette
0 siblings, 1 reply; 5+ messages in thread
From: Jan Nieuwenhuizen @ 2017-11-11 14:27 UTC (permalink / raw)
To: Matt Wette; +Cc: Guile User Mailing List, guile-devel
[-- Attachment #1: Type: text/plain, Size: 971 bytes --]
Matt Wette writes:
Hey Matt,
> Nyacc 0.82.1 has been released.
Congrats!
It's been a while but in 0.82.0 I found a regression of a bug that you
fixed earlier, I think in 0.80.4
https://lists.gnu.org/archive/html/guile-user/2017-06/msg00003.html
I've attached the problematic file again. It's also still present in 0.82.1
$ guile
GNU Guile 2.2.2
Copyright (C) 1995-2017 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(guile-user)> (use-modules (nyacc lalr))
scheme@(guile-user)> *nyacc-version*
$1 = "0.82.1"
scheme@(guile-user)> (use-modules (nyacc lang c99 parser))
scheme@(guile-user)> (with-input-from-file "def-bwl.c" parse-c99)
(unknown):1: parse failed at state 89, on input "DEF_BWL"
(unknown):1: C99 parse error
$2 = #f
Greetings,
janneke
[-- Attachment #2: def-bwl.c --]
[-- Type: application/octet-stream, Size: 528 bytes --]
#define DEF_BWL(x) \
DEF(TOK_ASM_ ## x ## b, #x "b") \
DEF(TOK_ASM_ ## x ## w, #x "w") \
DEF(TOK_ASM_ ## x ## l, #x "l") \
DEF(TOK_ASM_ ## x, #x)
#if 1 // !__MESC__
#define DEF_BWLX DEF_BWL
#else // Workaround for Nyacc
#define DEF_BWLX(x) \
DEF(TOK_ASM_ ## x ## b, #x "b") \
DEF(TOK_ASM_ ## x ## w, #x "w") \
DEF(TOK_ASM_ ## x ## l, #x "l") \
DEF(TOK_ASM_ ## x, #x)
#endif
enum tcc_token {
TOK_LAST
#define DEF(id, str) ,id
DEF_BWLX(mov)
#undef DEF
};
int
main (int argc, char *argv[])
{
return TOK_ASM_mov;
}
[-- Attachment #3: Type: text/plain, Size: 152 bytes --]
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ANN] nyacc 0.82.1 released
2017-11-11 14:27 ` Jan Nieuwenhuizen
@ 2017-11-11 15:22 ` Matt Wette
0 siblings, 0 replies; 5+ messages in thread
From: Matt Wette @ 2017-11-11 15:22 UTC (permalink / raw)
To: Jan Nieuwenhuizen; +Cc: Guile User Mailing List, guile-devel
[-- Attachment #1: Type: text/plain, Size: 1235 bytes --]
> On Nov 11, 2017, at 6:27 AM, Jan Nieuwenhuizen <janneke@gnu.org> wrote:
>
> Matt Wette writes:
>
> Hey Matt,
>
>> Nyacc 0.82.1 has been released.
>
> Congrats!
>
> It's been a while but in 0.82.0 I found a regression of a bug that you
> fixed earlier, I think in 0.80.4
>
> https://lists.gnu.org/archive/html/guile-user/2017-06/msg00003.html
>
> I've attached the problematic file again. It's also still present in 0.82.1
>
> $ guile
> GNU Guile 2.2.2
> Copyright (C) 1995-2017 Free Software Foundation, Inc.
>
> Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
> This program is free software, and you are welcome to redistribute it
> under certain conditions; type `,show c' for details.
>
> Enter `,help' for help.
> scheme@(guile-user)> (use-modules (nyacc lalr))
> scheme@(guile-user)> *nyacc-version*
> $1 = "0.82.1"
> scheme@(guile-user)> (use-modules (nyacc lang c99 parser))
> scheme@(guile-user)> (with-input-from-file "def-bwl.c" parse-c99)
> (unknown):1: parse failed at state 89, on input "DEF_BWL"
> (unknown):1: C99 parse error
> $2 = #f
Ugh. I thought I had that one. I will take a look
PASS: nyacc/c99-01, CPP: #, ##, __VA_ARGS__
[-- Attachment #2: Type: text/html, Size: 2961 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-11-11 15:22 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-02 13:46 [ANN] nyacc 0.81.0 released Matt Wette
[not found] ` <F0B08C97-F54A-4305-9A1C-BCE771593C38@gmail.com>
2017-09-10 18:17 ` [ANN] nyacc 0.82.0 released Matt Wette
2017-09-16 16:53 ` [ANN] nyacc 0.82.1 released Matt Wette
2017-11-11 14:27 ` Jan Nieuwenhuizen
2017-11-11 15:22 ` Matt Wette
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).