Erik Lechak:
# While trying to figure it out I rewrote Config.pl and some supporting 
# files.  They were just a little too complex for my taste.  I have 
# included the files because I don't feel confident enough to 
# make them a 
# patch.

Can you please *please* PLEASE generate a patch?  'cvs diff -u' should
do the trick.  It's *very* hard for me to see what's changed without
one, and my local Parrot directory isn't the same as the CVS.  Without
it, I may be totally misunderstanding your changes.

# 1) The array of steps now lives in Config.pl so you don't have to dig 
# into a library module to find out what scripts it runs.  I 
# don't think 
# config data should be hard coded in a library file.  (Can you 
# hard code 
# in a scripting language?)

This sounds acceptable.

# 2) Simplified the look of Config.pl.  This is what all the 
# code I write 
# looks like.  So at least it's simple for me to understand.  I plan on 
# going through the remainder of the config process and do the 
# same (then 
# on to testing).  If you don't like the way the file looks 
# tell me.  It 
# will save me a lot of work.  I am trying to write it in a way that 
# non-perl people have a hope of understanding.

Personally, the "new" style looks too dense to me, especially with all
the lines of hash marks, and the single-statement functions.  And since
I'm the guy in charge of Configure, it's a Bad Thing if I don't like
your code.  :^)

# 3) Added --query=key argument to Config.pl.  So if you want 
# to find out 
# what compiler you are going to use type 'perl Configure.pl 
# --query=cc'.

Good idea, except that if you're going to add this it should handle
multiple --query commands.  Also, it should probably run all of the
steps (or at least all but the gen/ steps)--without them, some symbols
won't work.  (Try asking this thing if your system is JIT capable.  It
won't work.)

# 4) Added --dump argument to Config.pl.  It dumps all the config 
# variables to the screen.

How is this different from looking in myconfig or Parrot::Config after
Configure has run?

# 5) Removed the need for BuildUtil.pl.  It just got the 
# version number. 
# init/data.pl now does this.

Makes sense, I suppose, except that this means that you have to run a
step to extract the version.

# 6) Removed the need for init/hints.pl. init/data.pl now does this.

Setting up Configure::Data is a logically separate step from running the
hints file, and one of the goals of this Configure is to keep logically
separate steps separate.

Another goal is to be very modular--if tomorrow we discovered a way to
eliminate the need for hints files, you'd just have to remove
init/hints.pl from the list and unlink the file.  No, this probably
won't happen, but it's the principle of the thing...

# 7) init/data.pl now does version and hints.  The package 
# Configure::Data 
# now is logicaly placed in the file rather than in a sub.

I need a diff to see what you mean by this.

# 8) Configure.pl now uses Configure::Data methods to query and 
# dump data.

And thus has to run init/data.pl first.  I consider this a weakness.

--Brent Dax <[EMAIL PROTECTED]>
@roles=map {"Parrot $_"} qw(embedding regexen Configure)

Wire telegraph is a kind of a very, very long cat. You pull his tail in
New York and his head is meowing in Los Angeles. And radio operates
exactly the same way. The only difference is that there is no cat.
    --Albert Einstein (explaining radio)

Reply via email to