doc
это 99% кода
Dan
причем тут хаки
Dan
такой же кейс с интеграцией с менее безопасным языком
Dan
какая разница ts<->js, или rust<->c
doc
да притом - ты говоришь что можно везде все обойти. да можно. но я ниче не собираюсь обходить. я просто стандартно юзаю код и хочу получать те гарантии, которые уазал
Dan
кстати я читал что есть плагин для флоу который обмазывает весь сгенренный код проверками типов, тебе типа такое нужно?:)
doc
в ts с этим получше чем в питоне, но тоже не ахти
doc
Loyd
Dan
я на haxe подобную проблему решал макро-генерацией рантайм-проверок для тех частей которые смотрят наружу (то же самое что проверка пользовательского вода по сути) - нормальная тема
Loyd
Loyd
Без проверки тега типа он тоже не даст кастануть ничего
Anonymous
но ансейф не трогает систему типов
Loyd
Loyd
И где твои гарантии?
Loyd
Dan
май поинт экзактли
Loyd
На вход дерьмо, на выходе нормальный тип.
Anonymous
Loyd
С т.з. анализатора это обещание
Cuno
И где твои гарантии?
Чтобы ее дернуть из си тебе придется написать ffi обертку. Т.е. опустить интерфейс до сишного уровня, а там уже сишный компилятор разберется с гарантиями.
Loyd
Чтобы дёрнуть из js функцию ts/flow тебе придётся экспортировать из модуля её
Loyd
Не велика разница
Loyd
Да и в теории дёрнуть mangle-нную функцию можно )
Cuno
экспортировать и "сконвертить интерфейс" - по-моему, огромная
Cuno
можно, но это прямой выстрел в ногу
doc
мне кажется вы стали забывать про WriteProcessMemory
Loyd
doc
и никаких оберток не надо)
Loyd
xd
doc
кароче пойду дальше вебпетуханить на небезопасных языках
Cuno
откуда наплыв?
Anonymous
что transmute
система типов работает так же как и обычно даже с ним ведь
Mykyta
Мелькнула ссылка в чате beerjs :) всем привет, да
Loyd
Эй нет. Взять тот flow, где можно один объект замаппить в другой через $ObjMap. Вот это типобезопасно. В расте тебе нужен будет transmute
Loyd
Ну, тут двоякий вопрос
Loyd
Что есть тип
Loyd
Если всё мн-во значений, которое в памяти может лежать в этом месте укладывается в тип, то в каком-то смысле "да".
Loyd
Имеет ли это смысл — вряд ли, но может быть типобезопасно
Loyd
В общем случае, конечно, это не так
Anonymous
Anonymous
ты же сам просишь это сделать
Cuno
да
Ты точно JS'ер а не сишник?
Anonymous
что
Loyd
То
Loyd
Вот есть у тебя структурка, где ссылка есть
Loyd
И есть структурка (под тем же layout-ом, конечно), но с usize, условно
Anonymous
какая разница?
Anonymous
у нас логика системы типов не ломается
Loyd
Конвертация нихуя не типобезопасна из-за (1) семантики ссылки (указывает на валидную для программы область памяти) и (2) не всё мн-во значений структуры может быть представлено в виде ссылке (нулевой указатель)
պլհկ
https://github.com/sharkdp/hyperfine
Loyd
* Не увидел разницы в батарейке
Loyd
Так-то на глаз видно ускорение
Loyd
Так-то ноут, встроенная интоловская
Маjко
Я к тому же
Маjко
Невидия жрет
Маjко
Интел не особо
Loyd
Ну, потому что и карточки у интела "не особо" =) обывательские. Ну, оно и правильно
Alexander
Добрый вечер. Подскажите пожалуйста как бы правильнее осуществить следующее: в crate есть две функции: f1 и f2. process_f из этого же модуля использует f1. Есть код main.rs. Я хочу скомпилировать два бинарника main1 и main2, чтобы один комп лился с крейтом используя f1, а другой f2
պլհկ
src/bin
պլհկ
1.rs 2.rs
Alexander
Наверное получается два вопроса:1) как в bin секции задать feature?
պլհկ
պլհկ
?
Alexander
Смутило что там модули указываются, а не фичи типа : variant=v1 или v2
պլհկ
Не совсем понятно какую задачу решаете
Alexander
Я выше описал - хочу генерить бинарники, чтобы проверять использование разных функций их своей же crate
strcpy
не понятно
Alexander
required-features вроде то, сейчас пытаюсь понять как задать значение feature
Alexander
Я хочу ввесьи фичу, чтобы она использовала функцию f1 или f2 в крейте
Alexander
И потом собрать бинарники , чтоб один собирался с фичей для f1, а другой для f2
Alexander
Ну или просто разные определения f
պլհկ
Почему просто не передать f1 или f2 в process
Alexander
Я об этом думал изначально. Но для этого надо чтоб было два файла в bin/
Alexander
И они ничем не будут отличаться кроме передачи разной функции в process