Αλεχ
я и не стал
კაცი
для курла достаточно ALL_PROXY экспортировать
კაცი
а через tsocks у меня что-то не захотело работать, ЕМНИП.
Αλεχ
а mptoxy не?
კაცი
шта?
Cat
Αλεχ
Маjко
Denys
Tuntz
Переносим митап в Storiqa на пятницу, 29 июня?
public poll
Да, переносим на 29-е – 10
👍👍👍👍👍👍👍 50%
@nndii, @kalloc, @iampiupiu, @skvorn, @tapok_satan, @vad_pashkov, @ins1d3, @Art_mmmm, /r/rustㅤ͏󠆷, @ugarandrey
Нет, оставляем 28-е, четверг. – 10
👍👍👍👍👍👍👍 50%
@snow1eopard, @pepyakin, @sergeysova, @zekefast, @Renyare, @fzzzr, @ialeksey, @subcommande, test, @coreyathos
👥 20 people voted so far.
Tuntz
Кое-кто из растаманов попросил перенести митап на последнюю пятницу месяца.
Денис
Латентный Бурят
Первый раз смог отменить голос, а второй раз нет. Гамно какое-то.
Tuntz
(опрос носит рекомендательный характер, последнее слово за начальством и офис-менеджером)
Маjко
В целом комменты и так всё объяснили по существу
Roma
Αλεχ
Αλεχ
не вижу ничего плохого в обсуждении
კაცი
Сергей
Нету. Кладут в вектор и делают join_all
Oleg
эхх автопревращение (F<A>, F<B>, F<C>) в F<(A, B, C)>
занудный комментатор мог бы сказать, что это называется аппликативом
Oleg
ну если есть аппликатив, это так же несложно, как и первый вариант
Oleg
это даже просто функтор
Oleg
HKT не обязательное требование для симуляции функторов
Oleg
Вон есть примеры, как их делают на темплейтах c++, где тоже нет HKP и типы не стираются. Но темплейты могут принимать темплейты в качестве параметров
Oleg
Т.е. и в расте это возможно реализуемо какими-то trait of trait
Oleg
некий трейт, который реализуется для трейтов, а не типов
Oleg
Гипотетическая возможность
Oleg
Ну или генерики, которые принимают трейты в качестве тайп-параметров
Oleg
Иными словами может без higher kinded types, но с trait types
Oleg
это совсем не то
Oleg
Это выведение одних трейтов из других, по сути рестрикшены для инстансов
Oleg
Но не значит, что менее реалистично в реализации.
HKT звучит знакомо, благодаря языкам, их популяризировавшим
Oleg
У раста другая область и он, похоже, не может себе позволить HKT в чистом виде из-за строгого контроля за аллокацией и размером
պլհկ
Как нкт связаны с аллокацией?
Oleg
Т.е. если мы делаем какой то
fn foo<A> (f: F<A>): ты знаешь что в месте вызова компилятор будет знать A может статически понять размер F<A>
Oleg
В случае если ты пишешь
fn foo <F<_>> ты не можешь сказать как и сколько раз и к каким типам применит foo внутри себя конструктор F
Oleg
это значит ты должен послать в функцию специальную формулу, которая на базе какого-то там дескриптора размера одного типа <B> сможет построить дескриптор размера производного типа F<B>
Oleg
чтобы правильно построить/уничтожить его на стеке и не только
Oleg
классический пример абузящий HKT это Free или Fix
Oleg
Free может содержать неизвестное количество обёрток F
Oleg
struct Fix<F<_>>(F<Fix<F>>) гарантированно содержит бесконечное количество обёрток F
Oleg
Это значит, что ничего ты с такими типами не реализуешь, если не потребуешь константного размера F независимо от тайп-параметра
Oleg
это не важно какой-то метод foo может содержать полиморфную рекурсию, просто вызывать себя неограниченно, каждый раз наворачивая обёртку
Oleg
fn foo<F<_>>(a: A) { .... foo::<F<A>>(...)}
Oleg
Oleg
оба варианта означают: прощай зеро кост фьючи
Αλεχ
Αλεχ
я бы щас по-другому сделал, но другоо примера под рукой нет
Vitaliy
Vitaliy
пара строк которые мне помогли врубиться, остальное примерно я также реализовал. Сейчас буду пробовать.
Αλεχ
Vitaliy
Αλεχ
отлично
Vitaliy
а я правильно понимаю, что раст пока не может с внешними библитеками работать, например с dll
Αλεχ
Vitaliy
серьёзно?
Αλεχ
ну вот у меня проект
Αλεχ
https://github.com/Pzixel/cv-rs
Αλεχ
ты думаешь я статически линкую 600мб либу?)
Vitaliy
вот для питона например я использовал что-то типа такого:
require 'win32ole'
application = WIN32OLE.new('OtAut.OtApplication')
session = application.MakeSessionEx(%Host%, %Port%, "%Login%", "%Password%", "ru")
folder = session.RequestFolders("Workgroups")
filter = folder.MakeFilter()
help = filter.setproperty('SpecialField', 'UNIQUE_ID', 26519050)
folder.Search(filter, false).each { | x | puts x.Name.encode "UTF-8"}
Αλεχ
println!("cargo:rustc-link-search=native=/usr/local/lib");
println!("cargo:rustc-link-lib=opencv_video");
Αλεχ
пишешь в build.rs
Αλεχ
https://doc.rust-lang.org/cargo/reference/build-scripts.html#outputs-of-the-build-script
Vitaliy
а у меня dll сторонняя без исходников
Αλεχ
без .lib слинковать не получится особо
Αλεχ
ну а гугл выдает такое: https://github.com/nagisa/rust_libloading
Vitaliy
тогда отпадает, либо писать свою оболочку для вызова api той библиотеки
Αλεχ
Vitaliy
да, такое я находил, пока не пробовал. Тогда добавлю в очередь.
Αλεχ
Αλεχ
https://stackoverflow.com/a/9360485/2559709
Αλεχ
типа такого