#haha #rust
Я тут между делом пилю свою плагиновую систему на расте. Главная её идея - safety. То есть, тот же (самый популярный) libloading - полностью unsafe, и от этого я хочу уйти. Если вкратце, уход от unsafe достигается за счёт добавления в плагин дополнительных метаданных и их проверке при загрузке. Ну как "достигается". Будет "достигаться", если я это дело допилю, потому что оно пока очень unsound :)Ломаю safe гарантию полностью!
Но суть вот в чём. Изначально я дал этому проекту название "plunger", потому что созвучно с "plugin", а я люблю созвучия и игру слов. Глянул в переводчик, он даёт перевод "поршень", меня устроило. При этом внутри я использовал всё тот же libloading, ибо зачем выдумывать лишнее, если база уже есть? А поддержку MacOS можно было бы и позже законтрибьютить. Но тут я столкнулся с нюансом, который мне не нравится совсем. И было принято решение запилить свою реализацию, благо это не rocket science. А для реализации надо придумать название. И пошёл я гуглить, что бы такое похожее на "поршень" придумать. И выяснил, что "plunger", с точки зрения англо-говорящего человека, это всё-таки не столько "поршень", сколько "вантуз". Не очень удачное имечко, для библиотеки 🌚
Штош, пойду искать что-то другое. Если кто предложит варианты, я только за 😊
P.S. К слову, может я ещё себя пересилю и не буду делать велосипед, а всё-таки обойдусь с помощью libloading, но имя проекту менять точно надо 😅
Я тут между делом пилю свою плагиновую систему на расте. Главная её идея - safety. То есть, тот же (самый популярный) libloading - полностью unsafe, и от этого я хочу уйти. Если вкратце, уход от unsafe достигается за счёт добавления в плагин дополнительных метаданных и их проверке при загрузке. Ну как "достигается". Будет "достигаться", если я это дело допилю, потому что оно пока очень unsound :)
Штош, пойду искать что-то другое. Если кто предложит варианты, я только за 😊
P.S. К слову, может я ещё себя пересилю и не буду делать велосипед, а всё-таки обойдусь с помощью libloading, но имя проекту менять точно надо 😅
Раз уж я показал, чем занимается моя супруга, то расскажу ещё чем я недавно занимался.
#prog #rust
Решил я что-нибудь простенькое растовое запилить для наполнения портфолио. Чисто чтобы хоть что-то показать.
Сделал я две штуки:
1. Есть одна нерешённая математическая проблема (одна из, их на самом деле целое море) - гипотеза Коллатца. Гипотеза гласит, что абсолютно любое натуральное число
Это нерешённая проблема математики, потому что не получается математически доказать, что она верна, и не получается найти контр-пример, чтобы доказать, что она не верна.
Сопсна, что сделал я? Да особо ничего выдающегося, простенький трейт-итератор, который позволяет для любого числа вызвать метод
что выведет:
Чтобы было поинтереснее, я посыпал сверху немного
Полистать код (его совсем не много) можно здесь.
#prog #rust
Решил я что-нибудь простенькое растовое запилить для наполнения портфолио. Чисто чтобы хоть что-то показать.
Сделал я две штуки:
1. Есть одна нерешённая математическая проблема (одна из, их на самом деле целое море) - гипотеза Коллатца. Гипотеза гласит, что абсолютно любое натуральное число
n
сведётся к 1, если применять к нему следующие преобразования: если число чётное - делим его на 2, в противном случае - умножаем на 3 и прибавляем 1. Так же эта гипотеза называется "3n+1 дилемма", или "сиракузская проблема" (потому что такая последовательность чисел, построенная в результате этих преобразований, называется "сиракузской").Это нерешённая проблема математики, потому что не получается математически доказать, что она верна, и не получается найти контр-пример, чтобы доказать, что она не верна.
Сопсна, что сделал я? Да особо ничего выдающегося, простенький трейт-итератор, который позволяет для любого числа вызвать метод
collatz_iter()
, по которому можно проитерироваться по всей сиракузской последовательности для этого изначального числа. То есть написать что-то такое:for n in 8.collatz_iter() {
print!("{} ", n);
}
что выведет:
8 4 2 1
Чтобы было поинтереснее, я посыпал сверху немного
macro_rules!
, cargo-фичи, Result
ы, ну и сопсна всё.Полистать код (его совсем не много) можно здесь.
#rust #prog
Тут есть статейка... Которую я не очень понял. Она скорее балабольная, но требует глубоко технического понимания, которого мне не хватает. Поэтому оставлю это здесь, надо будет как-нибудь разобраться в этом вопросе.
https://habr.com/ru/company/timeweb/blog/697882/
Тут есть статейка... Которую я не очень понял. Она скорее балабольная, но требует глубоко технического понимания, которого мне не хватает. Поэтому оставлю это здесь, надо будет как-нибудь разобраться в этом вопросе.
https://habr.com/ru/company/timeweb/blog/697882/
Хабр
Какую модель памяти следует использовать в языке Rust?
В этой статье рассматривается несколько альтернативных моделей памяти для языка Rust. Надеюсь, эта дискуссия будет ценна всему сообществу Rust – но, в конце концов, это их язык, поэтому и выбор модели...
В одном чатике в процессе спора получил прекрасное сообщение. И не могу этого не процитировать здесь.
#quote #rust
(с)
#quote #rust
Это ты под капот растику не залезал :) а тут коллеги уже залезали. Им надо было. Очень. Вот прям сильно надо было.
Залезли, отключили нахуячили и... ну, да всё порвалось. Писать надо аккратно.
Сделали из рустика такую.. марлю, если можно так выразиться. Дописали там чего-то... чтобы иметь возможно влезть под кожу сущностям, чтобы была возможность рассматривать их как массив элементов типа void в сях, например.
Зачем? Надо было. Я хуй знает, зачем они это хотели. Наверно чтобы выебнуться и сказать, мол, мы не используем C++, мы делаем его из растика. И у безопасТников тут же начинают подворачиваться штанишки.
(с)
💩2😁1