Anonymous
да?
Денис
ну я думаю, что идея такая, что публичные конструкторы будут устроены таким образом, чтобы невозможно было создать пустую мапу/сет
Денис
но блядь, я хочу, чтобы это сука гарантировалось на уровне типов =)
Денис
чтобы просто физически было невозможно проебаться и где-то забыть проверить, а не пустую ли нам подсунули мапу
Berkus
Berkus
если ты создал хуевый тип то он гарантирует это хуево, тут какбэ
Anonymous
Vladimir
Vladimir
На чистом коде пишите, и не будет мороки
Денис
Berkus
Денис
ok
Berkus
при наличии вменяемой инкапсуляции они работают совершенно одинаково
Vladimir
Vladimir
Парни сами себе не доверяют, хотя чтоб компилятор их проверял
Денис
Berkus
Anonymous
Vladimir
Модераторы, а не программисты
Anonymous
Ivan
это новый вид троллинга тут такой, "Х не реализовать в русте, так как нет зависимых типов!"
Ivan
?
Aleksey
напиши как-нибудь подробное описание, а то я тоже хотел с кролика из раста читать
В целях препарирования кролика в гетерогенной среде сколхозил проект из слегка переделанных примеров кроличьего туториала и примера к rust-amqp. https://github.com/fr0ster/rabbit_hole В принципе бесполезный проект, отправная точка. Кто пользовал кролика, тот и так понимает как можно хелло ворлд написать, а мне оно надо некоторые неясные моменты прояснить
Αλεχ
Αλεχ
error: duplicate lang item in crate `std`: `panic_impl`.
|
= note: first defined in crate `pwasm_std`.
error: duplicate lang item in crate `std`: `oom`.
|
= note: first defined in crate `pwasm_std`.
error: aborting due to 2 previous errors
error: Could not compile `issue54`.
Αλεχ
как понять, какой крейт пиздит?
Anton
use *? )
Anton
use *? )
в смысле используешь ипорт звездочкой?
Αλεχ
cargo-tree не встает
Αλεχ
импортов нет
Anton
Стейбл?
Αλεχ
нет
Αλεχ
какой стейбл с no_std ты че
Αλεχ
вот код
Αλεχ
#![no_std]
extern crate pwasm_ethereum;
#[macro_use]
extern crate serde_derive;
extern crate serde;
Αλεχ
он работает или нет в зависимости от cargo.tomlk
Αλεχ
Так - работает
[dependencies]
pwasm-std = "0.9.2"
pwasm-ethereum = "0.5.1"
pwasm-abi = "0.1.3"
serde_derive = { version = "1.0.70", default-features = false }
serde = { version = "1.0.70", default-features = false }
Αλεχ
А вот так - нет
[dependencies]
pwasm-std = "0.9.2"
pwasm-ethereum = "0.5.1"
pwasm-abi = "0.1.3"
pwasm-abi-derive = "0.1.3"
serde_derive = { version = "1.0.70", default-features = false }
serde = { version = "1.0.70", default-features = false }
Αλεχ
то есть добавил пару левых крейтов - всё сломалось
Anton
Αλεχ
ага, в std
Αλεχ
только схуяли std тянется?
Anton
Левый крейт импортирует std::oom ?
Αλεχ
если закоментить serde всё тоже работает
Αλεχ
эти крейты в no_std нормально пашут
Anton
было что то похоже
Anton
е
Anton
там пакеты ссылались на рузные версии модуля
Anton
в результате он инстациировался два раза
Anton
по разу в каждой версии
Anton
но у тебя с какого то std
Anton
причем если выключить радомный крейт - оно работает =)
Αλεχ
Если кто захочет локально проверить, собирать через cargo build --release --target wasm32-unknown-unknown
[package]
name = "issue54"
version = "0.1.0"
authors = ["Psilon <pzixel@gmail.com>"]
[dependencies]
pwasm-std = "0.9.2"
pwasm-ethereum = "0.5.1"
pwasm-abi = "0.1.3"
pwasm-abi-derive = "0.1.3"
serde_derive = { version = "1.0.70", default-features = false }
serde = { version = "1.0.70", default-features = false }
[lib]
crate-type = ["cdylib"]
[profile.release]
panic = "abort"
lto = true
opt-level = "z"
Anton
никак не компилится
Anton
error: function should have one argument
--> /home/anton/.../panic.rs:100:1
| / pub extern fn oom() -> ! {
101 | | unsafe { ::core::intrinsics::abort() }
102 | | }
Αλεχ
ща залью
Anton
Αλεχ
https://github.com/Pzixel/issue54.git
Αλεχ
не работает?
Αλεχ
у меня 1.28
Αλεχ
ща обновлюсь
Αλεχ
https://github.com/rust-lang/cargo/issues/5730 - походу моя проблема
KosBeg
накатать issue или просто ждать?
Αλεχ
просто жди)
Αλεχ
он никогдан е билдится
Anton
KosBeg
у меня первый раз за всё время юзания раста ошибка :D
Αλεχ
Αλεχ
если совпадут звезды на небе
KosBeg
судя по всему месяца за полтора 🙃
Αλεχ
то на текущем ночнике он соберется
Αλεχ
но чаще нет
Денис
хз, давно ставлю клиппи из гита и горя не знаю, обычно все ошибки чинятся супер-оперативно после выкатывания ломающего ночника
Αλεχ