Size: a a a

Compiler Development

2020 February 12

МБ

Михаил Бахтерев in Compiler Development
polunin.ai
На жабаскрипте не проще. Я три часа искал баг, а оказалось что Array.prototype.shift() возвращает undefined на пустом списке.
Вы так пишете, будто на Rust не бывает багов :) Но... Ладно. Каждому - своё. Хорошо, что языков много и каждый волен выбирать себе мучение по предпочтениям :)
источник

G

Gymmasssorla in Compiler Development
clock, кстати, тоже (внезапно) может вернуть ошибку: https://gist.github.com/aaronjwood/2780f31768691b1d69ed#file-bst-c-L46
источник

AN

Alex Naraito in Compiler Development
баги есть, но они не от языка, а от программиста 😅
источник

МБ

Михаил Бахтерев in Compiler Development
Gymmasssorla
Захожу на случайно попавшуюся реализацию BST
Зачем на случайную? Посмотрите реализацию в ядре Linux.
источник

G

Gymmasssorla in Compiler Development
Alex Naraito
баги есть, но они не от языка, а от программиста 😅
В Rust бы таких багов не допустили
источник

G

Gymmasssorla in Compiler Development
Михаил Бахтерев
Зачем на случайную? Посмотрите реализацию в ядре Linux.
Не все пишут так, как в ядре Linux. Тот код, который только что попался - это самый часто встречаемый пример того, как на возможные ошибки закрывают глаза. Добавьте сюда все проверки и код увеличится разительно
источник

λ

λоλторт in Compiler Development
Alex Naraito
баги есть, но они не от языка, а от программиста 😅
Странная позиция для компиляторного чата
источник

λ

λоλторт in Compiler Development
Человек всегда будет допускать ошибки
источник

G

Gymmasssorla in Compiler Development
λоλторт
Странная позиция для компиляторного чата
Табличка "сарказм" же, нет?
источник

МБ

Михаил Бахтерев in Compiler Development
Gymmasssorla
В Rust бы таких багов не допустили
В Haskell тоже. Или в VisualBasic :) Впочем, даже, кажется в Basic на ZX Spectrum. Кстати, а чего делает Rust, когда память кончается?
источник

λ

λоλторт in Compiler Development
Михаил Бахтерев
В Haskell тоже. Или в VisualBasic :) Впочем, даже, кажется в Basic на ZX Spectrum. Кстати, а чего делает Rust, когда память кончается?
Паникует
источник

G

Gymmasssorla in Compiler Development
Михаил Бахтерев
В Haskell тоже. Или в VisualBasic :) Впочем, даже, кажется в Basic на ZX Spectrum. Кстати, а чего делает Rust, когда память кончается?
Если исполняется на ОС, то паникует
источник

G

Gymmasssorla in Compiler Development
А в freestanding режиме сам задаёшь поведение
источник

МБ

Михаил Бахтерев in Compiler Development
Gymmasssorla
Если исполняется на ОС, то паникует
Ну... И чем тогда это лучше segfault?
источник

λ

λоλторт in Compiler Development
Михаил Бахтерев
Ну... И чем тогда это лучше segfault?
Всем
источник

МБ

Михаил Бахтерев in Compiler Development
Например?
источник

G

Gymmasssorla in Compiler Development
Михаил Бахтерев
Ну... И чем тогда это лучше segfault?
Например то, что обращение к NULL = UB по стандарту. Паника - вполне определённое поведение, которое к тому же можно прямо в программе переопределить
источник

AN

Alex Naraito in Compiler Development
Например, очистить память
источник

А

Андрей in Compiler Development
Gymmasssorla
Например то, что обращение к NULL = UB по стандарту. Паника - вполне определённое поведение, которое к тому же можно прямо в программе переопределить
отставить панику
источник

λ

λоλторт in Compiler Development
1) Перед тем как ПО упадёт с сегфолтом, у тебя могут уже покораптиться данные, а злоумышленники украсть твои доллары.

2) обнаружить источник сегфолта намного сложнее
источник