LINUX.ORG.RU

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

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

Заодно и от llvm и всех багов компилятора. Говорю же, Вы не понимаете гарантий, которые вам предлагают.

Мы опять о разных вещах говорим. Ты говоришь, что в safe Rust проблем с порченной памятью быть не должно. И, ВНЕЗАПНО, я с этим не спорю. Но при написании реального приложения для решения каких-то реальных задач, нам нужно учитывать баги сторонних библиотек, баги libc, llvm и компилятора. Потому что заказчику абсолютно плевать, почему ты потерял его данные.

Кто сказал, что ошибка логики должна приводить к сегфолту? Повторюсь: ошибка в коде != ошибка в дизайне языка. В C я должен написать тест, который проверит, что передавая в функцию NULL - она отработает верно.

Вообще нет. В идеале ты пишешь тест, который прогоняет функцию через все множество допустимых значений. И тут уж одним больше, одним меньше — пофиг. К тому же, функции крайне редко должны переживать принимаемый NULL.

В Rust вообще нет NULL, соответственно и тест такой не нужен. А значит и работы меньше.

Ну если ты проверяешь только NULL, то, наверное, меньше. Но я таких тестов как-то не особо видел. Разве что для free().

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

Заодно и от llvm и всех багов компилятора. Говорю же, Вы не понимаете гарантий, которые вам предлагают.

Мы опять о разных вещах говорим. Ты говоришь, что в safe Rust проблем с порченной памятью быть не должно. И, ВНЕЗАПНО, я с этим не спорю. Но при написании реального приложения для решения каких-то реальных задач, нам нужно учитывать баги сторонних библиотек, баги libc, llvm и компилятора. Потому что заказчику абсолютно плевать, почему ты потерял его данные.

Кто сказал, что ошибка логики должна приводить к сегфолту? Повторюсь: ошибка в коде != ошибка в дизайне языка. В C я должен написать тест, который проверит, что передавая в функцию NULL - она отработает верно.

Вообще нет. В идеале ты пишешь тест, который прогоняет функцию через все множество допустимых значений. И тут уж одним больше, одним меньше — пофиг.

В Rust вообще нет NULL, соответственно и тест такой не нужен. А значит и работы меньше.

Ну если ты проверяешь только NULL, то, наверное, меньше. Но я таких тестов как-то не особо видел. Разве что для free().

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

Заодно и от llvm и всех багов компилятора. Говорю же, Вы не понимаете гарантий, которые вам предлагают.

Мы опять о разных вещах говорим. Ты говоришь, что в safe Rust проблем быть не может. И, ВНЕЗАПНО, я с этим не спорю. Но при написании реального приложения для решения каких-то реальных задач, нам нужно учитывать баги сторонних библиотек, баги libc, llvm и компилятора. Потому что заказчику абсолютно плевать, почему ты потерял его данные.

Кто сказал, что ошибка логики должна приводить к сегфолту? Повторюсь: ошибка в коде != ошибка в дизайне языка. В C я должен написать тест, который проверит, что передавая в функцию NULL - она отработает верно.

Вообще нет. В идеале ты пишешь тест, который прогоняет функцию через все множество допустимых значений. И тут уж одним больше, одним меньше — пофиг.

В Rust вообще нет NULL, соответственно и тест такой не нужен. А значит и работы меньше.

Ну если ты проверяешь только NULL, то, наверное, меньше. Но я таких тестов как-то не особо видел. Разве что для free().