Larry Wall <[EMAIL PROTECTED]> writes:

> On Tue, Dec 16, 2003 at 07:05:19AM -0700, Luke Palmer wrote:
> : Michael Lazzaro writes:
> : > 
> : > On Sunday, December 14, 2003, at 06:14 PM, Larry Wall wrote:
> : > >But the agreement could be implied by silence.  If, by the time the
> : > >entire program is parsed, nobody has said they want to extend an
> : > >interface, then the interface can be considered closed.  In other
> : > >words, if you think you *might* want to extend an interface at run
> : > >time, you'd better say so at compile time somehow.  I think that's
> : > >about as far as we can push it in the "final" direction.
> : > 
> : > That seems a very fair rule, especially if it adds a smidge more speed. 
> : >  Runtime extension will likely be very unusual 
> : 
> : Unless you're me.  Or Damian.  Or a fair number of other programmers who
> : like to dive into the Perl Dark Side on a regular basis.
> : 
> : > -- requiring it to be explicit seems reasonable.
> : 
> : It seems so.  Knowing Larry, I'm sure this is an ungrounded fear, but I
> : definitely want to be able to declare in a module "I'm going to be
> : screwing with stuff; keep out of my way," so that I don't impose any
> : awkward declarations on my module users.  If that request can be made
> : more explicit in the cases where that's possible, great, but the general
> : declaration should be available.
>
> Okay, we'll call the general declaration:
>
>     use $&
>
> or some such.  :-)
>
> Seriously, I hope we can provide a framework in which you can screw
> around to your heart's content while modules are being compiled,
> and to a lesser extent after compilation.  But we'll never get to a
> programming-in-the-large model if we can't limit most of the screwing
> around to the lexical scope currently being compiled, or at least
> to a known subset of the code.  Modules that turn off optimization
> for all other modules are going to be about as popular as $&. 

Or the debugger. Or a refactoring tool. Or a Class browser... 

> So the general declaration should probably be something easy to see
> like:
>
>     use STRANGE_SEMANTICS_THAT_SLOW_EVERYONE_DOWN;

No question about that.

> That will encourage people to be more specific about what they want
> to pessimize.  Certainly, your fancy module should be encouraged
> to declare these things on behalf of its users if it can.  I'm not
> suggesting that Lukian or Damianly modules force such declarations onto
> the users unless it's impossible for the module to know.  And it seems
> to me that with sufficient control over the user's grammar, you can
> often get that information into your own fancy module somehow.
> Might take a few macros though, or analysis of the user's code at
> CHECK time (or maybe just before).

When you say CHECK time, do you mean there'll be a CHECK phase for
code that gets required at run time?

-- 
Beware the Perl 6 early morning joggers -- Allison Randal

Reply via email to