bug#49910: Fwd: Re: [website] script generating POT files broken with guile@3.0.7

2021-08-18 Thread pelzflorian (Florian Pelz)
I’m closing this issue since a workaround is in place.

The current behavior of the website’s sexp-xgettext script is wrong
(and was wrong before with guile@3.0.2) when passing --keyword=quote
or --keyword=unquote-splicing but nobody does that anyway.

The script should be adapted with further development of (ice-9 read),
for example if comment parsing gets added[0], the PEG parser in
sexp-xgettext can be thrown away.

[0] https://lists.gnu.org/archive/html/guile-user/2021-08/msg9.html

Regards,
Florian





bug#49910: Fwd: Re: [website] script generating POT files broken with guile@3.0.7

2021-08-07 Thread pelzflorian (Florian Pelz)
On Fri, Aug 06, 2021 at 02:16:16PM +0200, Leo Prikler wrote:
> > guile -c '(with-input-from-string ",@" (lambda () (read)))'
> The trick that I'm applying is to call syntax->datum on the return
> value of (read).

This must be a different error because guile errors out without return
value, but thank you for making me read the guile NEWS file again.  I
had forgotten there was a rewrite of (read).

I have pushed a workaround to guix-artwork as
f66b87373b33974751d2567f8c433ce44d07f10a and will take another look at
guile’s behavior now.

Regards,
Florian





bug#49910: Fwd: Re: [website] script generating POT files broken with guile@3.0.7

2021-08-06 Thread Leo Prikler
Misremembered the bug ID, sorry
--- Begin Message ---
Hi Florian,

Am Freitag, den 06.08.2021, 12:53 +0200 schrieb pelzflorian (Florian
Pelz):
> Hello Guix!
> 
> In the guix-artwork.git repo, the pot file generation
> (scripts/sexp-xgettext.scm as described in the file i18n-howto) in
> the website is broken since guile@3.0.7.  Old guile@3.0.2 works.
> 
> The issue is at the end of the procedure in the call to (read) within
> token->string-symbol-or-keyw, specifically
> 
> guile -c '(with-input-from-string ",@" (lambda () (read)))'
> 
> I will investigate, but I don’t fully understand.
Having written a Scheme-specific xgettext implementation myself, I
think the issue here is that guile@3.0.7 returns syntax objects from
(read), whereas previous guile does not.

The trick that I'm applying is to call syntax->datum on the return
value of (read).  In older guile, this does nothing, whereas in newer
guile it returns the symbol, keyword, list... whatever (read) would
have returned in the old implementation.

I hope this works out for you the way it did for me.

Cheers!
--- End Message ---