Size: a a a

2020 May 19

G

Gymmasssorla in rust_offtopic
С async drop?
источник

G

Gymmasssorla in rust_offtopic
Кстати, а async drop можно было сделать на старых футурах?
источник

AL

Arsenii Lyashenko in rust_offtopic
Gymmasssorla
Какой?
Я теперь не найду
источник

Т8

Т-34 85 in rust_offtopic
Сишные макросы из Rust никак не заюзать, да? Только структуры, функции, енумы и юнионы?
источник

G

Gymmasssorla in rust_offtopic
Т-34 85
Сишные макросы из Rust никак не заюзать, да? Только структуры, функции, енумы и юнионы?
И macro_rules!, и процедурные
источник

Т8

Т-34 85 in rust_offtopic
Gymmasssorla
И macro_rules!, и процедурные
Не понял. Я просто обдумывал, как можно было бы написать такое обовщённое программирование над Си, чтобы его можно было байндить в других языках. Похоже, макросы отпадают... А что остаётся - дженерики а-ля java?
источник

Т8

Т-34 85 in rust_offtopic
Type erasure
источник

G

Gymmasssorla in rust_offtopic
Обобщённое программирование определённо не стоит делать на макросах )))
источник

Т8

Т-34 85 in rust_offtopic
Gymmasssorla
Обобщённое программирование определённо не стоит делать на макросах )))
А какие ещё есть варианты? У Си не так много возможностей. Плюс я хочу, чтобы было это удобно байндить в других языках, включая Rust и Python
источник

Т8

Т-34 85 in rust_offtopic
Ну, и C++, конечно
источник

G

Gymmasssorla in rust_offtopic
Т-34 85
А какие ещё есть варианты? У Си не так много возможностей. Плюс я хочу, чтобы было это удобно байндить в других языках, включая Rust и Python
Встроить в систему типов, как делают все нормальные языки. Выдавай мономорфизированный Си как выхлоп
источник

Т8

Т-34 85 in rust_offtopic
Gymmasssorla
Встроить в систему типов, как делают все нормальные языки. Выдавай мономорфизированный Си как выхлоп
Это, в смысле, в выхлопе будут инстанцированные копии?
источник

G

Gymmasssorla in rust_offtopic
Да. Это называется мономорфизацией
источник

Т8

Т-34 85 in rust_offtopic
Gymmasssorla
Да. Это называется мономорфизацией
А, спасибо. Нет, такой вариант не катит, тот, кто будет писать байдинги, охренеет
источник

G

Gymmasssorla in rust_offtopic
Т-34 85
А, спасибо. Нет, такой вариант не катит, тот, кто будет писать байдинги, охренеет
А от макросов сишных не охренеет?))
Там очень нетривиальные случаи бывают
источник

Т8

Т-34 85 in rust_offtopic
Gymmasssorla
А от макросов сишных не охренеет?))
Там очень нетривиальные случаи бывают
Беда макросов даже не в том, что охренеет. В принципе через них не получится - они не представлены бинарно. В dll их нет, грубо говоря.
источник

DS

Doge Shibu in rust_offtopic
Т-34 85
Беда макросов даже не в том, что охренеет. В принципе через них не получится - они не представлены бинарно. В dll их нет, грубо говоря.
Всё, пора признать, что если мы делаем новый язык в 2020м, то нафиг нужны dll, только whole program optimization, только статическая линковка и cross-lang lto повсюду.

А для тех случаев, где хочется динамически слинковаться, C ABI обёртку и погнали.
источник

DS

Doge Shibu in rust_offtopic
Если хочется динамической линковки и не сишного АБИ, вам в управляемые языки, типа джавы и шарпа
источник

Т8

Т-34 85 in rust_offtopic
Doge Shibu
Всё, пора признать, что если мы делаем новый язык в 2020м, то нафиг нужны dll, только whole program optimization, только статическая линковка и cross-lang lto повсюду.

А для тех случаев, где хочется динамически слинковаться, C ABI обёртку и погнали.
А где захочется слинковаться - там будут серьёзные проблемы. А ты думал почему у gtk с байндингами лучше, чем у qt?
источник

DS

Doge Shibu in rust_offtopic
Т-34 85
А где захочется слинковаться - там будут серьёзные проблемы. А ты думал почему у gtk с байндингами лучше, чем у qt?
Динамическая линковка сейчас уже достаточно сомнительно выглядит в большом числе случаев
источник