LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

должен быть просто пропущен мимо

Хеш-таблица имеет такое свойство, что при вставке элементов порядок уже вставленных может измениться (если произойдёт перехеширование). Да и порядок вставки влияет на порядок итерирования (в случае коллизий).

Так что если в компилятора есть таблица всех идентификаторов и где-то в кодогенераторе происходит итерация по ней (с логикой, что нам не принципиален порядок обработки элементов, поэтому будем их обходить прямо как они лежат в таблице), то даже если мы игнорим новые элементы, мы как минимум можем обойти старые в другом порядке.

Исправление KivApple, :

должен быть просто пропущен мимо

Хеш-таблица имеет такое свойство, что при вставке элементов порядок уже вставленных может измениться (если произойдёт перехеширование). Да и порядок вставки влияет на порядок итерирования (в случае коллизий).

Так что если в компилятора есть таблица всех идентификаторов и где-то в кодогенераторе происходит итерация по ней (с логикой, что нам не принципиален порядок обработки элементов), то даже если мы игнорим новые элементы, мы как минимум можем обойти старые в другом порядке.

Исходная версия KivApple, :

должен быть просто пропущен мимо

Хеш таблица имеет такое свойство, что при вставке элементов порядок уже вставленных может измениться (если произойдёт перехеширование). Да и порядок вставки влияет на порядок итерирования (в случае коллизий).

Так что если в компилятора есть таблица всех иденьифткаторов и где-то в кодогенераторе происходит итерация по ней (с логикой, что нам не принципиален порядок обработки элементов), то даже если мы игнорим новые элементы, мы как минимум можем обойти старые в другом порядке.