unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Rob Browning <rlb@defaultvalue.org>
Cc: Han-Wen Nienhuys <hanwen@cs.uu.nl>,
	Dirk Herrmann <dirk@sallust.ida.ing.tu-bs.de>,
	guile-devel@gnu.org
Subject: Re: Release Guile, now  ;-) [was:] Re: GC rewrite, first version.
Date: Fri, 02 Aug 2002 09:50:12 -0500	[thread overview]
Message-ID: <87it2t71sr.fsf@raven.i.defaultvalue.org> (raw)
In-Reply-To: <20020802093547.GA8943@www> (rm@fabula.de's message of "Fri, 2 Aug 2002 11:35:47 +0200")

rm@fabula.de writes:

> I feel sorry seeing that my complaints cause such a lot of trouble.

No it's good.  If we're now #defining really generic things that break
compilation with other packages, then we really have to fix that.

> Hmm, i don't understand this. The offending header file is not
> generated by 'autoheader', it's processed by 'configure'. Instead of
> writing a custom c program that emits all needed #defines wouldn't
> it be sufficient to create scmconfig.h.in by hand?

Actually I believe scmconfig.h is generated by autoheader.  See
configure.in:

  AM_CONFIG_HEADER(libguile/scmconfig.h)

And while I'd certainly be open to other options, the trivial C
program means we can use *exactly* the values that the auto* machinery
normally generates via config.h, and it'll automatically get the
dependencies right too.  When config.h changes, so will scmconfig.h.
Other solutions would be OK too, but this one seems nice and simple.

I thought about using configure to generate scmconfig.h from
scmconfig.h.in via embedded @FOO@ bits, but if you do that, then you
have to go through and add a whole lot more code to configure.in to
AC_DEFINE all the things you need, and you can't do #if* reasoning
based on the config.h HAVE_* defines to decide what to put in
scmconfig.h.  With the C program approach, you get this for "free".

> | AC_PREREQ(2.53)
> | AC_INIT
> | 
> | AM_CONFIG_HEADER(libguile/scmconfig.h)
> | 
> | AC_DEFINE(GUILE_DEBUG_FREELIST, 1,
> |       [Define this if you want to debug the free list (helps w/ GC bugs).])
> | AC_DEFINE(GUILE ......
> | 

Sure we could do that, but what if we wanted to do things like:

  #ifdef HAVE_FOO && HAVE_BAR
    printf("#define ...");
    printf("typedef ...");
    printf("#define super fancy ...");
  #else
    printf("...");
  #endif

Of course, you can do this with the configure machinery, but I suspect
it's going to be more code, and not as straigtforward.  With the tiny
C program approach, you only have 2 files, the normal config.h you've
got to have anyhow and the C program, and the processing is just a
trivial Makefile.am rule, or to put it another way, when the info you
need's already going to be in a C header, it seemed most
straightforward to handle it via C.

> May i offer my help?

Sure, though we've got to figure out how much has to be done
immediately.  I'm suspecting we may be able to just back out
PACKAGE_NAME and a few of the other offenders and solve things more
correctly after 1.6.1.

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


  parent reply	other threads:[~2002-08-02 14:50 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-07-27 22:54 GC rewrite, first version Han-Wen
2002-07-28 16:40 ` Rob Browning
2002-07-29 20:11   ` Dirk Herrmann
2002-07-29 21:04     ` Rob Browning
2002-07-29 22:05       ` Han-Wen
2002-07-31 17:03         ` Dirk Herrmann
2002-07-31 18:02           ` Han-Wen Nienhuys
2002-07-31 21:15             ` Rob Browning
2002-08-01  9:20               ` Release Guile, now ;-) [was:] " rm
2002-08-01 16:27                 ` Rob Browning
2002-08-01 16:44                   ` rm
2002-08-01 18:37                   ` Sergey Poznyakoff
2002-08-01 22:21                     ` Rob Browning
2002-08-02  6:09                       ` Sergey Poznyakoff
2002-08-02 14:36                         ` Rob Browning
2002-08-02 17:29                           ` Sergey Poznyakoff
2002-08-02 18:10                             ` Bruce Korb
2002-08-02 19:50                               ` Rob Browning
2002-08-03  7:13                               ` Sergey Poznyakoff
2002-08-04 20:43                                 ` Bruce Korb
2002-08-04 20:57                                   ` Sergey Poznyakoff
2002-08-01 22:40                   ` Rob Browning
2002-08-02  9:35                     ` rm
2002-08-02 11:59                       ` rm
2002-08-02 15:00                         ` Rob Browning
2002-08-02 14:50                       ` Rob Browning [this message]
2002-08-01  9:59               ` Han-Wen Nienhuys
2002-08-01  8:46             ` Marius Vollmer
2002-07-31 18:46         ` Neil Jerram
2002-08-01  9:58           ` Han-Wen Nienhuys
2002-07-28 16:51 ` Michael Livshin

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=87it2t71sr.fsf@raven.i.defaultvalue.org \
    --to=rlb@defaultvalue.org \
    --cc=dirk@sallust.ida.ing.tu-bs.de \
    --cc=guile-devel@gnu.org \
    --cc=hanwen@cs.uu.nl \
    /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).