Про слабые стороны Rust...
От: Shmj Ниоткуда  
Дата: 14.02.22 08:58
Оценка:
Уже была моя тема про Rust как замену C++
Автор: Shmj
Дата: 08.12.19
.

Вопрос такой. Почему так мало написано про возможность из Rust использовать системные вызовы (API операционных систем) и существующие библиотеки на C/C++? Насколько хорошо там все — не будет ли проблем, что есть некая библиотека C++ и хрен знает как ее полноценно использовать из Rust?

Так же еще вопрос. Можно ли на Rust написать библиотеку и потом вызвать ее из Assembler-а, как это делается с C библиотеками? Какая интеграция с Assembler?

Кто интересовался?
Re: Про слабые стороны Rust...
От: T4r4sB Россия  
Дата: 14.02.22 08:59
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Уже была моя тема про Rust как замену C++
Автор: Shmj
Дата: 08.12.19
.


S>Вопрос такой. Почему так мало написано про возможность из Rust использовать системные вызовы (API операционных систем) и существующие библиотеки на C/C++? Насколько хорошо там все — не будет ли проблем, что есть некая библиотека C++ и хрен знает как ее полноценно использовать из Rust?


S>Так же еще вопрос. Можно ли на Rust написать библиотеку и потом вызвать ее из Assembler-а, как это делается с C библиотеками? Какая интеграция с Assembler?


S>Кто интересовался?


Вызывать С++ из Руста нельзя. Всё остальное (включая вызов С, а значит и всего системного АПИ) можно.
Re: Про слабые стороны Rust...
От: vsb Казахстан  
Дата: 14.02.22 09:37
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Вопрос такой. Почему так мало написано про возможность из Rust использовать системные вызовы (API операционных систем) и существующие библиотеки на C/C++?


А что тут писать? Любой язык позволяет вызывать код на С (не С++).

> Насколько хорошо там все — не будет ли проблем, что есть некая библиотека C++ и хрен знает как ее полноценно использовать из Rust?


Конечно же будет. Любую библиотеку на С++ можно использовать в других языках через обёртку на С и никак иначе. Как ты себе представляешь использование какого-нибудь буста в другом ЯП?

S>Так же еще вопрос. Можно ли на Rust написать библиотеку и потом вызвать ее из Assembler-а, как это делается с C библиотеками? Какая интеграция с Assembler?


Можно. Любой язык позволяет вызывать код на С. И любой язык позволяет вызывать себя как код на С.
Отредактировано 14.02.2022 9:38 vsb . Предыдущая версия .
Re[2]: Про слабые стороны Rust...
От: wl. Россия  
Дата: 14.02.22 09:38
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Вызывать С++ из Руста нельзя.


Разве нельзя? Вспоминается, классы Qt как-то через задний проход использовались в Rust (что-то вроде этого https://github.com/woboq/qmetaobject-rs )
Отредактировано 14.02.2022 9:41 wl. . Предыдущая версия .
Re: Про слабые стороны Rust...
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.02.22 09:39
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Так же еще вопрос. Можно ли на Rust написать библиотеку и потом вызвать ее из Assembler-а, как это делается с C библиотеками? Какая интеграция с Assembler?


Из ассемблера можно что угодно позвать, если оно компилируется в нативный код. Но соглашения о вызовах могут быть неочевидными и плохо документированными.
Re[2]: Про слабые стороны Rust...
От: Shmj Ниоткуда  
Дата: 14.02.22 09:43
Оценка:
Здравствуйте, Pzz, Вы писали:

S>>Так же еще вопрос. Можно ли на Rust написать библиотеку и потом вызвать ее из Assembler-а, как это делается с C библиотеками? Какая интеграция с Assembler?


Pzz>Из ассемблера можно что угодно позвать, если оно компилируется в нативный код. Но соглашения о вызовах могут быть неочевидными и плохо документированными.


Вот об этом и речь — насколько оно предусмотрено, не столкнешься ли с трудностями на практике, если вдруг понадобится.
Re: Про слабые стороны Rust...
От: sergii.p  
Дата: 14.02.22 09:46
Оценка: 2 (1)
Здравствуйте, Shmj, Вы писали:

S>Кто интересовался?


https://habr.com/ru/post/257687/

еще в rust book целая глава посвящена вызову rust кода извне https://kgv.gitbooks.io/rust_book_ru/content/src/rust-inside-other-languages.html
Re[3]: Про слабые стороны Rust...
От: T4r4sB Россия  
Дата: 14.02.22 09:55
Оценка:
Здравствуйте, wl., Вы писали:

wl.>Здравствуйте, T4r4sB, Вы писали:


TB>>Вызывать С++ из Руста нельзя.


wl.>Разве нельзя?


Даже С++ из С++ вызывать нельзя если скомпилировано разными компиляторами.
Re[3]: Про слабые стороны Rust...
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.02.22 11:26
Оценка:
Здравствуйте, Shmj, Вы писали:

Pzz>>Из ассемблера можно что угодно позвать, если оно компилируется в нативный код. Но соглашения о вызовах могут быть неочевидными и плохо документированными.


S>Вот об этом и речь — насколько оно предусмотрено, не столкнешься ли с трудностями на практике, если вдруг понадобится.


Столкнешься, конечно. На то они и трудности, чтобы их решать. Я только не очень понимаю, зачем тебе звать руст из ассемблера.
Re: Про слабые стороны Rust...
От: alex_public  
Дата: 14.02.22 12:23
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Вопрос такой. Почему так мало написано про возможность из Rust использовать системные вызовы (API операционных систем) и существующие библиотеки на C/C++? Насколько хорошо там все — не будет ли проблем, что есть некая библиотека C++ и хрен знает как ее полноценно использовать из Rust?


Системные вызовы — можно, причём нативно (а не как в других языках, через обёртки)
Библиотеки на C — можно, причём нативно (а не как в других языках, через обёртки)
Библиотеки на C++ — в теории можно, но на практике нельзя (и на практике это нельзя ни из каких других языков)

S>Так же еще вопрос. Можно ли на Rust написать библиотеку и потом вызвать ее из Assembler-а, как это делается с C библиотеками? Какая интеграция с Assembler?


Можно. И из Ассемблера и из C и из C++ и из Python и т.д. )))
Re[4]: Про слабые стороны Rust...
От: удусекшл  
Дата: 14.02.22 12:31
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Столкнешься, конечно. На то они и трудности, чтобы их решать. Я только не очень понимаю, зачем тебе звать руст из ассемблера.


Он, как обычно, мается дурью
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.