Size: a a a

Compiler Development

2021 April 05

K

Kakadu in Compiler Development
Но ответ: да, OCaml подходит очень много для чего. Некоторые пишут на нём сетевой стек и не сильно проигрывают сишечке
источник

AT

Alexander Tchitchigi... in Compiler Development
"Некоторые" — это Mirage или есть ещё кто-то? 😃
источник

K

Kakadu in Compiler Development
Да, они
источник

PS

Peter Sovietov in Compiler Development
Странно, что приводятся в пример сетевые приложения, а не большие компиляторы, написанные на OCaml :)
источник

AT

Alexander Tchitchigi... in Compiler Development
А они все маленькие по меркам Java/C++ — плотность кода-то в несколько раз выше!
источник

PS

Peter Sovietov in Compiler Development
Ну CompCert ведь тоже немаленький компилятор. Я не уверен, что есть более крупные компиляторные проекты на Ocaml.
источник

AT

Alexander Tchitchigi... in Compiler Development
CompCert написан-то на Gallina (Coq), а не OCaml. 🤷‍♀️
источник

KR

K R in Compiler Development
Rust был написан на Ocaml.
источник

PS

Peter Sovietov in Compiler Development
Там ведь есть и просто код на OCaml, и результат трансляции из Coq. На мой взгляд, все это позволяет оценить пригодность OCaml для крупных компиляторных проектов.
источник

AT

Alexander Tchitchigi... in Compiler Development
Да, я думаю, пригодность можно оценить и по самому компилятору OCaml, или даже такой "мелочёвке" как ReScript и кто там ещё. Типа, Andromeda proof assistant?
источник

KR

K R in Compiler Development
Вообще есть несколько неприятных моментов в Ocaml: тенденция превращения в кубик-рубик-монолит кода компании JS, непонятная поддержка Windows (основные системы - Linux и OSX), отсутствие lts релизов OPAM.
источник

KR

K R in Compiler Development
И, конечно, ppx, которые могут временами отваливаться.
источник

K

Kakadu in Compiler Development
Ну про janestreet я сказал бы, что это преувеличение
источник

KR

K R in Compiler Development
И сборочная система dune имеет отвратительную документацию.
источник

KR

K R in Compiler Development
На фоне остального именно так - вы потянете одну маленькую библиотеку, она вытащит Core и сопутствующие.
источник

KR

K R in Compiler Development
В остальном, если не смущает однопоточность (muticore - это как термояд), экосистема подходит для больших и долгоживущих проектов.
источник

K

Kakadu in Compiler Development
Такие "маленькие" библиотеки действительно есть, но большинство, ИМХО, этим не страдает
источник

PG

Per-Lorean Graph in Compiler Development
Компиляция сложный языковых структур (ну не всегда сложных, например, плюсовых template функций и constexpr). Иногда с компиляторными оптимизациями в плане interprocedural analysis, loop unrolling, и.т.д.
источник

PG

Per-Lorean Graph in Compiler Development
В смысле? В OCaml с async плохо?
источник

卜根 in Compiler Development
мне ещё в Ocaml не хватает, как и в других языках, абстрагирования Pattern Matching
источник