Marc 'BlackJack' Rintsch wrote:
> In <[EMAIL PROTECTED]>, John Nagle wrote:
> 
>>     Many cases are easy.  If a smart compiler sees
>>
>>      for i in range(n) :
>>         ... # something
>>
>> and there are no other assignments to "i", then it's clear that
>> "i" can be represented as an integer, without "boxing" into a
>> general object.
> 
> How is it clear that `i` is restricted to integers?  That works only if
> you assume `range` refers to the built-in `range()` function.  So the
> smart compiler has to check all possible control flows up to this point
> and be sure `range` was not bound to something different.
> 
That is, of course, exactly what a smart compiler would do. Only 
nowadays it would quite possibly do it just-in-time (so I suppose you 
might call it the run-time, though the boundary is continually getting 
more blurred) rather than as the result of static analysis, so it would 
*know* that the built-in generator had been called.

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd          http://www.holdenweb.com
Skype: holdenweb     http://del.icio.us/steve.holden
Recent Ramblings       http://holdenweb.blogspot.com

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to