Size: a a a

Programming Offtop

2020 October 25

VP

Vladimir Petrakovich in Programming Offtop
Ilmir
Нет. АБИ определяется всем юнитом компиляции. Потому что можно объявить что-то типа extern int errno и пользоваться без #include <errno.h>.
То есть выхлоп компилятора c++ - это всегда готовый бинарник?
источник

AN

Alexander Nozik in Programming Offtop
это не сюда, это к админам
источник

с#

саша сок #KotlinGang... in Programming Offtop
Alexander Nozik
это не сюда, это к админам
так меня не задевает, просто смешно)
источник

AN

Alexander Nozik in Programming Offtop
Vladimir Petrakovich
То есть выхлоп компилятора c++ - это всегда готовый бинарник?
Это объектный файл, который линкуется.
источник

с#

саша сок #KotlinGang... in Programming Offtop
Alexander Nozik
это не сюда, это к админам
он зачем-то написал "обфусцировать (запутать код)", а потом меня дебилом назвал :)
источник

AN

Alexander Nozik in Programming Offtop
Короче, бинарник с сырыми ссылками. Но суть в том, что нет никакой пофайловой компилляции.
источник

VP

Vladimir Petrakovich in Programming Offtop
Alexander Nozik
Это объектный файл, который линкуется.
Со всем кодом не на с++, так?
источник

AN

Alexander Nozik in Programming Offtop
Vladimir Petrakovich
Со всем кодом не на с++, так?
У всех современных языков есть та или иная модуляризация ( минус С++, минус питон). Там можно компилить по модулям.
источник

AN

Alexander Nozik in Programming Offtop
В с++ надо искуственно исходники нарезать на разные проекты и компилить их по отдельности, а потом статически линковать
источник

I

Ilmir in Programming Offtop
Alexander Nozik
Обертка - это элемент тулинга. В частности она дает тебе авто-подстановку и прочие радости. Ты очень редко когда можешь сделать так, чтобы семантика одного языка напрямую транслировалась в семантику другого
// Здесь был огромный rant на тему современного состояния разработки языков программирования, который я уместил в одно предложение: разработка языков - дикий запад.

Так если обёртку можно сгенерировать автоматически, значит ли это, что семантику можно автоматически отмапировать? Можно ли тогда обойтись без генерации обёртки?

Если же обёртку нельзя сгенерировать автоматически, то adoption языка будет сосать. Потому что использовать чужие библиотеки тогда будет очень сложно. Придётся писать обёртки на каждый чих. Руками, ага.
источник

AN

Alexander Nozik in Programming Offtop
Ilmir
// Здесь был огромный rant на тему современного состояния разработки языков программирования, который я уместил в одно предложение: разработка языков - дикий запад.

Так если обёртку можно сгенерировать автоматически, значит ли это, что семантику можно автоматически отмапировать? Можно ли тогда обойтись без генерации обёртки?

Если же обёртку нельзя сгенерировать автоматически, то adoption языка будет сосать. Потому что использовать чужие библиотеки тогда будет очень сложно. Придётся писать обёртки на каждый чих. Руками, ага.
В большинстве случаев можно, но иногда не получается. Должна быть возможность подлезть и подправить
источник

AN

Alexander Nozik in Programming Offtop
Поэтому например есть cintrop в K-N. Потому что если хедеры человеческие, все работает из коробки, а если как всегда - то берем и правим
источник

AN

Alexander Nozik in Programming Offtop
Короче, чтобы по третьему кругу не идти. Я с тобой согласен, что интероп - это очень важно. Я не согласен, что в С++ он хороший. Я не думаю, что автоматические обертки - это плохо.
источник

с#

саша сок #KotlinGang... in Programming Offtop
интересно, как давно андроид чат так деградировал в своей аудитории.
источник

(

( in Programming Offtop
саша сок #KotlinGang
интересно, как давно андроид чат так деградировал в своей аудитории.
It always has been
источник

с#

саша сок #KotlinGang... in Programming Offtop
(
It always has been
я просто туда никогда не лез как раз из-за этого. если бы в котлин-андроид можно было бы задавать вопросы по андроиду и при этом как-то не превратить его в андроид-ру, было бы замечательно
источник

I

Ilmir in Programming Offtop
Alexander Nozik
В большинстве случаев можно, но иногда не получается. Должна быть возможность подлезть и подправить
Даже если не генерировать обёртки, то есть возможность подлезть и подправить. Те же suspend функции можно вызвать их Джавы, никто не запрещает. Но лучше написать на Котлине обёртку и её вызвать. Или в случае с инлайн классами. Тут уже функцию вызвать нельзя. Но можно написать обёртку и её вызвать. В случае cinterop лучше ругаться на этапе компиляции. Сам тул можно оставить для первоначальной диагностики, чтобы выявить все проблемные места во время первой интеграции, а потом выкинуть.

Короче - обёртки, что автоматические, что написанные ручками - зло, которое должно умереть. Потому что это дополнительно усложняет и так непростую сборку проекта. Это обязанность компилятора уметь читать язык, с которым интеропимся и если данная конструкция не поддерживается - ругаться. И если нужно, то генерировать обёртки в *обратную* сторону *незаметно от программиста*, потому что часто иначе просто невозможно. А после сборки чистить их.
источник

с#

саша сок #KotlinGang... in Programming Offtop
саша сок #KotlinGang
я просто туда никогда не лез как раз из-за этого. если бы в котлин-андроид можно было бы задавать вопросы по андроиду и при этом как-то не превратить его в андроид-ру, было бы замечательно
есть какие-то сложные кейсы, с которыми надо подумать (не просто вопрос по билду или покраске кнопки, а какая-нибудь проблема с флагами, которые в андроиде странно мешаются), а думающих людей нет в том чате
источник

AN

Alexander Nozik in Programming Offtop
саша сок #KotlinGang
я просто туда никогда не лез как раз из-за этого. если бы в котлин-андроид можно было бы задавать вопросы по андроиду и при этом как-то не превратить его в андроид-ру, было бы замечательно
источник

с#

саша сок #KotlinGang... in Programming Offtop
туда нельзя писать про андроид, если это не проблема только котлиновская.
я и говорил об этом чате
источник