Crystal 1.22.0 переводит aarch64-linux в Tier 1 и ускоряет разбор DWARF
Crystal 1.22.0 Is Released
В релизе Crystal 1.22.0 — 251 изменение от 33 контрибьюторов. Цели aarch64-linux-gnu и aarch64-linux-musl официально перешли в Tier 1. Разбор DWARF переписан: секции сканируются по требованию, строится индексная таблица, а декодированные строки бэктрейсов кешируются в LRU — поиск стал заметно быстрее. Все платформы по умолчанию используют нативный event loop на epoll и kqueue, libevent остаётся лишь опцией. Добавлена поддержка LLVM 23 и 24, а запись в STDOUT/STDERR при EPIPE теперь завершает процесс без сообщения об ошибке.
Crystal завершает процесс сразу, когда запись в STDOUT или STDERR падает с EPIPE. Это близко повторяет стандартное поведение сигнала SIGPIPE.
- giancarlostoro
Crystal, возможно, не самый популярный, но мне он очень интересен. Я не рубист, но я присматривался к другим языкам помимо Go, Rust и т.п., которые компилируются нативно. Я немного баловался с Nim, но мне действительно хотелось попробовать что-то слегка другое, и, честно говоря, я впечатлён. Ему всё ещё нужна небольшая полировка, возможно, лучшее финансирование могло бы помочь, но в другой временной линии при правильных условиях я искренне думаю, что Crystal мог бы взлететь как действительно солидный язык. Он основан на LLVM, имеет зелёные потоки (которые безумно лёгкие), имеет C-interop, имеет систему макросов времени компиляции для инспекции AST, генерации кода и удаления шаблонного кода.
Веб-фреймворки тоже выглядят интересно, но я ещё не углублялся в них. Вы действительно получаете Ruby-подобный язык с нативной производительностью, что очень интересно.
Одна вещь, которую я хотел от Nim — немного больше Python-подобия, я хочу обычный ООП, поскольку Crystal берёт от Ruby (я полагаю, изначально он был написан на Ruby, прежде чем стал self-hosting), у него есть разумные ООП-фичи, которых мне не хватает, когда я использую Go, Rust или даже Nim.
Я действительно чувствую, что в другой временной линии Crystal мог бы стать чем-то, я также чувствую, что «Ruby» у некоторых оставляет неприятный осадок, но Ruby далеко не так ужасен, как думает большинство людей, хотя он никогда не был для меня, это всё ещё была одна из самых приятных экосистем, с которыми я когда-либо работал, задолго до того, как Go разобрался со своей ситуацией с управлением пакетами.
Ещё одна мысль: я считаю, что установщик Windows / Windows s […]
- burlesona
Грустно, что мы больше не пишем код, это отнимает большую часть радости от таких вещей.
- rubiquity
Возможно, я один из немногих, кто использовал Crystal в боевых условиях для долго работающих программ, но, к сожалению, нам пришлось от него отказаться из-за давних проблем в рантайме, где исключения в неподходящий момент во время I/O останавливают рантайм. Прошло несколько лет, так что я уже не помню навскидку номер issue на GitHub. Хотелось бы думать, что если бы они могли перепроектировать язык заново, они бы не стали делать исключения и деструкторы/finalize.
Однако это отличный язык для CLI. Рад видеть, что команда продолжает работать.
- sumnole
Для тех, кто не знает: Crystal — это как типизированный Ruby с производительностью и моделью конкурентности Go.
- todotask2
Я использовал Crystal год, прежде чем перейти на Go, который ценю за более быстрое время сборки. Bun также продолжает быстро улучшаться и постоянно снижает потребление памяти, что может быть полезно на бюджетном сервере.