Олдскульная компьютерная графика, а именно демосцена, продолжает здравствовать усилиями приверженных энтузиастов. Один из участников этой киберкультуры подготовил подробный обзор аудиовизуального интро, созданного им в рамках демопати Revision 2021 года для системы Amiga. — прим. ред. Читать полностью »
Архив за 15 августа 2021 - 2
Использование Amiga в 2021: создание интро для демопати
2021-08-15 в 10:00, admin, рубрики: amiga, demo, ruvds_перевод, Блог компании RUVDS.com, демопати, Демосцена, ненормальное программирование, старое железоОлдскульная компьютерная графика, а именно демосцена, продолжает здравствовать усилиями приверженных энтузиастов. Один из участников этой киберкультуры подготовил подробный обзор аудиовизуального интро, созданного им в рамках демопати Revision 2021 года для системы Amiga. — прим. ред. Читать полностью »
Как создать микропроцессор в домашних условиях. Энтузиаст создал интегральную схему с 1200 транзисторами у себя в гараже
2021-08-15 в 9:36, admin, рубрики: НовостиСовременные процессоры опираются на сверхтонкие техпроцессы и включают миллиарды транзисторов, упакованных в крошечных чипах. Можно ли создать подобный CPU дома? Конечно, нет, но всё же создать в домашних условиях примитивный процессор вполне возможно.
Возможно ли напечатать дома из лунного грунта? На МКС привезли 3D-принтер, который будет исследовать этот вопрос
2021-08-15 в 8:48, admin, рубрики: НовостиПостройка хотя бы каких-то объектов на других планетах или спутниках Солнечной системы требует огромного количества строительных материалов. И чтобы не везти их с Земли, можно использовать местный грунт. Последняя миссия NASA по пополнению запасов МКС включала доставку на станцию специального 3D-принтера для демонстрации печати с использованием лунной почвы (реголита).
Динамическая JIT компиляция С-С++ в LLVM с помощью Clang
2021-08-15 в 6:55, admin, рубрики: C, c++, clang, jit, JIT-компилятор, LLVM, llvm ir, Блог компании TIMEWEB, Компиляторы, ПрограммированиеПри создании компилятора для собственного языка программирования я сделал его как транспайлер в исходный код на С++, вот только реализация сильно подкачала. Сначала приходится генерировать динамическую библиотеку с помощью вызова gcc, который и сам по себе не очень быстрый, так еще его может и не быть на целевой машине, особенно на другой платформе (например Windows). Конечно, для первых экспериментов и такой реализации было достаточно, но сейчас, когда я начал готовить код компилятора к публикации, стало понятно, что текущий вариант с фоновым запуском gcc никуда не годится.
Из-за этого, я решил не откладывать перевод компилятора на использование LLVM, который планировался когда нибудь в будущем, а решил сделать это уже сейчас. И для этого нужно было научиться запускать компиляцию C++ кода с помощью библиотек Clang, но тут вылезло сразу несколько проблем.
Оказывается, интерфейс Clang меняется от версии к версии и все найденные мной примеры были старыми и не запускались в актуальной версии (Сlang 12), а стабильный C-style интерфейс предназначен для парсинга и анализа исходников и с помощью которого сгенерировать исполняемые файлы не получится*.
Дополнительная проблемой оказалось, что Clang не может анализировать файл из памяти, даже если для этого есть соответствующие классы. Из объяснений выходило, что в экземпляре компилятора проверяется, является ли ввод файлом**.
А теперь публикую результат своих изысканий в виде рабочего примера динамической компиляции С++ кода с последующей его загрузкой и выполнением скомпилированных функций. Исходники адаптированны под актуальную версию Clang 12. Пояснения к коду я перевел и дополнил перед публикацией, а ссылки на исходные материалы приведены в конце статьи.
- *) Кажется в 14 версии планируется реализовать C интерфейс для генерации исполняемых файлов.
- **) На самом деле, Clang может (или теперь может) компилировать файлы из оперативной памяти, поэтому в исходники я добавил и эту возможность.
Изоляция модели предметной области
2021-08-15 в 6:30, admin, рубрики: DDD, Анализ и проектирование систем, иммутабельность, ооп, Программирование, проектирование, Проектирование и рефакторинг, рефакторинг, Совершенный кодЭта статья является переводом материала «Domain model isolation».
Термин «изоляция модели предметной области» уже давно используется, но его значение может быть не таким очевидным, как многие думают. В этом посте автор оригинала попытается описать, что значит правильно изолировать модель предметной области и почему это важно.
Изоляция модели предметной области
Понятие изоляции модели предметной области очень похоже на то, что предлагает функциональная архитектураЧитать полностью »
Google не хватает химиков и школьников? (положительно-отрицательная рецензия с предложениями)
2021-08-15 в 1:00, admin, рубрики: Google, химия, школа(Источник)
Про программирование таблицы Менделеева я уже писал ранее. И вот читаю новость: «Google запустила интерактивную 3D-таблицу Менделеева»:
Читать полностью »