ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> python-dev
python-dev
Re: [Python-Dev] New PEP: Using ssize_t as the index type
by Travis E. Oliphant other posts by this author
Dec 30 2005 1:13AM messages near this date
[Python-Dev] New PEP: Using ssize_t as the index type | Re: [Python-Dev] New PEP: Using ssize_t as the index type
Martin v. Löwis wrote:
>  Please let me know what you think.
>  
>  Regards,
>  Martin
>  
>  PEP: XXX
>  Title: Using ssize_t as the index type
>  Version: $Revision$
>  Last-Modified: $Date$
>  Author: Martin v. Löwis <martin@[...].de>
>  Status: Draft
>  Type: Standards Track
>  Content-Type: text/x-rst
>  Created: 18-Dec-2005
>  Post-History:
>  
>  
>  Abstract
>  ========
>  
>  In Python 2.4, indices of sequences are restricted to the C type
>  int. On 64-bit machines, sequences therefore cannot use the full
>  address space, and are restricted to 2**31 elements. This PEP proposes
>  to change this, introducing a platform-specific index type
>  Py_ssize_t. An implementation of the proposed change is in
>  http://svn.python.org/projects/python/branches/ssize_t.

Sounds wonderful.   Would love to see this in Python 2.5.  This will fix 
important 64-bit issues.  Perhaps someone could explain to me what the 
difference between Py_ssize_t and Py_intptr_t would be? Is this not a 
satisfactory Py_ssize_t already?


>  
>  
>  Rationale
>  =========
>  
>  64-bit machines are becoming more popular, and the size of main memory
>  increases beyond 4GiB. On such machines, Python currently is limited,
>  in that sequences (strings, unicode objects, tuples, lists,
>  array.arrays, ...)  cannot contain more than 2GiElements.
>  
>  Today, very few machines have memory to represent larger lists: as
>  each pointer is 8B (in a 64-bit machine), one needs 16GiB to just hold
>  the pointers of such a list; with data in the list, the memory
>  consumption grows even more.  However, there are three container types
>  for which users request improvements today:
>  
>  * strings (currently restricted to 2GiB)
>  * mmap objects (likewise; plus the system typically
>    won't keep the whole object in memory concurrently)
>  * Numarray objects (from Numerical Python)

scipy_core objects are the replacement for both Numarray and Numerical 
Python and support 64-bit clean objects *except* for the sequence 
protocol and the buffer protocol.  Fixing this problem will clean up a 
lot of unnecessary code.

Looking forward to it...

-Travis



_______________________________________________
Python-Dev mailing list
Python-Dev@[...].org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: http://mail.python.org/mailman/options/python-dev/python-dev-ml%40activestate.c
om
Thread:
"Martin v. Löwis"
Travis E. Oliphant
"Martin v. Löwis"
Brett Cannon
Fredrik Lundh
"Martin v. Löwis"
Tim Peters
"Martin v. Löwis"
Armin Rigo
"Martin v. Löwis"
Armin Rigo
"Martin v. Löwis"
M.-A. Lemburg
Neal Norwitz
"Martin v. Löwis"
M.-A. Lemburg
"Martin v. Löwis"
M.-A. Lemburg
"Martin v. Löwis"
M.-A. Lemburg
"Martin v. Löwis"
Tim Peters
"Martin v. Löwis"
Michael Urman
Neal Norwitz
Aahz
"Martin v. Löwis"
Guido van Rossum

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved