պլհկ
http://play.rust-lang.org/?gist=03c1f2a7aedfd9db3a8427251d5f73b1&version=nightly&mode=debug
պլհկ
поигрался
Αλεχ
ага, видел
Αλεχ
вопрос только - че за контекст?
Αλεχ
И как узнать, юзает ли его футура?
Αλεχ
там футуры какие-то данные между чейнами сохраняет?
Αλεχ
но это будет нечестно
Маjко
https://github.com/skrylnikov/rust-factorial/blob/master/src/main.rs почему реализация факториала на расте работает в 10 раз быстрее чем реализация факториала на лиспе?
Код не смотрел, но юзай биндинг к gmp, проблема не в расте, а в сырой реализации большой математики на расте
պլհկ
вопрос только - че за контекст?
контекст нужен для получения waker, а waker завязан на executor. посмотри toykio, станет понятнее
Маjко
можно просто захреначить с rayon и simd
Лисп юзает gmp, в gmp явно есть simd Что нечестно?
Маjко
Кстати, надо в num заPRить мой хак с постеменным переходом к более емким типам по мере необходимости. У меня это дало бешеный прирост когда надо было считать большие последовательности чисел и ощутимая доля вычислений лежала в пределах u64
պլհկ
А тойкио это что?
https://github.com/polachok/toykio (себя не попиаришь никто не попиарит)
պլհկ
правда там еще futures 0.2, а не std::future::Future, переделаю на днях
Αλεχ
он же должено под генерал цпу собирать
պլհկ
даже в расте runtime cpu feature detection есть
Αλεχ
хмм, это даже можно попробовать понять
պլհկ
https://doc.rust-lang.org/nightly/std/macro.is_x86_feature_detected.html
Маjко
он же должено под генерал цпу собирать
Фичи проца можно и в рантайме прочекать
Дмитрий
а есть примеры кода с gmp в расте?
Маjко
А async-await syntax?
Tuntz
Wait, оно уже доступно в найтли?
https://github.com/rust-lang/rust/blob/master/src/libcore/future.rs
Alena
@NIMFETRISA есть в планах клап под no_std?
Короче уточнила. Планы такие есть, но в неопределенном будущем.
Cuno
Чат, у меня проблема. Взял num-bigint, написал факториал. И в итоге он оказался в 10 раз медленнее факториал на лиспе. Как то аж неприятно
num-bigint большой тормоз. Юзай бинды к gmp или ramp если прям совсем не хочется сишных зависимостей.
Safort
https://twitter.com/maxgortman/status/1012011425353461760
Safort
Не так уж и мало там кода на Расте.
Αλεχ
попробовал gmp стало сильно быстрее. спасибо
бтв какая разница, из какого языка дергать FFI общую либу?
Αλεχ
ты хочешь для реальной работы или побенчить?
Αλεχ
и что именно ты хочешь побенчить?
Αλεχ
у кого быстрее FFI - у раста или лиспа?
Αλεχ
для этого можно пустую функцию noinline использовать
Дмитрий
у кого быстрее FFI - у раста или лиспа?
Изначальная цель спора была выяснить у кого лучше длинная арифметика. Но как-то никто не подумал что лисп юзает gmp
Дмитрий
Ну как бы да. Вот только в лиспе это дефолтное поведение, а в расте приходится биндинги юзать
Αλεχ
эм
Αλεχ
ну есть либа без биндингов
Αλεχ
просто как бы сейчас проблемы есть более насущные, чем длинная арифметика
Alexander
ага, вот прямо сейчас проблема что с монгой-дб тоже особо нечем соединиться :)
NermaN 𓅂
при использовании Arc не важно же что клонировать, оригинал или клон?
Evgεny
А Арк разве не овнит?
Alexander
вопрос: есть dt_from_string, возвращает chrono::DateTIme<FixedOffset> есть pub struct DateTimeUtcBin(pub DateTime<Utc>); я вызываю DateTimeUtcBin(dt_from_string('...')) в одном месте и всё собирается и работает
Alexander
вопрос: как это так?
Alexander
пытаюсь сделать это в другом месте и оно мне говорит: 150 | let time = DateTimeUtcBin(bbot::dt_from_string(&tstr)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct chrono::Utc, found struct chrono::FixedOffset | = note: expected type chrono::DateTime<chrono::Utc> found type chrono::DateTime<chrono::FixedOffset>
Pavel
факт того что вроде как разница только в просто другом месте. то указав больше деталей про оба места, как они сконфигурированы, как скоуп можно увеличить шансы получить дельный ответ. иначе выглядит как вопрос к оракулам и прочим подвидам экстрасенсов. а они как правило в отпуске
Alexander
Согласен. К сожалению весь код выкатить не могу. Одно - в модуле крейта , другое - в бинарнике.
Alexander
Тогда можно просто вопрос: как оно вообще работает там где работает - надо from искать?
Маjко
Ну загляни в крейт хроно и посмотри что такое UTC
Alexander
Ну так я знаю - но как оно само преобразуется в первом случае - через into или from?
Маjко
Кнопощка src
Маjко
Если не поможет, я гляну через часик, как дома буду. Но я, если честно, не понял твой вопрос. Напиши минимальный пример на плейграунд, может в процессе сам разберешься, к тому же)
NermaN 𓅂
Я разбирался пока писал туда =)
Alexander
Ну да, спасибо, я ещё позже поковыряюсь. Просто что-то магия какая-то показалось. Какими-то обходными путями решил, но пока так и не понял.
Alexander
Смотрю сюда и никакого трейта from или into в упор не вижу https://docs.rs/chrono/0.3.0/chrono/datetime/struct.DateTime.html
Маjко
Смотрю сюда и никакого трейта from или into в упор не вижу https://docs.rs/chrono/0.3.0/chrono/datetime/struct.DateTime.html
Если тебе везде нужен FixedOffset, там есть методы парсинга для него
Alexander
Да не. У меня функция которая возвращает fixed, но потом я этот fixed просто кладу в обёртку у которой внутри utc и оно прекрасно это сжевало в крейте.
Маjко
Так не бывает)
Маjко
Мб версии chrono у либы и крейта разные подклбчены
Alexander
Ну я бы в чате не писал бы если б сам не офигел :)
Alexander
Мб версии chrono у либы и крейта разные подклбчены
Ну это в одном проекте, странно, но я проверю.
Victor
Господа! Подскажите если кто в курсе. Очень хочу запилить свой futures::Stream и нихрена не могу придумать как сделать нотификацию правильно чтоб экзекутор просыпался после того как получил на poll() Ok(Async::NotReady). Если где-то вменяемый пример кто видел или что-то по теме прошу направить на путь истинный.
Alexander
Дурацкий вопрос: а from/into умеет сам применяться иногда автоматически? Или я сам такое нафантазировал.
Victor
так.. там я ещё не смотрел вроде %) спасибо.
Alexander
вопрос: есть dt_from_string, возвращает chrono::DateTIme<FixedOffset> есть pub struct DateTimeUtcBin(pub DateTime<Utc>); я вызываю DateTimeUtcBin(dt_from_string('...')) в одном месте и всё собирается и работает
В общем я тогда не понимаю как оно компится, надо видимо поспать и потом ещё раз посмотреть, вдруг приснилось :)