TGViewer
DevOps DevOps @devopsitsec · 23.7K subscribers
Post #2338 2.06K
Полноценный Lisp можно уместить всего в 99 строк C.

Внутри при этом:

- 21 примитив
- REPL
- сборщик мусора Cheney GC
- числа с плавающей точкой
- указатели
- типы значений

И всё это без `struct`-тегов, без внешних библиотек и без обычных динамических аллокаций для представления объектов.

Главный трюк - NaN boxing.

IEEE 754 оставляет много битов внутри специальных NaN-значений. Их можно использовать как скрытое хранилище:

- часть битов кодирует тип
- до 48 бит можно использовать под указатель
- обычные double при этом остаются обычными числами

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

Очень красивый пример того, как устройство IEEE 754 можно использовать для построения компактного рантайма языка.
  • 🔥 8
  • 👍 2
  • 🐳 2
  • ❤ 1
More from @devopsitsec
  1. Sep 20, 2026🐳 Docker-образ с 3,17 ГБ до 354 МБ - почти в 9 раз меньше Такая оптимизация обычно достиг…
  2. Sep 17, 2026⚡️ Поды здоровы, а запросы в Kubernetes случайно отваливаются? Проверьте conntrack. Linux…
  3. Sep 16, 2026✔️ OpenAI на 60% снизила цены на голосовое управление агентами Work и Codex Теперь в дескт…
  4. Sep 16, 2026Что реально стоит за требованиями в вакансиях DevOps-инженера Открываешь вакансию - а там…
  5. Sep 16, 2026🌦 Linecast - погода, карты, радар, приливы, Солнце и Луна прямо в терминале Open-source C…
  6. Sep 16, 2026Гибридная инфраструктура — новая реальность или красивое словосочетание из презентаций? 1…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →