#prog #haskell #article
Type-level programming is still programming
TL;DR: вычисление типов, в отличие от вычисления термов, не является ленивым, и изменения в логике вычисления типов, не меняющее поведение, могут поменять асимптотику времени компиляции с экспоненциальной на линейную.
Type-level programming is still programming
TL;DR: вычисление типов, в отличие от вычисления термов, не является ленивым, и изменения в логике вычисления типов, не меняющее поведение, могут поменять асимптотику времени компиляции с экспоненциальной на линейную.
mchav.github.io
Type-level programming is still programming
I was showing a friend the typed dataframe API. The whole pitch was: look, you derive a schema from your data, and then the compiler catches column name typos, type mismatches, all the stuff that would otherwise blow up at runtime. I had a nice demo ready…
❤7👍2🔥1💩1
Блог*
#prog #rust В Google переписывают Android binder (компонент ядра для IPC) с C на Rust. Это компонент, который используется практически всем на Android, а потому для нормального функционирования он должен быть быстрым и корректным. Авторы ожидают, что переписывание…
#prog #rust
Версия binder на Rust вошла в состав ядра в версии 6.18, а в патче, который должен попасть в ядро версии 7.4, старую версию, на C, полностью удалили.
Версия binder на Rust вошла в состав ядра в версии 6.18, а в патче, который должен попасть в ядро версии 7.4, старую версию, на C, полностью удалили.
🎉14👍2
#prog #rust #article
Why building a Rust LSP is hard
Why building a Rust LSP is hard
This will be a (hopefully coherent) story about how Rust LSPs work, from the perspective of both rust-analyzer and Rust Glancer: how things that seem easy turn out to be hard, things that seem hard turn out to be even harder, and things I didn't expect to exist at all somehow do.
LSP is more of a guess game, where at each step all you are presented with is the potentially incorrect state, and your goal is to guess what would make sense for the user.
❤6💯2
#prog #article
Everyone Says Assembly Is Untyped—Everyone Is Wrong
Everyone Says Assembly Is Untyped—Everyone Is Wrong
TL;DR: I believe Odin’s inline assembly is currently the best out of any language.
The most important aspects are of this article listed below. I am not aware of any other assembly (GCC/Clang/Rust/Go…) that would combine all of these aspects:
* Inline assembly is organized into asm “templates”, similar to and callable as procedures.
* asm templates integrate with rest of the code, through bindings specifying clobbers, pinned, tied, and scratch registers.
* Assembly syntax is unified across ISAs and consistent with Odin syntax.
* Assembly is fully type checked, just like rest of Odin code.
* Understanding that assembly is actually typed.
* Real semantic diagnostics via core:rexcode encoding tables.
* It was built in ~7 days.
🤔6🥰3😱1
Ну #prog... Кусочек, это и статьёй-то не назвать, скорее, #tips
Printing Lists
Printing Lists
To print a comma-separated list, a concise idiom is to optionally print the comma first, before the element:
for (items, 0..) |item, item_index| {
if (item_index > 0) std.debug.print(", ");
std.debug.print("{}", .{item});
}matklad.github.io
Printing Lists
To print a comma-separated list, a concise idiom is to optionally print the comma first, before the element:
❤6🥴5
#prog #article
Steering Zig Fmt
TL;DR (но вообще заметка маленькая):
Steering Zig Fmt
TL;DR (но вообще заметка маленькая):
zig fmt не имеет the каноничного форматирования для кода, а опирается на указания в виде уже частично отформатированного кода и распространяет его на соседние семантически связанные строки.🤯16😁3🥴2🤔1
Forwarded from Технологический Болт Генона
Обновляем гитлабчики 💅💅💅
GitLab Critical Patch Release: 19.4.1, 19.3.3, 19.2.7
https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-1-released/?nav=19.4.1
Не, ну реально радуют уже второй раз подряд, в этот раз 9.9+9.9, в прошлый 9.9+10 🌝
https://xn--r1a.website/tech_b0lt_Genona/6966
CVE-2026-89078 - Double Free issue in Regular Expression Parser impacts GitLab CE/EE
GitLab has remediated an issue that under certain conditions could have allowed an authenticated user to execute arbitrary code on the GitLab server due to a double free issue when parsing a specially crafted regular expression in a CI/CD configuration.
Impacted Versions: GitLab CE/EE: all versions from 19.2 before 19.2.7, 19.3 before 19.3.3, and 19.4 before 19.4.1
CVSS 9.9 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L)
CVE-2026-93577 - Integer Overflow issue in Regular Expression Compiler impacts GitLab CE/EE
GitLab has remediated an issue that under certain conditions could have allowed an authenticated user to execute arbitrary code on the GitLab server due to an integer overflow issue when compiling a specially crafted regular expression in a CI/CD configuration.
Impacted Versions: GitLab CE/EE: all versions from 19.2 before 19.2.7, 19.3 before 19.3.3, and 19.4 before 19.4.1
CVSS 9.9 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
GitLab Critical Patch Release: 19.4.1, 19.3.3, 19.2.7
https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-1-released/?nav=19.4.1
Не, ну реально радуют уже второй раз подряд, в этот раз 9.9+9.9, в прошлый 9.9+10 🌝
https://xn--r1a.website/tech_b0lt_Genona/6966
😁8👍1🤯1