From: Paul Smith <psmith@gnu.org>
To: Thien-Thi Nguyen <ttn@gnuvola.org>
Cc: guile-user@gnu.org
Subject: Re: Using guile as an extension language for GNU make
Date: Mon, 19 Sep 2011 11:14:34 -0400 [thread overview]
Message-ID: <1316445274.28907.174.camel@homebase> (raw)
In-Reply-To: <87sjntwf29.fsf@ambire.localdomain>
On Mon, 2011-09-19 at 02:28 +0200, Thien-Thi Nguyen wrote:
> "Clean" in what way? Everything depends on what the expected (valid) use
> of this facility would be. Could you give some examples (w/ failure cases)?
In make, everything is just words: broken up on whitespace. So for
example, maybe someone writes a Guile function that computes a complex
set of prerequisites for a target:
target: $(guile (...some Guile program...))
The list of prerequisites is a whitespace-separated list of target
names. If the Guile program returned a string like "dep1 dep2 dep3"
then that would be fine with what I have. But it seems like it might be
nice to allow the Guile script to return it as a list instead. Then I'd
like to convert a list like '(dep1 dep2 dep3) into a string "dep1 dep2
dep3" (not "(dep1 dep2 dep3)" as display would do).
But of course each element of the list could be something more complex,
as well. So it gets tricky.
> I could write a function then invoke it with scm_map() (right?) but this
> seems like it might be work.
>
> Everything is work. Even play is work (but hopefully more fun/interesting).
Yes but implementing it in C, with the memory management etc., would be
a lot of (not fun/interesting) work.
Hm. I guess I could write a little Guile program to do it for me :-).
> I think concomitant w/ this particular hacking it would nice to implement
> some of the make functions (e.g., ‘patsubst’) in Scheme. Enough of that
> and you will end up {in,con}verting the "embedding" effort to an "extending"
> effort as suggested by Ludo -- YHBW! :-D
Well, since Guile is not required and I want GNU make to continue to
work as-is on systems where Guile is not available, I won't be rewriting
core features in Guile. Yet?!?! :-).
--
-------------------------------------------------------------------------------
Paul D. Smith <psmith@gnu.org> Find some GNU make tips at:
http://www.gnu.org http://make.mad-scientist.net
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist
next prev parent reply other threads:[~2011-09-19 15:14 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-18 0:10 Using guile as an extension language for GNU make Paul Smith
2011-09-18 12:10 ` Ludovic Courtès
2011-09-18 17:21 ` Embedding vs. Extending (was: Re: Using guile as an extension language for GNU make) Paul Smith
2011-09-18 21:48 ` Embedding vs. Extending Ludovic Courtès
2011-09-18 17:42 ` Using guile as an extension language for GNU make Paul Smith
2011-09-18 21:28 ` Ludovic Courtès
2011-09-18 15:30 ` Thien-Thi Nguyen
2011-09-18 19:28 ` Paul Smith
2011-09-19 0:28 ` Thien-Thi Nguyen
2011-09-19 15:14 ` Paul Smith [this message]
2011-09-19 19:41 ` Hans Aberg
2011-09-19 21:56 ` Paul Smith
2011-09-19 22:35 ` Hans Aberg
2011-09-19 23:00 ` Hans Aberg
2011-09-21 2:42 ` Mark H Weaver
2011-09-21 8:24 ` Hans Aberg
2011-09-20 16:17 ` Thien-Thi Nguyen
2011-09-20 17:31 ` Paul Smith
2011-09-20 19:02 ` Paul Smith
2011-09-21 0:48 ` Thien-Thi Nguyen
2011-09-20 20:39 ` Thien-Thi Nguyen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1316445274.28907.174.camel@homebase \
--to=psmith@gnu.org \
--cc=guile-user@gnu.org \
--cc=ttn@gnuvola.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).