LINUX.ORG.RU

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

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

Существует много библиотек у которых нет общих глобальных переменных или общего глобального состояния.

проблема с unsafe в том, что он вообще говоря позволяет двум разным библиотекам иметь общие instance-переменные, что не позволяет даже ооп (хотя этого тоже можно добиться, но упорядоченно, через protected скаже)

этими instance-переменными могут быть например 2 младших бита указателя — они большей частью равны нулю, поэтому одна библиотека может 100% надежно заняться их полезным использованием, и вторая библиотека может 100% надежно заняться их полезным использованием, но 2 библиотеки вместе приведут к коллизии

но чтобы это заработало, 2 библиотеки должны например как-то хитро перегрузить Deref, так, чтобы компилятор согласился с их совместным существованием — м.б. 2 библиотек не хватит и потребуется 3-я

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

Существует много библиотек у которых нет общих глобальных переменных или общего глобального состояния.

проблема с unsafe в том, что он вообще говоря позволяет двум разным библиотекам иметь общие instance-переменные, что не позволяет даже ооп (хотя этого тоже можно добиться, но упорядоченно, через protected скаже)

этими instance-переменными могут быть например 2 младших бита указателя — они большей частью равны нулю, поэтому одна библиотека может 100% надежно заняться их полезным использованием, и вторая библиотека может 100% надежно заняться их полезным использованием, но 2 библиотеки вместе приведут к коллизии

но чтобы это заработало, 2 библиотеки должны например как-то хитро перегрузить Deref, так, чтобы компилятор согласился с их совместным существованием

м.б. 2 библиотек не хватит и потребуется 3-я

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

Существует много библиотек у которых нет общих глобальных переменных или общего глобального состояния.

проблема с unsafe в том, что он вообще говоря позволяет двум разным библиотекам иметь общие instance-переменные, что не позволяет даже ооп (точнее позволяет, но через protected и иже с ним)

этими instance-переменными могут быть например 2 младших бита указателя — они большей частью равны нулю, поэтому одна библиотека может 100% надежно заняться их полезным использованием, и вторая библиотека может 100% надежно заняться их полезным использованием, но 2 библиотеки вместе приведут к коллизии

но чтобы это заработало, 2 библиотеки должны например как-то хитро перегрузить Deref, так, чтобы компилятор согласился с их совместным существованием

м.б. 2 библиотек не хватит и потребуется 3-я

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

Существует много библиотек у которых нет общих глобальных переменных или общего глобального состояния.

проблема с unsafe в том, что он вообще говоря позволяет двум разным библиотекам иметь общие instance-переменные, что не позволяет даже ооп

этими instance-переменными могут быть например 2 младших бита указателя — они большей частью равны нулю, поэтому одна библиотека может 100% надежно заняться их полезным использованием, и вторая библиотека может 100% надежно заняться их полезным использованием, но 2 библиотеки вместе приведут к коллизии

но чтобы это заработало, 2 библиотеки должны например как-то хитро перегрузить Deref, так, чтобы компилятор согласился с их совместным существованием

м.б. 2 библиотек не хватит и потребуется 3-я