Re: [Python-Dev] optparse and unicode

2006-05-31 Thread Ronald Oussoren

On 30-mei-2006, at 22:32, Tom Cato Amundsen wrote:

 optparse
 

 Using unicode strings with non-ascii chars.[1]

 I'm working around this by subclassing OptionParser. Below is a
 workaround I use in GNU Solfege. Should something like this be
 included in python 2.5?

Could you please file a bug or feature request for this on SF? Your  
report might get lost otherwise.

Ronald

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


Re: [Python-Dev] [Python-3000] stdlib reorganization

2006-05-31 Thread Talin
A.M. Kuchling wrote:
 On Tue, May 30, 2006 at 03:36:02PM -0600, Steven Bethard wrote:
 
That sounds about reasonable.  One possible grouping:
 
 
 Note that 2.5's library reference has a different chapter organization
 from 2.4's.  See http://docs.python.org/dev/lib/lib.html.

I like it. Its a much cleaner organization than the 2.4 libs. I would 
like to see it used as a starting point for a reorg of the standard lib 
namespace.

One question that is raised is whether the categories should map 
directly to package names in all cases. For example, I can envision a 
desire that 'sys' would stay a top-level name, rather than 'rt.sys'. 
Certain modules are so fundamental that they deserve IMHO to live in the 
root namespace.

-- Talin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] test_struct failure on 64 bit platforms

2006-05-31 Thread Neal Norwitz
Bob,

There are a couple of things I don't understand about the new struct.
Below is a test that fails.

$ ./python ./Lib/test/regrtest.py test_tarfile test_struct
test_tarfile
/home/pybot/test-trunk/build/Lib/struct.py:63: DeprecationWarning: 'l'
format requires -2147483648 = number = 2147483647
  return o.pack(*args)
test_struct
test test_struct failed -- pack('l', -2147483649) did not raise error
1 test OK.
1 test failed:
test_struct



I fixed the error message (the min value was off by one before).  I
think I fixed a few ssize_t issues too.

The remaining issues I know of are:
  * The warning only appears on 64-bit platforms.
  * The warning doesn't seem correct for 64-bit platforms (l is 8 bytes, not 4).
  * test_struct only fails if run after test_tarfile.
  * The msg from test_struct doesn't seem correct for 64-bit platforms.

I tracked the problem down to trying to write the gzip tar file.  Can
you fix this?

n
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] test_struct failure on 64 bit platforms

2006-05-31 Thread Bob Ippolito

On May 31, 2006, at 12:49 AM, Neal Norwitz wrote:

 Bob,

 There are a couple of things I don't understand about the new struct.
 Below is a test that fails.

 $ ./python ./Lib/test/regrtest.py test_tarfile test_struct
 test_tarfile
 /home/pybot/test-trunk/build/Lib/struct.py:63: DeprecationWarning: 'l'
 format requires -2147483648 = number = 2147483647
  return o.pack(*args)
 test_struct
 test test_struct failed -- pack('l', -2147483649) did not raise error
 1 test OK.
 1 test failed:
test_struct

 

 I fixed the error message (the min value was off by one before).  I
 think I fixed a few ssize_t issues too.

 The remaining issues I know of are:
  * The warning only appears on 64-bit platforms.
  * The warning doesn't seem correct for 64-bit platforms (l is 8  
 bytes, not 4).
  * test_struct only fails if run after test_tarfile.
  * The msg from test_struct doesn't seem correct for 64-bit platforms.

 I tracked the problem down to trying to write the gzip tar file.  Can
 you fix this?

The warning is correct, and so is the size. Only native formats have  
native sizes; l and i are exactly 4 bytes on all platforms when using  
=, , , or !. That's what std size and alignment means.

It looks like the only thing that's broken here is the test. The  
behavior changed to consistently allow any integer whatsoever to be  
passed to struct for all formats (except q and Q which have always  
done proper range checking). Previously, the range checking was  
inconsistent across platforms (32-bit and 64-bit anyway) and when  
using int vs. long.

Unfortunately I don't have a 64-bit platform easily accessible and I  
have no idea which test it is that's raising the warning. Could you  
isolate it?

-bob

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


Re: [Python-Dev] fixing buildbots

2006-05-31 Thread Neal Norwitz
On 5/30/06, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 Zitat von Neal Norwitz [EMAIL PROTECTED]:

  I've been starting to get some of the buildbots working again.  There
  was some massive problem on May 25 where a ton of extra files were
  left around.  I can't remember if I saw something about that at the
  NFS sprint or not.

 You can clean each buildbot remotely by forcing a build on a
 (non-existing) branch. That removes the build tree, and then
 tries to build the branch (which fails if the branch doesn't
 exist). The next build will then start with a fresh checkout
 of the trunk.

That's good to know.  Thanks.  In this case there were also bogus
files/directories created that were siblings of the build area, so I
don't think that those could have been cleaned up.  I'm pretty sure it
would have fixed the problem though.

  There is a lingering problem that I can't fix on all the boxes.  Namely:
 
cp Modules/Setup{.dist,}
 
  Should we always do that step before we build on the buildbots?

 If so, the easiest way to do it would be to make distclean in
 the clean step: that removes Modules/Setup as well.

I agree this is best.  I updated Makefile.pre.in and master.cfg.  I
didn't restart the buildbot yet though.  I wanted to wait for a quiet
period.

n
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] test_struct failure on 64 bit platforms

2006-05-31 Thread Neal Norwitz
On 5/31/06, Bob Ippolito [EMAIL PROTECTED] wrote:

 On May 31, 2006, at 12:49 AM, Neal Norwitz wrote:

  Bob,
 
  There are a couple of things I don't understand about the new struct.
  Below is a test that fails.
 
  $ ./python ./Lib/test/regrtest.py test_tarfile test_struct
  test_tarfile
  /home/pybot/test-trunk/build/Lib/struct.py:63: DeprecationWarning: 'l'
  format requires -2147483648 = number = 2147483647
   return o.pack(*args)
  test_struct
  test test_struct failed -- pack('l', -2147483649) did not raise error
  1 test OK.
  1 test failed:
 test_struct
 
  
 
  I fixed the error message (the min value was off by one before).  I
  think I fixed a few ssize_t issues too.
 
  The remaining issues I know of are:
   * The warning only appears on 64-bit platforms.
   * The warning doesn't seem correct for 64-bit platforms (l is 8
  bytes, not 4).
   * test_struct only fails if run after test_tarfile.
   * The msg from test_struct doesn't seem correct for 64-bit platforms.
 
  I tracked the problem down to trying to write the gzip tar file.  Can
  you fix this?

 The warning is correct, and so is the size. Only native formats have
 native sizes; l and i are exactly 4 bytes on all platforms when using
 =, , , or !. That's what std size and alignment means.

Ah, you are correct.  I see this is the behaviour in 2.4.  Though I
wouldn't call 4 bytes a standard size on a 64-bit platform.

 Unfortunately I don't have a 64-bit platform easily accessible and I
 have no idea which test it is that's raising the warning. Could you
 isolate it?

I wasted sleep for that?  Damn and I gotta get up early again tomorrow
too.  See the checkin for answer.  Would someone augment the warnings
module to make testing more reasonable?

n
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [Python-checkins] r46300 - in python/trunk: Lib/socket.py Lib/test/test_socket.py Lib/test/test_struct.py Modules/_struct.c Modules/arraymodule.c Modules/socketmodule.c

2006-05-31 Thread Martin Blais
On 5/29/06, Guido van Rossum [EMAIL PROTECTED] wrote:
 [python-checkins]
   * Added socket.recv_buf() and socket.recvfrom_buf() methods, that
   use the buffer
 protocol (send and sendto already did).
  
   * Added struct.pack_to(), that is the corresponding buffer
   compatible method to
 unpack_from().

 [Guido]
   Hm... The file object has a similar method readinto(). Perhaps the
   methods introduced here could follow that lead instead of using two
   different new naming conventions?

 On 5/27/06, Bob Ippolito [EMAIL PROTECTED] wrote:
  (speaking specifically about struct and not socket)
 
  pack_to and unpack_from are named as such because they work with objects
  that support the buffer API (not file-like-objects). I couldn't find any
  existing convention for objects that manipulate buffers in such a way.

 Actually, fileobject.readinto(bufferobject) is the convention I
 started long ago (at the time the buffer was introduced.

  If there is an existing convention then I'd be happy to rename these.
 
  readinto seems to imply that some kind of position is being
  incremented.

 No -- it's like read() but instead of returning a new object it reads
 into an object you pass.

  Grammatically it only works if it's implemented on all buffer
  objects, but
  in this case it's implemented on the Struct type.

 It looks like structobject.pack_to(bufferobject, other args) is
 similar to fileobject.readinto(bufferobject) in that the buffer
 object receives the result of packing / reading.

So I assume you're suggesting the following renames:

  pack_to - packinto
  recv_buf - recvinto
  recvfrom_buf - recvfrominto

(I don't like that last one very much.
I'll go ahead and make those renames once I return.)
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Reporting unexpected import failures as test failures in regrtest.py

2006-05-31 Thread Nick Coghlan
Some background for those not watching python-checkins:

I neglected to do svn add for the new functools Python module when 
converting functional-functools. The buildbots stayed green because the 
ImportError triggered by the line import functools in test_functools was 
treated as a TestSkipped by regrtest.py.

Georg noticed the file missing from the checkin message, but this is the 
second time I (and the buildbots) have missed a regression due to this 
behaviour. (As I recall, last time I checked in some broken code because I 
didn't notice the additional entry appearing in the list of unexpected skips 
in my local testing)

Tim Peters wrote:
 [Nick Coghlan]
 ... (we should probably do something about that misleading ImportError -
 TestSkipped - green buildbot behaviour. . . )
 
 I looked at that briefly a few weeks back and gave up.  Seemed the
 sanest thing was to entirely stop treating ImportError as test
 skipped, and rewrite tests that legimately _may_ get skipped to catch
 expected ImportErrors and change them to TestSkipped themselves.
 
 A bit of framework might help; e.g., a test that expects to get
 skipped due to failing imports on some platforms could define a
 module-level list bound to a conventional name containing the names of
 the modules whose import failure should be treated as TestSkipped, and
 then regrtest.py could be taught to check import errors against the
 test module's list (if any).
 
 In the case du jour, test_functools.py presumably wouldn't define that
 list, so that any ImportError it raised would be correctly treated as
 test failure.

What if we appended unexpected skips to the list of bad tests so that they get 
rerun in verbose mode and the return value becomes non-zero?

 print count(len(surprise), skip), \
   unexpected on, plat + :
 printlist(surprise)
 # Add the next line after the previous two in regrtest.py
 bad.extend(surprise)

(This happens after the count of failed tests has been printed, so we don't 
affect that output)

Cheers,
Nick.

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


[Python-Dev] A can of worms... (does Python C code have a new C style?)

2006-05-31 Thread Martin Blais
Hi all

I'd like to know what the policy is on the source code indentation for
C code in the interpreter.  At the Need-for-Speed sprints, there was
consensus that there is a new indentation for style for the Python C
source files, with

* indentation (emacs: c-basic-offset): 4 chars
* no tabs (so tab-width does not matter)
* 79 chars max for lines (I think)

(Correct me if any of this is wrong.)  I cannot find where this
discussion comes from, PEP 7 seems to imply that the new style only
applies to Python 3k.  Is this correct?

However, people were maintaining the existing styles when they were
editing part of existing files (I setup emacs users with two c-styles,
python and python-new, so they could switch per-file), but using
the new guidelines for new files.  I look at the source code, and
there is a bit of a mix of the two styles in some places.

Is there a grand plan to convert all the code at once at some point?
If not, how is it that these new guidelines are supposed to take
effect?

I could easily contribute to the vaccuuming here, by writing a script
that will run emacs in batch mode on all the C code with the
appropriate new style to do the following for each C file present:

* re-indent the entire file according to the new guidelines
* convert all the tabs to whitespace
* delete trailing whitespace on all lines
* remove those pesky CR if there are any
* (anything else you'd like that's easily done from emacs?)

The problem is that if someone was to check-in the result of this
automation there would be a huge wave of complaints from merge
conflicts for people who have a checkouts with lots of uncommitted
changes.  I don't see any painless way to do this.  To ease the pain,
however, it could be done at a fixed time, giving everyone a wide
margin of chance to commit beforehand.

In addition, should this be applied, we should probably create a
Subversion hook that will automatically convert tabs to spaces, or
fails the commit if the files don't comply.

I realize this is potentially opening a can of worms, but on the one
hand I'd like to know what's the low-down on the indentation, and on
the other hand I won't spend a second on this if this is only going to
lead to trouble.

Then again, maybe I misunderstood and the new rules apply only to
Python 3k, in which case, well, press delete and move on.

cheers,
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] A can of worms... (does Python C code have a new C style?)

2006-05-31 Thread Barry Warsaw
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Wed, 31 May 2006 07:02:02 -0400
Martin Blais [EMAIL PROTECTED] wrote:

 I'd like to know what the policy is on the source code indentation for
 C code in the interpreter.  At the Need-for-Speed sprints, there was
 consensus that there is a new indentation for style for the Python C
 source files, with
 
 * indentation (emacs: c-basic-offset): 4 chars
 * no tabs (so tab-width does not matter)
 * 79 chars max for lines (I think)
 
 (Correct me if any of this is wrong.)  I cannot find where this
 discussion comes from, PEP 7 seems to imply that the new style only
 applies to Python 3k.  Is this correct?

AFAIK, yes it only applies to Py3K.  There are no plans to re-indent the
Python 2.x C code.  Or maybe, there have been plans to do so for  10
years and in Py3K those plans might finally come to fruition. :)

BTW, A while back I think I posted a py3k cc-mode style for you
X/Emacs hackers out there.  It's based on the standard python style
but changes c-basic-offset and indent-tabs-mode.  Let me know if you
can't find it in the archives.

- -Barry
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.2.2 (GNU/Linux)

iQCVAwUBRH2HvnEjvBPtnXfVAQJv/wQAhKBvh49xW59JgKv6tq9O/QvU/jvZJSPw
qHMjOi55IGdFUG4zrSOH08U0VSkkM/mhoBgAqggNnsWMsFjtEu0NeOcroKIPBmLK
RU1B4sw78RQFj/phEBpCvgObYRoI8lEVJYnXKFAp6yY9qGdJRGIRGhVX5nnBz/as
4BLr5tADpHo=
=IFzC
-END PGP SIGNATURE-
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [Python-3000] stdlib reorganization

2006-05-31 Thread A.M. Kuchling
On Tue, May 30, 2006 at 11:46:06PM -0700, Talin wrote:
 I like it. Its a much cleaner organization than the 2.4 libs. I would 
 like to see it used as a starting point for a reorg of the standard lib 
 namespace.

I'm not convinced that the chapter organization of a book is
necessarily the best choice for the actual package layout of the
standard library.  A grouping that's useful for reference may not be
ideal for staying in one's memory.

--amk
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] test_struct failure on 64 bit platforms

2006-05-31 Thread Tim Peters
[Bob]
 The warning is correct, and so is the size. Only native formats have
 native sizes; l and i are exactly 4 bytes on all platforms when using
 =, , , or !. That's what std size and alignment means.

[Neal]
 Ah, you are correct.  I see this is the behaviour in 2.4.  Though I
 wouldn't call 4 bytes a standard size on a 64-bit platform.

standard is a technical word with precise meaning here, and is
defined by the struct module docs, in contrast to native.  It means
whatever they say it means :-)  Portable may have been a more
intuitive word than standard here -- read standard in the struct
context in the sense of standardized, regardless of native platform
size or alignment or endian quirks.

 Would someone augment the warnings module to make testing
 more reasonable?

What's required?  I know of two things:

1. There's no advertised way to save+restore the internal
   filter list, or to remove a filter entry, so tests that want
   to make a temporary change have to break into the internals.

2. There's no advertised way to disable only gripe once per source
   line behavior.  This gets in the way of testing that warnings get
   raised when running tests more than once, or using a common
   function to raise warnings from multiple call sites.

These get in the way of Zope and ZODB testing too, BTW.
Unfortunately, looks like the new test_struct code bumped into both of
them at once.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Reporting unexpected import failures as test failures in regrtest.py

2006-05-31 Thread Tim Peters
[Nick Coghlan]
 What if we appended unexpected skips to the list of bad tests so that they get
 rerun in verbose mode and the return value becomes non-zero?

  print count(len(surprise), skip), \
unexpected on, plat + :
  printlist(surprise)
  # Add the next line after the previous two in regrtest.py
  bad.extend(surprise)

 (This happens after the count of failed tests has been printed, so we don't
 affect that output)

While expected skips is reliable on Windows, it's just a guess
everywhere else.  That's because the Windows build is unique in
supplying and compiling all the external packages Python ships with on
Windows.  On non-Windows boxes, which skips are expected also
depends on which external packages happen to be installed on the box,
and how Python was configured, and regrtest.py has no knowledge about
those.

For example, on the sparc solaris10 gcc trunk buildbot, 6 tests show
up as unexpected skips, and there's just no way for a
non-platform-expert to guess which of those are and aren't pointing at
problems.  It's easy enough to guess that test_zipfile is skipped
because the box doesn't have an external zlib installed, but why is
test_ioctl skipped?  I have no idea (and neither does regrtest.py),
but it's presumably obvious to a Sun expert.

In any case, if unexpected skips got appended to `bad`, the non-zero
exit code would cause that buildbot slave to fail every time.  It's
not unique, either; e.g., the x86 gentoo trunk slave always skips
test_tcl, presumably because Tcl isn't installed on that box.

In short, there's simply no way to _guess_ which import errors are and
aren't expected.  Improving that requires adding more knowledge to
the testing machinery.  The most important thing is to add knowledge
about which import errors are _never_ expected (perhaps by adding
knowledge about which imports _may_ legitimately fail), since we can
know that for sure about x-platform modules, and that's exactly the
problem that keeps burning us.  Confusing ImportError with TestSkipped
is an admirably lazy idea that unfortunately didn't turn out to work
very well.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] test_struct failure on 64 bit platforms

2006-05-31 Thread Ronald Oussoren
 
On Wednesday, May 31, 2006, at 03:06PM, Tim Peters [EMAIL PROTECTED] wrote:
 Would someone augment the warnings module to make testing
 more reasonable?

What's required?  I know of two things:

1. There's no advertised way to save+restore the internal
   filter list, or to remove a filter entry, so tests that want
   to make a temporary change have to break into the internals.

2. There's no advertised way to disable only gripe once per source
   line behavior.  This gets in the way of testing that warnings get
   raised when running tests more than once, or using a common
   function to raise warnings from multiple call sites.

These get in the way of Zope and ZODB testing too, BTW.
Unfortunately, looks like the new test_struct code bumped into both of
them at once.

The really annoying part of the new struct warnings is that the warning line 
mentions a line in struct.py instead the caller of struct.pack. That makes it 
hard to find the source of the warning without telling the warnings module to 
raise an exception for DeprecationWarnings.

Ronald
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [Python-checkins] r46300 - in python/trunk: Lib/socket.py Lib/test/test_socket.py Lib/test/test_struct.py Modules/_struct.c Modules/arraymodule.c Modules/socketmodule.c

2006-05-31 Thread Guido van Rossum
On 5/31/06, Martin Blais [EMAIL PROTECTED] wrote:
 So I assume you're suggesting the following renames:

   pack_to - packinto
   recv_buf - recvinto
   recvfrom_buf - recvfrominto

 (I don't like that last one very much.
 I'll go ahead and make those renames once I return.)

You could add an underscore before _into.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] A can of worms... (does Python C code have a new C style?)

2006-05-31 Thread Georg Brandl
Martin Blais wrote:
 Hi all
 
 I'd like to know what the policy is on the source code indentation for
 C code in the interpreter.  At the Need-for-Speed sprints, there was
 consensus that there is a new indentation for style for the Python C
 source files, with
 
 * indentation (emacs: c-basic-offset): 4 chars
 * no tabs (so tab-width does not matter)
 * 79 chars max for lines (I think)
 
 (Correct me if any of this is wrong.)  I cannot find where this
 discussion comes from, PEP 7 seems to imply that the new style only
 applies to Python 3k.  Is this correct?

The consensus at NFS was that it also applies to newly written C files.
I did update the PEP, but that doesn't seem to have propagated to the
web site yet.

 However, people were maintaining the existing styles when they were
 editing part of existing files (I setup emacs users with two c-styles,
 python and python-new, so they could switch per-file), but using
 the new guidelines for new files.  I look at the source code, and
 there is a bit of a mix of the two styles in some places.

That's bad, but is the way the code was written and should not be
changed for the sake of changing.

 Is there a grand plan to convert all the code at once at some point?
 If not, how is it that these new guidelines are supposed to take
 effect?

AFAIK not before Python 3.0 since it would unnecessarily break,
for instance, svn blame and make merging more difficult.

[...]

 In addition, should this be applied, we should probably create a
 Subversion hook that will automatically convert tabs to spaces, or
 fails the commit if the files don't comply.

For the future (=Py3k), I think this would be nice.


Georg

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


Re: [Python-Dev] Iterating generator from C (PostgreSQL's pl/python RETUN SETOF/RECORD iterator support broken on RedHat buggy libs)

2006-05-31 Thread Hannu Krosing
Ühel kenal päeval, P, 2006-05-28 kell 14:18, kirjutas Thomas Wouters:
 
 On 5/20/06, Hannu Krosing [EMAIL PROTECTED] wrote:
 I try to move this to -dev as I hope there more people reading
 it who
 are competent in internal working :). So please replay to -dev
 only.
 
 I'm not sure if you have found the problem on another mailinglist
 then, but I saw no answers on python-dev. 
 
 
 -
 
 The question is about use of generators in embedde v2.4 with
 asserts 
 enabled.
 
 Can somebody explain, why the code in try2.c works with
 wrappers 2 and 3
 but crashes on buggy exception for all others, that is pure
 generator
 and wrappers 1,4,5 ?
 
 Your example code does not crash for me, not for any of the
 'wrapper_source' variants, linking against Python 2.4 (debian's python
 2.4.3 on amd64, both in 64-bit and 32-bit mode) or Python 2.5 (current
 trunk, same hardware.) I don't know what kind of crash you were
 expecting, but I do see unchecked return values, which can cause
 crashes for the simplest of reasons ;-) 

Fedora Core distributes its python libs with asserts on, and this code
triggers an assert, both without a wrapper and with most wrappers

[EMAIL PROTECTED] plpython]$ ./try2
one
try2: Objects/genobject.c:53: gen_iternext: Assertion `f-f_back !=
((void *)0)' failed.
Aborted

This is reported to be fixed for 2.5 (they changed the assert), but I'd
like to have a workaround which would not trigger the old buggy assert.

 -- 
 Thomas Wouters [EMAIL PROTECTED]
 
 Hi! I'm a .signature virus! copy me into your .signature file to help
 me spread!
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Add new PyErr_WarnEx() to 2.5?

2006-05-31 Thread Tim Peters
[Ronald Oussoren, hijacking the test_struct failure on 64 bit platforms
 thread]
 The really annoying part of the new struct warnings is that the
 warning line mentions a line in struct.py instead the caller of
 struct.pack. That makes it hard to find the source of the
 warning without telling the warnings module to raise an
 exception for DeprecationWarnings.

The problem seems to be that Python's C API apparently gives no simple
way to supply a value for warning.warn's optional `stacklevel`
argument.  The C-level signature is:

int PyErr_Warn(PyObject *category, char *message);

and that's what _struct.c calls.  I think it would be good to add a new

int PyErr_WarnEx(PyObject *category, char *message, long stacklevel);

C API function, change PyErr_Warn to call that forcing stacklevel to
1, and change _struct.c to call PyErr_WarnEx with stacklevel=2.  Then
it would point at struct.pack()'s caller.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] test_gzip/test_tarfile failure om AMD64

2006-05-31 Thread Tim Peters
I'm afraid a sabbatical year isn't long enough to understand what the
struct module did or intends to do by way of range checking 0.7
wink.

Is this intended?  This is on a 32-bit Windows box with current trunk:

 from struct import pack as p
 p(I, 2**32 + 2343)
C:\Code\python\lib\struct.py:63: DeprecationWarning: 'I' format
requires 0 = number = 4294967295
  return o.pack(*args)
'\x00\x00\x00\x00'

The warning makes sense, but the result doesn't make sense to me.  In
Python 2.4.3, that example raised OverflowError, which seems better
than throwing away all the bits without an exception.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Python Benchmarks

2006-05-31 Thread Niko Matsakis
Hello,

After reading through recent Python mail regarding dictionaries and  
exceptions, I wondered, what is the current state of the art in  
Python benchmarks? I've tried before to find a definite set of Python  
benchmarks but failed.  There doesn't seem to be an up to date  
reference, though if there is one and I didn't find it I would be  
very happy to be proven wrong. In any case, I would appreciate advice  
from the experts regarding what's available and what it tests.


thank you,
Niko Matsakis
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] test_gzip/test_tarfile failure om AMD64

2006-05-31 Thread Bob Ippolito

On May 31, 2006, at 8:31 AM, Tim Peters wrote:

 I'm afraid a sabbatical year isn't long enough to understand what the
 struct module did or intends to do by way of range checking 0.7
 wink.

 Is this intended?  This is on a 32-bit Windows box with current trunk:

 from struct import pack as p
 p(I, 2**32 + 2343)
 C:\Code\python\lib\struct.py:63: DeprecationWarning: 'I' format
 requires 0 = number = 4294967295
  return o.pack(*args)
 '\x00\x00\x00\x00'

 The warning makes sense, but the result doesn't make sense to me.  In
 Python 2.4.3, that example raised OverflowError, which seems better
 than throwing away all the bits without an exception.

Throwing away all the bits is a bug, it's supposed to mask with  
0xL

-bob

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


Re: [Python-Dev] Python Benchmarks

2006-05-31 Thread skip

(This is more appropriate for comp.lang.python/[EMAIL PROTECTED])

Niko After reading through recent Python mail regarding dictionaries
Niko and exceptions, I wondered, what is the current state of the art
Niko in Python benchmarks?

Pybench was recently added to the repository and will be in 2.5.  It works
with Python as far back as 1.5.2 though.  As a result of last week's
NeedForSpeed sprint some questions were raised about the efficacy of its
string/unicode tests, however, it seems to be the best available tool at the
moment.

Skip
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python Benchmarks

2006-05-31 Thread M.-A. Lemburg
[EMAIL PROTECTED] wrote:
 (This is more appropriate for comp.lang.python/[EMAIL PROTECTED])
 
 Niko After reading through recent Python mail regarding dictionaries
 Niko and exceptions, I wondered, what is the current state of the art
 Niko in Python benchmarks?
 
 Pybench was recently added to the repository and will be in 2.5.  It works
 with Python as far back as 1.5.2 though.  As a result of last week's
 NeedForSpeed sprint some questions were raised about the efficacy of its
 string/unicode tests, however, it seems to be the best available tool at the
 moment.

Could you please forward such questions to me ?

Steve Holden has added lots of good features to pybench during
the sprint and I'm working on having it use more accurate
timers (see pybench/systimes.py).

Thanks,
-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, May 31 2006)
 Python/Zope Consulting and Support ...http://www.egenix.com/
 mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
 mxODBC, mxDateTime, mxTextTools ...http://python.egenix.com/


::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! 
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python Benchmarks

2006-05-31 Thread skip

MAL Could you please forward such questions to me ?

I suppose, though what question were you referring to?  I was referring to
Fredrik's thread about stringbench vs pybench for string/unicode tests,
which I thought was posted to python-dev.  I assumed you were aware of the
issue.

Skip
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Arguments and PyInt_AsLong

2006-05-31 Thread Georg Brandl
Looking at #1153226, I found this:

We introduced emitting a DeprecationWarning for PyArg_ParseTuple
integer arguments if a float was given. This doesn't affect functions
like file.seek which use PyInt_AsLong to parse their argument.
PyInt_AsLong calls the nb_int slot which silently converts floats
to ints.

Is that acceptable, should PyInt_AsLong not accept other numbers
or should the functions be changed?

Georg

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


Re: [Python-Dev] Python Benchmarks

2006-05-31 Thread M.-A. Lemburg
[EMAIL PROTECTED] wrote:
 MAL Could you please forward such questions to me ?
 
 I suppose, though what question were you referring to? 

Not sure - I thought you knew ;-)

 I was referring to
 Fredrik's thread about stringbench vs pybench for string/unicode tests,
 which I thought was posted to python-dev.  I assumed you were aware of the
 issue.

I'm aware of that thread, but Fredrik only posted some vague
comment to the checkins list, saying that they couldn't use
pybench. I asked for some more details, but he didn't get
back to me.

AFAIK, there were no real issues with pybench, only with the
fact that time.clock() (the timer used by pybench) is wall-time
on Windows and thus an MP3-player running in the background
will cause some serious noise in the measurements ;-)

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, May 31 2006)
 Python/Zope Consulting and Support ...http://www.egenix.com/
 mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
 mxODBC, mxDateTime, mxTextTools ...http://python.egenix.com/


::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! 
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python Benchmarks

2006-05-31 Thread skip

MAL I'm aware of that thread, but Fredrik only posted some vague
MAL comment to the checkins list, saying that they couldn't use
MAL pybench. I asked for some more details, but he didn't get back to
MAL me.

I'm pretty sure I saw him (or maybe Andrew Dalke) post some timing
comparisons between pybench and stringbench.  Something about a change not
impacting performance showing a 60% slowdown on pybench but no change using
stringbench.  Maybe Fredrik had his iTunes volume cranked up too high... ;-)

Skip
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python Benchmarks

2006-05-31 Thread Fredrik Lundh
M.-A. Lemburg wrote:

 AFAIK, there were no real issues with pybench, only with the
 fact that time.clock() (the timer used by pybench) is wall-time
 on Windows and thus an MP3-player running in the background
 will cause some serious noise in the measurements 

oh, please; as I mentioned back then, PyBench reported massive slowdowns 
and huge speedups in code that wasn't touched, gave unrepeatable results 
on most platforms, and caused us to waste quite some time investigating 
potential regressions from 2.4 that simply didn't exist.

of about a dozen claimed slowdowns when comparing 2.4 to 2.5a2 on 
several platforms, only *one* slowdown could be independently confirmed 
with other tools.

and when we fixed that, and ended up with an implementation that was 
*faster* than in 2.4, PyBench didn't even notice the speedup.

the fact is that the results for individual tests in PyBench are 100% 
unreliable.  I have no idea why.

the accumulated result may be somewhat useful (at least after the use 
minimum time instead of average changes), but I wouldn't use it for any 
serious purpose.  at least PyStone is unusable in a well-defined way ;-)

/F

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


Re: [Python-Dev] Python Benchmarks

2006-05-31 Thread M.-A. Lemburg
[EMAIL PROTECTED] wrote:
 MAL I'm aware of that thread, but Fredrik only posted some vague
 MAL comment to the checkins list, saying that they couldn't use
 MAL pybench. I asked for some more details, but he didn't get back to
 MAL me.
 
 I'm pretty sure I saw him (or maybe Andrew Dalke) post some timing
 comparisons between pybench and stringbench.  Something about a change not
 impacting performance showing a 60% slowdown on pybench but no change using
 stringbench.  Maybe Fredrik had his iTunes volume cranked up too high... ;-)

This is possible since pybench uses a long run strategy, whereas
stringbench uses the timeit.py short run method.

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, May 31 2006)
 Python/Zope Consulting and Support ...http://www.egenix.com/
 mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
 mxODBC, mxDateTime, mxTextTools ...http://python.egenix.com/


::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! 
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Arguments and PyInt_AsLong

2006-05-31 Thread skip

Guido ... PyNumber_AsIndex or whatever it's called.

Maybe the API is getting a little fat if it doesn't fit comfortably in the
BDFL's brain...  Does that suggest it might need some streamlining for Py3k?

Skip
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Segmentation fault of Python if build on Solaris 9 or10 with Sun Studio 11

2006-05-31 Thread martin
Zitat von Andreas Flöter [EMAIL PROTECTED]:

 Help would be appreciated

This strictly doesn't belong to python-dev: this is the list where
you say I want to help, not so much I need your help.

If you want to resolve this yourself, we can guide you through
that. I would start running the binary in a debugger to find
out where it crashes. Maybe the bug in Python is easy to see
from that. But then, maybe the bug is in the compiler, and not
in Python...

Regards,
Martin


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


Re: [Python-Dev] Segmentation fault of Python if build on Solaris 9 or10 with Sun Studio 11

2006-05-31 Thread Facundo Batista
2006/5/31, [EMAIL PROTECTED] [EMAIL PROTECTED]:

 This strictly doesn't belong to python-dev: this is the list where
 you say I want to help, not so much I need your help.

QOTW!

I love it!

-- 
.Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Segmentation fault of Python if build on Solaris 9 or10 with Sun Studio 11

2006-05-31 Thread Tim Peters
[MvL, to Andreas Flöter]
 This strictly doesn't belong to python-dev: this is the list where
 you say I want to help, not so much I need your help.

LOL!  How true.

 If you want to resolve this yourself, we can guide you through
 that. I would start running the binary in a debugger to find
 out where it crashes. Maybe the bug in Python is easy to see
 from that. But then, maybe the bug is in the compiler, and not
 in Python...

The first or second thing to try is to recompile Python with C
optimization disabled, and especially in this case where compiling
with gcc instead works fine (that certainly _suggests_ C compiler
optimization bug).
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Possible bug in complexobject.c (still in Python 2.5)

2006-05-31 Thread Travis E. Oliphant

I'm curious about the difference between

float_subtype_new  in floatobject.c
complex_subtype_from_c_complex in complexobject.c

The former uses type-tp_alloc(type, 0) to create memory for the object 
while the latter uses PyType_GenericAlloc(type, 0) to create memory for 
the sub-type (thereby by-passing the sub-type's own memory allocator).

It seems like this is a bug.   Shouldn't type-tp_alloc(type, 0) also be 
used in the case of allocating complex subtypes?

This is causing problems in NumPy because we have a complex type that is 
a sub-type of the Python complex scalar.  It sometimes uses the 
complex_new code to generate instances (so that the __new__ interface is 
the same),  but because complex_subtype_from_c_complex is using 
PyType_GenericAlloc this is causing errors.

I can work around this by not calling the __new__ method for the base 
type but this is not consistent.


Thanks for any feedback,

-Travis

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


[Python-Dev] Possible bug in complexobject.c (still in Python 2.5)

2006-05-31 Thread Travis E. Oliphant
I'm curious about the difference between

float_subtype_new  in floatobject.c
complex_subtype_from_c_complex in complexobject.c

The former uses type-tp_alloc(type, 0) to create memory for the object
while the latter uses PyType_GenericAlloc(type, 0) to create memory for
the sub-type (thereby by-passing the sub-type's own memory allocator).

It seems like this is a bug.   Shouldn't type-tp_alloc(type, 0) also be
used in the case of allocating complex subtypes?

This is causing problems in NumPy because we have a complex type that is
a sub-type of the Python complex scalar.  It sometimes uses the
complex_new code to generate instances (so that the __new__ interface is
the same),  but because complex_subtype_from_c_complex is using
PyType_GenericAlloc this is causing errors.

I can work around this by not calling the __new__ method for the base
type but this is not consistent.


Thanks for any feedback,

P.S.  Sorry about the cross-posting to another thread.  I must have hit 
reply instead of compose.  Please forgive the noise.


-Travis

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


Re: [Python-Dev] Possible bug in complexobject.c (still in Python 2.5)

2006-05-31 Thread Guido van Rossum
I wouldn't be surprised if this is a genuine bug; the complex type
doesn't get a lot of love from core developers.

Could you come up with a proposed fix, and a unit test showing that it
works (and that the old version doesn't)? (Maybe a good unit test
would require writing a custome C extension; in that case just show
some sample code.)

--Guido

On 5/31/06, Travis E. Oliphant [EMAIL PROTECTED] wrote:

 I'm curious about the difference between

 float_subtype_new  in floatobject.c
 complex_subtype_from_c_complex in complexobject.c

 The former uses type-tp_alloc(type, 0) to create memory for the object
 while the latter uses PyType_GenericAlloc(type, 0) to create memory for
 the sub-type (thereby by-passing the sub-type's own memory allocator).

 It seems like this is a bug.   Shouldn't type-tp_alloc(type, 0) also be
 used in the case of allocating complex subtypes?

 This is causing problems in NumPy because we have a complex type that is
 a sub-type of the Python complex scalar.  It sometimes uses the
 complex_new code to generate instances (so that the __new__ interface is
 the same),  but because complex_subtype_from_c_complex is using
 PyType_GenericAlloc this is causing errors.

 I can work around this by not calling the __new__ method for the base
 type but this is not consistent.


 Thanks for any feedback,

 -Travis

 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe: 
 http://mail.python.org/mailman/options/python-dev/guido%40python.org



-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Let's stop eating exceptions in dict lookup

2006-05-31 Thread Tim Peters
[Martin Blais]
 I'm still looking for a benchmark that is not amazingly uninformative
 and crappy.  I've been looking around all day, I even looked under the
 bed, I cannot find it.  I've also been looking around all day as well,
 even looked for it shooting out of the Iceland geysirs, of all
 places--it's always all day out here it seems, day and day-- and I
 still can't find it.  (In the process however, I found Thule beer and
 strangely dressed vikings, which makes it all worthwhile.)

For those who don't know, Martin stayed on in Iceland after the NFS
sprint.  He shows clear signs above of developing photon madness.

http://www.timeanddate.com/worldclock/astronomy.html?n=211

Where that says sunset, don't read dark -- it just means the top
of the sun dips a bit below the horizon for a few hours.  It never
gets dark this time of year.

If you haven't experienced this, no explanation can convey the
other-worldly sense of it.  Combined with Iceland's astonishing and
beautiful geography, a North American boy (like Martin or me) could
swear they were transported to a different planet.  It's one I'd love
to visit again, but back home for a few days now I still turn the
lights off for about half an hour each night and just sit here
cherishing darkness :-)
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Search for empty substrings (was Re: Let's stop eating exceptions in dict lookup)

2006-05-31 Thread Tim Peters
[Fredrik Lundh]
 would abc.find(, 100) == 3 be okay?  or should we switch to treating the
 optional start and end positions as return value boundaries (used to filter 
 the
 result) rather than slice directives (used to process the source string 
 before
 the operation)?  it's all trivial to implement, and has no performance 
 implications,
 but I'm not sure what the consensus really is...

FWIW, I like what you eventually did:

 ab.find()
0
 ab.find(, 1)
1
 ab.find(, 2)
2
 ab.find(, 3)
-1
 ab.rfind()
2
 ab.rfind(, 1)
2
 ab.rfind(, 2)
2
 ab.rfind(, 3)
-1

I don't know that a compelling argument can be made for such a
seemingly senseless operation, but the behavior above is at least
consistent with the rule that a string of length n has exactly n+1
empty substrings, at 0:0, 1:1, ..., and n:n.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [Python-checkins] r46300 - in python/trunk: Lib/socket.py Lib/test/test_socket.py Lib/test/test_struct.py Modules/_struct.c Modules/arraymodule.c Modules/socketmodule.c

2006-05-31 Thread Martin Blais
On 5/31/06, Guido van Rossum [EMAIL PROTECTED] wrote:
 On 5/31/06, Martin Blais [EMAIL PROTECTED] wrote:
  So I assume you're suggesting the following renames:
 
pack_to - packinto
recv_buf - recvinto
recvfrom_buf - recvfrominto
 
  (I don't like that last one very much.
  I'll go ahead and make those renames once I return.)

 You could add an underscore before _into.

Will do!
cheers,
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Search for empty substrings (was Re: Let's stop eating exceptions in dict lookup)

2006-05-31 Thread Guido van Rossum
On 5/31/06, Tim Peters [EMAIL PROTECTED] wrote:
 [Fredrik Lundh]
  would abc.find(, 100) == 3 be okay?  or should we switch to treating the
  optional start and end positions as return value boundaries (used to 
  filter the
  result) rather than slice directives (used to process the source string 
  before
  the operation)?  it's all trivial to implement, and has no performance 
  implications,
  but I'm not sure what the consensus really is...

 FWIW, I like what you eventually did:

  ab.find()
 0
  ab.find(, 1)
 1
  ab.find(, 2)
 2
  ab.find(, 3)
 -1
  ab.rfind()
 2
  ab.rfind(, 1)
 2
  ab.rfind(, 2)
 2
  ab.rfind(, 3)
 -1

 I don't know that a compelling argument can be made for such a
 seemingly senseless operation, but the behavior above is at least
 consistent with the rule that a string of length n has exactly n+1
 empty substrings, at 0:0, 1:1, ..., and n:n.

Yes. Bravo!

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Possible bug in complexobject.c (still in Python 2.5)

2006-05-31 Thread skip

Guido (Maybe a good unit test would require writing a custome C
Guido extension; in that case just show some sample code.)

Isn't that what Module/_testcapimodule.c is for?

Skip
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Possible bug in complexobject.c (still in Python 2.5)

2006-05-31 Thread Travis E. Oliphant

Guido van Rossum wrote:

I wouldn't be surprised if this is a genuine bug; the complex type
doesn't get a lot of love from core developers.

Could you come up with a proposed fix, and a unit test showing that it
works (and that the old version doesn't)? (Maybe a good unit test
would require writing a custome C extension; in that case just show
some sample code.)



Attached is a sample module that exposes the problem.  The problem goes 
away by replacing


op = PyType_GenericAlloc(type, 0);

with

op = type-tp_alloc(type, 0);

in the function

complex_subtype_from_c_complex

in the file complexobject.c  (about line #191).



The problem with a unit test is that it might not fail.  On my Linux 
system, it doesn't complain about the problem unless I first use strict 
pointer checking with


export MALLOC_CHECK_=2

Then the code

import bugtest
a = bugtest.newcomplex(3.0)
del a

Aborts

Valgrind also shows the error when running the simple code. It seems 
pretty clear to me that the subtype code should be calling the sub-types 
tp_alloc code instead of the generic one.



Best regards,

-Travis











#include Python.h


typedef struct {
	PyObject_HEAD
	double real;
	double imag;
} PyNewComplexObject;


static PyTypeObject PyComplex_SubType = { 
PyObject_HEAD_INIT(NULL)
0,   /*ob_size*/
newcomplex,		   /*tp_name*/
sizeof(PyNewComplexObject),/*tp_basicsize*/
};

static PyObject *
_complex_alloc(PyTypeObject *type, int nitems)
{
	PyObject *obj;

	obj = (PyObject *)malloc(_PyObject_SIZE(type));
	memset(obj, 0, _PyObject_SIZE(type));
	PyObject_INIT(obj, type);
	return obj;
}

PyMODINIT_FUNC initbugtest(void) {
	PyObject *m, *d;
	m = Py_InitModule(bugtest, NULL);
	d = PyModule_GetDict(m);

	PyComplex_SubType.tp_free = free;
	PyComplex_SubType.tp_alloc = _complex_alloc;
	PyComplex_SubType.tp_base = PyComplex_Type;	
	PyComplex_SubType.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_CHECKTYPES;

PyType_Ready(PyComplex_SubType);
	Py_INCREF(PyComplex_SubType);
	PyDict_SetItemString(d, newcomplex, 
			 (PyObject *)PyComplex_SubType);
	return;
}
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Possible bug in complexobject.c (still in Python 2.5)

2006-05-31 Thread Travis E. Oliphant
Travis E. Oliphant wrote:
 I'm curious about the difference between
 
 float_subtype_new  in floatobject.c
 complex_subtype_from_c_complex in complexobject.c
 
 The former uses type-tp_alloc(type, 0) to create memory for the object
 while the latter uses PyType_GenericAlloc(type, 0) to create memory for
 the sub-type (thereby by-passing the sub-type's own memory allocator).
 
 It seems like this is a bug.   Shouldn't type-tp_alloc(type, 0) also be
 used in the case of allocating complex subtypes?

I submitted an entry and a patch for this on SourceForge Tracker (#1498638)

http://sourceforge.net/tracker/index.php?func=detailaid=1498638group_id=5470atid=105470


-Travis

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


Re: [Python-Dev] test_struct failure on 64 bit platforms

2006-05-31 Thread Neal Norwitz
On 5/31/06, Tim Peters [EMAIL PROTECTED] wrote:

 standard is a technical word with precise meaning here, and is
 defined by the struct module docs, in contrast to native.  It means
 whatever they say it means :-)  Portable may have been a more
 intuitive word than standard here -- read standard in the struct
 context in the sense of standardized, regardless of native platform
 size or alignment or endian quirks.

:-)

  Would someone augment the warnings module to make testing
  more reasonable?

 What's required?  I know of two things:

 1. There's no advertised way to save+restore the internal
filter list, or to remove a filter entry, so tests that want
to make a temporary change have to break into the internals.

 2. There's no advertised way to disable only gripe once per source
line behavior.  This gets in the way of testing that warnings get
raised when running tests more than once, or using a common
function to raise warnings from multiple call sites.

 These get in the way of Zope and ZODB testing too, BTW.
 Unfortunately, looks like the new test_struct code bumped into both of
 them at once.

Right.  The 2 you list above are the only one's I know of.

You fixed one of them.  I find the __warningregistry__ fix extremely
obscure.  I remember working on wrt test_warnings (and -R maybe?).  I
don't think I fixed, someone else eventually figured it out, probably
you. :-)

n
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com