|
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 hasbeen changed to the worse.It's somehow related to code, which uses Petrofsky extraction (replacingsome 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.
[Prev in Thread] | Current Thread | [Next in Thread] |