Tux, [26.07.19 09:05]
помогите с лайфтаймами разобраться
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=eb8c22ce3b9df236f9da7e35861bb053
Дмитрий Беляев, [26.07.19 10:20]
[In reply to Tux]
мне кажется из Shared::get_ref не получится вернуть ссылку
так как владелец сдохнет по ее завершении
Andrey @ozkriff Lesnikov, [26.07.19 10:26]
да, там lock() мьютекса возвращает гард, который по определению локальный и в этом его смысл. так что прямо так взять и вернуть ссылку вовне нельзя и так и должно быть. в чем сама решаемая задача?
Tux, [26.07.19 10:31]
[In reply to Andrey @ozkriff Lesnikov]
хочу избавиться от статик (который глобальная переменная) синглтона
Tux, [26.07.19 10:34]
и везде его через arc+mutex передавать. и хочется при этом сохранить красивый api, чтобы без кишок типа мьютекса наружу. как в actix контекст в Data передается
помогите с лайфтаймами разобраться
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=eb8c22ce3b9df236f9da7e35861bb053
Дмитрий Беляев, [26.07.19 10:20]
[In reply to Tux]
мне кажется из Shared::get_ref не получится вернуть ссылку
так как владелец сдохнет по ее завершении
Andrey @ozkriff Lesnikov, [26.07.19 10:26]
да, там lock() мьютекса возвращает гард, который по определению локальный и в этом его смысл. так что прямо так взять и вернуть ссылку вовне нельзя и так и должно быть. в чем сама решаемая задача?
Tux, [26.07.19 10:31]
[In reply to Andrey @ozkriff Lesnikov]
хочу избавиться от статик (который глобальная переменная) синглтона
Tux, [26.07.19 10:34]
и везде его через arc+mutex передавать. и хочется при этом сохранить красивый api, чтобы без кишок типа мьютекса наружу. как в actix контекст в Data передается
doc.rust-lang.org
MutexGuard in std::sync - Rust
An RAII implementation of a “scoped lock” of a mutex. When this structure is dropped (falls out of scope), the lock will be unlocked.
Stanislav Popov:
врёти что хаскель простой. там такие нагромождения, просто ад
тайп фемелис, линейные типы, миллион экстеншенов, миллион фиксов позволяющих делать чтото для чего то что раньше не делалось
λeonid Onokhov:
линейных типов ещё нет
почти все экстеншены считай что просто часть языка
Stanislav Popov:
ну я вот это прочитал https://gist.github.com/klapaucius/8fc2fbb48606e6dd9a9a095898e3fac4
врёти что хаскель простой. там такие нагромождения, просто ад
тайп фемелис, линейные типы, миллион экстеншенов, миллион фиксов позволяющих делать чтото для чего то что раньше не делалось
λeonid Onokhov:
линейных типов ещё нет
почти все экстеншены считай что просто часть языка
Stanislav Popov:
ну я вот это прочитал https://gist.github.com/klapaucius/8fc2fbb48606e6dd9a9a095898e3fac4
Gist
9.2
9.2. GitHub Gist: instantly share code, notes, and snippets.
λоλторт:
задачи на собеседованиях помогают понять, умеет ли человек своей головой думать
в этом плане для интервьюера даже лучше, если человек изначально решения не знает
тогда можно проследить ход мыслей собеседуемого
Слава:
А интервьюер сам умеет, или его сюда по иному принципу взяли?
С одной стороны, я как бы за академичность, с другой - ну-ка, суки, давайте-ка выкиньте тогда Линукс и прочую инженерию в духе "good enough", которой вы так радостно пользуетесь (особенно мыскль). И переходите на FreeBSD, а то и на Hurd. Будьте последовательны.
Охуенный подход. Спрашивать человека о том, чего он гарантированно не знает. А вы кого берете-то, и в курсе ли вы, как работает человеческое мышление в моменты делания чего либо?
Если не в курсе, поясняю: человек делает то, что он умеет делать, и делает это так, как он умеет делать. Именно поэтому все успешные языки похожи на сраную сишечку - потому что её умеют программисты, те, что есть. Именно поэтому так популярен питон - его студентишки учат, а потом сразу его знают и пишут на нем километры кода на своей дата сцаенс работе. И поэтому же js жил, жив и жить будет - его уже умеют. То есть, более продуктивным и разумным возможно было бы заявить "так, программистишки, с завтрашнего дня начинаем учить Окамл, и будет на нем писать под браузер (компилируя в js)". Но этого никто не делает, потому что знают - подход не взлетит. А на собеседованиях глумиться - это как здрасьте. Я полагаю, что это от природного мазохизма физматов - в то время, как будущие юристы трахали одноклассниц и одноклассников, физматы учились, вот и привыкли к долготерпению и страданиям.
Откуда ты знаешь, ты собеседовал, и проводил допросы достаточного количества собеседующих?
задачи на собеседованиях помогают понять, умеет ли человек своей головой думать
в этом плане для интервьюера даже лучше, если человек изначально решения не знает
тогда можно проследить ход мыслей собеседуемого
Слава:
А интервьюер сам умеет, или его сюда по иному принципу взяли?
С одной стороны, я как бы за академичность, с другой - ну-ка, суки, давайте-ка выкиньте тогда Линукс и прочую инженерию в духе "good enough", которой вы так радостно пользуетесь (особенно мыскль). И переходите на FreeBSD, а то и на Hurd. Будьте последовательны.
Охуенный подход. Спрашивать человека о том, чего он гарантированно не знает. А вы кого берете-то, и в курсе ли вы, как работает человеческое мышление в моменты делания чего либо?
Если не в курсе, поясняю: человек делает то, что он умеет делать, и делает это так, как он умеет делать. Именно поэтому все успешные языки похожи на сраную сишечку - потому что её умеют программисты, те, что есть. Именно поэтому так популярен питон - его студентишки учат, а потом сразу его знают и пишут на нем километры кода на своей дата сцаенс работе. И поэтому же js жил, жив и жить будет - его уже умеют. То есть, более продуктивным и разумным возможно было бы заявить "так, программистишки, с завтрашнего дня начинаем учить Окамл, и будет на нем писать под браузер (компилируя в js)". Но этого никто не делает, потому что знают - подход не взлетит. А на собеседованиях глумиться - это как здрасьте. Я полагаю, что это от природного мазохизма физматов - в то время, как будущие юристы трахали одноклассниц и одноклассников, физматы учились, вот и привыкли к долготерпению и страданиям.
Откуда ты знаешь, ты собеседовал, и проводил допросы достаточного количества собеседующих?
Forwarded from Nick Ivanych
Неа, ничо там не исправляли.
Вот pijul, как раз, и есть почти что darcs (какой-то одной фичи не хватает), но с оптимальными алгоритмами.
Вот pijul, как раз, и есть почти что darcs (какой-то одной фичи не хватает), но с оптимальными алгоритмами.
Forwarded from Nick Ivanych
However, Pijul's pristine format was designed to comply with axioms on a specific set of operations only.
As a result, some of darcs' features, such as darcs replace, are not (yet) available.
https://pijul.org/manual/why_pijul.html
As a result, some of darcs' features, such as darcs replace, are not (yet) available.
https://pijul.org/manual/why_pijul.html
Forwarded from Sergey Sverdlov
И по-русски: https://habr.com/ru/company/mailru/blog/461321/
Хабр
Модели дженериков и метапрограммирования: Go, Rust, Swift, D и другие
В некоторых сферах программирования нормально хотеть написать такую структуру данных или алгоритм, которые могут работать с элементами разных типов. Например, с...
Forwarded from Денис
при этом
for element in a.iter() {
println!("the value is: {}", element);
}
полностью эквивалентноlet mut iter = a.iter();
while let Some(element) = iter.next() {
println!("the value is: {}", element);
}Am i imagining it, or is this a reincarnation of an old soundness hole in Java's type system, which also hinged on uninstantiable witness types:
https://stedolan.net/java-unsoundness/
https://stedolan.net/java-unsoundness/
Timofey Zakrevskiy, [28.07.19 17:16]
А можно перевод на человеческий - откуда слово final в final encoding?
Nick Ivanych, [28.07.19 17:17]
[In reply to Timofey Zakrevskiy]
Можно считать, что ниоткуда.
Что-то типаа "другое представление, чем initial".
Timofey Zakrevskiy, [28.07.19 17:18]
Initial == явные конструкторы?
Nick Ivanych, [28.07.19 17:18]
[In reply to Timofey Zakrevskiy]
типатого.
Timofey Zakrevskiy, [28.07.19 17:19]
А где тогда Чёрч в этом спектре?
Timofey Zakrevskiy, [28.07.19 17:20]
И, идя по стопам Кантора, есть ли представление между initial и final?
Nick Ivanych, [28.07.19 17:24]
[In reply to Timofey Zakrevskiy]
Скорее всего, вы имеете в виду Бёма-Берардуччи.
И "где" он, я чотта даже и не знаю, что ответить ;-)
И что такое "между" ;-)
Это не есть какая-то линия, вдоль которой всё выстраивается.
Kirill Valyavin, [28.07.19 17:24]
[In reply to Timofey Zakrevskiy]
final — финальное представление, т. е. такое, которое уже не надо интерпретировать. Сразу семантика
Nick Ivanych, [28.07.19 17:29]
[In reply to Timofey Zakrevskiy]
Олег сказал "We call this approach final (in contrast to initial) because we represent each object term not by its abstract syntax, but by its denotation in a semantic algebra"
А можно перевод на человеческий - откуда слово final в final encoding?
Nick Ivanych, [28.07.19 17:17]
[In reply to Timofey Zakrevskiy]
Можно считать, что ниоткуда.
Что-то типаа "другое представление, чем initial".
Timofey Zakrevskiy, [28.07.19 17:18]
Initial == явные конструкторы?
Nick Ivanych, [28.07.19 17:18]
[In reply to Timofey Zakrevskiy]
типатого.
Timofey Zakrevskiy, [28.07.19 17:19]
А где тогда Чёрч в этом спектре?
Timofey Zakrevskiy, [28.07.19 17:20]
И, идя по стопам Кантора, есть ли представление между initial и final?
Nick Ivanych, [28.07.19 17:24]
[In reply to Timofey Zakrevskiy]
Скорее всего, вы имеете в виду Бёма-Берардуччи.
И "где" он, я чотта даже и не знаю, что ответить ;-)
И что такое "между" ;-)
Это не есть какая-то линия, вдоль которой всё выстраивается.
Kirill Valyavin, [28.07.19 17:24]
[In reply to Timofey Zakrevskiy]
final — финальное представление, т. е. такое, которое уже не надо интерпретировать. Сразу семантика
Nick Ivanych, [28.07.19 17:29]
[In reply to Timofey Zakrevskiy]
Олег сказал "We call this approach final (in contrast to initial) because we represent each object term not by its abstract syntax, but by its denotation in a semantic algebra"
Vyacheslav Shebanov:
Дженерики это кусок системы типов
Важный
На эту тему очень интересный пейпер https://lucacardelli.name/Papers/OnUnderstanding.A4.pdf
On Understanding Types,
Data Abstraction, and Polymorphism
Alexander Tchitchigin:
Нет системы типов - нет проблемы. Динамические языки (Terra в том числе) этим пользуются, заменяя генерики макросами, например.
Кроме того, насколько я могу судить, генерики в смысле параметрического полиморфизма трудно подружить с ad-hoc полиморфизмом и наследованием. Нет наследования - тоже нет проблем.
Дженерики это кусок системы типов
Важный
На эту тему очень интересный пейпер https://lucacardelli.name/Papers/OnUnderstanding.A4.pdf
On Understanding Types,
Data Abstraction, and Polymorphism
Alexander Tchitchigin:
Нет системы типов - нет проблемы. Динамические языки (Terra в том числе) этим пользуются, заменяя генерики макросами, например.
Кроме того, насколько я могу судить, генерики в смысле параметрического полиморфизма трудно подружить с ad-hoc полиморфизмом и наследованием. Нет наследования - тоже нет проблем.
https://t.iss.one/rust_offtopic/52333
Bogdan:
Юзай крейт webview
Правда чуваки обычно его форкают, и что-то добавлют свое, те кто юзает.
Работает очень классно. Весит ехе мало, проц не нагружает, как электрон.
Из минусов, под разными OS разный рендер, под виндой Edge, под линухой gtk-webkit, под макосью чет 3е, не помню что
Пример
https://github.com/Freaky/Compactor
Bogdan:
Юзай крейт webview
Правда чуваки обычно его форкают, и что-то добавлют свое, те кто юзает.
Работает очень классно. Весит ехе мало, проц не нагружает, как электрон.
Из минусов, под разными OS разный рендер, под виндой Edge, под линухой gtk-webkit, под макосью чет 3е, не помню что
Пример
https://github.com/Freaky/Compactor
Telegram
Bogdan in rust_offtopic
Юзай крейт webview
Правда чуваки обычно его форкают, и что-то добавлют свое, те кто юзает.
Работает очень классно. Весит ехе мало, проц не нагружает, как электрон.
Правда чуваки обычно его форкают, и что-то добавлют свое, те кто юзает.
Работает очень классно. Весит ехе мало, проц не нагружает, как электрон.
https://t.iss.one/rust_offtopic/52353
Bogdan:
не хватает контекстной инфы, кстати, в ошибках хруста
какого-то аналога стектрейса
Alex Ilizarov:
А я видел крейт который эту проблему решает
Bogdan:
хотя-бын омер стороки где ьросили а в идеале в каждом месте вызова ? добавлять строку текущую в список
Alex Ilizarov:
https://github.com/mitsuhiko/better-panic
Bogdan:
не хватает контекстной инфы, кстати, в ошибках хруста
какого-то аналога стектрейса
Alex Ilizarov:
А я видел крейт который эту проблему решает
Bogdan:
хотя-бын омер стороки где ьросили а в идеале в каждом месте вызова ? добавлять строку текущую в список
Alex Ilizarov:
https://github.com/mitsuhiko/better-panic
Telegram
Bogdan in rust_offtopic
не хватает контекстной инфы, кстати, в ошибках хруста