Size: a a a

2021 June 10

AV

Alexey Veselovsky in Ada
Я не понимаю почему реально компилятор эту рантайм проверку не может сам воткнуть до цикла
источник

DA

Dmitriy Anisimkov in Ada
так проще, внутри цикла кто нибудь может менять s к примеру.
источник

DA

Dmitriy Anisimkov in Ada
что бы определить что s и i не меняется внутри цикла, надо дополнительные усилия.
источник

LB

Lev Babchenko in Ada
так-то конечно, если проверить на этапе компиляции, что:
1. внутри цикла не может измениться размер того, по чему бегаем
2. внутри цикла не может измениться индекс, которым бегаем
3. если внутри цикла не вызывается то, что может изменить 1 или 2
4. если мы обращаемся только по индексу без арифметики
5. ??? (прибавьте сюда ещё чего-нибудь)
... то можно оптимизировать )
источник

LB

Lev Babchenko in Ada
(мне на самом деле удивителен тот факт, что однажды проверив индекс, он потом не парится и уоптимизирует. или гошка в рантайме проверила, что вот по такому индексу я посмотрела и всё было ок, а потом в последующих обращениях к слайсу сверяет пришедший индекс с максимально прочеканным? но тогда почему просто не чекать по границам? в общем моя понимай нету)
источник

DA

Dmitriy Anisimkov in Ada
если цикл получил указатель на массив нет нужды проверть увеличился он или нет. потому что увеличиться он может только путем перераспределения памяти. а перераспределение памяти во время обхода массива, это неадекватный программист,  от этого ничего не спасет.
источник

DA

Dmitriy Anisimkov in Ada
хотя, может быть я мысль @Gourytch не понял
источник

AV

Alexey Veselovsky in Ada
Дак а как тут поможет этот ручной чек тогда?
источник

DA

Dmitriy Anisimkov in Ada
этот чек работает при каждом обращении к массиву.
источник

DA

Dmitriy Anisimkov in Ada
и вероятно в массиве где то хранится его настоящая граница. или хотя бы размер распределенной памяти.
источник

DA

Dmitriy Anisimkov in Ada
именно в момент взятия елемента из массива сравнивается адрес элемента с последним возможным адресом в массиве.
источник

DA

Dmitriy Anisimkov in Ada
самая простая проверка
источник

C

Combot in Ada
All about Ada language
источник

E

Eugene in Ada
если у массива есть инфа о его размере, нафига этот размер передаётся отдельным параметром s?
источник

AV

Alexey Veselovsky in Ada
это не размер
источник

AV

Alexey Veselovsky in Ada
это до куда циклу бежать
источник

E

Eugene in Ada
так если это не массив, а слайс, нельзя что ли было сделать слайс нужного размера?
источник

AV

Alexey Veselovsky in Ada
а зачем? на каждый частичный проход по слайсу новый слайс городить?
источник

E

Eugene in Ada
что бы был простой компактный код!
источник
2021 June 11

T

TGG in Ada
Есть у кого ман по SDL2?
источник