All streams
Search
Write a publication
Pull to refresh
39
0.3
Константин @Cerberuser

Разработчик, экспериментатор

Send message
А сколько лет потом ждать хоть частично доказанной расшифровки?
В нынешних условиях, когда технической возможности чтения памяти ещё нет, лично я скорее сочувствую, а не завидую. Такие возможности пропадают…

Просто и красиво, как по мне. Метод, как подложить магическую строку в саму себя, вообще в восторг привёл, хотя, казалось бы...

И кто-то ещё будет говорить, что декларативных языков программирования не существует...

"Перечитываю и на подсознательном уровне понимаю — нельзя ударить лицом грязь."
Я, по ходу, перфекционист-критик, раз при виде этой фразы полез в Яндекс проверить, правильно ли я помню, что там нужен предлог "в" :)

То есть внешняя среда в любой семье формируется одинаково? Я думал, хотя бы некоторая часть человечества воспитывалась лучше, чем я сам, а, оказывается, везде одна и та же умеренная хрень…

Ключевое слово "иногда" в значении "только иногда", верно?

приравнивают UB, существующие в C++ном коде, к обязательно и неизбежно возникающим багам


А если сказать так: «к багам, которые могут проявиться при любом изменении окружения»? Если программа скомпилирована один раз — конечно, в ней баг либо уже есть, либо и не будет (ну, если, конечно, не сломается что-то в системных вызовах). Но UB на то и UB, что любое изменение условий компиляции, вплоть до минорной версии любого звена, может его изменить. В том числе и превратить его в баг. Такой вариант звучит более разумно?
Я польский не знаю, но чётко увидел там слово «дупа»…

То, что в интерфейсе написано "warp in html5" — это фича? А то руки чешутся спросить, на каком физическом принципе гипердрайв смастерили :)

Если вызов функции является UB, то он обязательно приводит к проблемам — просто по определению UB.
Нет, а серьёзно. Вызов этой функции является UB, на Ваш взгляд? Если да — то в чём здесь «ППЦ»? Если нет — то чем она принципиально отличается от оператора знакового сложения, кроме того, что не прописана в стандарте?
Совершенно верно. Компилятор исходит из того, что будут подсунуты такие данные, при которых UB не будет. Если вызывающая сторона знает, что это так, — UB нет. Если не знает — то да, вопрос, кто виноват в его появлении (вызывающая сторона, которая неправильно пользовалась библиотекой, или библиотека, которой можно неправильно воспользоваться), действительно уже на грани софистики. Но оптимизаторы здесь стоят на стороне авторов библиотеки.
Формально, UB присутствует там, где невозможно доказать его отсутствие. Есть явная проверка, что переполнения при знаковом сложении не будет? Окей — значит, и UB не будет (пример сознательно упрощённый — понятно, что в реальных случаях это будет сделано не так «в лоб»).
Насколько я понимаю, это называется «контрактом функции», и именно это активно используется оптимизаторами: контракт должен быть таким, чтобы никакого UB не происходило. Соответственно, если контракт нарушен — последствия непредсказуемы.

К сожалению, да, родителям часто формальный успех важнее фактической прокачки навыков. Это, правда, в основном проблемы самого школьника...

Так вот кто за рассылкой стоит…
Я от себя добавлю такое простое наблюдение. `unsafe` в библиотеке — это норма жизни, именно потому, что в некоторых случаях иным образом не удастся реализовать удобную функциональность. `unsafe` в пользовательском коде — либо признак, что используемых библиотек недостаточно, либо признак, что сам этот код реализует какую-то нестандартную возможность. Не претендую на истину, но пока всё выглядит именно так.
Синтаксис наподобие `n:-1:1` а-ля MatLab считается? Или здесь выразительность как раз страдает, потому что общую конструкцию (для цикла с произвольным шагом) натягивают на частный случай?

Information

Rating
2,237-th
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer
Senior