Anton
4.2+
Иди в @ios_ru
Cat
Что вы думаете о новом Swift’e ?
можем обсудить только если они потырили чего-нибудь с раста
Yuriy
Иди в @ios_ru
Я не думаю что стоит спрашивать мнение фанбоев…
Cat
тогда в джерк
Yuriy
можем обсудить только если они потырили чего-нибудь с раста
Ну вот в 1.27 раст завезли такую же SIMD’у на типах
Cat
мм?
Yuriy
мм?
https://github.com/rust-lang/rust/pull/49664/
Cat
Ну вот в 1.27 раст завезли такую же SIMD’у на типах
разве уже не несколько лет завозят?
Yuriy
Далеко не фанбои.
Да… если бы не были фанбоями не агрились бы на явления сегфолтнутого тайпчекера с фразами «это не свифт неправильный - это Ты неправильный !»
Yuriy
Так же люди агряться когда показываю что RC в Свифте так же подтекает как и в Ржавом…
Sergey
в ржавом RC течет?
Sergey
а можно пруф?
kalloc
что такое ржавый?
Yuriy
а можно пруф?
Дык в буке описано
kalloc
))
kalloc
логично
Yuriy
Дык в буке описано
https://doc.rust-lang.org/book/second-edition/ch15-06-reference-cycles.html
Yuriy
• наверное у людей пока не сформировалось мнение, но в целом мне лично нормально зашло вместо ржавого в некоторых проектах
Антон
https://doc.rust-lang.org/book/second-edition/ch15-06-reference-cycles.html
Это не "течёт", это логическая ошибка. Именно поэтому в Rust есть Weak ссылки
Nikita
А что такого в том, что RC течет?
Yuriy
Это не "течёт", это логическая ошибка. Именно поэтому в Rust есть Weak ссылки
У свифта тоже есть они… есть синтаксический сахар, но циклические зависимости не всегда подхватываются во время статического анализа, пока не фиксили.
Yuriy
А что такого в том, что RC течет?
Да ничего, просто дно пробито.
Nikita
Да ничего, просто дно пробито.
А у свифта RC - это такая же структура-обертка, или у них это больше на уровне языка?
Yuriy
А у свифта RC - это такая же структура-обертка, или у них это больше на уровне языка?
Обёртка поверх языка, тоже Arena Alocator, тоже JEMalloc раньше был, только возни с хипом меньше - используется пару mSSA проходов со стороны фронта, накостыляли немного что бы LLVM побороть.
Nikita
Обёртка поверх языка, тоже Arena Alocator, тоже JEMalloc раньше был, только возни с хипом меньше - используется пару mSSA проходов со стороны фронта, накостыляли немного что бы LLVM побороть.
Я больше про синтаксическое представление rc. Вот в расте его надо явно указывать, а в свифте по сути любой референс - это rc или weak
Nikita
И в этом и заключается проблема. Потенциально цикличный Rc в Расте надо указывать явно и самостоятельно убеждаться, что это не вызывает циклов (стоит заметить, что не unsafe, просто нежелательно). В свифте же можно дефолтным поведением наделать циклов, если не расставлять weak
Cat
там тхрустер обновили, https://github.com/trezm/Thruster говорят, >>> Framework: Actix (prod mode) Requests/sec: 48661.48 >>> Framework: Thruster (prod mode) Requests/sec: 53612.10
Cat
(и да, говорят, что у него только один unsafe, и что автору уже подсказали, как его убрать) (теперь будут этими ансейвами плеваться в сторону актикса..)
Αλεχ
ща коля придет и скажет, что они криворукие
Αλεχ
и у него ваще лям в сек кушает
Kerrigan
ого
Kerrigan
и даже роутер есть
Kerrigan
но мультипарта нет пока
Cat
насколько я понял, в свежем найтли уже можно пробовать edition=2018; пока early access и нет всех ожидаемых фичей https://internals.rust-lang.org/t/rust-2018-an-early-preview/7776
Cat
кстати, по ссылке можно найти забавные обсуждаемые фичи, вроде отказа от явного extern crate и отказа от явного лайфтайма в сигнатуре fn f<'a>(smth: &'a Foo) become fn f(smth: &'a Foo)
Alexander
Ого, похоже у раста есть шанс, а то я думал что голосуют исключительно за увеличение сигнатур.
Cat
ну и чем плохо extern crate a; use a::b; против use a::b;
Sergey
напомните плиз: растовый optionA.and(optionB) какой имеет аналог в функциональных языках?
Sergey
спасибо)
Alexander
Вообще какой-то очередной бред Раста на вид - обычный функтор как-то дико отдельно называть.
Alexander
Хотя сорян, тут fmap не причем, справа же тоже maybe
Loyd
Вообще забавно. Вот ввели impl Trait в параметрах
Loyd
И стд мигом устарела.
Loyd
(если в стд, конечно, не будет форса нормальных дженерик-параметров)
Loyd
Ну сейчас этот impl Trait чуть ли не по кодстайлу (а мб и так) будет, что пихать надо
Loyd
Часть стд будет с impl Trait, часть — без, для обратной совместимости
Loyd
Шаг в сторону стд питона
Loyd
Хотя слово "неконсистентна" подходит лучше
Marat
А что в СТД много где трейты возвращаются?
Loyd
А что в СТД много где трейты возвращаются?
К возвращаемым вопросов нет, в стд везде именованные и маловероятно, что это будут менять. А вот impl в параметрах...
Loyd
В thruster-е ещё и хедеры копируют, блеск.
Anonymous
Йо
Vladimir
Vladimir
Там же теже механизмы только синтаксис другой
Vladimir
Ну? Для чего обратная совместимость?
Vladimir
fn x(y:iml Y) Тоже самое что fn x<T:Y>(y:T)
Ilya
Если у тебя в коде был турбофиш, а потом в стд стал impl Trait - твой код перестанет компилироваться
Vladimir
Я не уверен, но мне кажется это смогут поправить в эпохаэ
Vladimir
Или турбофиш это чисто термин про вызовы?
Ilya
ну да, чисто про вызовы
Anonymous
::<> рыбка :)
Αλεχ
он просто не нужен
պլհկ
Смысл во внешнем апи импл трейт в аргументах юзать?
Anonymous
Смысл во внешнем апи импл трейт в аргументах юзать?
Смысл импл трейт в аргументах юзать?