☕️ Мерлин заваривает τσάι 🐌
1.11K subscribers
3.52K photos
64 videos
94 files
2.42K links
💊
Download Telegram
В go1.17 планируется добавить возможность кастовать слайсы длины N к указателями на массивы длины n <= N

То есть можно будет написать (*[4]int)([]int{1, 2, 3, 4}).

Это позволит избавится от проверок на выход за границы слайсов в горячих местах и проверять некоторые обращения к слайсам целиком во время компиляции

https://github.com/golang/go/issues/395
Простите извините, вы не видели вотерчип?
Forwarded from Generic Talks (Bogdan Storozhuk)
Generic Talks S02E03 "Языковая блокировка с рекурсивным обходом на диске"
Оригинальный состав Олег, Искандер и Богдан.

Темы:
1. Github Codespaces
- https://github.com/features/codespaces
2. О причинах появления языков:
- https://nim-lang.org
- https://ziglang.org
- https://www.beeflang.org
- https://www.red-lang.org
3. Locking in WebKit:
- https://webkit.org/blog/6161/locking-in-webkit/
- https://aspenuwu.me/posts/rust-optimization.html
- https://github.com/Amanieu/parking_lot
4. Type filters & Ruleguard
- https://twitter.com/dgryski/status/1317245210041012224
- Что такое фильтры типов в ruleguard
- Фильтры структурных типов в ruleguard (type matching)
- Underlying types
- Что означает “contains?”
- Как выразить фильтр для подвыражения фильтра https://bit.ly/2FEfEjq

5. "Книжный клуб" читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 3 - Storage and Retrieval

На следующий раз в "Книжный клуб" читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 4 - Encoding and Evolution
Свои вопросы и заметки по главе пишите сюда: @generictalks_bot

Если Вы хотели бы послушать наше интервью с какем-то интересным или хотите сами прийти - присылайте предложения сюда: @generictalks_bot

🎙Наш канал в YouTube - https://bit.ly/3cwXsmI
📹 Шоу с код ревью и кучей интересных советов - https://bit.ly/2zc2w1j (и Телеграм @good_bad_reviewer)
💵 Patreon - www.patreon.com/generictalks

https://soundcloud.com/generictalks/generictalks-s02e03-yazykovaya-blokirovka-s-rekursivnym-obkhodom-na-diske
Go1.15 неправильно инициализирует массивы больших размеров (больше чем 2⁹ элементов)

При создании массива var xx [1<<32]byte элементы примут случайные значения {0, 1}. Судя по всему проблема связана с новым линкером


https://github.com/golang/go/issues/42054
Как всё начиналось / как стало
Forwarded from Медуза — LIVE
В Перу археологи обнаружили 37-метровый геоглиф кошки (то есть нанесенные на землю узоры).

Животное разлеглось прямо на склоне холма на плато Наска. Эксперты предполагают, что рисунок сделали примерно в 500-100 годах до нашей эры, что делает эту кошку одним из древнейших обнаруженных геоглифов.
Реймаршинг движок на чистом Fennel (это такой лисп, транслируется в lua) и Love движке

Офигительная с технической точки зрения реализация, жаль только из-за зверски низкой производительности представляет исключительно академический интерес.

#absoluteMadman
https://andreyorst.gitlab.io/posts/2020-10-15-raymarching-with-fennel-and-love/
Zig конечно суров
Это выглядит как динамик диспатч, но на самом деле он компайл тайм

// in stdlib

pub fn serialize(self: *Serializer, value: var) !void {
const T = comptime @TypeOf(value);
if (comptime std.meta.trait.hasFn("serialize")(T)) {
return T.serialize(value, self);
} else {
self.defaultSerialize(value);
}
}

// in my code

struct Foo {
foo: usize,

fn serialize(self: Foo, serialize: *Serializer) !void {
...
}
}
This media is not supported in your browser
VIEW IN TELEGRAM
Initial states:
m: 1.637 x: -7.586 y: -8.681 vx: -0.039 vy: -0.028
m: 7.617 x: 0.310 y: 5.609 vx: 0.806 vy: 0.173
m: 2.975 x: -4.561 y: -4.319 vx: 0.031 vy: -0.443
Interest-ness score: 69