
Denis
10.02.2017
18:24:30
Вот мне и интересно, почему оно работает не так и есть ли этому какое-то разумное объяснение

Eugine
10.02.2017
18:26:01
https://github.com/python/cpython-mirror/blob/eade39e57b1427df0ec9dd24bf19aae468d7c066/Objects/rangeobject.c#L156
да вроде так
надо смотреть глубже

Google

Denis
10.02.2017
18:26:33
Я это уже видел, не помогло

Zart
10.02.2017
18:26:40
https://hg.python.org/cpython/file/tip/Objects/listobject.c#l2790 хм

Eugine
10.02.2017
18:26:42
https://github.com/python/cpython-mirror/blob/eade39e57b1427df0ec9dd24bf19aae468d7c066/Objects/rangeobject.c#L230
,KZ
БЛЯ
return PyLong_AsSsize_t(r->length);

Denis
10.02.2017
18:27:09
И смысл в чем?

Zart
10.02.2017
18:27:28
запости баг чо

Stuf
10.02.2017
18:27:37

Eugine
10.02.2017
18:27:44
господи боже
залез в код
нашел место
отдал на блюдечке

Google

Eugine
10.02.2017
18:27:56
чего еще хочешь?

Denis
10.02.2017
18:28:34
Я хочу ответа на вопрос, почему так сделали. Если не знаешь, так и скажи

Eugine
10.02.2017
18:28:36
смотри по гитблейму, ищи баги на хабах
я в душе не ебу почему какой-то личности захотелось там иметь ssize_t
кроме абсолютно нормальной идеи

Zart
10.02.2017
18:29:27

Eugine
10.02.2017
18:29:29
что никому нахуй не надо хранить больше чем 2^64 в xrange

Zart
10.02.2017
18:30:19
вполне конкретный ответ - откуда ssize_t и почему
индексацию и соответсвенно len() заведомо ограничили

Eugine
10.02.2017
18:33:20
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:

Zart
10.02.2017
18:33:37
пеп был написан в эпоху 2.4 питона, в 2005м
х64 операционки только появились в тот момент

Стас Щетинников
10.02.2017
19:40:50
А есть на фласке (алхимией и прочими баззвордс) в опенсорсе какой-нибудь сложный хорошо написанный веб-сервис?

Cykooz
10.02.2017
19:49:12

Stanislav
10.02.2017
19:50:04
>>>len(range(123123123123123123123132))
OverflowError: Python int too large to convert to C ssize_t
Это нормальное поведение?
3.5

Alexey
10.02.2017
19:50:22
Да.

Stanislav
10.02.2017
19:51:10
Да.
А где же преславутая работа с числами без ебли с переполнением?

Alexey
10.02.2017
19:51:30
Пресловутая.

Google

Стас Щетинников
10.02.2017
19:51:31

Stanislav
10.02.2017
19:51:45

Alexey
10.02.2017
19:51:49

Zart
10.02.2017
19:52:21
разработчики решили что индексы не являются произвольными числами
из практических соображений

Stanislav
10.02.2017
19:52:36

Zart
10.02.2017
19:52:40
всего
x[index] <— вот это вот
подразумевается что чем бы ни был x, в нем будет Py_ssize_t элементов макс
range может выйти за эти пределы, так что вероятно баг

Denis
10.02.2017
19:53:49
Для своих типов можно что угодно кушать

Stanislav
10.02.2017
19:53:59
Т.е я немогу создать контейнер с больше чем 256**4 элементами?

Denis
10.02.2017
19:54:11
**8

Stanislav
10.02.2017
19:54:24

Denis
10.02.2017
19:54:30
size_t

Zart
10.02.2017
19:54:36
не size_t

Stanislav
10.02.2017
19:54:54
А, я смотрел на python int
Python int по идее безразмерный?

Zart
10.02.2017
19:55:07
нет

Denis
10.02.2017
19:55:44
Но оно того же размера

Google

Stanislav
10.02.2017
19:55:47
А какие лимиты и от чего зависит?
Но я же могу запихнуть в инт любое число

Zart
10.02.2017
19:56:17
"An initial attempt to implement this feature tried to use size_t. It quickly turned out that this cannot work"
вы пеп читали или чо?

Stanislav
10.02.2017
19:56:39
8?

Alexey
10.02.2017
19:56:45
:D

Eugine
10.02.2017
19:58:38
беда
больше похоже на троллинг

Stanislav
10.02.2017
19:59:48

Zart
10.02.2017
19:59:53

Eugine
10.02.2017
19:59:55
от тебя лично

Stanislav
10.02.2017
20:00:06
Я просто спросил блядь

Eugine
10.02.2017
20:00:17
>>>len(range(123123123123123123123132))
OverflowError: Python int too large to convert to C ssize_t
Это нормальное поведение?
3.5

Stanislav
10.02.2017
20:00:25
Я думал тут все само

Eugine
10.02.2017
20:00:41
ты сюда потроллить пришел?

Google

Alexey
10.02.2017
20:01:08
Да он вроде нормальный, в тупоёблых набросах замечен не был пока.

Stanislav
10.02.2017
20:01:10

Eugine
10.02.2017
20:01:25
за пять минут до него это обсуждалось
>>> len(range(100000000000000000000000000000000000000000000000))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: Python int too large to convert to C ssize_t
Что за дичь? Питон 3.5

Stanislav
10.02.2017
20:01:49

Eugine
10.02.2017
20:01:54
чукча не читатель, чукча писатель?)

Stanislav
10.02.2017
20:01:56
Я не знал

Eugine
10.02.2017
20:02:05
понял
я думал такой тонкий троллинг

Stanislav
10.02.2017
20:02:31

Zart
10.02.2017
20:02:56
он чо, проебал весь срач выше?

Stanislav
10.02.2017
20:03:16
Ну блин 300 сообщений все же или сколько

Zart
10.02.2017
20:03:32
а я тупо загуглил, и закопипастил сюда ответ

Eugine
10.02.2017
20:03:46
откуда вы его взяли? где-то должен быть ориджин

Alexey
10.02.2017
20:03:47
:D Ебать.

Eugine
10.02.2017
20:04:02
статья на хабре, небось

Stanislav
10.02.2017
20:04:32
Это у Денчика спрашивайте