nz

Date: 2022-06-28 12:34 (UTC)
From: [personal profile] nz

Звучит интересно, но не совсем понятна целевая аудитория проекта.

Referential safety protects pointers (references) themselves. This includes integrity (corrupted pointers cannot be dereferenced) and provenance validity (only pointers derived from valid pointers via valid manipulations can be dereferenced).

Это борьба с запихиванием указателей в int/long c потерей старших бит? Полезно, наверное, но этими детскими болезнями вроде бы все уже переболели при переходе с 32 на 64 бита лет 15 назад.

Spatial safety ensures that pointers may be used only to access memory within bounds of their associated allocation; dually, manipulating an out-of-bounds pointer will not grant access to another allocation.

Bounds checking из-под палки? Вой на болотах будет оглушительным.

temporal safety is accomplished by preventing new pointers being returned to a previously allocated region of memory while any prior pointers to that memory persist in application-accessible memory.

Пока указатель не обнулишь, память не освободится? Вой на болотах будет оглушительным, переписывать придется много. Забавно, что это уже почти GC, но не GC, т.к. дереференсить тоже нельзя.

Наверное, все это помогло бы заткнуть основные дырки в C-коде, но там же публика привыкла экономить на спичках, а тут 100% оверхеда в каждом указателе, bounds checking, карантинная память и обработка всей этой роскоши в рантайме. Добрый вечер, мы вам принесли неотключаемый ASAN. У меня есть сомнения, что это зайдет.

В C++ голые указатели и манипуляции с ними - вообще фу-фу-фу уже давно. Постоянный оверхед в качестве платы за решение не слишком насущных проблем тоже вряд ли будет принят с ликованием.

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org