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)