Forwarded from Doctor Foland
А можно пример такой парадоксальной системы типов?
Forwarded from The Wacky Yellow Dog
кучу ранних систем типов от конструктивистов (system U, которая): https://en.wikipedia.org/wiki/System_U
Java, Scala и им. подобные с wildcard'ами: https://io.livecode.ch/learn/namin/unsound?img=#c38688f047a9dd46bd79f4d8262e53a2
Scala + type projection: https://lptk.github.io/programming/2019/09/13/type-projection.html
Java, Scala и им. подобные с wildcard'ами: https://io.livecode.ch/learn/namin/unsound?img=#c38688f047a9dd46bd79f4d8262e53a2
Scala + type projection: https://lptk.github.io/programming/2019/09/13/type-projection.html
Wikipedia
System U
special forms of a typed lambda calculus
@hirrolot устраивает ужас среди ничего не подозревающих растишек
Hirrolot, [06.07.20 18:06]
можно о лайфтаймах не заботиться
Hirrolot, [06.07.20 18:07]
давай, будешь senior poica developer
Hirrolot, [06.07.20 18:11]
https://gist.github.com/Hirrolot/fe752e0e0d58c3b0786f6b8a6ee58cb8
(ошибка на 1433 строки)
✊🙏😱
===
via https://t.iss.one/rust_offtopic/307844
Hirrolot, [06.07.20 18:06]
можно о лайфтаймах не заботиться
Hirrolot, [06.07.20 18:07]
давай, будешь senior poica developer
Hirrolot, [06.07.20 18:11]
https://gist.github.com/Hirrolot/fe752e0e0d58c3b0786f6b8a6ee58cb8
(ошибка на 1433 строки)
✊🙏😱
===
via https://t.iss.one/rust_offtopic/307844
Gist
macro-error
GitHub Gist: instantly share code, notes, and snippets.
О проблемах в поиске мейнтейнеров для ядра (Линус Торвальдс сетовал в своём интервью здесь)
>>>> Снизился порог входа и стало много временных молодёжных, модных, не особо развитых. В общей массе стало меньше доля людей университетского уровня. И искать стало сложнее.
>>> А как же инклюзивность и толерантность? Неужели гендерно-, расово- и умственно-альтернативные не могут писать код?
>> Вот в том и проблема, что все инклюзивные и толерантные, а мэйнтейнер должен на говно говорить говно.
> Официант! Бутылку чаю этому анониму за то, что зрит в корень.
===
из комментов
>>>> Снизился порог входа и стало много временных молодёжных, модных, не особо развитых. В общей массе стало меньше доля людей университетского уровня. И искать стало сложнее.
>>> А как же инклюзивность и толерантность? Неужели гендерно-, расово- и умственно-альтернативные не могут писать код?
>> Вот в том и проблема, что все инклюзивные и толерантные, а мэйнтейнер должен на говно говорить говно.
> Официант! Бутылку чаю этому анониму за то, что зрит в корень.
===
из комментов
The Register
'It's really hard to find maintainers...' Linus Torvalds ponders the future of Linux
Will code move on to a language such as Rust? 'I'm convinced it's going to happen' says kernel colonel
Ой 🙄😆, Ц++ не на высоте, лул
Αλεχ Zhukovsky:
я без мув конструктора? Просто я хочу написать функцию auto vectorToString(auto vector) -> auto
как такую функу написать в плюсах?
Roman Proskuryakov:
кажется, что нельзя
наверно можно через черную магию, но сам понимаешь))
===
Αλεχ Zhukovsky:
я без мув конструктора? Просто я хочу написать функцию auto vectorToString(auto vector) -> auto
fn vectorToString(v: Vec<u8>) -> String {
let result = String::from_raw_parts(v.as_mut_ptr(), v.len(), v.capacity());
mem::forget(v);
result
}
как такую функу написать в плюсах?
Roman Proskuryakov:
кажется, что нельзя
наверно можно через черную магию, но сам понимаешь))
===
Forwarded from 𝙽𝚒𝚌𝚔 𝙻𝚒𝚗𝚔𝚎𝚛
Нет, неправильно.
Дело не в том, что не имеет смысла, а в том, что как бы ты ни определил значение выражения
Если
Если
Если ты определишь
В комплексных числах, однако, рассматривают множество C+ - это все числа и ещё одна точка
https://en.m.wikipedia.org/wiki/Riemann_sphere
Дело не в том, что не имеет смысла, а в том, что как бы ты ни определил значение выражения
a/0
, ты всегда придёшь к противоречию.Если
a != 0
, то x = a/0
определяется как решение уравнения x * 0 = a
, которое не имеет решения ни при каком x.Если
a == 0
, то x = 0/0
теоретически можно определить как любое число, но тогда ты придёшь к противоречию, что выражение 0/0
равно одновременно двум числам.Если ты определишь
a/0
как множество чисел, то получается, что значением операции /
является множество, то есть операция не замкнута на множестве R.В комплексных числах, однако, рассматривают множество C+ - это все числа и ещё одна точка
∞
, так что C+ изоморфно сфере. Там на 0 делить можно.https://en.m.wikipedia.org/wiki/Riemann_sphere
Wikipedia
Riemann sphere
model of the extended complex plane plus a point at infinity
Эх, были такие надежды на новые технологии, по-видимому надо ждать сингулярности...
red75prime, [11.07.20 00:16]
Недавно Ян Лекун сказал, что нейросети не biased, надо контролировать исходные данные. Тут же набежали, и начали объяснять, что надо делать нейросети, которые грокают текущую политическую обстановку, а не отмазываться.
===
via https://t.iss.one/rust_offtopic/313425
red75prime, [11.07.20 00:16]
Недавно Ян Лекун сказал, что нейросети не biased, надо контролировать исходные данные. Тут же набежали, и начали объяснять, что надо делать нейросети, которые грокают текущую политическую обстановку, а не отмазываться.
===
via https://t.iss.one/rust_offtopic/313425
Telegram
red75prime in rust_offtopic
Недавно Ян Лекун сказал, что нейросети не biased, надо контролировать исходные данные. Тут же набежали, и начали объяснять, что надо делать нейросети, которые грокают текущую политическую обстановку, а не отмазываться.
Forwarded from мне не нравится реальность (вафель 🧇🦾)
Twitter
Vlad Beskrovnyy
LOL
Курс по языку Rust в приложении к осям. С нуля до какого-то приличного уровня
https://habr.com/ru/users/lain8dono/posts/
https://habr.com/ru/users/lain8dono/posts/
Хабр
Публикации / Профиль lain8dono
Hirrolot:
что тебя смущает в лиспе?
Vetro:
))))))))))))))
Hirrolot:
да что вы. скажите нормально
Vetro:
говорю же
)))))))))))))))
Крывашек:
😂
===
via https://t.iss.one/rust_offtopic/315950
что тебя смущает в лиспе?
Vetro:
))))))))))))))
Hirrolot:
да что вы. скажите нормально
Vetro:
говорю же
)))))))))))))))
Крывашек:
😂
===
via https://t.iss.one/rust_offtopic/315950
Telegram
Hirrolot in rust_offtopic
что тебя смущает в лиспе?
Многие GOF паттерны для ржавчины неактуальны, но там есть много своих
https://github.com/rust-unofficial/patterns
https://github.com/rust-unofficial/patterns
GitHub
GitHub - rust-unofficial/patterns: A catalogue of Rust design patterns, anti-patterns and idioms
A catalogue of Rust design patterns, anti-patterns and idioms - rust-unofficial/patterns
Forwarded from Kai Ren
Вот из сегодняшнего, буквально.
Без RefCell на &mut ссылке, сколько не плясал, ни в какую не хотело уезжать во второе замыкание.
Без RefCell на &mut ссылке, сколько не плясал, ни в какую не хотело уезжать во второе замыкание.
Forwarded from мне не нравится реальность (вафель 🧇🦾)
# crates.io update notifier bot
(по названию всё и так понятно, можно дальше не продолжать)
На днях в расточатике спросили есть ли возможность как-то подписаться на обновления крейтов. Внятного ответа никто не дал, так что я решил написать бота для тележки.
FF: вот бот: @crates_upd_bot, можете с ним поиграться.
Работает он просто — с помощью git2 fetch'ит crates.io-index, гуляет по коммитам между
(по названию всё и так понятно, можно дальше не продолжать)
На днях в расточатике спросили есть ли возможность как-то подписаться на обновления крейтов. Внятного ответа никто не дал, так что я решил написать бота для тележки.
FF: вот бот: @crates_upd_bot, можете с ним поиграться.
Работает он просто — с помощью git2 fetch'ит crates.io-index, гуляет по коммитам между
HEAD
и FETCH_FEAD
, смотрит диффы и потом шлёт сообщения в @crates_updates и тем, кто подписался на обновления (на конкретный крейт).Forwarded from 𝙽𝚒𝚌𝚔 𝙻𝚒𝚗𝚔𝚎𝚛
Человек из старой РСДНской гвардии написал ряд постов на LJ:
https://thedeemon.livejournal.com/40867.html
https://thedeemon.livejournal.com/41035.html
https://thedeemon.livejournal.com/41388.html
https://thedeemon.livejournal.com/41545.html
https://thedeemon.livejournal.com/43344.html
https://thedeemon.livejournal.com/43656.html
https://thedeemon.livejournal.com/40867.html
https://thedeemon.livejournal.com/41035.html
https://thedeemon.livejournal.com/41388.html
https://thedeemon.livejournal.com/41545.html
https://thedeemon.livejournal.com/43344.html
https://thedeemon.livejournal.com/43656.html
Livejournal
ATS: первые впечатления
Занялся я тут изучением ATS и в качестве учебного примера взял задачку nponeccop'a про фильтрацию IP адресов. Дабы не изобретать колеса, взял простое и красивое решение antilamer'a и попытался его почти дословно перевести. Получилось 108 строк на ATS . Собранное…
Forwarded from Deleted Account
Я только что потратил слишком много времени на написание программы, которая восстанавливается из сегфолта
https://gist.github.com/GoldsteinE/41f00d9dcebc6389f3198ff5f860d5a1?ts=2
https://gist.github.com/GoldsteinE/41f00d9dcebc6389f3198ff5f860d5a1?ts=2
Gist
handle_segfault.c
GitHub Gist: instantly share code, notes, and snippets.
Я всё репу чесал, как бы донести до того плюсовика, что он решает несуществующую проблему, но нашёлся красавчик, который сделал это за меня.
===
Alexander Tchitchigin:
@webreh для начала, я, безусловно, глубоко симпатизирую Вашей идее писать более декларативно и один раз — а дальше пусть компилятор работает. Но у обсуждаемой телеги есть несколько зияющих прорех, которые перекрывают весь рациональный посыл.
Во-первых, C++ — нелепо плохой пример для подражания. Ровно потому, что слишком плохо типизирован, слишком много сделано ad-hoc, а потому противоречит одно другому, обрастает костылями и в конечном счёте приводит к знаменитым километровым сообщениям об ошибках. Поэтому очень многие люди решают для себя "да ну его такое нахуй — лучше я немного кода покопипасчу, зато диагностика будет вменяемая".
Во-вторых, разбираемый пример с равенством — настолько мелкая, частная и редкая (одноразовая) задача, что ломать об неё копья просто смешно. Экономия на спичках.
В-третьих, как уже указали, идея "я умнее компилятора, я понимаю, что тут можно использовать memcmp" разбивается об ещё более хитрожопые оптимизации со стороны компилятора, начиная с банального паддинга и выравнивания в структурах. Кроме того, проблему "компилятор недостаточно умный, чтобы вставить memcmp" хотелось бы решать посредством повышения "интеллектности" компилятора, чтобы это работало для любого кода, и руками прописывать memcmp вообще не приходилось. Что находится полностью в русле изначальной концепции "хочу писать максимально декларативно".
В-четвёртых, переходим к концептуальным проблемам. 😊
Концептуальная проблема в том, что наше любимое "хочу писать декларативно, а там пусть компилятор думает" неизбежно разбивается о то, что компилятор думать не умеет. В Вашем примере оно разбивается на уровне "тегов типов", потому что оказывается, язык и компилятор всё равно не могут выразить и понять концепцию "непрерывной колеекции" и Вам придётся руками копипастить аннотации.
Т.е. всё равно в какой-то момент придётся что-то копипастить и аннотировать вручную. В Rust выбрали тот момент, который позволяет лучше проверять типы и генерировать более информативные сообщения об ошибках.
Кроме того — и это снова второй пункт — типовые инстансы замечательно генерируются дерайвами, так что уровень копипасты совпадает с "тегами типов". 🤷♀️
===
via https://t.iss.one/categories_plusplus/894
===
Alexander Tchitchigin:
@webreh для начала, я, безусловно, глубоко симпатизирую Вашей идее писать более декларативно и один раз — а дальше пусть компилятор работает. Но у обсуждаемой телеги есть несколько зияющих прорех, которые перекрывают весь рациональный посыл.
Во-первых, C++ — нелепо плохой пример для подражания. Ровно потому, что слишком плохо типизирован, слишком много сделано ad-hoc, а потому противоречит одно другому, обрастает костылями и в конечном счёте приводит к знаменитым километровым сообщениям об ошибках. Поэтому очень многие люди решают для себя "да ну его такое нахуй — лучше я немного кода покопипасчу, зато диагностика будет вменяемая".
Во-вторых, разбираемый пример с равенством — настолько мелкая, частная и редкая (одноразовая) задача, что ломать об неё копья просто смешно. Экономия на спичках.
В-третьих, как уже указали, идея "я умнее компилятора, я понимаю, что тут можно использовать memcmp" разбивается об ещё более хитрожопые оптимизации со стороны компилятора, начиная с банального паддинга и выравнивания в структурах. Кроме того, проблему "компилятор недостаточно умный, чтобы вставить memcmp" хотелось бы решать посредством повышения "интеллектности" компилятора, чтобы это работало для любого кода, и руками прописывать memcmp вообще не приходилось. Что находится полностью в русле изначальной концепции "хочу писать максимально декларативно".
В-четвёртых, переходим к концептуальным проблемам. 😊
Концептуальная проблема в том, что наше любимое "хочу писать декларативно, а там пусть компилятор думает" неизбежно разбивается о то, что компилятор думать не умеет. В Вашем примере оно разбивается на уровне "тегов типов", потому что оказывается, язык и компилятор всё равно не могут выразить и понять концепцию "непрерывной колеекции" и Вам придётся руками копипастить аннотации.
Т.е. всё равно в какой-то момент придётся что-то копипастить и аннотировать вручную. В Rust выбрали тот момент, который позволяет лучше проверять типы и генерировать более информативные сообщения об ошибках.
Кроме того — и это снова второй пункт — типовые инстансы замечательно генерируются дерайвами, так что уровень копипасты совпадает с "тегами типов". 🤷♀️
===
via https://t.iss.one/categories_plusplus/894
Telegram
Alexander Tchitchigin in Categories++
@webreh для начала, я, безусловно, глубоко симпатизирую Вашей идее писать более декларативно и один раз — а дальше пусть компилятор работает. Но у обсуждаемой телеги есть несколько зияющих прорех, которые перекрывают весь рациональный посыл.
Во-первых, C++…
Во-первых, C++…
Статья о том, как прекрасен Rust (а вы что ждали? :-))
https://matklad.github.io//2020/07/15/two-beautiful-programs.html
https://matklad.github.io//2020/07/15/two-beautiful-programs.html
matklad.github.io
Two Beautiful Rust Programs
This is a short ad of a Rust programming language targeting experienced C++ developers.
Being an ad, it will only whet your appetite, consult other resources for fine print.
Being an ad, it will only whet your appetite, consult other resources for fine print.