LINUX.ORG.RU

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

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

Вау!@alysnixнаконец понял, зачем было изобретён Rust, и даже агитирует за него! Не думал, что увижу такое!

руст не сделал ничего нового кроме борроу чекинга. всем остальным новынам там лет 40.

Ну, да. И? Суть в том, что в Rust у тебя не будет такого выстрела в член из-за неинициализированного указателя, как я показал в коде на C++ выше.

а для си(с++) просто надо потребовать чтобы они наконец задумались над точным определением ub и точным определением инвариантов кода, которые должны сохраняться при возможных оптимизациях. пока что у них тут явная и позорная дыра.

Ну, потребуй. Что значит «пошёл в жопу»? ДА КАК ОНИ МОГЛИ???!!!!!!11

Но вообще, определение UB в этих языках достаточно точное: при таких-то и таких-то условиях, стандарт не налагает требования на поведение сгенерированного кода. Для C эти условия описаны в приложении J.2 к стандарту (там список на 10 страниц A4).

К оптимизациям UB отношения особо не имеет, потому что там достаточно шизоидные вещи есть типа незакрытых кавычек или отсутствия переноса строки в конце файла. Да, это в Си считается UB.

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

Вау!@alysnixнаконец понял, зачем было изобретён Rust, и даже агитирует за него! Не думал, что увижу такое!

руст не сделал ничего нового кроме борроу чекинга. всем остальным новынам там лет 40.

Ну, да. И? Суть в том, что в Rust у тебя не будет такого выстрела в член из-за неинициализированного указателя, как я показал в коде на C++ выше.

а для си(с++) просто надо потребовать чтобы они наконец задумались над точным определением ub и точным определением инвариантов кода, которые должны сохраняться при возможных оптимизациях. пока что у них тут явная и позорная дыра.

Ну, потребуй. Что значит «пошёл в жопу»? ДА КАК ОНИ МОГЛИ???!!!!!!11

Но вообще, определение UB в этих языках достаточно точное: при таких-то и таких-то условиях, стандарт не налагает требования на поведение сгенерированного кода. Для C эти условия описаны в приложении J.2 к стандарту (там список на 10 страниц A4).

К оптимизациям UB отношения особо не имеет, потому что там достаточно шизоидные вещи есть типа незакрытых кавычик или отсутствия переноса строки в конце файла. Да, это в Си считается UB.

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

Вау!@alysnixнаконец понял, зачем было изобретён Rust, и даже агитирует за него! Не думал, что увижу такое!

руст не сделал ничего нового кроме борроу чекинга. всем остальным новынам там лет 40.

Ну, да. И? Суть в том, что в Rust у тебя не будет такого выстрела в член из-за неинициализированного указателя, как я показал в коде на C++ выше.

а для си(с++) просто надо потребовать чтобы они наконец задумались над точным определением ub и точным определением инвариантов кода, которые должны сохраняться при возможных оптимизациях. пока что у них тут явная и позорная дыра.

Ну, потребуй. Что значит «пошёл в жопу»? ДА КАК ОНИ МОГЛИ???!!!!!!11

Но вообще, определение UB в этих языках достаточно точное: при таких-то и таких-то условиях, стандарт не налагает требования на поведение сгенерированного кода. Для C эти условия описаны в приложении J.2 к стандарту (там список на 10 страниц A4).