Проголосовать#1514785agogin=56332500Огонь вообще. Очень интересно#1514790agogin=56329665Тот самый дальний кордон куда Михалыч привёз какую то херотень, которая на 2-м VR уровне выглядит как метеорит нацеленный на землю.
Что там интересно? Дроп базы по условию? #1514792SVlad=56328998Хм, похоже, и правда всё идёт к тому, что это не киберпанк-зомбиапокалипсис, а производственный роман про отлов легаси бага, приправленный буйной фантазией Озимова.#1514793SVlad=56328717Хм, ну в начале мы имеем цикл, который по факту выполнится 2 раза, для i=1 и i=0. На втором проходе он выйдет - и это фикс Михалыча. А до этого был вечный цикл.
А на втором - попытка достучаться до сервера второй раз, если первый раз пришёл нулевой ответ.
И судя по имени индуса в первом блоке, просто кусок скопирован откуда-то и потом некорректно поправлен под нужды. Уверен, там на самом деле вообще один проход нужен. #1514795itsnotrobotsАвтор=56327854Есть ещё фича редакторов кода. В них можно посмотреть историю исправлений, в том числе вывести, кто писал какую строку. Часто можно видеть решение от одного человека, и сразу понятно, что оно не работает. Потом бывает исправление строками от другого человека. Иногда оно смешное.
Или ещё байка. Как-то раз у меня был коллега. Он писал код так, что каждый раз, когда у нас был баг, я точно знал, что это в его коде. Также он форматировал не так, как в остальном проекте. И я специально его не поправлял. Потому что по форматированию было удобно видеть, где надо искать косяк.
#1514799ForNeVeR=56326959Такой ли уж вечный тут был цикл? Разве он не закончится на переполнении? Или какая там в пыхе система типов?#1514800agogin=56326778#1514799
там от единицы вниз в отрицательную зону уходит, а не вверх до 10 как видимо задумывалось. #1514805itsnotrobotsАвтор=56325528Пожалуй, на переполнении он действительно закончится. Я подумаю на эту тему. Ну то есть, моя идея была в том, что это действительно бесконечный цикл :) Мне кажется, так ещё смешнее.
#1514810SVlad=56323490https://www.php.net/manual/en/language.types.integer.php
If PHP encounters a number beyond the bounds of the int type, it will be interpreted as a float instead. Also, an operation which results in a number beyond the bounds of the int type will return a float instead.
В пыхе нет переполнения - превращаем во float и фигачим дальше. Там он рано или поздно или дойдёт до минус бесконечности и там и останется, так как -INF-1 == -INF, или вообще застрянет по дороге, когда шаг значений в float станет сильно больше 1 и число просто перестанет уменьшаться. #1514818HJK=56321724Оу, в PHP действительно PHP_INT_MIN -1 == PHP_INT_MIN а я решил, что это изящное решение как в С типа INT_MIN - 1 == INT_MAX.
Упс второй код что-то мне напоминает - у меня как то так доступ к БД был реализован. только еще сверху завернуто в автомат состояний с переменным временем для повторных попыток доступа. Через 10 лет теперь я сам не помню как это работает.
Отредактировано «HJK» 12.02.2023 21:17:20
#1514819SVlad=56321064> а я думал это изящное решение как в С типа INT_MIN - 1 == INT_MAX
На самом деле там undefined behavior.) Но вроде все компиляторы просто следуют тому, что происходит в целевом процессоре - а там обычно зацикливание.#1514843HJK=56303709>На самом деле там undefined behavior
Если правильно помню, там просто флаг в регистре выставляется и все - его можно игнорировать. Хотя интерпретаторы работают с виртуальной машиной, так что может быть что угодно да и компиляторы могут наоптимизировать.#1514855Anonymous=56294858вот и настал этот день :)
я лучше понимаю комикс, чем комментарии к нему :)#1514874itsnotrobotsАвтор=56276346А здесь можно не понимать, это фансервис для программистов #1514894SVlad=56270763> компиляторы могут наоптимизировать.
Могут именно потому, что в стандарте написано про undefined behavior. Чисто формально программа вы этом случае может хоть диск форматировать - undefined же.)
На практике всё таки происходят не столь разрушительные, но всё равно странные вещи:
https://avva.livejournal.com/3500861.html#1514917itsnotrobotsАвтор=56267341Какой интересный жеже вы залинковали. Я когда учился в институте, там работал чувак с логином avva. И поскольку тогда не было бесплатных емайлов, первый емайл который я использовал в моей жизни был его, он мне разрешил его где-то указать.
#1514935HJK=56259005>Могут именно потому, что в стандарте написано про undefined behavior. Чисто формально программа вы этом случае может хоть диск форматировать - undefined же.)
Вот поэтому в языках связанных с промышленным железом есть типы
SINT/USINT, INT/UINT, DINT/UDINT, LINT/ULINT. Может немного неоптимально, зато поведение предсказуемо.