home tags events about login

continue rss

mail: continue@to.any-key.press
pgp public key: https://honk.any-key.press/d/3K2g15qPqYR63ng8mm.txt

Взаимная помощь, как фактор эволюции.

Общественный строй всегда дурен. Время от времени он бывает всего лишь сносным. Спор между дурным и сносным не стоит и капли крови.

=> gemini://any-key.press

continue bonked 24 Sep 2023 19:33 +0200
original: broffka@mastodon.ml

сегодня только так)
ща кофейку заварю, позавтракаю и буду втыкать в компик.
воскресенье типичного домашнего кота.

список дел:
✅ проснуться
✅ покушать
✅ дожить до вечера

continue honked 21 Sep 2023 17:41 +0200

Совершенно не заметил, что в f-string форматирование #python добавили символ =

>>> my_str = "foo"
>>> f"{my_str=}"
"my_str='foo'"

Это упрощает формирование всяких отладочных логов.

Formatted string literals #WorkLog

continue bonked 21 Sep 2023 14:37 +0200
original: dside@mastodon.ml

Мда-а-а, #Unity нарвалась.

Даже разработчики, для которых это не основной движок (#Terraria исходно сделана на XNA) решили, что так не пойдёт и самое время подтолкнуть игровые движки с открытым кодом. И посему решили пожертвовать по $100,000 сейчас и по $1,000 ежемесячно на #Godot и #FNA.

Источник: https://twitter.com/Terraria_Logic/status/1704227519027651016

#videogames #games #gamedev #gamedevelopment

An open address from Re-Logic, developers of Terraria, condemning Unity's actions and announcing a one-time donation of $100,000 to both Godot and FNA and a monthly $1,000 going forward in an effort to brighten the situation.

continue bonked 21 Sep 2023 13:19 +0200
original: opennet@honk.any-key.press

Доступен набор компиляторов LLVM 17.0

После шести месяцев разработки представлен релиз проекта LLVM 17.0 - GCC-совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизаций). Сгенерированный псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы.

Основные улучшения в Clang 17.0:

  • Реализованы возможности, определённые в будущем Си-стандарте C2x:
    • Добавлены ключевые слова bool, static_assert, alignas, alignof и thread_local.
    • Разрешено указание пустых скобок "{}" для инициализации в нулевые значения , т.е. теперь можно писать "struct S { int x, y } s = {};".
    • Предоставлена возможность указания любых универсальных имён символов в символьных и строковых литералах. Например, "int \u0024 = 0;".
    • В "stddef.h" добавлен макрос "unreachable".
    • Из спецификации исключён макрос ATOMIC_VAR_INIT.
    • Добавлена полная реализация типов nullptr и nullptr_t. Например, можно указывать "void func(nullptr_t); func(0); func((void *)0);".
  • В коде на языке Си предоставлена возможность проброса через выражение "goto" внутри блоков "asm" по косвенно выбранным меткам. Например, goto("mov %1, %0\n\tjmp %l[label]" : "=r" (x) : "r" (45) : : label);
  • Добавлена поддержка Си-расширения, позволяющего использовать в "_Generic" в качестве первого операнда тип, а не выражение. Например, "_Generic(typeof(i), int : 0, const int : 1);".
  • В константных выражениях на языке Си разрешено использование структур, объединений и массивов, объявленных с признаком "const".


  • Реализованы расширенные возможности, связанные со стандартом C++20:
    • Для всех платформ, за исключением Windows, обеспечена полная поддержка сопрограмм (Coroutines).
    • Реализованы дополнительные требования к операциям сравнения константных выражений.
    • Обеспечен корректный разбор лямбда-шаблонов, указанных сразу после параметров шаблона и содержащих в блоке "requires" переменную с зависимым типом.
    • Включён по умолчанию флаг "-Wreserved-module-identifier", приводящий к выводу предупреждения вместо ошибки при использовании зарезервированных идентификаторов в блоке экспорта модулей.
    • Добавлена поддержка выражения "requires cplusplus20" в описаниях связей заголовочных файлов с модулями (module map).
    • Реализованы дополнительные требования к применению операторов сравнения.
    • Зарезервировано использование двойного подчёркивания в пользовательских литералах и объявлено устаревшим использования ключевого слова "operator" в определении функций с зарезервированными идентификаторами в имени (например, 'double operator"" _Bq(long double);').
    • Обеспечено определение макроса "__cpp_consteval".
    • Разрешено использование CTAD для агрегатных типов.
    • Разрешено использование спецификатора "auto" для указателей и ссылок на массивы.
  • Реализованы расширенные возможности, связанные со стандартом C++23, который находится на финальной стадии утверждения в ISO:
    • Изменена область действия хвостового возвращаемого типа (trailing-return-type) в лямбда-функциях, который теперь сначала смотрит в перехваты, а затем в окружающий текст.
    • Ослаблены некоторые требования к "constexpr". Например, в constexpr-функциях разрешено указание переменных нелитеральных типов в качестве возвращаемых значений и параметров. Разрешён вызов в constexpr-функциях других функций и конструкторов, не являющихся "constexpr".
    • Добавлена поддержка выражения "requires cplusplus23" в описаниях связей заголовочных файлов с модулями (module map).
    • Реализовано требование, в соответствии с которым все функции, вызывающие функции с признаком consteval тоже становятся consteval, т.е. выполняются при компиляции.
  • Реализованы расширенные возможности, связанные с будущим стандартом C++2с (C++26):
    • В компилятор добавлены новые флаги "-std=c++2c" и "-std=gnu++2c" для включения экспериментальной поддержки развивающейся спецификации C++2c.
    • Для constexpr реализована поддержка "стирания типа" через преобразование указателей в void* и обратно в исходный тип, что позволит добиться возможности выполнения std::format во время компиляции.
    • Частично реализована поддержка невычисляемых строк (unevaluated string), которые используются только на стадии компиляции в _Pragma, asm, extern, static_assert, [[deprecated]] и [[nodiscard]], и не попадают в скомпилированную программу.
    • Добавлена возможность использования в static_assert сгенерированных пользователем диагностических сообщений.
  • При компиляции приложений языке C++ при использовании режима оптимизации "-O0" улучшена генерация кода для вызовов, подобных std::forward_like, std::move и std::forward, которые теперь обрабатываются как встроенные в компилятор и не использующие стандартную библиотеку. Кроме того, улучшена генерация кода при динамическом приведении (dynamic_cast) к окончательному типу (для сравнения данных RTTI больше не используется runtime-библиотека и указатели vtable сравниваются напрямую).
  • Разрешено использование static_assert(false) в коде на C++ в контексте определения шаблона.


  • Добавлена поддержка встроенных функций (builtin):
    • "__builtin_nondeterministic_value" - возвращает недетерминированное значение с тем же типом.
    • "__builtin_FILE_NAME" - аналог макроса __FILE_NAME__.
    • "__builtin_FUNCSIG - аналог макроса "__FUNCSIG__".
    • "__builtin_assume_separate_storage" - проверяет, что аргумент указывает на объекты в отдельно выделенной памяти.
    • "__builtin_isfpclass" - проверяет сочетаемость значения с плавающей запятой с указанным классом данных.
    • "__builtin_elementwise_round" - предоставляет доступ к llvm.round для типов с плавающей запятой.
    • "__builtin_elementwise_rint" - предоставляет доступ к llvm.rint для типов с плавающей запятой.
    • "__builtin_elementwise_nearbyint" - предоставляет доступ к llvm.nearbyint для типов с плавающей запятой.
    • Добавлена поддержка встроенных функций stdio, доступных в GCC: __builtin_vprintf, __builtin_vfprintf, __builtin_fscanf, __builtin_scanf, __builtin_sscanf, __builtin_vfscanf, __builtin_vscanf, __builtin_vsscanf.
  • Добавлена возможность определения многомерных массивов через "__declspec(property)".
  • Добавлен новый встроенный типаж "__is_trivially_equality_comparable" проверяющий идентичность двух экземпляров типов (например, memcmp(&lhs, &rhs, sizeof(T)) == 0).
  • Добавлена поддержка переменной окружения NO_COLOR для отключения выделения цветом вывода.
  • Добавлены новые флаги компилятора: "-std=c++23", "-dumpdir", "-fcaret-diagnostics-max-lines", "-fkeep-persistent-storage-variables", "-f[no-]assume-unique-vtables", "-print-multi-flags-experimental".
  • Для совместимости с GCC добавлены флаги "-maix32", "-maix64" и "-p".
  • Объявлен устаревшим флаг "-fdouble-square-bracket-attributes". Удалены устаревшие флаги "-fmodules-ts", "-fcoroutines-ts", "-lower-global-dtors-via-cxa-atexit" и "-no-opaque-pointers".
  • Добавлен новый атрибут функций "__attribute__((unsafe_buffer_usage))", сигнализирующий об осознанной небезопасной работе с буферами в функции (при указании атрибута для функции не выводится предупреждение "-Wunsafe-buffer-usage").
  • Значительно расширены средства диагностики и статического анализа, например, добавлены новые проверки переполнения знаковых целых чисел, корректности лямбда-шаблонов, выражений constexpr, сравнений с нулевыми указателями, использования неинициализированных структур и т.п. Доступен обзор новых возможностей диагностики с наглядными примерами.

Основные новшества LLVM 17.0:

  • В бэкенд для архитектуры X86 добавлена поддержка расширений архитектуры набора команд (ISO): AMX-COMPLEX, SHA512, SM3, SM4 и AVX-VNNI-INT16.
  • Заметно расширены возможности бэкенда для архитектуры RISC-V. Добавлена поддержка процессора sifive-x280. Реализована поддержка процессорных расширений XTHeadBa, XTHeadBb, XTHeadBs, XTHeadCondMov, XTHeadMac, XTHeadMemPair, XTHeadMemIdx, Xsfvcp (SiFive VCIX), Xsfcie (SiFive CIE), Zawrs, XTHeadCmo, XTHeadSync, XTHeadFMemIdx, Xca 1.0.1, Zcf 1.0.1, Zcd 1.0.1, Zfa 0.2.
  • В бэкенд для архитектуры LoongArch добавлена поддержка расширений LSX, LASX, LVZ и LBT ISA.
  • Улучшены бэкенды для архитектур AArch64, ARM, WebAssembly, MIPS, PowerPC, AMDGPU.
  • В отладчик LLDB добавлена новая команда "register info" для вывода всей информации, известной о регистре.
  • Расширены возможности компоновщика LLD.
  • В библиотеке Libc++ продолжена реализация поддержки возможностей стандартов C++20 и C++23, а также началась работа по обеспечению поддержки спецификации C++26.


Источник: https://www.opennet.ru/opennews/art.shtml?num=59789

continue bonked 21 Sep 2023 12:46 +0200
original: shuro@friends.deko.cloud

Мужчина средних лет и сильно потрёпанной внешности попытался отжать телефон. Не прокатило.

Поговорил с ним. Сначала что-то наврал про проблемы на работе, потом признался что только вышел, отсидел четыре года, что делать не знает, поэтому приехал в Москву. Отдали документы, какой-то шмот типа строительной формы и немного денег, на часть их он купил дешёвый телефон, в котором "не работал интернет". Потыкал ему туда, тырнет заработал. Он спросил что дальше, а я откуда знаю что дальше. Возвращайся домой, говорю, а он отвечает, что там давно ничего и никого нет. Человек сломан чуть менее, чем полностью.

Дальше был предложен гомосексуальный контакт в довольно назойливой форме (achievement unlocked! - первый раз случилось) и я ретировался. Надеюсь, выплывет.

Исправительная система, говорите...
#ТакиеДела

continue honked back 21 Sep 2023 12:05 +0200
in reply to: https://metalhead.club/users/contrinitiator/statuses/111097713006078350

@contrinitiator

Пару дней назад шёл через дворик, где похожим образом опавшие яблоки лежали на траве. И был этот запах, когда созревшие фрукты только-только начинают "портиться" прямо на земле. Меня этот запах мгновенно погрузил в детские воспоминания, когда я стою посреди осеннего сада. На земле разбросаны не собранные груши, яблоки и слива. Спелые и начинающие подгнивать плоды. И все это пахнет. Не сказать, что мне как-то очень нравился этот запах, но и какого-то отвращения я тоже не испытывал. А сад казался большим, казалось, что можно убежать в какой-то дальний уголок и там тебя никто не найдёт (хотя сейчас я понимаю, что там было хорошо если 6 соток земли).

continue honked 21 Sep 2023 11:11 +0200

- знаете ли вы, кто теперь на всей земле единственный народ-"богоносец", грядущий обновить и спасти мир именем нового бога и кому единому даны ключи жизни и нового слова... Знаете ли вы, кто этот народ и как ему имя?
- По вашему приему я необходимо должен заключить, и, кажется, как можно скорее, что это народ русский...
- И вы уже смеетесь, о племя! - рванулся было Шатов.
- Успокойтесь, прошу вас; напротив, я именно ждал чего-нибудь в этом роде.

Ф.М. Достоевский, "Бесы". 1872 год.
#ЧтоПочитать #ФедиЧитает

continue bonked 20 Sep 2023 12:31 +0200
original: kvasko@mastodon.ml

Чип-чип и Дейл 🤔
Видеоблогер и бывший менеджер АО "МЦСТ" Максим Горшенин разобрал отечественный монитор Lightcom. Выпаял с платы российский чип от "Миландра", поставил проволочку... Вуаля! Монитор работает.
Выяснилось, что в работе устройства участвует не русский, а тайваньский чип RTD2525AR от Realtek, скрытый за радиатором. Российский чип только подаёт питание.
Лайтком и Миландр обвинили блогера в чёрном пиаре. Горшенин в ответ выложил фото и схему снятия ненужного чипа и спросил:
- И где тут хоть что-то, где действительно нужен российский чип? И зачем было удорожать конструкцию, если и так все работает? И тем более, если они заявляют, что, цитата, "...для попадания в реестр Минпромторга российская интегральная схема в мониторе не нужна", то зачем вы вообще начали использовать "Миландр", если с его ролью справляются "проволочки"

External Attachment:

continue bonked 19 Sep 2023 12:27 +0200
original: grunfink@comam.es

One year of #snac

If the source code version control history is to be trusted, I started developing snac (a simple, minimalistic #ActivityPub instance server written in C) exactly one year ago (Sept 19th).

It was not my first experience with ActivityPub: I had built a prototype version in Python some months before (hence the "2" in the snac2 repository name), and back in 2019 I made some partial implementation for an unrelated (and now forgotten) blog project, so the protocol was not totally new to me.

These are my thoughts about one year of development.

Why did I start it? Because I read somewhere about the (still baffling to me) humoungous requirements of a basic #Mastodon installation. I read a lot of people affirming that was the bare minimum: "it CAN'T be done with less resources". But I've always seen it as a glorified short message application and challenged myself to write a feature-complete #Fediverse instance with the following goals: keeping it small, simple, easily deployed, and lacking the bloat software tendencies of modern times.

Did it come out as expected? not totally sure, but probably yes. I even implemented more things that I originally planned (I initially said a big NO to myself regarding adding Mastodon API support, but finally did it and it works mostly well). The program is still somewhat small (a stripped binary of less that 300k probably counts). The no-database, no-cookies, no-javascript absolute rules still apply. I'm fine with the (opinionated) web UI that shows conversations as threaded trees instead of the plain, dull stream of posts that Mastodon or Twitter show. It cooperates pretty well with the always growing ecosystem of ActivityPub applications.

Was the time and effort worth it? On this, I'm not sure. I'm old and depressed and unemployed, so developing snac has kept my brain busy and entertained for a little while. But it has been more work that I expected: the ActivityPub specification is a bit diffuse in some areas, so every implementation does some things a bit different and many corner cases had to be implemented; some parts (specifically, the Mastodon API) have been very tedious to implement and test; and also, helping users debugging remote systems is difficult and very stressing for me. Fortunately, some fellow developers have helped me and I'm immensely thankful to them.

Has it been a success? I'm pretty sure about this: no. I thought that the small footprint, the lack of moving parts and the feature set would be attractive to a large base of users, but this has not been the case. Perhaps I've been unable to reach the neccessary potential users for it to reach some critical mass (a failure of the PR department 😆). Perhaps what I consider interesting features (minimalism, footprint, the web UI concept, Mastodon API compatibility, etc.) are not that valuable for most. Perhaps people disregard it just because it's not Mastodon. Perhaps there are errors and crashes that I'm not aware of. Perhaps snac is rubbish and I'm unable to see it. The reality is that snac is a niche and unknown part of the Fediverse ecosystem and there is no sign that the user base will grow from the current small fistful of deployments out there.

What about the future? I'm also not sure. Apart from some pending bugfixes and wishlist items mentioned in the TODO file, I've implemented all the features I initially expected and then many more, so I consider snac a finished program. New bugs will happen, that's for sure. New ActivityPub applications will show out there and, if experience tells me anything, they will all have slightly different protocol interpretations that will need some code tuning on my part. Development will continue; snac is a maintained program. But big changes will probably not happen anymore.

https://comam.es/what-is-snac

If you find snac useful, please consider buying grunfink a coffee: https://ko-fi.com/grunfink