Ну собрать x64 без JIT не удалось, в не-jit коде есть ссылки на поля структуры, которые спрятаны под макрос JIT и починить я это по-быстрому без особого знания не смог. Похоже, никто и не волнует сборка X64 без JIT. А попытки отключения JIT в рантайме кажется ни на что не влияют. Либо там ничего на самом деле не отключается, либо просто нет заметной разницы в производительности.
Основной затык был в портировании luajit хоть в каком-то виде. В остальном — подкрутили сборку, поправили макросы, поправили cpuid. Никаких оптимизаций или чего-то такого не делали. Как только стало запускаться и не вылетать — сразу стрим провели.
В переводе столько косяков, что я даже перечислять их не буду. Каждый абзац просто перекурочен переводчиком, который не разбирается в предмете. Да даже play back — это воспроизведение, а не воспроизведение задом наперед, господи. Уж это-то всем должно быть известно.
И я даже четверти статьи не просмотрел…
Аналогия неверная, потому что разрядность длина команды на сам конвейер не влияет. Проблема переменной длины — не понятно, где начинается следующая команда, пока не будет декодирована предыдущая. А конвейеру жить не быть нужна следующая команда на следующем такте. Т.е. надо успеть понять размер текущей команды за один такт. Ну и это требует дополнительного оборудования, в любом случае.
Я когда-то заказывал LL1105AF065Q. Но они оказались слишком вялыми. По остальным параметрам они подходят.
Если не ошибаюсь, в итоге нашел подходящие в чип-и-дипе, но они не столь долговечные.
Ожидаемая ошибка — ошибка, реакцию на которую предусмотрел программист. Он четко понимает, какие последствия несет эта ошибка и как ее обрабатывать.
Фатальная ошибка, соответственно, — ошибка, которую программист не предвидел, просто забил (- Еб*анет! — Не должно...), не продумал на нее реакцию. Или решил, что ошибка действительно фатальная и продолжать смысла нет.
Вообще, исходя из слов автора, что библиотека не знает, является ли ошибка фатальной, никогда не должна кидать эксепшены. А обработкой должен заниматься потребитель. Вот тут монады и пригодятся.
Ну деление на ноль приводит к ошибке потому что в Си оно приводило к ошибке. А в Си оно приводило к ошибке потому что большинство процессоров валятся с ошибкой при попытке делить на ноль. А делать обвязку, замедляющую выполнение, для обхода этого поведения — совсем не в стиле Си/Си++.
И я даже четверти статьи не просмотрел…
Проценты в шкале Цельсия считать — это такое. Если бы в Кельвинах посчитали, было бы больше физического смысла.
Вот так правильней: godbolt.org/z/P6c-WP — и ветвление вернулось на место.
Если не ошибаюсь, в итоге нашел подходящие в чип-и-дипе, но они не столь долговечные.
Фатальная ошибка, соответственно, — ошибка, которую программист не предвидел, просто забил (- Еб*анет! — Не должно...), не продумал на нее реакцию. Или решил, что ошибка действительно фатальная и продолжать смысла нет.
Вообще, исходя из слов автора, что библиотека не знает, является ли ошибка фатальной, никогда не должна кидать эксепшены. А обработкой должен заниматься потребитель. Вот тут монады и пригодятся.
Не показали другие методы, типа фотограмметрии.