LINUX.ORG.RU

OCaml 5.0.0

 


0

4

Спустя много лет, наконец-то вышла версия OCaml с эффектами, поддержкой многоядерности, блэкджеком и шлю^W^W^W.

https://discuss.ocaml.org/t/ocaml-5-0-0-is-out/10974

При этом поддержка ветки 4 будет продолжена, пока 5.0 не станет «стабильнее». Релиз 4.14.1 ожидается в ближайшее время.

Предлагаю порадоваться за фанатов ОКамла. Тех из них, кто ещё не сторчался от наркоты, не перешёл на Haskell, не бросил программирование и не умер от старости. Их не так много осталось.

Ответ на: комментарий от EXL

А вы знали что Rust influenced by OCaml?

Этого только пещерные троглодиты не знают. В Rust куча конструкций из OCaml и первые версии компилятора Rust были на этом самом OCaml написаны.

Собственно, Rust – это такая попытка натянуть синтаксис C++ на семантику OCaml и заставить это всё работать без GC.

hateyoufeel ★★★★★
() автор топика

спасибо за новость!

кстати говоря, не так уж мало окамлистов на свете. вот например живой проект https://tezos.com/

ну это я молчу о всяких там coq, why3 и прочем.

обн. вот тоже на окамле ребята гуглятся https://www.janestreet.com/

гм, ну и да, чтобы компилятор таки дописать, куча окамлистов нужна как бэ

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 3)
Ответ на: комментарий от AndreyKl

обн. вот тоже на окамле ребята гуглятся https://www.janestreet.com/

Ну они в основном одни такие. Плюс Facebook с ним заигрывал в виде Reason. А так OCaml очень долгое время был известен в основном как язык для реализации Coq. Потому multicore и пилили 15 лет.

hateyoufeel ★★★★★
() автор топика

Спустя много лет, наконец-то вышла версия OCaml с эффектами

В последнее время много слышу про алгебраические эффекты, много новых языков появляется с first-class поддержкой, даже MS какой-то research-язык запилили. Даже в не функциональные ЯП пилят либы с какой-то поддержкой эффектов.

Вроде бы эффекты могут заменить монады/монадные трансформеры, а можно ли выразить эффекты средствами монад?

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 2)
Ответ на: комментарий от theNamelessOne

Вроде бы эффекты могут заменить монады/монадные трансформеры, а можно ли выразить эффекты средствами монад?

Да. Собственно, в хачкелле через монады их и запилили. Сначала через free и freer, а сейчас просто через особую магию. Посмотрю библиотеку polysemy, это сейчас самая модная реализация эффектов.

Даже в не функциональные ЯП пилят либы с какой-то поддержкой эффектов.

Это ментальный онанизм. Без мощной статической типизации это не имеет особого смысла. Одна из основных фишек эффектов как раз в том, что в типе функции содержится подробный список исполняемых ею побочных эффектов, к которым можно при вызове снаружи менять интерпретаторы. Представь call/CC из лишпа, только на стероидах.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)

поддержкой многоядерности

одно время присматривался к этому языку пока не узнал, что он не умеет в многоядерность. много лестного в его адрес слышал, но в один миг он просто растворился на моих радарах.

ergo ★★★
()
Ответ на: комментарий от ergo

Он много чего не умеет, на самом деле. Я рад, что разрабы наконец стали что-то делать с этим, но блин, что-то как-то поздно.

В предпоследний раз, когда я пытался на нём что-то делать, половина библиотек использовала autoconf за каким-то хреном.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от e1nste1n

We went to a Caml Consortium meeting which was where the industrial users of OCaml a few years ago would present their needs and requirements and we presented our work to that team and they said, “Well, look, you can’t add this without having a memory model to OCaml.” So without a memory model which says, “This is what happens when two threads simultaneously access a single OCaml value.” Without that definition, it’s really hard to ascribe any meaning to multicore OCaml because what does the program do whenever the situation happens?

facepalm.jpg

ТАМ И ЭТОГО НЕ БЫЛО??? Твою жеж мать..

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

А как же F#?

Насколько я понимаю, с приходом .Net Core на Linux появляется достаточно богатая экосистема с шахматами и поэтессами.

А так — тот же OCaml, только в профиль. И Emacs его поддерживает.

Или нет?

Bass ★★★★★
()
Последнее исправление: Bass (всего исправлений: 3)
Ответ на: комментарий от serg002

Какое его предназначение?

Создание програмного обеспечения для электронных вычислительных машин.

Где его эффективно использовать?

Именно там.

Серъезно, что это за вопросы? На окамле и MLDonkey написан, и 0install - предшественник фэтфака и крапа, и Coq для доказывания теорем, и даже на веб-фронтенд его пихали в виде ReasonML. На этом направлении он, кстати, отметился ещё раз - референс-реализация интерпретатора WebAssembly тоже на окамле.

В общем, «ЯП общего назначения». Разве что ядра на ним не особо пишут.

token_polyak ★★★★
()
Последнее исправление: token_polyak (всего исправлений: 2)