2008/8/24 Allison Randal <[EMAIL PROTECTED]>: > Reini Urban wrote: >> >> You want one patch only against HEAD? That's easy. >> But I dislike the idea, as it violates the usage of single tickets. > > This is different than the usual case as it's a collection of dependent > patches that can't be evaluated independently. Splitting them out is > actually more work for the reviewer/tester. > > I've created a branch cygwin070patches for testing this collection. To do > platform or language testing, please check out that branch. Reini, please > submit further changes as diffs against that branch instead of updates to > your previous patch files. > > Overall the work is sane. It'll need a few changes before merging in: > > In runtime/parrot/library/config.pir you add commented-out code, and a > mention that certain logic has to be reversed "when installed versions > should run faster than source builds". Those sorts of configuration changes > should never involve commenting out and uncommenting bits of configuration > files. Make it a compile-time or run-time configuration flag instead.
Just was just an internal TODO comment, and is actually fixed. I will delete the superflous comment. > In lib/Parrot/Configure/Data.pm, you changed some double C<<>> Pod tags to > single C<> Pod tags. But, those code items contain "=>" separating the > key/value arguments, and the '>' in the arrow will terminate the code tag. > The double C<<>> tags avoid terminating on single '>' (which is why they > were double C<<>> tags in the first place). So, I reverted that file before > committing. (See the output from 'perldoc' or any Pod parser on your > modified file.) Thanks. > In lib/Parrot/Configure/Compiler.pm, I agree that 'CONDITIONED_LINE' and > 'INVERSE_CONDITIONED_LINE' aren't the clearest names, but '+' and '-' are > far less clear. Change them to something meaningful like 'SHOW_LINE_IF' and > 'HIDE_LINE_IF'. We can note the change in DEPRECATED.pod now, and remove > 'CONDITIONED_LINE' and 'INVERSE_CONDITIONED_LINE' after a standard > deprecation cycle (one release). #+ and #- are well known common lisp idioms (the most well-known reader-macros), thats why the reverse polish notation in the logic is used. It's just so much easier to parse and understand. > Also in lib/Parrot/Configure/Compiler.pm, change the Polish notation of > "(and a b (not c d))" to a saner "(a and b not (c and d))". This is ALGOL syntax you suggest is really not "sane" :) > Though really, > since you're not implementing the advanced conditions, delete the comment > defining the interface and the TODO comments about implementing it, just add > a TODO RT ticket or keep it on your private TODO list. I'll implement it for sure, but later. First I wanted to bring out the packages and this is just convenience sugar. > In config/gen/makefiles/pge.in, config/gen/makefiles/tge.in, and > config/gen/makefiles/root.in, pick a more meaningful variable name than > 'SHRPENV' and a more meaningful condition name than 'cygchkdll'. SHRPENV is directly from per5, and cygchkdll is they only way to check now for cygwin without the 57548-CONDITIONED_LINE_enh.patch. After that we can check against cygwin, the $^O. I really need some #+(and cygwin win32): sections. > Also in config/gen/makefiles/root.in we don't need a makefile target for > regenerating the makefile. Delete it. And you added a chunk of commented out > code again. Delete it. That was the framework to autodetect configuration changes, to get rid of make clean before perl Configure.pl. I do need to regenerate the makefile, that's why I added it for every makefile. I'll rather add the missing bits to the missings deps, than delete this logic. The commented-out section works in 90%, but has still a flaw somewhere, which could lead to cycles. I'll debug this when I have more time. > Since you've touched the config file and core PIR file for every language, > this branch will need extensive platform and language testing before it can > be merged in. I tested it extensively for the cygwin package. I believe I'm the only one who tested it at all because there were so many errors and still are. And I begin to wonder how others dare to release packages without working installables and with self.build make recipes. deb, gentoo, freebsd, rpm, the win32 build, and now my self-build work, but at least as Makefiles so we will have a standard. Just test-installable is a bit of work TODO. I had to test this by hand so far. > The branch is failing one test that passes in trunk, should be a quick fix: > t/codingstd/cuddled_else.t Thanks for reviewing! -- Reini Urban http://phpwiki.org/ http://murbreak.at/