1.82K subscribers
3.31K photos
132 videos
15 files
3.58K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
#amazingopensource #menacingopensource

Что такое fortraith? Нет, это не опечатка в слове Fortran или, упаси боже, Fortnite. Это — библиотека, реализующая компилятор времени компиляции, который переводит что-то, похожее на Forth, в вычисления на уровне типов Rust. Что? Да.
Блог*
#prog #python #article ABI compatibility in Python: How hard could it be? Нативные расширения для Python могут распространяться в двух формах: в исходниках и в пресобранных бинарях. В первом варианте сборка нативного кода происходит непосредственно на машине…
В статье мимолётом упоминается, что им не удалось найти кошкодевочек, в отличие от moyix.

#prog (somewhat #python) #menacingopensource #article

Someone’s Been Messing With My Subnormals!

TL;DR: After noticing an annoying warning, I went on an absurd yak shave, and discovered that because of a tiny handful of Python packages built with an appealing-sounding but dangerous compiler option, more than 2,500 Python packages—some with more than a million downloads per month—could end up causing any program that uses them to compute incorrect numerical results.

Или чуть более подробно: в силу каких-то сомнительных решений в GCC (равно как и в clang, который старательно скопировал его поведение) активация флага -Ofast подразумевает активацию флага -ffast-math, который, в свою очередь, при компиляции разделяемой библиотеки генерировал для неё конструктор, который, помимо всего прочего, выставлял в процессоре флаг, регулирующий поведение операций над плавающей точкой — более конкретно, FTZ/DAZ, при активации которого операции, которые выдали бы субнормальные числа с плавающей точкой, вместо этого выдают ноль. Несколько нативных расширений были скомпилированы с флагом -Ofast, которые в результате стали расширениями, банальный импорт которых менял поведение арифметики чисел с плавающей точкой для всего процесса, включая код из NumPy.
😱5