On Sat, 9 Aug 2008, James Keenan via RT wrote:

> I think that many of the things you say are interesting, but they are
> part of a much broader discussion.

> In a conversation I had with particle and chromatic at YAPC, particle
> indicated that we would be revisiting the design of our configuration at
> a point before 1.0.  So what I'm doing now is largely focused on
> responding to particular needs expressed by our developers which do not
> require a complete re-thinking of our configuration system right now. 
> So, for example, here I'm trying to respond to a particular issue raised
> by Coke that I think can be remedied relatively simply.

That's a reasonable idea, but I was trying to point out that your proposed 
remedy, if implemented as you described, won't work.  This makes it a 
"keep it working" issue.

> But let me ask this:
> 
> On Sat Aug 09 09:37:49 2008, doughera wrote:
> > On Sat, 9 Aug 2008, James Keenan via RT wrote:
> > 
> > For example, how can you know
> > which
> > compiler flags to suggest if you don't even know which compiler you're
> > using yet?  
> 
> Do you believe that the search for the C compiler (and, presumably,
> related things like the linker) should be moved earlier in the
> configuration process?  

It's probably ok where it is.  It's the dependency flow that's tricky.  
The hints files need to come very early -- before the compiler searching.  
(For example, you can't know whether to consider xlc_r unless you 
already know you're on the appropriate version of AIX.)  After the hints 
file, you can get the compiler.  However, now that you know the compiler, 
you can *apply* information from the hints file.  That's what triggers do.
So the information flow is:

    read hints file.  Note information for later use.
    inter::progs -- Choose compiler.
    Apply information stored at hint-file time.

So the current order could be made to work ok, provided the hint file 
information was applied after the compiler was chosen.

Up till at least recently, the hidden unspecified assumption was that 
users only made non-default choices for the compiler on the Configure.pl 
command line, so that the "Choose compiler" step actually happened at the 
very beginning, long before the inter::progs step.  The working assumption 
was that no one ever changed the compiler during the interactive steps.  
Thus the real, effective flow of information was:

    Choose compiler (by Configure.pl command-line option)
    read hints file
    apply information right away at hint-file time
    inter::progs -- don't change anything.

By removing the command line options from the hints files without adding 
triggers to the hints files, you're effectively proposing changing the 
information flow to:

    read hints file
    apply information right away at hint-file time
    inter::progs -- Choose compiler (by Configure.pl command-line option)
                 -- accept hints file settings, whether they apply to
                    this compiler or not.

See the discussion in [perl #41195] for some more background and
examples.

-- 
    Andy Dougherty              [EMAIL PROTECTED]

Reply via email to