From: ludo@gnu.org (Ludovic Courtès)
To: guile-devel@gnu.org
Subject: Parallel installability, API stability
Date: Wed, 21 Oct 2009 18:45:45 +0200 [thread overview]
Message-ID: <87my3kelvq.fsf_-_@gnu.org> (raw)
In-Reply-To: m3aazlq4bm.fsf@pobox.com
Hi again!
Andy Wingo <wingo@pobox.com> writes:
> On Tue 20 Oct 2009 10:27, ludo@gnu.org (Ludovic Courtès) writes:
[...]
>> I think we must pay close attention to backwards compatibility, at least
>> to honor long time promises
>> (http://lists.gnu.org/archive/html/guile-devel/2003-02/msg00074.html).
[...]
> For that reason we also think that Guile should be parallel-installable,
> at least on the library level. That means that we should have the
> version in the library name, and the version in the include path; so
> pkg-config --cflags guile-2.0 will say e.g. -I/usr/include/guile-2.0,
> and that pkg-config --libs guile-2.0 will be e.g. -lguile-2-0, or
> something.
Agreed.
[...]
> Sure, we need to make well-thought-out changes -- but our current
> policy of very extended C-level compatibility is very, very limiting,
> and a big energy drain. If we think we need to change a function
> interface, well, we just change it, and document the change as well --
> perhaps even with a Coccinelle[0] patch.
I’d probably be more conservative than you on API changes. For
instance, I think ‘scm_search_path()’ and ‘scm_primitive_load()’ should
be the same in 1.8 and 2.0 (at least at the C level, because in Scheme
it’s easy to retain compatibility with optional args.)
Guile is a niche, and so is Scheme. Among those who develop
applications using Guile, I bet the vast majority does it on their free
time. Free time is scarce and better spent writing application code
than upgrading to the latest APIs. Thus, I think Guile core should
evolve hands in hands with its users, making, indeed, only
well-thought-out API changes.
Actually, all GNU libraries I can think of, as well as Emacs, follow
this scheme. I don’t think this is pure coincidence. GTK+, Python,
etc. can afford disruptive changes, but their “ecosystem” is much
different.
Thanks,
Ludo’.
next prev parent reply other threads:[~2009-10-21 16:45 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-18 15:36 Compiled load path issues Ludovic Courtès
2009-10-19 19:16 ` Andy Wingo
2009-10-20 8:27 ` Ludovic Courtès
2009-10-20 18:59 ` Andy Wingo
2009-10-21 16:22 ` Ludovic Courtès
2009-10-21 18:15 ` Andy Wingo
2009-10-21 16:45 ` Ludovic Courtès [this message]
2009-10-21 18:17 ` Parallel installability, API stability Andy Wingo
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=87my3kelvq.fsf_-_@gnu.org \
--to=ludo@gnu.org \
--cc=guile-devel@gnu.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).