Alexander Belopolsky wrote:
> The range object is currently defined in Objects/rangeobject.c as
> 
> typedef struct {
>       PyObject_HEAD
>       long    start;
>       long    step;
>       long    len;
> } rangeobject;
> 
> Is this consistent with PEP 353, or should Py_ssize_t be used instead of long?

As others have said: no. The range object produces ints. People have
asked to make it produce arbitrary longs instead, but none of these
patches ever got successfully reviewed.

> It looks like some of the code in rangeobject.c is already Py_ssize_t
> aware (see range_item and range_length), but it assumes that it is
> safe to cast long to ssize_t and back.

Where does it assume that it is safe to case ssize_t -> long?
That would be a bug.

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

Reply via email to