История изменений
Исправление 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-я