Re: [Python-Dev] __file__ is not always an absolute path

2010-02-08 Thread Nick Coghlan
Antoine Pitrou wrote:
> Barry Warsaw  python.org> writes:
>>> exarkun  boson:~$ python -m timeit -s 'from os import getcwd' 'getcwd()'
>>> 100 loops, best of 3: 1.02 usec per loop
> [...]
>> I'd like to see the effect on command line scripts that are run often and 
>> then
>> exit, e.g. Bazaar or Mercurial.  Start up time due to import overhead seems 
>> to
>> be a constant battle for those types of projects.
> 
> If os.getcwd() is only called once when "normalizing" sys.path, and if it just
> takes one microsecond, I don't really see the point. :-)

The problem is that having '' as the first entry in sys.path currently
means "do the import relative to the current directory". Unless we want
to change the language semantics so we stick os.getcwd() at the front
instead of '', then __file__ is still going to be relative sometimes.

Alternatively, we could special case those specific imports to do
os.getcwd() at the time of the import. That won't affect the import
speed significantly for imports from locations other than '' (i.e. most
of them) and will more accurately reflect the true meaning of __file__
in that case (since we put the module in sys.modules, future imports
won't see different versions of that module even if the working
directory is changed, so the relative value for __file__ becomes a lie
as soon as the working directory changes)

Cheers,
Nick.

-- 
Nick Coghlan   |   [email protected]   |   Brisbane, Australia
---
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] __file__ is not always an absolute path

2010-02-08 Thread Antoine Pitrou
Nick Coghlan  gmail.com> writes:
> 
> The problem is that having '' as the first entry in sys.path currently
> means "do the import relative to the current directory". Unless we want
> to change the language semantics so we stick os.getcwd() at the front
> instead of '', then __file__ is still going to be relative sometimes.

"Changing the language semantics" is actually what I was thinking about :)
Do some people actually rely on the fact that changing the current directory
will also change the import path?

cheers

Antoine.


___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 3147: PYC Repository Directories

2010-02-08 Thread Nick Coghlan
Ron Adam wrote:
> To tell the truth in most cases I hardly notice the extra time the first
> run takes compared to later runs with the precompiled byte code.  Yes it
> may be a few seconds at start up, but after that it's usually not a big
> part of the execution time.  Hmmm, I wonder if there's a threshold in
> file size where it really doesn't make a significant difference?

It's relative to runtime for the application itself (long-running
applications aren't going to notice as much of a percentage effect on
runtime) as well as to how many Python files are actually imported at
startup (only importing a limited number of modules, importing primarily
extension modules or effective use of a lazy module loading mechanism
will all drastically reduce the proportional impact of precompiled bytecode)

We struggle enough with startup time that doing anything that makes it
slower is rather undesirable though.

Cheers,
Nick.

-- 
Nick Coghlan   |   [email protected]   |   Brisbane, Australia
---
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] __file__ is not always an absolute path

2010-02-08 Thread Nick Coghlan
Antoine Pitrou wrote:
> Nick Coghlan  gmail.com> writes:
>> The problem is that having '' as the first entry in sys.path currently
>> means "do the import relative to the current directory". Unless we want
>> to change the language semantics so we stick os.getcwd() at the front
>> instead of '', then __file__ is still going to be relative sometimes.
> 
> "Changing the language semantics" is actually what I was thinking about :)
> Do some people actually rely on the fact that changing the current directory
> will also change the import path?

I've learned that no matter how insane our current semantics for
something may be, someone, somewhere will be relying on them :)

In this case, the current semantics aren't even all that insane. A bit
odd maybe, but not insane. I think they're even documented, but I
couldn't say exactly where without some digging.

I think we also use the trick of checking for an empty string in
sys.path[0] in a couple of places before deciding whether or not to
remove it (I seem to recall applying a patch to pydoc along those lines
so it worked properly with the -m switch).

Cheers,
Nick.

-- 
Nick Coghlan   |   [email protected]   |   Brisbane, Australia
---
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] __file__ is not always an absolute path

2010-02-08 Thread Floris Bruynooghe
On Mon, Feb 08, 2010 at 12:51:22PM +, Antoine Pitrou wrote:
> Do some people actually rely on the fact that changing the current directory
> will also change the import path?

On the interactive prompt, yes.  But I guess that's a habit that could
be easily un-learnt.

Regards
Floris



-- 
Debian GNU/Linux -- The Power of Freedom
www.debian.org | www.gnu.org | www.kernel.org
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 3147: PYC Repository Directories

2010-02-08 Thread Terry Reedy

On 2/8/2010 7:54 AM, Nick Coghlan wrote:

Ron Adam wrote:

To tell the truth in most cases I hardly notice the extra time the first
run takes compared to later runs with the precompiled byte code.  Yes it
may be a few seconds at start up, but after that it's usually not a big
part of the execution time.  Hmmm, I wonder if there's a threshold in
file size where it really doesn't make a significant difference?


It's relative to runtime for the application itself (long-running
applications aren't going to notice as much of a percentage effect on
runtime) as well as to how many Python files are actually imported at
startup (only importing a limited number of modules, importing primarily
extension modules or effective use of a lazy module loading mechanism
will all drastically reduce the proportional impact of precompiled bytecode)

We struggle enough with startup time that doing anything that makes it
slower is rather undesirable though.


Definitely. I have even wondered whether it would be possible to cache 
not just the bytecode for initializing a module, but also the 
initialized module itself (perhaps minus the name bindings for other 
imported modules).


Terry Jan Reedy


___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 385 progress report

2010-02-08 Thread Dirkjan Ochtman
On Sun, Feb 7, 2010 at 22:51, Benjamin Peterson  wrote:
> How about a week after, so we have more time to adjust release procedures?

Sounds fine to me.

> Will you do test conversions of the sandbox projects, too?

Got any particular projects in mind?

> Also I think we should have some document (perhaps the dev FAQ)
> explaining exactly how to do common tasks in mercurial. For example
> - A bug fix, which needs to be in 4 branches.
> - A bug fix, which only belongs in 2.7 and 2.6 or 3.2 and 3.1.
> - Which way do we merge (What's a subset of what?)

Yes, writing lots of docs is part of the plan.

Cheers,

Dirkjan
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 385 progress report

2010-02-08 Thread Dirkjan Ochtman
On Sun, Feb 7, 2010 at 22:58, Mark Hammond  wrote:
> Isn't setting a date premature while outstanding issues remain without a
> timetable for their resolution?

If we set a date, that would imply a timetable for their resolution.

> See http://mercurial.selenic.com/wiki/EOLTranslationPlan#TODO - of
> particular note:
>
> * There are transient errors in the tests which Martin is yet to identify.
>  These tests do not require windows to reproduce or fix.
>
> * The mercurial tests do not run on Windows.
>
> Given the above, most sane Windows developers would hold off on "live"
> testing of the extension until at least the first issue is resolved - but
> the second issue makes it very difficult for them to help resolve that.

The Mercurial tests can actually run on Windows -- and I've updated
the page to that effect. They require something called pysh, though.
I've also asked Patrick Mezard to include the eol extension in his
nightly test run on Windows. I guess since some of the test errors do
not require Windows to reproduce or fix, I'd invite anyone to jump in
and help fix these issues.

Cheers,

Dirkjan
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 385 progress report

2010-02-08 Thread Benjamin Peterson
2010/2/8 Dirkjan Ochtman :
> On Sun, Feb 7, 2010 at 22:51, Benjamin Peterson  wrote:
>> Will you do test conversions of the sandbox projects, too?
>
> Got any particular projects in mind?

2to3.



-- 
Regards,
Benjamin
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 3146: Merge Unladen Swallow into CPython

2010-02-08 Thread Collin Winter
Hi Craig,

On Tue, Feb 2, 2010 at 4:42 PM, Craig Citro  wrote:
>> Done. The diff is at
>> http://codereview.appspot.com/186247/diff2/5014:8003/7002. I listed
>> Cython, Shedskin and a bunch of other alternatives to pure CPython.
>> Some of that information is based on conversations I've had with the
>> respective developers, and I'd appreciate corrections if I'm out of
>> date.
>>
>
> Well, it's a minor nit, but it might be more fair to say something
> like "Cython provides the biggest improvements once type annotations
> are added to the code." After all, Cython is more than happy to take
> arbitrary Python code as input -- it's just much more effective when
> it knows something about types. The code to make Cython handle
> closures has just been merged ... hopefully support for the full
> Python language isn't so far off. (Let me know if you want me to
> actually make a comment on Rietveld ...)

Indeed, you're quite right. I've corrected the description here:
http://codereview.appspot.com/186247/diff2/7005:9001/10001

> Now what's more interesting is whether or not U-S and Cython could
> play off one another -- take a Python program, run it with some
> "generic input data" under Unladen and record info about which
> functions are hot, and what types they tend to take, then let
> Cython/gcc -O3 have a go at these, and lather, rinse, repeat ... JIT
> compilation and static compilation obviously serve different purposes,
> but I'm curious if there aren't other interesting ways to take
> advantage of both.

Definitely! Someone approached me about possibly reusing the profile
data for a feedback-enhanced code coverage tool, which has interesting
potential, too. I've added a note about this under the "Future Work"
section: http://codereview.appspot.com/186247/diff2/9001:10002/9003

Thanks,
Collin Winter
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 385 progress report

2010-02-08 Thread Martin v. Löwis
Benjamin Peterson wrote:
> 2010/2/8 Dirkjan Ochtman :
>> On Sun, Feb 7, 2010 at 22:51, Benjamin Peterson  wrote:
>>> Will you do test conversions of the sandbox projects, too?
>> Got any particular projects in mind?
> 
> 2to3.

Does Mercurial even support merge tracking the way we are doing it for
2to3 right now?

Regards,
Martin

___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 385 progress report

2010-02-08 Thread Benjamin Peterson
2010/2/8 "Martin v. Löwis" :
> Benjamin Peterson wrote:
>> 2010/2/8 Dirkjan Ochtman :
>>> On Sun, Feb 7, 2010 at 22:51, Benjamin Peterson  wrote:
 Will you do test conversions of the sandbox projects, too?
>>> Got any particular projects in mind?
>>
>> 2to3.
>
> Does Mercurial even support merge tracking the way we are doing it for
> 2to3 right now?

I don't believe so. My plan was to manually sync updates or use subrepos.


-- 
Regards,
Benjamin
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com