chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-hackers] [PATCH] Fix for #989 and hopefully #877 too


From: Jörg F. Wittenberger
Subject: Re: [Chicken-hackers] [PATCH] Fix for #989 and hopefully #877 too
Date: Wed, 06 Nov 2013 20:18:20 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130329 Thunderbird/17.0.5

Am 06.11.2013 19:39, schrieb "Jörg F. Wittenberger":
Am 06.11.2013 19:35, schrieb Peter Bex:
On Wed, Nov 06, 2013 at 07:20:41PM +0100, "Jörg F. Wittenberger" wrote:
Now I ran a full recompile. To the effect that some macro expansion has
been changed to the worse.

It's somehow related to code, which uses Petrofsky extraction (replacing
some hon-hygienic macros I've been using before).  This used to compile
perfectly for several month.  Now it returns some #<unspecified>
Have a look at whether your code uses letrec.  Its semantics changed
recently to be more standards-correct.  The quick and dirty solution
is to change all letrec uses to letrec*.

This is changeset a647d9ed65f44df527e513464093447f56e24ead, I think.

which means that I have no working code at all anymore using chicken
more recent than July 23rd (my last "follow git").
The change I mentioned is from August, so that makes sense.

Dunno what changed.  Its all so bad I could cry endlessly.
Yeah, breaking changes like this suck :(


At the moment this is my favorite, where I'd bet things break:


Things seem to be much worse than expected.

Without going into all the nasty details, this is roughly where the problem is:

The parameter named 'static-variables' here turned out to be #<unspecified> when referenced:

(define (rules->process recurse static-variables rules)
  (lambda-process
   "rules->process"(rules)
   ;; FIXME: this needs to be rewritten using the new macros!
   (xml-walk*1
           (current-place) (current-message) (root-node)
           (xsl-envt-union (environment) static-variables)
           (namespaces)
           (ancestors)
           (current-node)
           (current-node)
           recurse rules)))


Forget about the lambda-process macro: it's complicated like hell (Petrofsky's extraction + Kiseljov's keywords) it creates a lambda of well known signature and those (current-place), (environment), (namespaces) etc. things will extract the parameters to be fed to this xml-walk*1, which will just continue the xslt transformation. But that's it.

But all those details that can't really matter (IMHO) because if things live up to "hygienic" let me promise one thing: the character sequence "static-variables" is only used twice and both are on display here.

Not captured no matter of hygienic or not.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]