В go1.17 планируется добавить возможность кастовать слайсы длины N к указателями на массивы длины n <= N
То есть можно будет написать
Это позволит избавится от проверок на выход за границы слайсов в горячих местах и проверять некоторые обращения к слайсам целиком во время компиляции
https://github.com/golang/go/issues/395
То есть можно будет написать
(*[4]int)([]int{1, 2, 3, 4}).Это позволит избавится от проверок на выход за границы слайсов в горячих местах и проверять некоторые обращения к слайсам целиком во время компиляции
https://github.com/golang/go/issues/395
GitHub
spec: use (*[4]int)(x) to convert slice x into array pointer · Issue #395 · golang/go
Currently, it's possible to convert from an array or array pointer to a slice, but there's no way of reversing this. A possible syntax could be similar to the current notation for t...
Forwarded from Generic Talks (Oleg Kovalov)
Мы опять с вами, подключайтесь. Поговорим о языках, локах и поиску по коду. https://www.youtube.com/watch?v=Oq0JiOz65Fo
YouTube
Generic Talks S02E03 "Языковая блокировка с рекурсивным обходом на диске"
Generic Talks S02E03 "Языковая блокировка с рекурсивным обходом на диске"
Оригинальный состав Олег, Искандер и Богдан.
Темы:
1. Github Codespaces
- https://github.com/features/codespaces
2. О причинах появления языков:
- https://nim-lang.org…
Оригинальный состав Олег, Искандер и Богдан.
Темы:
1. Github Codespaces
- https://github.com/features/codespaces
2. О причинах появления языков:
- https://nim-lang.org…
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
Оригинальный состав Олег, Искандер и Богдан.
Темы:
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⁹ элементов)
При создании массива
https://github.com/golang/go/issues/42054
При создании массива
var xx [1<<32]byte элементы примут случайные значения {0, 1}. Судя по всему проблема связана с новым линкеромhttps://github.com/golang/go/issues/42054
GitHub
cmd/compile: large variable not initialized to 0 · Issue #42054 · golang/go
What version of Go are you using (go version)? Initially spotted on playground (1.14.9), but also reproduces with 1.15.2 and: $ go version go version devel +3036b76df0 Sat Oct 10 16:06:07 2020 +000...
Forwarded from Медуза — LIVE
В Перу археологи обнаружили 37-метровый геоглиф кошки (то есть нанесенные на землю узоры).
Животное разлеглось прямо на склоне холма на плато Наска. Эксперты предполагают, что рисунок сделали примерно в 500-100 годах до нашей эры, что делает эту кошку одним из древнейших обнаруженных геоглифов.
Животное разлеглось прямо на склоне холма на плато Наска. Эксперты предполагают, что рисунок сделали примерно в 500-100 годах до нашей эры, что делает эту кошку одним из древнейших обнаруженных геоглифов.
☕️ Мерлин заваривает τσάι 🐌
Работающий исходник игры Жизнь, отформатированный в виде глайдера https://twitter.com/david3141593/status/1312509195158056962
YouTube
Donut-shaped C code that generates a 3D spinning donut
"Donut math: how donut.c works" blog post by Andy Sloane:
https://www.a1k0n.net/2011/07/20/donut-math.html
Deobfuscated code: https://bit.ly/2BITbQm
https://www.a1k0n.net/2011/07/20/donut-math.html
Deobfuscated code: https://bit.ly/2BITbQm
Реймаршинг движок на чистом Fennel (это такой лисп, транслируется в lua) и Love движке
Офигительная с технической точки зрения реализация, жаль только из-за зверски низкой производительности представляет исключительно академический интерес.
#absoluteMadman
https://andreyorst.gitlab.io/posts/2020-10-15-raymarching-with-fennel-and-love/
Офигительная с технической точки зрения реализация, жаль только из-за зверски низкой производительности представляет исключительно академический интерес.
#absoluteMadman
https://andreyorst.gitlab.io/posts/2020-10-15-raymarching-with-fennel-and-love/
andreyorst.gitlab.io
Raymarching with Fennel and LÖVE
Previously I decided to implement a rather basic raycasting engine in ClojureScript. It was a lot of fun, an interesting experience, and ClojureScript was awesome. I’ve implemented a small labyrinth game and thought about adding more features to the engine…
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 {
...
}
}
Forwarded from Random three body problem
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
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