m4-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Improve compatibility between M4 and CPP.


From: Eric Blake
Subject: Re: [PATCH] Improve compatibility between M4 and CPP.
Date: Wed, 08 Jul 2009 07:41:23 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.22) Gecko/20090605 Thunderbird/2.0.0.22 Mnenhy/0.7.6.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Raphael 'Kena' Poss on 7/8/2009 6:52 AM:
> The intended meaning of the name "synclines-cpp" was "synclines as
> generated BY cpp", not "for cpp".
> 
> Either my attempt at documenting this option is poor, or I didn't
> explain myself properly the first time (or both), but you did not catch
> the intent behind this.
> 
> The purpose of these changes is to allow running M4 _between_ the C
> preprocessor and _compiler_, i.e. between "cpp" and "cc1":
> 
> (C code) -> CPP -> (preprocessed code) -> M4 -> CC1

cc1 is an internal detail of gcc.  Not all c99 compilers have distinct
internal programs that can be used to cleanly intercept files in between
the preprocessing phase and the translation phase.  In other words, you
are suggesting a feature that is only useful for some tool-chains, rather
than all standard-compliant compilers.  That's not to say we can't accept
the feature, but it means we have to be a lot more picky about it.  If
anything, the name '--synclines-cc1' or '--synclines-alternate' may be
more appropriate, since the point is that you are generating an alternate
style of synclines that are designed for the gcc-specific tool cc1 (rather
than for another pass through c99).  But even then, I would still like for
'm4 --sync' to be short for 'm4 --synclines' rather than an ambiguous
option, so suggestions for a better name that avoids option-name ambiguity
would be welcome (maybe '--alternate-synclines'?).

>> And if we do add that as an option, we should break this into multiple
>> patches - one that adds an optional argument to __line__/__file__, and
>> another patch that introduces the new option, rather than doing it all in
>> one patch.
> 
> My opinion is that they are related, i.e. provide the minimal set of
> features that allows to fit M4 between CPP and CC1.

Related, yes.  But same patch, no, because the proposed changes to
__line__ are useful without injecting m4 between cpp and cc1.  And git
makes it particularly easy to split patches into smaller, logical chunks.

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkpUogMACgkQ84KuGfSFAYCK9wCgjH+amMpmoJXzKq3PRGUrLaSJ
zcQAn010/FgqKxqwfrfKx6iO9Ss0FCIj
=MClk
-----END PGP SIGNATURE-----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]