ну строго говоря, для JSON хранение как минимум один из валидных кейсов, т.к. [Zefick Mode]он был задуман как подмножество синтаксиса JavaScript[/Zefick Mode]. а код на JS черт возьми иногда хранят.
Tiendil
> Пост для срачей вокруг Rust перерос в пост для срачей вокруг XML, почему мне это кажется закономерным?
Так почему закономерным?
Давайте лучше про Rust...
Я вот вчера выяснил, что мутабельный синглетон без mutex-а не сделать.
Чтобы сделать в макросе конкатенацию имени, надо использовать 3rd party crate - paste, который принадлежит какому-то частному чуваку
KolyaL
Здорово, правда?
Еще можно унсафэ поставить
1 frag / 2 deaths
> унсафэ
Это не спортивно!
KolyaL
А в крестах статик переменные не под мутексом разве инициализируются?
KolyaL
> Так почему закономерным?
Это глубоко философский вопрос, не могу ответить кратко, на уровне ощущений :-)
1 frag / 2 deaths
> А в крестах статик переменные не под мутексом разве инициализируются?
Если все гарантированно работает в одном потоке, то мьютексы как бы не нужны
KolyaL
> Если все гарантированно работает в одном потоке,
Ну скажи это крестам тогда с этим ихним
__cxa_guard_acquire
KolyaL
> Если все гарантированно работает в одном потоке, то мьютексы как бы не нужны
Дак и в расте не нужны. Сделай враппер вокруг UnsafeCell которые чекает что доступ из правильного треда. Есть крейт, но я забыл название. Могу глянуть а репках, если интересно
KolyaL
> Если все гарантированно работает в одном потоке, то мьютексы как бы не нужны
Раст не знает, что ты работаешь только в одном потоке.
Впрочем, если всё гарантированно работает в одном потоке — то ничего не испортится, если глобалы поменять на тхред-локалы.
Имбирная Ведьмочка
> тхред-локалы.
не испортится, но всеже не стоит, если нужен именно синглтон) к тому же работать с тредлокалами не так удобно (коллбэки вместо RAII-скоупов)
KolyaL
https://docs.rs/threadbound/latest/threadbound/ (я правда другой юзал, но суть та же, и тут автор не ноунейм)
PS: ну и кстати UnsafeCell там не используется)
kkolyan
> всеже не стоит, если нужен именно синглтон
А почему? Ведь в случае, если на самом деле потоков окажется несколько — оно в обоих случаях сломается и понесёт чушь. Не считая что работать неудобно, это не спорю, но это уже чисто растовские же заморочки.
Имбирная Ведьмочка
в случае thread_bound кейс "не тот поток" будет явным (паника, или явная обработка), а в случае thread_local, оно начнет делать нежелаемое втихаря. последствия могут быть не мгновенно заметными, но критичными.
kkolyan
> https://docs.rs/threadbound/latest/threadbound/ (я правда другой юзал, но суть та же, и тут автор не ноунейм)
Прикольная штука. Кто-то такое создаст, залочит на какой-то поток. Потому кто-то другой начнет юзать это (не зная, что это) в другом потоке и охренеет. Это же можно не явно использовать.
Надо сделать MainThreadBound, и чтобы внутри panic случался. Это будет типа бомбы в коде по уничтожению потоков