Re: [PATCH] cygwin070patches_4.patch

2008-08-28 Thread Allison Randal

Reini Urban wrote:

A new idea:
===
#IF(darwin):
#ALSO:# MACOSX_DEPLOYMENT_TARGET must be defined for OS X
#ALSO:export MACOSX_DEPLOYMENT_TARGET := @osx_version@


Just a little too much complexity, for not enough benefit.


The POD for this change:


Looks good.


For legacy the old syntax #CONDITIONED_LINE(var): and
#INVERSE_CONDITIONED_LINE(var): is also supported.


Mention that this syntax will be deprecated.


For lispers the well-known reader-macro syntax #+(and key1 (not key2)):
is also supported, #+ #- with and, or and not, or being the default
for multiple keys without operator. But note the ending C:.


This syntax is not supported. The primary reason for rejecting the 
syntax is because it's too much of a burden on maintainers. If we keep 
the feature someone will certainly use it, and some poor P-language 
programmer is going to get stuck trying to decipher it.



  * or a key=value expression, which checks for the config key,
Note that values may contain no spaces here. Quotes in values
are not supported.


Seems like a sensible addition, though very limited. Make it '==' 
instead of '='.



A key must only consist of word characters, and is checked
case-sensitively against the config key or the platform name.


Explicitly say what you mean by word characters, because different 
languages treat different characters as word forming. If you mean A-Z, 
a-z, and 0-9, say so.


Allison


[PATCH] cygwin070patches_4.patch

2008-08-27 Thread Reini Urban

My latest patch against the cygwin070patches branch r30596.

* Finished implementation of the makefile expansion - perl-style
* Changed all relevant makefile templates.

make fulltest and make codetest has the same few mt-thread and resume 
errors as always.


A new idea:
===
#IF(darwin):
#ALSO:# MACOSX_DEPLOYMENT_TARGET must be defined for OS X
#ALSO:export MACOSX_DEPLOYMENT_TARGET := @osx_version@


The POD for this change:

=item conditioned_lines #IF #UNLESS #ELSIF #ELSE

If conditioned_lines is true, then several expressions at the first column
are evaluated and replaced by the content after the C: dependending on
the evaluation of the expression.

Lines beginning with C#IF(expr): are skipped if the expr
condition is false, otherwise the content after the C: is inserted.
Lines beginning with C#UNLESS(expr): are skipped if the expr condition
is true.
Lines beginning with C#ELSIF(expr): are evaluated if the former 
C#IF(expr):

evaluated to false.
Lines beginning with C#ELSE: are evaluated if the former C#IF(expr): or
C#ELSIF(expr): evaluated to false.

For legacy the old syntax #CONDITIONED_LINE(var): and
#INVERSE_CONDITIONED_LINE(var): is also supported.
For lispers the well-known reader-macro syntax #+(and key1 (not key2)):
is also supported, #+ #- with and, or and not, or being the default
for multiple keys without operator. But note the ending C:.

A condition expr may be:

  * a single key, which is true if a config key is true
- not 0 and not undef and not an empty string,
  * or equal to the platform name, the perl5 osname - case-sensitive,
  * or a key=value expression, which checks for the config key,
Note that values may contain no spaces here. Quotes in values
are not supported.
  * or a logical combination of C| (or), C (and) and C! (not),
with the following order of precedence:  !  |

A key must only consist of word characters, and is checked
case-sensitively against the config key or the platform name.

For instance:

  #IF(win32): $(SRC_DIR)/atomic/gcc_x86$(O)

will be processed if the platform is win32.

  #IF(cpuarch=i386): $(SRC_DIR)/atomic/gcc_x86$(O)

will be skipped if the value of the config key cpuarch is not i386.

  #IF(cpuarch=i386): $(SRC_DIR)/atomic/gcc_x86$(O)
  #ELSIF(cpuarch=sparcv9): $(SRC_DIR)/atomic/sparc_v9.s
  #ELSE:

will use  $(SRC_DIR)/atomic/gcc_x86$(O) on cpuarch=i386,
 $(SRC_DIR)/atomic/sparc_v9.s on cpuarch=sparcv9
and print an empty line otherwise.

  #IF(win32  glut  !cygwin):

will be used on win32 and if glut is defined, but not on cygwin.

The hairy parts from the testsuite
==
dummy1=true, dummy2=false, dummy3=xx
   [IF(dummy1!dummy2dummy3),1],
   [UNLESS(!(dummy1!dummy2dummy3)), 1],
   [IF(dummy1(!dummy2dummy3)),  1],
   [IF(dummy1  (dummy3=xx  (!dummy2))), 1],

--
Reini Urban
http://phpwiki.org/  http://murbreak.at/


cygwin070patches_4.patch.gz
Description: GNU Zip compressed data


Re: [PATCH] cygwin070patches_4.patch

2008-08-27 Thread Moritz Lenz
Reini Urban wrote:
 My latest patch against the cygwin070patches branch r30596.

applied as 30597

Moritz

-- 
Moritz Lenz
http://moritz.faui2k3.org/ |  http://perl-6.de/