[PATCH] cygwin070patches_4.patch

--------------030804070801060907040802
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

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&!dummy2&dummy3)",            1],
        ["UNLESS(!(dummy1&!dummy2&dummy3))",     1],
        ["IF(dummy1&(!dummy2&dummy3))",          1],
        ["IF(dummy1 & (dummy3=xx & (!dummy2)))", 1],

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

--------------030804070801060907040802
Content-Type: application/x-gzip;
 name="cygwin070patches_4.patch.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="cygwin070patches_4.patch.gz"

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
JaRx6u/+P5gIe2yb4QEA
--------------030804070801060907040802--
0
rurban (23)
8/27/2008 5:47:06 PM
perl.perl6.internals 7376 articles. 0 followers. Follow

8 Replies
1085 Views

Similar Articles

[PageSpeed] 12
Get it on Google Play
Get it on Apple App Store

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/
0
moritz
8/27/2008 7:03:25 PM
--------------070805090900000101020805
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Moritz Lenz schrieb:
> Reini Urban wrote:
>> My latest patch against the cygwin070patches branch r30596.
> 
> applied as 30597

Thanks!
And one more.

Add docs/pdds/draft/pdd30_install.pod
Fix bf and tcl makefiles

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

--------------070805090900000101020805
Content-Type: text/x-patch;
 name="cygwin070patches_5.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="cygwin070patches_5.patch"

Index: docs/pdds/draft/pdd30_install.pod
===================================================================
--- docs/pdds/draft/pdd30_install.pod	(revision 0)
+++ docs/pdds/draft/pdd30_install.pod	(revision 0)
@@ -0,0 +1,213 @@
+# Copyright (C) 2008, The Perl Foundation.
+# $Id: pdd30_install.pod 30255 2008-08-23 12:15:46Z rurban $
+
+=head1 NAME
+
+docs/pdds/draft/pdd30_install.pod - Parrot Installation
+
+=head1 ABSTRACT
+
+This PDD defines Parrot's installation details. The goal is to provide binary
+packages, a working C<make install> for parrot, the installables, FHS compliant
+search paths for the installables and solving the problem of not accessing
+installed source-only files and the optimization of config bootstrapping
+if a frozen config_hash is already linked.
+
+=head1 VERSION
+
+$Revision: 30459 $
+
+=head1 SYNOPSIS
+
+ make install
+ make test-installable -C language/lang
+ make installable -C language/lang
+ make install -C language/lang DESTDIR=inst
+
+=head1 DESCRIPTION
+
+Parrot installation mechanisms are more powerful than perl5's.
+MANIFEST contains also the end location, tools/dev/install_files.pl is driven
+by this definition.
+The three runtime paths for "include", "library" for load_bytecode and "dynext"
+for loadlib should end up in the $prefix/lib/parrot paths.
+See #56996-fhs-runtime.patch
+
+Contrary to perl5, parrot and its language implementions on top of parrot may
+be installed as self-hosting single-file executables, with the help of merged
+pbc's and pbc2exe --install.
+
+Bootstrapping the config hash should not read a config file when the hash is
+already contained in the pmc or executable. See #57418 [TODO] optimize
+_config to omit .include "library/config.pir" on installables.
+
+The same problem is for every .include, .loadlib and .load_bytecode statement
+in installed files where the target is not installed. This could be solved with
+a module system or with pbc_merge removing not needed .load_bytecode statements.
+
+Test executables are binary different to installable executables because of
+this embedded config hash. Test executables contain config hash with
+the prefix to the build_dir, installables to the given prefix from Configure.pl.
+
+There are's also a long-standing conflict in building parrot with an already
+installed shared libparrot.so. See #39742-installed-conflict.patch which adds
+the blib/lib path to PATH resp. LD_RUN_PATH.
+
+=head1 DEFINITIONS
+
+An B<installable> is a pbc or exe which must not access the build_dir
+paths. The build_dir is not available in a binary package. This is solved by
+generating and linking a special F<install_config.fpmc>. Custom python modules
+have a similar packaging problem, which they haven't solved yet.
+
+B<build_dir> is the full path where parrot was built. It is defined in the
+config hash. When building from source build_dir is also the PARROT_RUNTIME prefix.
+
+B<DESTDIR> is the end location of the parrot tree in front of the prefix
+(/usr or /usr/local). This allows packaging by installing into a seperate
+install tree and do a tar cf there.
+
+The B<config hash> is the return value of the global function C<_config()>,
+generated in F<config_lib.pasm>, and either defined in F<library/config.pir>, or
+as frozen pmc embedded in the test executable (F<config.fpmc>), the installable
+executable (F<install_config.fpmc>) or empty for miniparrot (F<null_config.fpmc>).
+
+=head1 IMPLEMENTATION
+
+=head2 make install
+
+The parrot build system is optimized for building and testing in the
+build_dir, but not for building with an already installed parrot due to simple
+build system bugs, and not optimized to build and test installables, which should
+not access the libraries in the build_dir, but in the DESTDIR.
+
+The goal is to make install work for parrot, the utils, and all the languages.
+For parrot and its utils the install actions are defined in the main Makefile,
+for the languages the install actions should be defined in its Makefiles and
+is implemented in #56554-make-install-lang.patch.
+
+C<make install> currently does not work with an already installed shared
+libparrot.so on most platforms. There's a patch at #39742.
+
+make install actions for a language lang:
+
+ copy installables to DESTDIR/bin_dir as parrot-lang
+ optionally copy lang.pbc to DESTDIR/script_dir (/usr/lib/parrot/bin/ ?)
+ copy libraries to DESTDIR/lib_dir/parrot/dynext/
+ optionally copy pbc's to DESTDIR/lib_dir/parrot/library/ (only php_ext)
+ optionally copy include pasm and pirs to DESTDIR/lib_dir/parrot/include/ (not yet)
+ copy docs to DESTDIR/doc_dir/
+ generate a man(1) page and copy to DESTDIR/man_dir/
+ optionally generate html and copy to DESTDIR/html_dir/lang/
+
+=head2 make installable -C languages/lang
+
+This creates a pbc or exe linked to F<install_config.fpmc>, and this
+executable should not access the build_dir/runtime/parrot paths.
+
+A pbc may be optionally merged with F<install_config.fpmc>, an exe
+is just linked with C<pbc_to_exe --install>.
+
+=head2 make test-installable -C languages/lang
+
+B<Goal>: Test if the generated installable does not access the build_dir paths
+but does find older libraries, includes and dynext's in $prefix. DESTDIR is
+not known and may be optional. A simple test from C<make test> without any
+features from an external library is enough, because newer libraries are not
+installed yet at this stage.
+
+B<Implementation>: I<TODO>
+
+B<Problem>: C<make test-installable> should copy the make install files away, out
+of the build_dir, should temporarily rename build_dir, run a simple test, and
+remake the build_dir back. This will not be possible from a make run from
+within the build_dir. So renaming runtime will be it.
+
+This is fragile and similar for every language target, so it should be
+simplified by a make framework, like include F<Makefile.common> or
+extending the current automake-like framework.
+
+=head2 _config bootstrapping
+
+Bootstrapping the config hash should not read a config file when the hash is
+already contained in the pmc or executable.
+.include "library/config.pir" and .load_bytecode "config.pbc" should be
+omitted on installables if possible.
+
+=head2 Accessing not-installed files
+
+B<Problem:> Various pir files load source-only .pir, .pasm or compiler .pbc
+files, which are not installed in binary packages.
+This shows up when trying to run an installable with the build_dir removed or renamed.
+
+ $ parrot-forth.exe xx
+ "load_bytecode" couldn't find file 'languages/forth/tokenstream.pbc'
+ current instr.: ' init' pc 942 (forth.pir:9)
+ called from Sub 'main' pc 994 (forth.pir:40)
+
+ $ parrot-pheme.exe
+ "load_bytecode" couldn't find file 'compilers/tge/TGE/Rule.pbc'
+ current instr.: 'parrot;TGE;__onload' pc 19 (TGE.pir:94)
+ called from Sub 'parrot;Pheme::AST::Grammar;__onload' pc 7175 (languages/pheme/lib/ASTGrammar.pir:5)
+ called from Sub 'parrot;Pheme::Compiler;main' pc -1 ((unknown file):-1)
+
+ $ parrot-pipp
+ Parrot VM: Can't stat /usr/src/perl/parrot/parrot-0.7.0-1/build/languages/pipp/src/common/pipplib.pbc, code 2.
+ Unable to append PBC to the current directory
+ current instr.: 'parrot;Pipp;__onload' pc 47 (src/common/pipp.pir:92)
+ called from Sub 'parrot;Pipp;pipp' pc -1 ((unknown file):-1)
+
+B<Fix 1>: Install all deps.
+
+The simple forth and pipp problem could be solved by merging the missing pbc's
+to a single file F<forth.pbc> and generate from this the installable.
+
+The simple pheme problem could be solved by installing also all TGE
+and other compiler pbc's at the parrot/library/compilers path.
+
+The same problem is for every .include, .loadlib and .load_bytecode statement
+in installed files where the target is not installed.
+
+This could also be solved with a module system or with pbc_merge removing
+those statements.
+
+B<Fix 2>: Module system.
+
+Avoid already loaded pbc files.
+
+Source loading PIR statements like .loadlib and .load_bytecode should
+a) hash its arg and skip the file if already loaded (hash lookup)
+b) add .load*_once sisters as in php - .load_bytecode_once and .loadlib_once
+
+B<Fix 3>: pbc_merge fixups
+
+pbc_merge should patch up the bytecode (if possible) to omit
+loading .load_bytecode pbc-files which are being merged.
+
+B<Fix 4>: .include_bytecode
+
+Introduce a new op .include_bytecode, which works like .include, but
+on the bc level.
+
+=head1 ATTACHMENTS
+
+None.
+
+=head1 FOOTNOTES
+
+None.
+
+=head1 REFERENCES
+
+The mentioned patches against SVN HEAD are at
+http://code.google.com/p/cygwin-rurban/source/browse/trunk/release/parrot/patches
+The patches in the tickets are always too old.
+
+#nnnnn references tickets in http://rt.perl.org/rt3/Ticket/Display.html?id=nnnnn
+
+=cut
+
+__END__
+Local Variables:
+ fill-column:78
+End:
Index: languages/bf/config/makefiles/root.in
===================================================================
--- languages/bf/config/makefiles/root.in	(revision 30597)
+++ languages/bf/config/makefiles/root.in	(working copy)
@@ -1,13 +1,17 @@
 # $Id$
-LANG = bf
+TMPL = bf
+
 BIN_DIR       = @bin_dir@
 LIB_DIR       = @lib_dir@
 DOC_DIR       = @doc_dir@
 MANDIR	      = @mandir@
 
-RM_F = @rm_f@
-PERL = @perl@
-PARROT = ../../parrot@exe@
+RM_F          = @rm_f@
+PERL          = @perl@
+CP            = @cp@
+MKPATH        = @mkpath@
+POD2MAN       = pod2man
+PARROT        = ../../parrot@exe@
 PBC_TO_EXE    = ../../pbc_to_exe@exe@
 #IF(darwin):
 #IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
Index: languages/tcl/config/makefiles/root.in
===================================================================
--- languages/tcl/config/makefiles/root.in	(revision 30597)
+++ languages/tcl/config/makefiles/root.in	(working copy)
@@ -1,16 +1,14 @@
 # $Id$
-LANG    = tcl
-RM_F    = @rm_f@
-PERL    = @perl@
-POD2MAN = pod2man
+TMPL    = tcl
 
+PERL        = @perl@
 BUILD_DIR   = @build_dir@
 PARROT      = $(BUILD_DIR)/parrot@exe@
 PBC_TO_EXE  = $(BUILD_DIR)/pbc_to_exe@exe@
 RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
-#+(darwin):
-#+(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
-#+(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+#IF(darwin):
+#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
 
 TCL_LIB   = library
 PMCBUILD  = $(PERL) @build_dir@/tools/build/dynpmc.pl
@@ -146,7 +144,7 @@
 	@cd $(OPSDIR) && $(OPSBUILD) copy "--destination=$(DESTDIR)$(LIB_DIR)/parrot/dynext" tcl
 	@cd $(PMCDIR) && $(PMCBUILD) copy "--destination=$(DESTDIR)$(LIB_DIR)/parrot/dynext" $(PMCS)
 	$(COPY) runtime/tcllib.pbc $(DESTDIR)$(LIB_DIR)/parrot/library
-	$(POD2MAN) README.pod > $(DESTDIR)$(MANDIR)/man1/parrot-$(TMPL).1
+	$(POD2MAN) README.pod > $(DESTDIR)$(MANDIR)/man1/parrot-tclsh.1
 	$(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(TMPL)
 	$(COPY) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(TMPL)
 

--------------070805090900000101020805--
0
rurban
8/27/2008 7:28:00 PM
Reini Urban wrote:
> Moritz Lenz schrieb:
>> Reini Urban wrote:
>>> My latest patch against the cygwin070patches branch r30596.
>> 
>> applied as 30597
> 
> Thanks!
> And one more.

Applied as 30599, as far as it would.

Moritz

-- 
Moritz Lenz
http://moritz.faui2k3.org/ |  http://perl-6.de/
0
moritz
8/27/2008 7:43:06 PM
--------------010203060006020309070207
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Reini Urban schrieb:
> Moritz Lenz schrieb:
>> Reini Urban wrote:
>>> My latest patch against the cygwin070patches branch r30596.

And one more.

pdd30_install.pod, silence Parrot/Configure/Compiler.pm, more testcases,
parrot_config, $(SHRPENV) $(MINIPARROT) for the last missing build problem.
Add cardinal arrays and Nil from trunk.
-- 
Reini Urban
http://phpwiki.org/  http://murbreak.at/

--------------010203060006020309070207
Content-Type: application/x-gzip;
 name="cygwin070patches_6.patch.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="cygwin070patches_6.patch.gz"

H4sIAIBwb0UAA+xc/3PiOLL/efxX6EhqBwZsAvk2YTLZJITMUC/fKrC7d2+zjzK2AF+M7Web
JNzevr/9dbckWybAZHazt3tVR00FsNRSq9VfPt0S0w1c/tRibugk9ch1k7ob26MUP25vDbwg
SW3ft6LQNT7+9pdhmuaXZ3pTjvmDl3hhwLa39ppbFaNarb6E7DGM771gzJwwmleM42NmNmq7
rIp/jo8NtsHa0BB740nKyu0Ka25tva+x/oSzGx777DycBa6dwrSWYW6wza7bYs8mAY6au7tE
asK/5jZrNFuN3dbO3n+zeBYP7YBtGtWXUr9nQLpIzQz2ccJtt8GuTi478BUX8r7W2GJV+otL
kR1OTnv925N2H2n6Ey9hN2dnzOUjL+Dw2Y7jMH2bMMkALQ1aU9vzE4vWPQ5tnwFZGrIoDh88
l7OhF9jx3DAj27m3xzypMZspubYPp/Y9V+MdsVEYs4hmqbF0kjXYQx/pzj/3YCemke/ZQWqY
CbdjZwL900lClIsUzA5cloT+A06FjcASPJ+ycMSCMGW24/AkgUbDlGQc+89ih5th4M/ZyFOj
IHUYpd7U+4dYNQzhhMHIG7NhGKZJGttRJEYawfpGcfgPHsgeg4mdTFAoth+DkOfM94J77lpG
9deIJAlNR3BaEI5RLUiH/RbhGNWCdNivF45RLUiHfYVwcqX9vnPb615fSb1t7tcaB6wq3jTN
Pev02rfdm77oKXW1qKlT7kzswEumMFvM2TSEP1H4yOPRzIdFgK1EYLa7bxMw18uTq+55p9dH
NkG/A2QwCWmpHJbshw6NCXsShj54EP5Ql3MNSDBWRHbgxt4DDwxzOAdS/I6m5EmXgAaTTmLO
wVQDEB/XtqvkBY4/c3mpxkq+N4zBhErU4Ie2OxjOU+6EYFwo/pI7D/hTWjJM1Q4ELJmEM98l
ZmcRyIFY34xiYOCpDh3qQqnElMBMD9jY2N07ONgzR5PElBxZ0OxMjOoacUglzjQBFgg+wOVJ
Ch9I7jgFKOhLJMWWCar62wVlVHVJsd8gqOrPP7N1smK//IL61wY5IS/kCVGratKKSU5emjDf
DsYzFJwHNsunPMDFJgzklYYRmpDsP7XnBhtyzQrtBMzbH5mTEGU8ZmikPjdRmow/cWeWSof5
6KUTWs6E+zTklMdj7oIvHjpvhe3CpybQMFO5QHRLeusgDQcLHWB5pwWzximkNyRzliJFL4JG
DTYvW4nFxwkXQpamb5jK9qVykW8TujV1GGxVvihLyn5/p/Ge/di/Prv+SbkebpgDOQ3IPJx6
KbOkbmSaURcdrMiLSyhp3SHCwr+Gj0wNlrJS/W2sSCVCvU/sae6bPaHz/IGDZqkha8xSuox7
ZhU9BIyaknYZuJhciYT7hr2IOS0xtUE1UpwhyP0mOGIBAxza0CGniAHUqFnkjve2a01AHVV4
32uQPz49HM483x24XnxEUAB9wsz3yYDkhFK1H0GTsXNqsS5NLZCGEruhK5XFfkC9obFR5yCK
TGU8YtmEIpBIx3Rzcnt73R/cfnfV7152mLBo1F7z9BCiRf+se5sxqPt0NBTh2IjJFP0OMAQT
QlxVbTSYYZbrsyRG1cD3Oo7gV6TIQHzhYyLdI3IMrk2KVQRVUA0bDBm8A+xQBkHEfLiRLrbD
tjCH5ow5aOhzzuW+kXAlc/km60tAxdGhBbwb1SWLYr96TUZVLgoULgrJ+71kUVLRTw+13c6W
F/N0FgfswfZnXPE59sMhhJjRLHBov9qH0trKlaOawcY8IJGSGp3LUQdgHuCgk+lRjfjgHs6u
K9z54XPLhM5hbKDDlaAFHQGfDrnr5s4hhVCnuQZWVnNaI+h+VHkGZY2F3iocFqjI30yjdC42
DoKh3EwgCGaLvUmtJRLqXt5cdC47V/0TAkNVetxkZwsROclImgW9EOF2MX4nz/VHeBDUCnAy
sUiTAjAhRJBMoBvJMtknS+ZJKnyYcpMuDZqZNCEILmKa9ABmZto16JeSbyrQUIgD5KZc9zPd
d0FvQCkTirJyPMXKcDZOhDrguDlX0F/0UxwtJCKPE89RUc4wc7BMGy20yEPRCP1YWIJ8Ku0Y
bPqdQBxl+aSC6qb0EpwDuwShU+AES5+hJ68hTeTPlIUkEQdDeOAIOkAlZjHP6GFWaAvnrCyM
u4bpmOAF+BQfZBgRX6awZHyH5Fg8sCyrorZTy+4KmoC5y7NEZZZCViikSx4ARSMhD+LN86x7
hoiIQjcWEKsARba2JCm/KQToTDQ1gX0LcywdSCKTYWE4nFuNRLgHnHGSwzLRCfDe7u6OietW
rtrEuQTqg23UYqmUesyLnIOzhI/2zE9RgqMQnSn1F6lb8CAwIAyFEkF1DBFKZ7uKSFnpAGZ8
GuQmxgvxMwwyfymgcwbhpd0KMYLYpnYKYx3i4wDAxhG7S9mPP4F61EAJagpkgN4wU9JS7EXq
H6XL/CnLAsahyP0VeqaorDtcQuA1aSVz9HJqBtSyxezXmcUxrBbSTTfkApqQsq02+2QCIocd
hAmEelkABzD5A7AMRmOnuGJRrYg5wlwmYDv4rY3tg/2dplWwLiUVXbqUoywXK/nhgm0ozUP9
tHPQjx9a5GoFF67rye32w7HnZLFldc6UOLEXpTQh1aeK2T1sgvQndWnxuAIhEdJboFIa5s/F
AEKdh45OLGYh+rLAA1lGhAPX2bcVNX/u+DR6qQKKRGx/fcnkIulYTamCMytT9SGaRJCWpJUl
IymkjdFeZDFevG5k2R9GRvWa8zRbEVYIdULpFJF9BTJgT8FllhsVmE4mwUSqUUG7otJYzQaY
pFN/KR02ECHuSx3SMgHPpAshxko5RCuJpcqKktRV1KEpbjx1LBlVZZH6IHLcKnSC5pL0K/lu
SpPWN5C0WVgadkxYeQSWVQHS4m6JoAAaRVoLzWVACjMHIB2msY4TxhTEUwHY0c4SWAHXBlKb
SQNJV0IbKzyRmlfpeHE58BSWI3dtoY24xx2VagAdRexb6AcPSzJwp1r4eDYS9oMMcnFN4NoR
FmcRdmF0pXsZD9H9WALW553J9FR7aQV8I1BptvM4SOpjVH+Y2JRiTT1Z1Fue+GQOKi8C6AMD
cMXyGEHEPGKhRxxxFyC/UOT5+BETpizCm3mtQ/dRHmpEjnuO5SYeS2mYm+WLk6tPlWOY9FhA
EMxEweGnnPz2UCXlsmiI4lqOpmsyVGKxQcPeWp1CA3AZXqvLws5iBej08DrCXEAk5a0jo4pg
ZlFyLOCPiASAOdgdzY9i36IHwtj6qDQr5v87A/zgCinPZepNWe0QhR55sFJNanKs4wVHqcGR
ECNvVtaJuQKwYkpSHgEkxcQZvPt8cYFpKo9DylG9oed7kI9gAAbmylj+uDhcOEBpDCYge0l1
BN16IeM2TJaJ59GDqBhwLjBfHIJgM8NHMMvjB5kYeHjWcIiERxiWYLAfuBQHbCXoMOhrMp/i
5pNGE6wq7pmSBlhmKhaV2UWNgUQ1ZpkDeGIo0jlRgDZPSMem9hyfa75blNEECFmtcKiZhCT/
PgPoIVWUaNqHywprR9KuFIcm4npvBGBgHIezyJSo0Cw4XnLORnWNPgiPbS26C1ymud5nUKXk
E2D+oxbrUxYk828twc7pM4C2zJRkxmmiH6WOEJ1gMb7L4zzSZKmI8DuCcTpuUvVYSwVHKhvi
ZPdB+BhQ94VtstiJTPpEBkeYVcJLfHBEWxHOMP2YQ/oAXmUWK2xLmwdaQXhM2hNsJA/C2XgC
0YA79izhaOE6/wT2gSn9OAngBEJLqmnDszGH1AfF2lXZBXleEHD3EEuIR6L1RrgWeKxxrO/W
kfJdAjRQPvQsNbcf7XmNwRINU2YCWioq6VWpxgO1jgXS1TqBMWF2n4uxJtKjmGdeI9/iIWAP
WScSNo6ZP56wQMBBBRGSFYziwPjdMHEXFhNli4HXIG7QrlXNnwbFQnhKMqSJsCAa22PKjvE8
CxJ43461ImnmdkSdjIxeD+SGSasDMxPAXvIHg045OrqacN8KhpwfqkTRcsLpFHYOC0QmKkvg
ZqVwkbQwe5aGlC/SENmQxL00xcHyQ0TQgT+qwG6Y60vVS0rMJdU+dEq6ZLHwjV5iobqNbkQp
hS6Lk+zAEdalmZDAjrpdtI7Y96CyIeRoiAmFtiNPhQNK5LfGqOiHa8SzUegYM+TToNOSrJQj
DVdLI0E+4uA6g9SWVDlY4GOCR0VCzPFcoj2ylcJK8/OX3EjAckKMb2Eszc0lEbBNBZVAddOJ
hYHh6QmelwqiLonwF7xNhQOl7X6bu20irqfhPQcuYMunuNa3mM5IlUTuYqvF3jI8XXvLIocd
7DQBRtOsILDWAWU/UvJosb3ZkL3FaovofbCj997ZqhTZjyDh4BZFvhfxrnYlqadjXu9/6tRv
Z6AWq9gWs3yAfh8GA9hlmIDYahywMjwUK9hZugRJeoMMtlonvX6r9QlMcmrHxaH2G/u7rJzL
lFZE2BtoJAXNs/uCadpyeR8yAZoNVi7PAhG3UAaVltlYFKIXRfBdnmF/fwlhwEa54VmOqMon
MeQtPPZVkJeEW9a+tWU26qRvdW0NMCDRCKdF36kgPnRqjGy4CWrIvgtIbbGGH0WYGdyctlUi
o7ZC1bbma7bnBoYvCnVnH1K/4vxir5prhYjjYN8vSO708BxSpAZGUVV18fEIOkpkpOAqhpHm
yqJAFGXnaovHW0OB8ZTrVTkTIWjDFAc3dOgqtPj8UFrE0DmiwbPkXlbKvEI10laOT2OMtGwd
P9rREeUCuELQePDtCKSotpZ5OIn0U+0Yq577cmlwBMlyNl7tmNH8VceMWUQvpjvacSOG5tCd
YdomqvfAIT1HLE2IXDhXCqCA7BKNqcTK1aQJanKpD0RtJw+h5+aXUGBt3M0rF9SlJw4bsQ13
4QZQaD6BgAlrJSSPC+yKjMspAkZx6pHce1FWbqRbMkVGykThh+H9LAKNH1awYCgmeAdm5qAa
wVJiKgKD/KNJxMwFBkS/jDFME/BJLphtEEwuS0Dbs4jCbv5MxnZRMJ0JjrP1lbWwXlHn3oap
xLUgDRjUVLqhIvCQY0eRXGkbtgN8KSXML3RAczdIY9hIXBUl25DDPeuX57rxvdqkTKGHBI0l
+HSYDwrv54ikwU76/ZP2ZzxK6+HTqzDgevP59XX/6rrfWdp42znv3Hau2qIVTUxe8eBSgAjQ
x3iVJmW976/Y587JGUnBBp4maRq16nVcgDUOw7GAm/WoLkorprjaVxdopz6MAZHwegoI5L4e
c5/bCc8DA02ljuPEvKq47Dn3PBVpi+1DsoDlwBCzMlrIRoAvMKoRGC9oSpIRAL3kME4tDENW
GI/h83a9Tz3qZ14S+fbcwhLmt577kUYi4TgocsMcDDpXZ4OBYV5g7ZLQHGHDlkFnDL7phP5s
GrT23xtmJ3BbeH/yX3TXMt9Cui0JX794UZRlsbqr3TfTFUldq1Re7j/XKn+/a5W52NXNQXiy
eStvALdACXZ2Dwob3fvb1fVNr0uWWjwLN79cLKnL05R1RdhlfZ61q9rGR+ygcaffbISn/7nZ
+Jo3G0Ggr3tVz/xXXtX7IwsFv+dNvD8JKF1z9818ORqlQbHgzVczKNdcvEkkjFmWIVxvRHGY
itwLRzJZf1WYDEcIgbFiqe4qFW7SPZtHbndBdcQytXthMhHUyoOLJ85UHKZrvJJEFF21+wtq
axFxiINvymXAtoOxCYOJIhqy4XsO3ZXJbvqoO4PFk/9CjMnq4tnJv9RSOtjPe5pqAnllV0JQ
iPBiwUP0IqhTdKsOFnZz0v9MF20sdnGGNwoH+MQqOOnz7lUXfTRFkZOAnR5q4jkS96S0Iysx
5xSPBlYVzTG4owsjCFC440gUD4APSAM8LNIWq1VSdbFcpTJIw5RZqbpqpc5NIJfFgwZAGMvP
MizWBi5hI6M5pFWB1HsQ1cR+4KI8TEXX/FagNFmFvVM8xsLOVMMQ/Mx5KiH+q90WNX+P26Lm
v/FtUelFX+tipfnqFyvN175Yaf4OFyvN7CcmCxcr1S9UFq5P4q3o7a3dWmObVRvb7/Edr0W/
/FIQjPsHX+ipvtZIKOsv3OdRi/2a20Ps1W4PPR/pFW4PsT/j7aGvnJOmrH79lPmMy81j5VEz
mc3OTu09WM3+fm2fjOaVf2jC/sTnYNUXDcZeNFYu+vVnakLqO40m/Ra0CdKXvwbNXJ5WxWL/
hlWs6gqOY66oBStb+1uqDXY6wPu8zKieJKrKrxoJyYjlsVdfHbBrsFcvuuFeYtGtK36VjT5a
VBDqGS6vq1MqK5q+2o+yvzTR8t9kf5nq+U+yd983wF1UxRtqL742MLeKCYEBbJoN+ROAsASn
+1Z0AIMpbybs4/+x+v/clctWtXJXuUvela13lXpYYT+LQTAvQRQypTyBLkbBB5rfDxOZlvBA
DImvzcGPWz+xj2yzyb7FPy1WKn1g+WsD4bM3Enc2mng3PsbILV9RDECPlTbevWMY6YBvdlfa
TO5K7OMRK8PHxl2pBm84yV2pcheUPoCT/tXEKITNs87pd58+5CuQwHCzIZ/9It64D3nlz0qN
0jokvVFSh6AwmKqr8+ZWw0pfTYFWT7Fcddb1X/I7/t3aHkSaXYg3SmXg9WOpe152Z9PpvFkp
1dibN1s/1ZY0Ntg/WdbrTWNFn2/yPozhQNUlnSDo5L0aKzoRvle9iix9d3XR6fVkR+RmdfMS
ZgvU/yxMQb+1PsBwvN2oNZpfIaXORa/Y/qy5g0/VE+RIGcAGhCn2iFfzIOST55WpVYIXGLNO
veetlAGnK6VX/ovgJxfldoX2ZZ3IFVFFp/oS0ZKJkEQQLVGTbyTBN4XOunCydWtyR71ZuSak
AilhTe75Xv9lxbxq4lVsllf0X0cEJiA+bX98esIvSqAVpe2E+t6jKRL0W1QyBHZJOOXqdxuo
wcs1/GW9lo1XEHFWNvECyIw9l0oNdPEMIrQjfuRULok1lXATSh/F29NTqbJEJ7YhFDw94WqJ
n4wjiCwQrc1kDjj0ST4DbMBxrJENrlbj3SxrfXOxK/Ht7WD0229qwY/IqmXlWxoiN1Gyf+YF
quVMg17WVe/DctdTtOQhQO17vGtHFbvHiZeKO766sEXRfWVPfd7MUza+xOH6jiqCCXiN0aKe
RYs63kYG2P9qMWzdJMuj2HqK53FsZ5/Aj3jD/b85bV92bj91mPYCOFJuf3c7wPvB9axAvVnu
/LUD2erN2SlbfBUpCJANXD6cjcc8zuhO24P+9QC+rJlJXHKWJKYssrWvr867n1ZPJSt5kqr6
QqpBgYrhf8+DN9g7eZ0beO7cXuytXSsA6z05BMp3HwR7AOZFbyjfN5vl3ufbm87V9xWgE6xV
mBmyzeMVd8/lV6qTeTEyttBPlRC0whPgxulc5rILdTaY9bJ71ZUzG+abY0g4nMm96/vHRnUD
pHRGdejO2eCie9UpZ62Vls67TsXeHHNnErJu8BCSfskzRrDNLOt/Ac+m6cSQg7I5pDx4xw90
BVK2NwV+n63mCARnVItS/WJ/kGEu+xZ87t22xf7hPbvN8jWO8qlzNcB8tHPbw68X3VNF0T6/
OPnUY3fCbWg5x3V0AV+cEM8qpvqwCxoG498J9TjYI+9Lb6vVI7cEVAFWGI2uoy7RVnkqBRLc
gGgCGeV2s9Ii9aQVkyaDcWSNdMeVUs8l3YTA6DNrsfwOGDzMrLhC3F+e/FenopVnxFCLZtHY
398nAI3vB7LAGXhUsW3RODhZRTtDxmaKoVbkY3IdRgkkTrPpELBbixRgkULrgWfOIPWb3uC8
C4G8Qpny675gQNwDLGL0heBba0MF7KPzu4cKOclXhIqM4nmooA3blyirf319gaqtXKBl1S3L
YO120TMeOw50bt8sPo3AZm+u/7+9K31u21bin62/AlHSUgolxTqTaCynfo7beGrHHseZSZ+j
0dAy5bCVKFWkYrtJ/ve3B0CCl85E/fLSqUUCi8Wxi8Xi4A+va28uT09U6GR8U8O1B4o5fHN0
+PvRRRBDogcnXvzn/fHJ64jtZbn/EmzL/PKMdYAPsd48uGBbSGnOYmb7lzGULTL8YCB9LYb1
fdkkpKiXAVIU/oeLsm1Bx2ed6RBop5W+euWZBLzjV4E3tufcuoRTV95RVUMT53kduQ5zd3dX
4a5Mi0C4HAOx1GMq8BDPZZ/4BgHUVBuyDkoc8JYh34P5Z14I1ZjLkO/BfDzzdc74ujHbP72x
q/NV75uX1/L8SIHl+/doCAQ90FuC3jdiHNVeyVkGbMT4AgbT0yONqQzgTo8WXFqE4nfvJ5tz
n99VNuc/v7dszj+rw2zIeW6f2bTU87rN5i2S3XM24L2w82zAe27/gbEJvac2ngQAB6p/I3zx
88903NPGBwiAAZq6rhxL0T89e39xCP4QeKOyXHLcLUYjYWSMVYzCwgKF8+LQ8xs1pHf/AyfI
S+WWsVWwXNKUKXOp+gJmzKUa73Vdnp6f6A7EqMHe+Dvbn9FJPFwwQpcZd0U9NYcN6clzkhME
+ak6ejQRnwRVAMIvTnsXv+rh01FvOiBv7P3hmxSnqHx6dO+/R1gc+pQISyDK+IHODEEZ092y
09/ptFIYOvoLz9JIh+304G0Qg6MAsJQ+WeANdnRfDCKP34aOIkXKz/RzAqZU0Sj17XFOvD47
jEbJ3W+IgiJAzE5YPtpt/kXN8+e3bGTNISAJpleS7OKIFwveXxwtcDJxojG1+9oRNZAwt1NQ
wqCdcK51Y01pihV9ewy1Ojx796H3+uj85OwPPCTSuzy4+O3oko94aYBDuIR49k58kLMwOkT0
TJ7FijK17yfjqZ/NuY0usHff+wwzOWDCXm+rSZu5redqL3dHLp+cNnqXR+8ue+cXZ791jFHD
CLXsGM+6lY+5MfHZf/bJmrq2h1vE0CFwispOMz7jwbSdyNIHU2gEgs3RHArcTg7fmDkd7nJc
YoDvg6lt/2MHr447gcFDvY2s/nQcvMGwoiKpcNShirgmkzN/SDZUwSAXthi44N5OfEVdEdeW
5/T5k2c6ccQb8vj5fi55srwdOdBESM20C/OyKmduWnQPigDWixEyaLpPr7yisBOZ2+tx4Qli
lAKOPm1uNTYdRUbGJv8wZ1I01TYRC3kEjiQFPuWPIcY6SY7WDvpTx3f67eQg07cQLsUaPvOf
7dbK6uSZ9x33EZfIa9EAMydhys4iHl4xq8+D9XhnINy9Gq810U4xbqXyQvnAuS645VrR5Ieq
3EKgN1EWKgIeq0VK6cJITX/mtmR/aHkeBO02y2A8rYeyXK370a2ana/WwvNad1kG2M67pV1E
Yq82sJlN6JaeyFcrlVY+Z+ZMC8z2laiWRE106b2CICQFVF7x1fnKzUxpjPFfwigJJ2diuwLp
NSW9EvWSaIhuCZ6aJdESXWbE+UCaOu2eX1/tdtU5oVeFelEjaKQQNHSCpiSoagRNnaCVQtAq
rib5/tC2pluXu8x1XamnJtdkXovJvFojoT8OpV6S4kPkfATnccd34s6mQ8i4qi0PqeJR+UNZ
jgPMGddQr7oCl7qHovLm5KQ3siYCDPZMnhrC7o6nr2AQkPlRuopr3xWKUu26+Lu3J6rytyZ/
6/K3saJCWhVqj5zZrMwm/rhQrRW/cJod4ucg0bdVmK6kQQNn6vlb1yCZ67oalJpc06CXUQVq
xIwGq09J9vxIv69Sp7QqlIPodFDMQWRNj8QjlhAP3ZeNigqOWAlpRiqe84+N1PWkBWEmpVqp
3l1Nch54j1sXHGe6rtzSUusdvx6V24u8klqLpFYlqYHsmqLLMVYFWaqu0cMd5p6DjSh7yT10
CuxJ0NCOeNQRhXsabNGB3aF9aXigfrij96N72Tl5rGhSrqw0Vakx15TvI3zYNGOi2CfV2ImX
AkmELEyf1Xe3JF6WxPOSLBaUKWibF12m6lPhxBcqxcNXcS/2OvviQXzTlO85KV//qtzoogI+
16JeqKg6Rb1YTStHMBkdT7aulyrbdTUzPb2um9WkbsYdEdYXtC1kVFAWljDFNb6QcgiyJ/1M
O47NnwfNEaQU0PiUigmYgUkc5NCBGVxDBpaSe388HNp9HyWPYjdhjPym60RYjOb3KsZKymH/
PbOGP9z7z8x2XeVIT68pRyuqG7XkeJM+zJDt10niQw2aDkWA/s5qQ/vQ8n3b3f7grvJde3hP
Z6BPC14s7o2LfH02qFZJXJM9fUGBqrfIIlDPBWNYGdrurf+J7aG5E+k6918zLDd0EJwKyrEl
76Lcuagrd5zJv2BSJ5vY05TEuvieZ87qWjyy4fhemcy8T+RPyUcc5uCtP5vS0A95JLoUxbGV
TaWq6VS1LKq6TlXPomroVI0sqqZO1cyiaulUrdWU48+xs/1Ozpmuqx5pqTX9eL6UPWWvG1kV
8uV8MaEL5Frnq+VauZ7XqRPqIAlrQLaaBz50+ttfdZG5ru2DpyXX++Zu9uRpt5SYP7HtBKc0
lAjlUEBnvUjWM5z+NAJjGAqJPqigHrsTFwvMrWQ33YnPqK5qXdk3d+ITqiv2WxtrmNkbe2j7
25eoynZdkaanz+5PdU2keQuROq7xTx//3OQzZsScSQEIaN4LvykzY0X0DxO5zjBhVTWi/+aL
X3BcFN6s/0nYjL2RF98waTJ8NVH64972HU3OdF0xpqXWhNjUhZjq7yRkhhylbVux+aztLy1Y
GywsJNNmNVxyNIn43arlLL+wW8xa/4HIMq/+1FZr1Tv62XrLqmzXbd309Nnzn9C+/HT3RQwQ
bU4MxpH1B9nO0vjnB3aKNZHmPz9w8kkrIgeA/GC8omYTHrhn0x7Pv7Bjome+/rZJNhd9JK9m
753gUJ66FnqdukoajPLgAOwKbXXjZ1zdoBmSGuNb8fkRrYOlLFXLKdKqY/QUIYK87Q/SQb7r
Si2DweKNj5R9iL09bGf6bYb7DpF9iFq4T6HWSmUJcubMHSIcDXW/R+x7JTYX5otsIc8W7V9o
FI+Wy0SYlHQ93Zi5zt9bVwzOdF2tSEut9+H63P1P7qfcVeuacy4fglVyzCVlA2knJt/IHmlD
9f6msgHSGND6N3IM1r8ly4c4y4c1ZOh9cgb/wr4G57r2pCot+Zz1Kk2MYaOigGYusZKrHuoN
xaktfFDgEksfcbqsxY84XdbyR5wuawEkTpe1BBKnW3oRZIsHFxfmufTpklUOMTZr+DVHM/zq
UzvZ5D3zYCjAM0sfEzH90SQaozT17PpPu+/LODMa99YZHuJjesp3dPljetwxOCK39jQ9kocs
jsoWZaT4t6AJdPzqB8oxNcOlhZiROinBWq2G57rwR0JEVRCywWCU5x41ksGnhvBUsTUikBrH
t0cc+OR8FxeikYxDefdl0EMQK4wtCYazQgrJh7EdChBJJ43C+DanZp6IpWy8B4EMDA6OpBMV
HgTEY5EA74UwgQAXdlvQGb/HdJgphPMF33B3gaj5VP4ziZD1XRFJlsxwJVGnpE4RdYM+0uUf
7SNt8QSPxOM5znO6j+BsQg5c23GHjmsXjJ/QCiJ+qFEsJtA4ELvjL/tB2H8Lw3WGhvgS4og8
eQYq4zr9AsYowEC8ika71NIoatghsYKASLkkHlQCCiJRBY1iSbTxdCPxTRSKcJ6IE4R/W07O
t+pChdstyTnMcB0566lTjv7VWoRfRT8o52/8tS/djtS7Ho77fykpfRXGzdgQexBuTW+9fbFX
gSnbaP+V2MNzwT3PH/n7woCuBoJ9+i1I9GVxmm+cwkzL5pWWpnJtDxAoeI/S7afna6bkuywT
WRCtFbzZxJ728LoHaAdqsUaNTks21ED2+MOHD+L9byd/PBLiwh5YeNUEox/ucZ1H1sO1/Son
6JITujmCCgX8hCxqoWiIq73KHTaQavb97iu9GSWvLCpZ6SuonjWAmoqP3tePxX1MqOr7EdJ1
F/EJSgSNxxRKbvhizCkntRmBY+DnizVhyt9Aqbj6g+HY8pVKfbx5KoyKAb8m18AoG68ioVSe
UCTMw+EhOuQSTR1PNb9Xp3kMP7pjp+W5lJu+XGLNSa/z9LsS3ld3RV65HiAMxcrgZRAe1dVd
KG3LBbZtuqyojYDZcoQlMFAa4VXxRrZvlXCBfDId4xVvSKbHwdBwa/t03Z7E7bwy1GFGduaM
bkkYjw4PLl4fvz04OT26PJDjuWKK/oPGsWKAzZeORyGsRonuY4Exw+jss1sgYvkUk6WrGFP7
lu6kAFbsS+h8VAkwDH/HzCiMAJbSz5AN6IPxgeYD3p/GNwlvJXKKM+q1COnuJNh5i9mxa2vo
8TTypbhFIf+odnB2Hn5MlCl9Leeg1TnGi0qYMi8hfZgfHnFNOGJm1BEzUx0xCKW7FeD3szNq
C/senIYb30KIdZh33Tk3/qdOQwz8Dn47kcud00WQ/oNAsHm8ZBbR9FcxBL3N/+UOECG2LbzP
bjtEa0QbZYqnuSWtUzDx2JZpCjJcyedISZ2Gfsfgd/LIhEhqPjvsImd2cJog6DBxoYh0BVZ/
hIcwL+hiMgIiVhtq2kXfvL6PykZggkE3ImaxfoQOK6izrqKCsz44PDw6v3xX8McTp18MoAlp
nKtXS02oSB185GZTgVBSKrkbSLfQv6ZnT0MaT5Y1YgtKYopoT32JHjpijCEySBX0MLCdEJk7
dgx8EFzUpvhD5TMzXyNvbHDOmzCMsZ7g0A/wFpMSX+d053gKpVkhNnt4dTyWbea6Cg6V3AZa
YZ+gtqSmBqtRCVpbyIkmN2sgunJ8ouneOAg/2faGs+nkQcaHwxTefTlUs874BDUeyK5vW6HJ
RuIRtJDie4OhdUtE9JQYGHGvWMTCqAh60ZAbdBs/Ud4pwofGCB3sF/HECs1Rp0uUhVs2vYic
jWwf6AgzFHihyMF4xeicMQuna+kjgezSHT2Px4LsnYLvxnoHKinxTanjMjVFd8IOg/2UY27s
vmw0SWm7OqFUBS5HLI6YUHs51OcJ4mw4Hk/aAcwmHRDFZLfoctyMXVuVH68B7Cj2V06Xc5DN
hpwxTNEOmLyD98ARJzAu44FWv5CCappKQ4EgA1+FEveQqh007EDc2QYjvSrId9nMlurbaCA4
UrY5As1O7aHMS9ZjMp5oTT3FC1TwqBrGFrVCIWSn9AaOd2UL08labWkHo0psJNRZW+hwXAet
UkElLsj8RMtINmjGNqicaG73ppteTg4NiFhJufdhFJa+rYRKZQoqhsqApaVit2PKHNZOmiMl
dTPQS1t2s5AZxoAWyfyUFwYlLuoNqPKQh0z0FnTHYGLCVgw54A+vjCmKdpAytFEl+o6oJy1v
BoeQJLK2RiGFYua6WjDq2ffgPXuF47evjz7wSN+q4z662aq/VDNBlUKNxpYfG4p1u6yXItLK
qW6sXIy86oYcRYKjSHKkSf1ubZfAoXbrDbW2qWWE0Id+xaCPYYwCfgCr+SicreMOnPv23h5m
DmOeU4gZy1KvmKgg9+fs4Qi1WfVdbZCSlacIrfqP1ee8eB5Q4FdgU5uumqMvJ/5xJiQpvPI4
xed8+TK5lt+fTH7Q/kN2bgu9zXlJU5a36giFB3/pNIc4edt7J4J/+PW/660BflBOhTEoZ8IY
lDNhDNLxA5ZAEXhSCBAQdNRCusZWHB5cRoq3AJuhb/lJjbi2BzOYMW1zW2pRlot0Y3H6FAWp
EuJWVX0Mkwn1MB9gI1SgQHvKoD2/hoGgOgMEjEhXNVMjjtCvCZiRBIKYh1Txf5CK+SAVgsBB
3kGRTw+O317C/0cXEolGHPLCAno0UBILTD/j4ZjUJG0hlVJBJtJdae0AvjKfZ3yXVqmKgMLB
1SsqWlCCtoj8OyfUdLosi9iNbM+DDpCncbUMmbcZyiFn8nNYAvUsxZkrpxSynNNftTiEsiRA
VX4cDMd3/OSM+RfXiPhpRJdA0aPnWwigCI+M7xACbKSUS9LhdZhTO8DxRF9Q3WEPVlY+BSCH
SdNURiwi3UIiGtGTgqa9CIOE2OsdyKTdDkwIhAbPHQk/kTN1yIooYoWZjViBwsjCvVgH9oLg
EFuEh9gMcFJChIsnBXmlSRGeziQEaGgaVV0wyeE5kYNCL58MF9yyJGIuIRHz+0okR0tCLsN2
oulE0FXc4mCvLf+U7yD5mPsfVmD/L9mfAAA=
--------------010203060006020309070207--
0
rurban
8/28/2008 8:15:06 PM
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
0
allison
8/28/2008 8:42:10 PM
--------------070204010708090409090203
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Allison Randal schrieb:
> 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.

I hope you know that this #+() syntax is the only existing syntax.
It is widely used since about 20 years.
The rest is something new we came up with.

I deleted it. Sigh.

>>   * 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.

Ok, the cygwin070patches_7.patch includes all of these suggestions.
There's still a parser problem with some obscure logic, which I
have to fix. See the TODO tests.

First I want cygwin070patches_6.patch to be applied,
then this patch cygwin070patches_7.patch.

ChangeLog for 7. For 6 see other mail:
applied Allisons suggestions for key==value, doc improvements,
removed lisp-style, more tests, and detected some TODO cases.
-- 
Reini Urban
http://phpwiki.org/  http://murbreak.at/

--------------070204010708090409090203
Content-Type: application/x-gzip;
 name="cygwin070patches_6.patch.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="cygwin070patches_6.patch.gz"

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
oulE0FXc4mCvLf+U7yD5mPsfVmD/L9mfAAA=
--------------070204010708090409090203
Content-Type: application/x-gzip;
 name="cygwin070patches_7.patch.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="cygwin070patches_7.patch.gz"

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
--------------070204010708090409090203--
0
rurban
8/29/2008 2:13:16 PM
Reini Urban wrote:
> 
> I hope you know that this #+() syntax is the only existing syntax.
> It is widely used since about 20 years.
> The rest is something new we came up with.

It's high time for a little progress. Sheesh, in 1988 we were excited by 
computers with 1 MB of RAM. ;)

Allison
0
allison
8/29/2008 3:56:33 PM
On Fri, Aug 29, 2008 at 11:56 AM, Allison Randal <allison@perl.org> wrote:
> Reini Urban wrote:
>>
>> I hope you know that this #+() syntax is the only existing syntax.
>> It is widely used since about 20 years.
>> The rest is something new we came up with.
>
> It's high time for a little progress. Sheesh, in 1988 we were excited by
> computers with 1 MB of RAM. ;)
>
> Allison
>

Progress is nice, but there is no need for us to re-invent *every*
wheel for this project.

-- 
Will "Coke" Coleda
0
will
8/29/2008 4:16:41 PM
Reply:

Similar Artilces:

Patches, patches, patches...
To forestall potential incidents of Warnock's Dillemma... I'm about to apply a whole heap 'o patches to Parrot. (With appropriate [APPLIED] responses, I hope) If, at the end of the day, I have *not* applied or commented on a patch you've sent, it means I've Officially Missed It, so give another try. Sorry 'bout this. Too much mail in the mailbox, and going back in time is tricky, as it can miss subsequent discussions on patches 'n stuff. -- Dan --------------------------------------"it's like th...

Patches, patches, patches... #2
OK, this is advance warning that I'm about to be reposting a bunch of patches of mine which appear to have succumbed to Warnock's Dilemma. The first three should be uncontroversial: there's a documentation fix-up for core.ops, and new tests for strings and stacks. The last one is rather larger, and consists of a greatly expanded set of tests for PerlString's, plus a bunch of bug-fixes. I'd be grateful if Jeff or Dan could take a look at this, as I have the feeling that a lot of the scalar PMCs are going to need similar fixes. Simon ...

[PATCH] Patch to patch for callbacks in core
I should have tested this better before submitting it. This patch is to Perl 11722 after applying my previous patch. Now callbacks will actually work. :-) - D <dmlloyd@tds.net> --- mg.c-old Tue Aug 21 13:26:52 2001 +++ perl-devel/mg.c Tue Aug 21 15:09:16 2001 @@ -1068,7 +1068,18 @@ void Perl_despatch_signals(pTHX) { - PL_event_pending = 0; + if (PL_callback_head != NULL) { + CALLBACK *cur, *next; + + for (cur = PL_callback_head; cur != NULL; cur = next) { + next = cur->next; + (*cur->callback)(cur->data); + ...

PATCH: clarify where to patch against
--envbJBWh7q8WU6mo Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Talking about Perl 5 git repo tonight, some questions came up about where development really happens. This patch is a bit of clarification about where/why patches go to blead/maint. -- rjbs --envbJBWh7q8WU6mo Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-very-minor-tweaks-to-description-of-maint-blead.patch" From 1b7ad6bc0c93abd2d9fad847e8449824e529ba24 Mon Sep 17 00:00:00 2001 From: Ricardo SIGNES <rjbs@cpan.org> Date:...

[PATCH] More Build patches
Two patches inline... A small change to Makefile.in so that 'make test' doesn't try to run without an interpreter or missing assembler libraries. Index: Makefile.in =================================================================== RCS file: /home/perlcvs/parrot/Makefile.in,v retrieving revision 1.24 diff -u -r1.24 Makefile.in --- Makefile.in 2001/10/14 10:58:19 1.24 +++ Makefile.in 2001/10/15 14:42:12 @@ -106,7 +106,7 @@ cd t; make clean cd docs; make clean -test: .test_dummy +test: $(TEST_PROG) assemble.pl .test_dummy .test_dummy: ...

[PATCH] installperl patch
------=_Part_72778_11907270.1186149310146 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline The attached patch modifies installperl as follows: 1. Don't install lib/CGI/eg/*. (These files aren't installed by the CPAN version of CGI either.) 2. Don't install lib/ExtUtils/NOTES, and lib/ExtUtils/PATCHING. (These files aren't installed by the CPAN version of ExtUtils::MakeMaker either.) ------=_Part_72778_11907270.1186149310146 Content-Type: application/octet-stream; name=installperl.patch Content-Transf...

[PATCH] Debian patches
--qDbXVdCdHGoSgWSk Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Attached are the patches to Debian's 5.8.4 package not currently covered by my latest rsync of perl-5.8.x. The patches have been re-worked to apply cleanly to that branch, but all should be applicable to perl-current as well. 10_fix_file_path Rewrite of File::Path::rmtree. This is the most important patch, it replaces rmtree with a recursive function to remove a race condition which potentially allows an attacker to make files suid or to remove arbitrary files (CAN-2...

[PATCH] more pod patches
Yet more pod linting, this time on .pm files. I've touched things without fear or favour mostly - I think probably a few of these changes affect things that are also maintained outside the core. diff -urN perl-current.orig/configpm perl-current/configpm --- perl-current.orig/configpm Thu Mar 15 20:33:42 2001 +++ perl-current/configpm Thu Mar 15 21:10:59 2001 @@ -418,7 +418,7 @@ print CONFIG <<EOF; =head2 $c -=over +=over 4 EOF $text = 1; diff -urN perl-current.orig/ext/B/B/Bytecode.pm perl-current/ext/B/B/Bytecode.pm --- perl-current.orig/ext/B/B/B...

[PATCH] patching for sunos
Hi coders, greetings from the stone age: This is perl, v5.9.4 built for sun4-sunos-stdio SunOS Release 4.1.3 (GENERIC) #3: Mon Jul 27 16:44:16 PDT 1992 $ uname -a SunOS xxx 4.1.3 3 sun4m If anyone is interested in patches for SunOS yet, I have some. Some are harmless, some may not be optimal. Help/hints/tips are always nice and appreciated. 1. SunOS realloc() does not like NULL pointers as parameters. (buf?realloc((buf), (size)):malloc((size))) 2. There is no strtoul(), alas. Some older code correctly uses the Strtoul() macro (capital S). Newer additions don't...

[PATCH] todo patch
--- perltodo.pod.old Wed May 16 17:51:45 2001 +++ perltodo.pod Mon May 28 16:56:29 2001 @@ -68,6 +68,10 @@ Artur Bergman's C<iThreads> module is a start on this, but needs to be more mature. +=head2 make perl_clone optionally clone ops + +So at pseduforking, mod_perl , iThreads and nvi will work properly (not as efficient) until regex engine is fixed + =head2 Work out exit/die semantics for threads =head2 Typed lexicals for compiler On Mon 28 May 2001 17:03, Artur Bergman <artur@contiller.se> wrote: > --- perltodo.pod.old Wed May 16 17:5...

Microsoft patching its patches
While we're on the topic of zombies, security and patches..... George. ------------------------------------------------------------------------ "Exchange security patch needs patching" The patch needs a patch. The security update Microsoft rolled out last week to caulk a hole in Exchange 2000 server actually needs a patch itself. MS is also broadening its original Exchange 2000 security bulletin to include Exchange 5.5 Server deployments for the first time. Microsoft says if you've deployed Outlook Web Access, you need to patch ASAP. SOURCE: ENT Magazine http...

BlackIce Patched or Not Patched?
ISS recently released a patch for the much published denial of server venerability in BlackIce Defender. Yet, eEye referred to the venerability as a buffer overflow. My question is ... does the newly released patch cover both? The ISS site does not refer to a buffer overflow. Does that mean that even after installing the patch BlackIce Defender is open to a buffer overflow? (not good if so) I've taken BlackIce offline until I am certain that it is fully patched. Thanks in advance. Tom Correction: Denial of service venerability as opposed to denial of server. (grin) ...

[PATCH] perlhack on what to patch
--- pod/perlhack.pod.orig 2006-07-12 22:52:14.000000000 +0300 +++ pod/perlhack.pod 2006-07-12 23:05:40.000000000 +0300 @@ -598,14 +598,22 @@ =head2 Submitting patches but context diffs are accepted. Do not send RCS-style diffs or diffs without context lines. More information is given in the I<Porting/patching.pod> file in the Perl source distribution. Please -patch against the latest B<development> version (e.g., if you're -fixing a bug in the 5.005 track, patch against the latest 5.005_5x -version). Only patches that survive the heat of the development ...

[PATCH] was RE: [PATCH] printf.patch: Adding printf checking for gcc
------_=_NextPart_000_01C55BDB.607BAAD0 Content-Type: text/plain; charset="iso-8859-1" -----Original Message----- From: Andy Lester [mailto:andy@petdance.com] Sent: 03 May 2005 20:15 To: Robin Barker Cc: 'Perl 5 Porters ' Subject: Re: [PATCH] printf.patch: Adding printf checking for gcc > Should Porting/pumpkin.pod say something more/different about CHECK_FORMAT, > or should it be said somewhere else? For that matter, is there any reason to not have it on by default? ----- The attached patch makes CHECK_FORMAT the default. SVf is fixed as &#...

Web resources about - [PATCH] cygwin070patches_4.patch - perl.perl6.internals

Resources last updated: 12/23/2015 6:38:04 AM