История изменений
Исправление witaway, (текущая версия) :
А интероп про который ты говоришь, это не ABI вообще, а API
Подожди. Ясное дело, что обёртка, которую ты пишешь на другом языке это API. Но разве в процессе самого импорта методов в другой язык он не должен знать внутренние соглашения и структуры языка целевой библиотеки? Это, сколько понимаю, тоже вопрос ABI.
Если правильно понимаю твои слова, я могу вообще без каких-либо экстернов писать библиотеку на расте, на плюсах - и импортить в си, питоны, шарпы и обратно плюсы да расты. Не всё ведь так просто. Вроде бы сишные соглашения и интерфейсы нынче считаются стандартными, если хочешь бесплатный интероп откуда захочешь.
В тех же самых растах, я глянул, нужно для этого писать
#[no_mangle]
pub extern "C" fn rust_function() -> i32 {
42
}
Тем более, если линковка у нас не статическая, а динамическая…
Честно, я до конца не вдупляю до конца твою мысль.
Исправление witaway, :
А интероп про который ты говоришь, это не ABI вообще, а API
Подожди. Ясное дело, что обёртка, которую ты пишешь на другом языке это API. Но разве в процессе самого импорта методов в другой язык он не должен знать внутренние соглашения и структуры языка целевой библиотеки? Это, сколько понимаю, тоже вопрос ABI.
Если правильно понимаю твои слова, я могу вообще без каких-либо экстернов писать библиотеку на расте, на плюсах - и импортить в си, питоны, шарпы и обратно плюсы да расты. Не всё ведь так просто. Вроде бы сишные соглашения и интерфейсы нынче считаются стандартными, если хочешь бесплатный интероп откуда захочешь.
В тех же самых растах, я глянул, нужно для этого писать
#[no_mangle]
pub extern "C" fn rust_function() -> i32 {
42
}
Тем более, если линковка у нас не статическая, а динамическая…
Честно, я до конца не вдупляю до конца твою мысль.
Исходная версия witaway, :
А интероп про который ты говоришь, это не ABI вообще, а API
Подожди. Ясное дело, что обёртка, которую ты пишешь на другом языке это API. Но разве в процессе самого импорта методов в другой язык он не должен знать внутренние соглашения и структуры языка целевой библиотеки? Это, сколько понимаю, тоже вопрос ABI.
Если правильно понимаю твои слова, я могу вообще без каких-либо экстернов писать библиотеку на расте, на плюсах - и импортить в си, питоны, шарпы и обратно плюсы да расты. Не всё ведь так просто. Вроде бы сишные соглашения и интерфейсы нынче считаются стандартными, если хочешь бесплатный интероп откуда захочешь.
Тем более, если линковка у нас не статическая, а динамическая…
Честно, я до конца не вдупляю до конца твою мысль.