Comments 11
Видимо, можно, однако, как это релевантно новости?
Vale умер не родившись
Последний коммит 7 месяцев назад, а основатель жаловался на здоровье.
Если только кто подхватит из Gimp - основного спонсора, как я понял
Рассматривать язык в отрыве от экосистемы бессмысленно. У раста большое комьюнити и куча библиотек. А о Vale я узнал только из этого комментария :)
можно в первом приближении оба на llvm, советую проверить видя его синтаксис есть ли в нем SIMD интрисинки(если нет, решите простую задачку поймите какой процессор сейчас использует система, какая битность, и взаивисимости от этого заюзайте "immintrin.h"), если нет найдите их и забиндите потомучто на Расте они есть
https://en.wikipedia.org/wiki/Single_instruction,_multiple_data
Про Раст мало на Хабре пишут, так что рискну спросить оффтопик: кто-нить в качестве паттерна делает ли как-то вот так:
async fn my_method(self: Arc<Mutex<Self>>) {
...
}
Уж очень хочется иногда в многопоточном приложении иметь объект, который в методах доступен через arc-mutex на self (а не через статические функции индивидуально по полям, где каждое поле есть сам себе arc-mutex).
Или какой-то другой паттерн вместо этого используют? Уж очень не хватает простоты «традиционных» языков в этом месте.
#[derive(Clone)]
pub struct MyType(Arc<Mutex<MyTypeInner>>);
struct MyTypeInner { /**/ }
Вот такое очень часто встречается.
Но тут получается boilerplate (кажется) - во-первых, везде надо .0 писать, а во-вторых, вот это MyType/MyTypeInner - дублируется часть “MyType”, и имя “inner” тоже попахивает. Выглядит неаккуратненько как-то. Может быть, есть какой-то более нативный способ?
Rust 1.85.0 и Rust 2024