Size: a a a

Сrystal Lang — русскоговорящее сообщество

2021 April 06

AK

Anton Korotkikh in Сrystal Lang — русскоговорящее сообщество
хм... а как тогда go могёт собирать so?
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Собственно, беда долгой компиляции больше даже не в производительности компилятора, вряд ли ведь кто-то ждёт, что Crystal сравнится в этом плане с Go. Проблема как раз в том, что нельзя использовать сторонние crystal-библиотеки в скомпиленном виде. Это влияет и на размер бинарника, и на время компиляции
источник

G

GNU/Плюшка in Сrystal Lang — русскоговорящее сообщество
можно, но это пока чисто PoC
источник

DV

Dmitriy Vishnevskiy in Сrystal Lang — русскоговорящее сообщество
А, ну это понятно
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Понятия не имею, но подозреваю, что код на входе и должен быть не GC-зависимым, т.е. в можно добавить явные malloc/free
источник

DV

Dmitriy Vishnevskiy in Сrystal Lang — русскоговорящее сообщество
Тоже сразу о go подумал
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Концепт и предполагает отказ от GC вроде?
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Ну вот я лично не видел россыпи .so-шек, скомпилированных в Go. Что-то с этим явно не так :)
источник

G

GNU/Плюшка in Сrystal Lang — русскоговорящее сообщество
источник

G

GNU/Плюшка in Сrystal Lang — русскоговорящее сообщество
нет, просто подменяют main и инициализируют гц там (надо перед использованием эту функцию вызвать)
источник

DV

Dmitriy Vishnevskiy in Сrystal Lang — русскоговорящее сообщество
Просто не очень популярно, хотя даже статья на хабре есть
источник

DV

Dmitriy Vishnevskiy in Сrystal Lang — русскоговорящее сообщество
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Наверное возможен несложный какой-то подход, когда Crystal-приклад цепляет бинарник, скомпиленный тем же crystal-компилятором. В конце-концов julia так умеет ведь. Но именно традиционный .so... Там же ещё файберы, шедуллинг, тогда уж надо таким .so заменять что-нибудь типа libuv/libev
источник

G

GNU/Плюшка in Сrystal Lang — русскоговорящее сообщество
да и куча ограничений будет
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Обычный-то so просто предоставляет некий API, а не подменяет собой ключевые функции основного приложения
источник

G

GNU/Плюшка in Сrystal Lang — русскоговорящее сообщество
вроде частичной невозможности использовать дженерики
источник

G

GNU/Плюшка in Сrystal Lang — русскоговорящее сообщество
в го проще c этим было на момент написания статьи
источник

G

GNU/Плюшка in Сrystal Lang — русскоговорящее сообщество
> Обратите внимание, что размер файла .so около 2 Мб. Довольно много для такой маленькой библиотеки. Дело в том, что в этот файл запихивается вся runtime-механика Go и зависимые пакеты.
источник

AK

Andrey Konovalov in Сrystal Lang — русскоговорящее сообщество
Ну вот да. Не проще ли как говорится из Go использовать функции, написанные на Си, нежели делать всё в точности до наоборот :)
источник

VF

Vlad Faust in Сrystal Lang — русскоговорящее сообщество
Хочу поделиться. Сейчас запилил колоссальный рефакторинг. Теперь сижу и одну за другой ошибки компиляции правлю, благо они удобно тыкают туда, где я не прав. Нормас 👍
источник