[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #43378] $(guile ...) must be coaxed to accept (or does not accept)
From: |
Paul D. Smith |
Subject: |
[bug #43378] $(guile ...) must be coaxed to accept (or does not accept) valid guile code. |
Date: |
Fri, 10 Oct 2014 17:10:26 +0000 |
User-agent: |
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0 |
Update of bug #43378 (project make):
Component Version: None => 4.0
_______________________________________________________
Follow-up Comment #2:
I agree that make's handling of # is busted: there's actually a bug open
elsewhere for similar issues in the $(shell ...) function. This needs to be
fixed... unfortunately it's a bit problematic since by now people are adding
backslashes to escape the #, which we don't want, so this will be a
backward-incompatible change. Maybe for a time we can accept both. Or
something.
For your second example, this is intended (and necessary) behavior. The
problem you're having is not that ! is an illegal character (it's not; ! is in
no way special to make). The problem is that the $(guile ...) function
expands to the results of the Guile code. In your case the function you
invoked was append!, and that function expands to the new list after the
append is done. So after make runs this:
$(guile (append! %load-path (list "./")))
make sees (and tries to parse) this:
/usr/share/guile/2.0 /usr/share/guile/site/2.0 /usr/share/guile/site
/usr/share/guile ./
and that gives you the "missing separator" error.
You can avoid this by having the final term in your Guile code be #nil; as per
the documentation make converts #nil to the empty string:
$(guile (append! %load-path (list "./")) #nil)
Note backslash is not needed for # here, for some reason (ugh!)
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?43378>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/