commit -m "better"
#wasm #bootstrap После написания того текста я решил, что мне катастрофически не хватает какого-то решения для поддержки WebAssembly - как для сборки в него, так и выполнения. Потому что раз всем нужно, то и мне тоже нужно! Вот, теперь все есть: pg# cat…
#wasm #wasi #bootstrap
Я таки собрал какое-то приложение в WASM формате, под платформу WASI (специально постоянно про это упоминаю, потому что набор команд (WASM) и доступные вызовы в систему (WASI) - это разные вещи).
К сожалению, пока ничего не заработало.
Сначало оно ругалось на неподдерживаемые ассемблерные команды:
Я таки собрал какое-то приложение в WASM формате, под платформу WASI (специально постоянно про это упоминаю, потому что набор команд (WASM) и доступные вызовы в систему (WASI) - это разные вещи).
К сожалению, пока ничего не заработало.
Сначало оно ругалось на неподдерживаемые ассемблерные команды:
pg# /ix/.../wasm-interp \Я дизассемблировал этот файл, и понял, что речь идет про
/ix/.../bin/base64
0002080: error: unexpected opcode: 0xfe 0x48
0020bf: fe 48 02 00 i32.atomic.rmw.cmpxchg 2 0Попробовал включить в интерпретаторе поддержку тредов, но:
pg# /ix/.../bin/wasm-interp \Оказалось, что интерпретатор собран без поддержки WASI. Пересобрал, но:
--enable-all \
/ix/.../bin/base64
error initializing module:
invalid import "wasi_snapshot_preview1.args_get"
pg# /ix/.../bin/wasm-interp \Тут я пока сдался, потому что WTF?
--enable-all --wasi \
/ix/.../bin/base64
unknown wasi API import:
`sched_yield`
👍6
commit -m "better"
#wasm #wasi #bootstrap Я таки собрал какое-то приложение в WASM формате, под платформу WASI (специально постоянно про это упоминаю, потому что набор команд (WASM) и доступные вызовы в систему (WASI) - это разные вещи). К сожалению, пока ничего не заработало.…
#wasm #wasi #bootstrap #ix_run
Ну, вот, после пары сегфолтов, я это дело таки завел:
Жду, когда запилят WASM + Linux ABI. Кажется, это не должно быть очень сложным - нужно запилить тонкую прослойку, которая бы проксировала из контекста интерпретатора в контекст системы всего шесть функций - syscall0, ..., syscall5 (это Linux ABI), а поверх этого сконпелять musl в виде libc.
Это не так гранулярно, зато можно очень быстро получить связку WASM jit + Linux, в качестве target platform.
Ну, вот, после пары сегфолтов, я это дело таки завел:
pg# ./ix run \https://wasi.dev/ мне кажется черезчур сложным для реализации. Ну и там пока очень мало чего, чтобы стать полноценным OS API - там нет всяких манипуляций с FS, сигналов, треды в зачаточном состоянии, процессов тоже нет.
bin/b64 --target=wasi32 \
bld/sh \
bin/iwasm/fast/er \
-- \
iwasm --fast-jit \
'$(command -v base64)'
b64 (Base64 Encode/Decode) Bob Trower 2001/08/03
(C) Copr Bob Trower 1986-2015 Version 0.94R
Purpose: This program is a simple utility that implements
Base64 Content-Transfer-Encoding (RFC1113).
Use -h option for additional help.
Жду, когда запилят WASM + Linux ABI. Кажется, это не должно быть очень сложным - нужно запилить тонкую прослойку, которая бы проксировала из контекста интерпретатора в контекст системы всего шесть функций - syscall0, ..., syscall5 (это Linux ABI), а поверх этого сконпелять musl в виде libc.
Это не так гранулярно, зато можно очень быстро получить связку WASM jit + Linux, в качестве target platform.
🔥11🤔3👍2
commit -m "better"
https://lwn.net/Articles/935592/ RH закрывает доступ к исходникам, из которых собирает RHEL. По подписке они продолжают быть доступны, все честно. В комментариях срач, коллеги никак не могут договориться, кто же больше паразитирует на open source: * RH…
https://www.opennet.ru/opennews/art.shtml?num=59332
Продолжение истории про Red Hat.
Судя по тексту, альтернативные сборки редхата пока не очень понимают, как им жить дальше, все, что они могут сказать - "ну, мы как-то решим эту проблему, как - пока не знаем сами".
Из интересного:
"Для клиентов компания Red Hat оставила возможность загрузки кода srpm-пакетов RHEL через закрытый раздел сайта, на котором действует дополнительное пользовательское соглашение (EULA), запрещающее редистрибуцию RHEL. Использование в AlmaLinux и Rocky Linux srpm-пакетов, загруженных через клиентский портал Red Hat, сопряжено с юридическими рисками."
Продолжение истории про Red Hat.
Судя по тексту, альтернативные сборки редхата пока не очень понимают, как им жить дальше, все, что они могут сказать - "ну, мы как-то решим эту проблему, как - пока не знаем сами".
Из интересного:
"Для клиентов компания Red Hat оставила возможность загрузки кода srpm-пакетов RHEL через закрытый раздел сайта, на котором действует дополнительное пользовательское соглашение (EULA), запрещающее редистрибуцию RHEL. Использование в AlmaLinux и Rocky Linux srpm-пакетов, загруженных через клиентский портал Red Hat, сопряжено с юридическими рисками."
www.opennet.ru
AlmaLinux и Rocky Linux перестроят свои процессы с учётом ограничения доступа к коду пакетов RHEL
Проекты AlmaLinux и Rocky Linux, публикующие бинарно совместимые сборки Red Hat Enterprise Linux, опубликовали заявления c планом дальнейших действий после ограничения компанией Red Hat публичного доступа к исходным текстам пакетов RHEL. Публично код пакетов…
👍4🤔3🤡2
commit -m "better"
#wasm #wasi #bootstrap #ix_run Ну, вот, после пары сегфолтов, я это дело таки завел: pg# ./ix run \ bin/b64 --target=wasi32 \ bld/sh \ bin/iwasm/fast/er \ -- \ iwasm --fast-jit \ '$(command -v base64)' b64 (Base64 Encode/Decode) Bob…
#wasm #wasi #bootstrap
Однажды начав, бывает сложно остановиться.
Собрал еще 4 wasm рантайма:
https://github.com/wasmx/fizzy
https://github.com/wasm3/wasm3
https://github.com/WasmEdge/WasmEdge
https://github.com/tetratelabs/wazero
Из них только wasmedge оказался способен выполнить мою тестовую программу:
Однажды начав, бывает сложно остановиться.
Собрал еще 4 wasm рантайма:
https://github.com/wasmx/fizzy
https://github.com/wasm3/wasm3
https://github.com/WasmEdge/WasmEdge
https://github.com/tetratelabs/wazero
Из них только wasmedge оказался способен выполнить мою тестовую программу:
pg# ./ix run bin/b64 \Вообще, их, конечно, больше - https://github.com/appcypher/awesome-wasm-runtimes, но остальные или выглядят заброшенными, или написаны на странных языках, типа Python, или Rust.
--target=wasi32 \
bld/sh \
bin/wasm/edge \
-- \
wasmedge --enable-all \
'$(command -v base64)'
b64 (Base64 Encode/Decode) Bob Trower 2001/08/03
(C) Copr Bob Trower 1986-2015 Version 0.94R
Purpose: This program is a simple utility that implements
Base64 Content-Transfer-Encoding (RFC1113).
Use -h option for additional help.
pg#
GitHub
GitHub - wasmx/fizzy: Fizzy aims to be a fast, deterministic, and pedantic WebAssembly interpreter written in C++.
Fizzy aims to be a fast, deterministic, and pedantic WebAssembly interpreter written in C++. - wasmx/fizzy
🤔5👍2🔥1
Forwarded from Daniel Lemire's blog
Science and Technology links (June 25 2023)
1. Women in highly religious relationships report the highest levels of relationship quality. 2. US politics is largely divided into two parties (Republicans and Democrats). People who are affiliated with the Republicans have many more kids. 3. The Antartic ice shelves gained 661 gigaton of ice over the past decade. 4. A low protein diet increases mortality among older men. 5. Consuming magnesium may preserve your brain, especially if you are a woman. 6. A third of the planet around common stars in our galaxy could be in the habitable zone. 7. Taurine (a supplement) might keep you young. It works, in some ways, in different animals. McGaunn et al. (2023) make a case for human beings, but they do not have much in the way of quality clinical trials. 8. Older people often lose their thymus, a gland that plays an important role in your immune system. Sandstedt et al. report that about two-third of their middle-age subjects had lost entirely the thymus (complete…
https://lemire.me/blog/2023/06/25/science-and-technology-links-june-25-2023/
1. Women in highly religious relationships report the highest levels of relationship quality. 2. US politics is largely divided into two parties (Republicans and Democrats). People who are affiliated with the Republicans have many more kids. 3. The Antartic ice shelves gained 661 gigaton of ice over the past decade. 4. A low protein diet increases mortality among older men. 5. Consuming magnesium may preserve your brain, especially if you are a woman. 6. A third of the planet around common stars in our galaxy could be in the habitable zone. 7. Taurine (a supplement) might keep you young. It works, in some ways, in different animals. McGaunn et al. (2023) make a case for human beings, but they do not have much in the way of quality clinical trials. 8. Older people often lose their thymus, a gland that plays an important role in your immune system. Sandstedt et al. report that about two-third of their middle-age subjects had lost entirely the thymus (complete…
https://lemire.me/blog/2023/06/25/science-and-technology-links-june-25-2023/
BYU ScholarsArchive
Faith, Feminism, and Marriage: Institutions, Norms, and Relationship Quality
In this essay, we explore the links between religion and relationship quality for cohabiting and married couples. Our evidence from an 11-country sample suggests men and women in highly religious couples enjoy significantly higher levels of relationship quality…
👍4❤3🤔3
https://www.phoronix.com/news/Go-1.21-RC
#perf
Меня расстраивают игры с PGO в Go.
Go сейчас - sweet point между скоростью компиляции и качеством генерируемого кода. Это, кстати, одна из тех причин, по которым мне НРАВИТСЯ писать на Go. Не просто "ок", а именно нравится - вспоминается детство, безумно быстрый borland pascal (безумно - потому что он рожал код моментально на моем pentium 75, а не на современных многоядерных монстрах), и это ощущение "потока", когда от изменения строчки кода до ее проверки проходит нисколько времени.
Но, как это обычно бывает, у разрабов Go закончились идеи на тему "как же ускорять получающийся код, не замедляя компилятор", а оплачивать ипотеку как-то надо, вот и пошли в дело не самые приятные идеи.
Много раз писал и буду писать, что я почти всегда предпочту компилятор, генерирующий код в 2 раза медленнее, но делающий это в 20 раз быстрее. Потому что ускорить целевую программу в 2 раза, в целом, решаемая задача, а нервные клетки не восстанавливаются.
#perf
Меня расстраивают игры с PGO в Go.
Go сейчас - sweet point между скоростью компиляции и качеством генерируемого кода. Это, кстати, одна из тех причин, по которым мне НРАВИТСЯ писать на Go. Не просто "ок", а именно нравится - вспоминается детство, безумно быстрый borland pascal (безумно - потому что он рожал код моментально на моем pentium 75, а не на современных многоядерных монстрах), и это ощущение "потока", когда от изменения строчки кода до ее проверки проходит нисколько времени.
Но, как это обычно бывает, у разрабов Go закончились идеи на тему "как же ускорять получающийся код, не замедляя компилятор", а оплачивать ипотеку как-то надо, вот и пошли в дело не самые приятные идеи.
Много раз писал и буду писать, что я почти всегда предпочту компилятор, генерирующий код в 2 раза медленнее, но делающий это в 20 раз быстрее. Потому что ускорить целевую программу в 2 раза, в целом, решаемая задача, а нервные клетки не восстанавливаются.
Phoronix
Go 1.21 Enabling PGO For Faster Performance, Tuned Garbage Collector
The Go 1.21 release candidate is out today and it's interesting on the performance front plus a few language additions like min / max / clear functions as well as further enhancing its standard library.
👍12👎9🤔4💯1
По слухам, Путин с Лукашенко хотят запретить Rust. Ждем, надеемся.
https://xn--r1a.website/rasstriga/10295
https://xn--r1a.website/rasstriga/10295
Telegram
Расстрига
Пресс-службы Путина и Лукашенко одновременно заявили о готовящихся важных заявлениях руководства России и Беларуси.
Песков ограничился анонсом «ряда важных заявлений» от Путина. А вот канал пресс-службы Лукашенко оказался более словоохотливым. «Множество…
Песков ограничился анонсом «ряда важных заявлений» от Путина. А вот канал пресс-службы Лукашенко оказался более словоохотливым. «Множество…
😁24🤡8👍7🔥3👎1🤔1
commit -m "better"
#wasm #wasi #bootstrap Однажды начав, бывает сложно остановиться. Собрал еще 4 wasm рантайма: https://github.com/wasmx/fizzy https://github.com/wasm3/wasm3 https://github.com/WasmEdge/WasmEdge https://github.com/tetratelabs/wazero Из них только wasmedge…
#perf #wasm
Ну вот я, с помощью лома и такой-то матери, собрал нетривиальное приложение, которое actually do something - компрессор brotli.
И потестил его в разных runtime, которые у меня уже были, vs. нативное выполнение:
Для того, чтобы сделать какие-то реальные выводы, у меня пока мало точек, но начало положено!
Про плохой результат wasmedge - это, кажется, что-то странное, скорее всего, я его криво собрал.
Ну вот я, с помощью лома и такой-то матери, собрал нетривиальное приложение, которое actually do something - компрессор brotli.
И потестил его в разных runtime, которые у меня уже были, vs. нативное выполнение:
pg# cat g | time .../brotli -1 -c > qw.brotli.1
real 0m 0.50s
user 0m 0.46s
sys 0m 0.03s
pg# cat g | time .../wasmedge \
--enable-all \
.../brotli -1 -c > qw.brotli.2
real 1m 2.35s
user 1m 2.27s
sys 0m 0.04s
pg# cat g | time .../iwasm \
--llvm-jit \
.../brotli -1 -c > qw.brotli.3
real 0m 2.71s
user 0m 5.86s
sys 0m 0.06s
pg# cat g | time .../iwasm \
--fast-jit \
.../brotli -1 -c > qw.brotli.4
real 0m 1.21s
user 0m 2.20s
sys 0m 0.06s
Для того, чтобы сделать какие-то реальные выводы, у меня пока мало точек, но начало положено!
Про плохой результат wasmedge - это, кажется, что-то странное, скорее всего, я его криво собрал.
🔥9
commit -m "better"
https://www.opennet.ru/opennews/art.shtml?num=59332 Продолжение истории про Red Hat. Судя по тексту, альтернативные сборки редхата пока не очень понимают, как им жить дальше, все, что они могут сказать - "ну, мы как-то решим эту проблему, как - пока не знаем…
https://www.redhat.com/en/blog/red-hats-commitment-open-source-response-gitcentosorg-changes
Мерзотный текст от RH, с "объяснением" происходящего.
Мерзотный - потому что он, в лучших традициях, пытается одновременно объяснить два взаимоисключающих параграфа:
* "Нам нужны деньги, чтобы платить ЗП разрабам" (а еще акционерам, но про это не сказано), "поэтому нам приходится делать так, чтобы нашу работу было сложно повторить".
* "Нуачотакова? Вот исходники, все выложено, делайте с ними, чо хотите". И опять же, четко не сказано, что собрать из этих исходников RHEL, не зная конкретные ревизии, невозможно, потому что смотри предыдущий параграф.
Мерзотный текст от RH, с "объяснением" происходящего.
Мерзотный - потому что он, в лучших традициях, пытается одновременно объяснить два взаимоисключающих параграфа:
* "Нам нужны деньги, чтобы платить ЗП разрабам" (а еще акционерам, но про это не сказано), "поэтому нам приходится делать так, чтобы нашу работу было сложно повторить".
* "Нуачотакова? Вот исходники, все выложено, делайте с ними, чо хотите". И опять же, четко не сказано, что собрать из этих исходников RHEL, не зная конкретные ревизии, невозможно, потому что смотри предыдущий параграф.
Redhat
Red Hat’s commitment to open source: A response to the git.centos.org changes
More about Red Hat's decision to make CentOS Stream the primary repository for RHEL sources.
🤡10🐳3🔥1🙈1
commit -m "better"
#wasm #wasi #bootstrap #ix_run Ну, вот, после пары сегфолтов, я это дело таки завел: pg# ./ix run \ bin/b64 --target=wasi32 \ bld/sh \ bin/iwasm/fast/er \ -- \ iwasm --fast-jit \ '$(command -v base64)' b64 (Base64 Encode/Decode) Bob…
#wasm
Второго Курцвейла #future из меня все никак не получается, потому что, как обычно, я горазд предсказывать уже случившиеся события.
https://wasix.org/
https://github.com/wasix-org/wasix-libc
Вот, почти полный POSIX wasm runtime. К сожалению, пока работает только в https://wasmer.io/
Второго Курцвейла #future из меня все никак не получается, потому что, как обычно, я горазд предсказывать уже случившиеся события.
https://wasix.org/
https://github.com/wasix-org/wasix-libc
Вот, почти полный POSIX wasm runtime. К сожалению, пока работает только в https://wasmer.io/
wasix.org
WASIX - The Superset of WASI – WASIX
🔥5❤1👍1
commit -m "better"
#perf #wasm Ну вот я, с помощью лома и такой-то матери, собрал нетривиальное приложение, которое actually do something - компрессор brotli. И потестил его в разных runtime, которые у меня уже были, vs. нативное выполнение: pg# cat g | time .../brotli -1…
#wasm #perf
Разобрался с отставанием wasmedge.
Чтобы все работало быстро, нужно пройтись по wasm с помощью его AOT компилятора, и тогда получается вот такой результат:
Впрочем, скорость его AOT не впечатляет:
Разобрался с отставанием wasmedge.
Чтобы все работало быстро, нужно пройтись по wasm с помощью его AOT компилятора, и тогда получается вот такой результат:
real 0m 0.62sЭто уже довольно близко к нативной скорости выполнения того же бинаря.
user 0m 0.57s
sys 0m 0.03s
Впрочем, скорость его AOT не впечатляет:
pg# time .../bin/wasmedgec \
--optimize 3 \
--enable-threads \
.../brotli brotli
[2023-06-29 01:55:52.636] [info] compile start
[2023-06-29 01:55:52.669] [info] verify start
[2023-06-29 01:55:52.710] [info] optimize start
[2023-06-29 01:55:56.632] [info] codegen start
[2023-06-29 01:56:01.680] [info] output start
[2023-06-29 01:56:01.682] [info] compile done
[2023-06-29 01:56:01.686] [info] output start
real 0m9.117s
user 0m9.063s
sys 0m0.041s
🔥13
https://www.opennet.ru/opennews/art.shtml?num=59354
Oracle запилили автоматический оптимизатор настроек ядра Linux, о как.
На моей памяти это уже вторая (а то и третья) такая попытка.
(быстрым грепом не нашел эту историю в интернете, если у вас есть под рукой - киньте ссылкой)
Но, насколько я помню, тогда оно не полетело, потому что:
* Linux был еще глючнее, чем сейчас.
* Многие комбинации параметров приводили к тому, что система просто вставала колом, с невозможностью тюнить ее дальше. С учетом первого пункта это было бомбически.
* Шум.
Интересно, как Oracle решили эти проблемы.
Oracle запилили автоматический оптимизатор настроек ядра Linux, о как.
На моей памяти это уже вторая (а то и третья) такая попытка.
(быстрым грепом не нашел эту историю в интернете, если у вас есть под рукой - киньте ссылкой)
Но, насколько я помню, тогда оно не полетело, потому что:
* Linux был еще глючнее, чем сейчас.
* Многие комбинации параметров приводили к тому, что система просто вставала колом, с невозможностью тюнить ее дальше. С учетом первого пункта это было бомбически.
* Шум.
Интересно, как Oracle решили эти проблемы.
www.opennet.ru
Oracle опубликовал систему автоматической оптимизации параметров ядра Linux
Компания Oracle представила инструментарий bpftune, предназначенный для автоматической оптимизации настроек ядра Linux с учётом выполняемых задач, активности в системе и характера нагрузки. Основу bpftune составляет фоновый процесс, работающий в пространстве…
🤔6🔥4💯1
commit -m "better"
https://www.redhat.com/en/blog/red-hats-commitment-open-source-response-gitcentosorg-changes Мерзотный текст от RH, с "объяснением" происходящего. Мерзотный - потому что он, в лучших традициях, пытается одновременно объяснить два взаимоисключающих параграфа:…
https://rockylinux.org/news/keeping-open-source-open/
Не менее мерзотный текст от Rocky Linux, с описанием того, что они собираются сделать в ответ на действия RH.
В целом, все просто - они заявляют, что с болтом клали на EULA от RH, и будут выковыривать сурсы отовсюду, куда дотянутся. В основном, через облачные инсталляции RH.
Почему этот текст не менее мерзотный?
Вот из-за этого абзаца:
"These methods are possible because of the power of #GPL. No one can prevent redistribution of GPL software. To reiterate, both of these methods enable us to legitimately obtain RHEL binaries and SRPMs without compromising our commitment to open source software or agreeing to TOS or EULA limitations that impede our rights. Our legal advisors have reassured us that we have the right to obtain the source to any binaries we receive, ensuring that we can continue advancing Rocky Linux in line with our original intentions"
Как обычно, это "полуправда", призванная скрыть суть происходящего.
Да, для GPL софта они имеют право получить исходники и SRPMS таким образом.
А вот для не-GPL бинарников - не имеют.
И, на самом деле, довольно много системного софта в Linux не идет под GPL (практически весь графический стек, не считая конечных тулкитов - permissive, например).
В глубине души, я, конечно, больше на их стороне, но, КМК, им надо быть более аккуратными.
Не менее мерзотный текст от Rocky Linux, с описанием того, что они собираются сделать в ответ на действия RH.
В целом, все просто - они заявляют, что с болтом клали на EULA от RH, и будут выковыривать сурсы отовсюду, куда дотянутся. В основном, через облачные инсталляции RH.
Почему этот текст не менее мерзотный?
Вот из-за этого абзаца:
"These methods are possible because of the power of #GPL. No one can prevent redistribution of GPL software. To reiterate, both of these methods enable us to legitimately obtain RHEL binaries and SRPMs without compromising our commitment to open source software or agreeing to TOS or EULA limitations that impede our rights. Our legal advisors have reassured us that we have the right to obtain the source to any binaries we receive, ensuring that we can continue advancing Rocky Linux in line with our original intentions"
Как обычно, это "полуправда", призванная скрыть суть происходящего.
Да, для GPL софта они имеют право получить исходники и SRPMS таким образом.
А вот для не-GPL бинарников - не имеют.
И, на самом деле, довольно много системного софта в Linux не идет под GPL (практически весь графический стек, не считая конечных тулкитов - permissive, например).
В глубине души, я, конечно, больше на их стороне, но, КМК, им надо быть более аккуратными.
rockylinux.org
Keeping Open Source Open - Rocky Linux
Rocky Linux is an open enterprise Operating System designed to be 100% bug-for-bug compatible with Enterprise Linux.
🤔5🔥4❤2👍1🤡1
commit -m "better"
#wasm #perf Разобрался с отставанием wasmedge. Чтобы все работало быстро, нужно пройтись по wasm с помощью его AOT компилятора, и тогда получается вот такой результат: real 0m 0.62s user 0m 0.57s sys 0m 0.03s Это уже довольно близко к нативной скорости…
#wasm
От сборки примитивной ерунды до запускающегося интерпретатора python прошло не очень много времени:
Впрочем, сам интерпретатор пока не очень работает:
От сборки примитивной ерунды до запускающегося интерпретатора python прошло не очень много времени:
pg# ./ix run bin/wasm/edge bin/python/11/wasi --target=wasi32 -- wasmedge --enable-all '$(command -v python3.wasm)' --help
usage: python3.wasm [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options (and corresponding environment variables):
-b : issue warnings about str(bytes_instance), str(bytearray_instance)
and comparing bytes/bytearray with str. (-bb: issue errors)
-B : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x
-c cmd : program passed in as string (terminates option list)
-d : turn on parser debugging output (for experts only, only works on
debug builds); also PYTHONDEBUG=x
-E : ignore PYTHON* environment variables (such as PYTHONPATH)
-h : print this help message and exit (also -? or --help)
-i : inspect interactively after running script; forces a prompt even
if stdin does not appear to be a terminal; also PYTHONINSPECT=x
-I : isolate Python from the user's environment (implies -E and -s)
-m mod : run library module as a script (terminates option list)
-O : remove assert and __debug__-dependent statements; add .opt-1 before
.pyc extension; also PYTHONOPTIMIZE=x
-OO : do -O changes and also discard docstrings; add .opt-2 before
.pyc extension
-P : don't prepend a potentially unsafe path to sys.path
-q : don't print version and copyright messages on interactive startup
-s : don't add user site directory to sys.path; also PYTHONNOUSERSITE
-S : don't imply 'import site' on initialization
-u : force the stdout and stderr streams to be unbuffered;
this option has no effect on stdin; also PYTHONUNBUFFERED=x
-v : verbose (trace import statements); also PYTHONVERBOSE=x
can be supplied multiple times to increase verbosity
-V : print the Python version number and exit (also --version)
when given twice, print more information about the build
-W arg : warning control; arg is action:message:category:module:lineno
also PYTHONWARNINGS=arg
-x : skip first line of source, allowing use of non-Unix forms of #!cmd
-X opt : set implementation-specific option
--check-hash-based-pycs always|default|never:
control how Python invalidates hash-based .pyc files
--help-env : print help about Python environment variables and exit
--help-xoptions : print help about implementation-specific -X options and exit
--help-all : print complete help information and exit
Arguments:
file : program read from script file
- : program read from stdin (default; interactive mode if a tty)
arg ...: arguments passed to program in sys.argv[1:]
pg#
Впрочем, сам интерпретатор пока не очень работает:
pg# ./ix run bin/wasm/edge bin/python/11/wasi --target=wasi32 -- wasmedge --enable-all '$(command -v python3.wasm)'
Exception ignored error evaluating path:
Traceback (most recent call last):
File "<frozen getpath>", line 353, in <module>
OSError: [Errno 0] Error
Fatal Python error: error evaluating path
Python runtime state: core initialized
Current thread 0x00000000 (most recent call first):
<no Python frame>
👍17🔥2🎉1
На phoronix обсуждают какую-то презу, в которой объясняется, почему Linux не используют в mission critical системах.
https://www.phoronix.com/news/Linux-On-Airplanes-Challenges
КМК, приведенный выше слайд очень хорошо описывает культуру разработки ядра (а, точнее, ее полное отсутствие).
#linux #kernel
https://www.phoronix.com/news/Linux-On-Airplanes-Challenges
КМК, приведенный выше слайд очень хорошо описывает культуру разработки ядра (а, точнее, ее полное отсутствие).
#linux #kernel
😁9🤔6👍3🔥2🤯1
commit -m "better"
Я давно откладывал эту тему, но вот вышла эта новость, и, видимо, пора: https://www.opennet.ru/opennews/art.shtml?num=56587 "Отмечается, что для полноценной работы приложений на базе SDL в Wayland требуется наличие библиотеки #libdecor для декорирования…
#GNOME #gtk #ssd
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6161
Продолжение темы про server side decorations, жирно, годно.
На этот раз господа из gtk прямым текстом говорят, что wayland - им не указ:
"There is no debate. And this is not a standard. It is an experimental protocol that somebody slapped the xdg name on and merged into the wayland repos. It is not implemented by anybody except sway and kwin"
И ответ:
"Please refrain from making fun of the Wayland community this way. We've worked very hard to reach a consensus among all wayland-protocols members, and it feels like you're dismissing this work"
Тут вот активно форсят тему про планирующийся бой Маска и Цукерберга, а я вот, конечно, хотел бы посмотреть, как подерутся Simon Ser и Clasen, например.
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6161
Продолжение темы про server side decorations, жирно, годно.
На этот раз господа из gtk прямым текстом говорят, что wayland - им не указ:
"There is no debate. And this is not a standard. It is an experimental protocol that somebody slapped the xdg name on and merged into the wayland repos. It is not implemented by anybody except sway and kwin"
И ответ:
"Please refrain from making fun of the Wayland community this way. We've worked very hard to reach a consensus among all wayland-protocols members, and it feels like you're dismissing this work"
Тут вот активно форсят тему про планирующийся бой Маска и Цукерберга, а я вот, конечно, хотел бы посмотреть, как подерутся Simon Ser и Clasen, например.
GitLab
wayland: Update to xdg-decoration protocol (!6161) · Merge requests · GNOME / gtk · GitLab
Updated version of !2191; as such, I've copied basically everything,...
🔥10🐳2
#llvm
https://reviews.llvm.org/rG75a1797044fc
Поддержка fat lto .o файлов.
Сделано это изящным (нет) хаком:
"The new pipeline initially clones the module and runs the
selected (Thin)LTOPrelink pipeline, after which it will serialize the
module into a .llvm.lto section of an ELF file"
Натурально, положили IR в отдельную секцию в .o файле.
Получается, что, если, в итоге, будет использован LTO, то дополнительная работа по оптимизации и подготовке объектного кода будет выброшена на ветер.
Думаю, сделано это от бедности, чтобы можно было протащить IR через системы сборки и пакетирования, которые ничего про это не знают, до LTO линкера.
Если уметь пересобрать все дерево зависимостей одним махом с нужными флагами, то все эти приседания, очевидно, не нужны.
https://reviews.llvm.org/rG75a1797044fc
Поддержка fat lto .o файлов.
Сделано это изящным (нет) хаком:
"The new pipeline initially clones the module and runs the
selected (Thin)LTOPrelink pipeline, after which it will serialize the
module into a .llvm.lto section of an ELF file"
Натурально, положили IR в отдельную секцию в .o файле.
Получается, что, если, в итоге, будет использован LTO, то дополнительная работа по оптимизации и подготовке объектного кода будет выброшена на ветер.
Думаю, сделано это от бедности, чтобы можно было протащить IR через системы сборки и пакетирования, которые ничего про это не знают, до LTO линкера.
Если уметь пересобрать все дерево зависимостей одним махом с нужными флагами, то все эти приседания, очевидно, не нужны.
🔥11👍2