?

Log in

No account? Create an account

Previous Entry | Next Entry

Open sourced OCaml ports for Erlang

Выложил в open source библиотеку поддержки программ на OCaml, работающих в качестве Erlang портов: http://github.com/EchoTeam/ocaml-erlang-port.

OCaml код порта выглядит примерно так:

open ErlangTerm

let port_command_dispatcher old_value = function
    | ET_Tuple [ET_Atom "forget"; _] ->
          None, ET_Atom "ok"
    | ET_Tuple [ET_Atom "set"; term] ->
          Some term, ET_Atom "ok"
    | ET_Tuple [ET_Atom "get"; _] ->
          old_value, begin match old_value with
            | None -> ET_Tuple [ET_Atom "error"; ET_Atom "no_value"]
            | Some term -> ET_Tuple [ET_Atom "ok"; term]
          end
    | _ -> raise (Failure "Unknown command")
    ;;

ErlangPort.erlang_port_interact_with_key port_command_dispatcher None

Erlang код выглядит примерно так:

  1> c(portserver).
  {ok,portserver}
  2> portserver:start_link({local, ocaml}, "./port_sample").
  {ok,<0.40.0>}
  3> portserver:call(ocaml, get, []).  
  {error,no_value}
  4> portserver:call(ocaml, set, {foo,bar}).
  ok
  5> portserver:call(ocaml, get, []).       
  {ok,{foo,bar}}
  6> portserver:call(ocaml, forget, []).
  ok


Лицензия BSD.

Tags:

Comments

( 91 comments — Leave a comment )
thesz
Feb. 21st, 2010 09:55 am (UTC)
А зачем?
lionet
Feb. 21st, 2010 10:06 am (UTC)
Зачем BSD?
thesz
Feb. 21st, 2010 10:26 am (UTC)
Окамл из под Эрланга.
lionet
Feb. 21st, 2010 10:35 am (UTC)
«Математику» считать. Эрланг всё-таки тормозит на чистой математике — парсинге больших файлов, расчётах всяких.
nealar
Feb. 21st, 2010 10:49 am (UTC)
К окамлу уже привинтили быстрый Integer?
(no subject) - lionet - Feb. 21st, 2010 10:49 am (UTC) - Expand
(no subject) - nealar - Feb. 21st, 2010 11:02 am (UTC) - Expand
(no subject) - lionet - Feb. 21st, 2010 11:06 am (UTC) - Expand
(no subject) - nealar - Feb. 21st, 2010 11:09 am (UTC) - Expand
(no subject) - lionet - Feb. 21st, 2010 12:47 pm (UTC) - Expand
(no subject) - nealar - Feb. 21st, 2010 12:54 pm (UTC) - Expand
(no subject) - thesz - Feb. 23rd, 2010 03:40 am (UTC) - Expand
(no subject) - nealar - Feb. 23rd, 2010 10:19 am (UTC) - Expand
(no subject) - thesz - Feb. 23rd, 2010 11:31 am (UTC) - Expand
(no subject) - thesz - Feb. 22nd, 2010 12:59 am (UTC) - Expand
(no subject) - _adept_ - Feb. 23rd, 2010 09:02 pm (UTC) - Expand
(no subject) - cy6erbr4in - Feb. 21st, 2010 11:43 am (UTC) - Expand
(no subject) - nealar - Feb. 23rd, 2010 03:01 pm (UTC) - Expand
(no subject) - cy6erbr4in - Feb. 24th, 2010 08:53 pm (UTC) - Expand
thesz
Feb. 21st, 2010 01:42 pm (UTC)
Разумно.

Для Хаскеля, что ли, попробовать... ;)
(no subject) - nealar - Feb. 21st, 2010 01:48 pm (UTC) - Expand
(no subject) - thesz - Feb. 21st, 2010 01:51 pm (UTC) - Expand
(no subject) - nealar - Feb. 21st, 2010 01:55 pm (UTC) - Expand
(no subject) - thesz - Feb. 21st, 2010 02:22 pm (UTC) - Expand
sigterm
Feb. 21st, 2010 12:25 pm (UTC)
А что сейчас вообще в мире OCaml'а происходит ? Есть какая-то движуха, а то у меня складывается впечатление, что проект подзаглох. Нет ?
lionet
Feb. 21st, 2010 12:31 pm (UTC)
Традиционный ответ — OCaml скорее мёртв чем жив. Это с точки зрения инноваций.

С точки зрения живости платформы и библиотек — движуха есть, вот релиз языка недавно вышел, и батарейки допиливают. То есть, в качестве языка будущего OCaml давно уже не катит, а вот погонять старого осла на реальных камнеломнях — за нефиг делать.
(Deleted comment)
lionet
Feb. 21st, 2010 01:21 pm (UTC)
1. Вечный бардак с либами и удобством их использования консистентен?
2. Неприподъемная какая-то муть с объектной моделью (прикрутили к ML ОО, пока ОО был в моде, а оно и прилипло) и модульной системой.
3. Где оптимизирующий компилятор?
4. Где вменяемое комьюнити, чтобы патч полезный послать и он был рассмотрен, а не выброшен не глядя?

Прогресс есть, но это на самоподдерживающееся тление похоже больше. Особенно в свете F#.
(Deleted comment)
lionet
Feb. 21st, 2010 01:43 pm (UTC)
1. Микропример: curried functions такие, что из них тупо сложно собрать pipeline, не делая каждый раз переворот (flip) аргументов. Например, какого фига в fold_right список не идёт последним аргументом?
2. Это всё усложняет создание альтернативной имплементации языка, что вредно для самого языка.
3. ocamlopt? А где оптимизирующий компилятор, а не базовый транслятор окамла в ассемблер? Нет в окамле оптимизирующего компилятора. Компилятор — есть, оптимизирующего — нет.
4. Я про инрию, а не про батарейки. И про фичи, а не баги.
(Deleted comment)
(no subject) - lionet - Feb. 21st, 2010 01:53 pm (UTC) - Expand
(Deleted comment)
(no subject) - lionet - Feb. 21st, 2010 02:05 pm (UTC) - Expand
(Deleted comment)
(no subject) - lionet - Feb. 21st, 2010 02:19 pm (UTC) - Expand
(Deleted comment)
(no subject) - lionet - Feb. 21st, 2010 02:31 pm (UTC) - Expand
(Deleted comment)
(no subject) - lionet - Feb. 21st, 2010 02:33 pm (UTC) - Expand
(no subject) - sigterm - Feb. 21st, 2010 03:10 pm (UTC) - Expand
(no subject) - lionet - Feb. 21st, 2010 03:12 pm (UTC) - Expand
(no subject) - lionet - Feb. 21st, 2010 03:14 pm (UTC) - Expand
(no subject) - sigterm - Feb. 21st, 2010 04:54 pm (UTC) - Expand
(no subject) - lionet - Feb. 21st, 2010 05:01 pm (UTC) - Expand
(no subject) - levgem - Feb. 21st, 2010 06:30 pm (UTC) - Expand
(no subject) - lionet - Feb. 24th, 2010 11:12 am (UTC) - Expand
(no subject) - levgem - Feb. 24th, 2010 11:15 am (UTC) - Expand
(no subject) - lionet - Feb. 24th, 2010 11:26 am (UTC) - Expand
(no subject) - levgem - Feb. 24th, 2010 11:29 am (UTC) - Expand
(no subject) - levgem - Feb. 24th, 2010 03:40 pm (UTC) - Expand
(no subject) - sigterm - Feb. 22nd, 2010 05:27 pm (UTC) - Expand
(no subject) - lionet - Feb. 22nd, 2010 05:38 pm (UTC) - Expand
(no subject) - lionet - Feb. 22nd, 2010 05:41 pm (UTC) - Expand
(no subject) - rumataestor - Feb. 23rd, 2010 09:04 pm (UTC) - Expand
(no subject) - lionet - Feb. 23rd, 2010 09:25 pm (UTC) - Expand
(no subject) - rumataestor - Feb. 24th, 2010 08:35 am (UTC) - Expand
(no subject) - lionet - Feb. 24th, 2010 08:40 am (UTC) - Expand
(no subject) - gaperton - Feb. 23rd, 2010 09:59 pm (UTC) - Expand
(no subject) - lionet - Feb. 23rd, 2010 10:21 pm (UTC) - Expand
(no subject) - gaperton - Feb. 23rd, 2010 10:22 pm (UTC) - Expand
(no subject) - lionet - Feb. 23rd, 2010 10:25 pm (UTC) - Expand
(no subject) - gaperton - Feb. 23rd, 2010 10:32 pm (UTC) - Expand
(no subject) - lionet - Feb. 23rd, 2010 10:40 pm (UTC) - Expand
(no subject) - gaperton - Feb. 23rd, 2010 10:45 pm (UTC) - Expand
(no subject) - lionet - Feb. 23rd, 2010 10:50 pm (UTC) - Expand
(no subject) - gaperton - Feb. 24th, 2010 08:01 am (UTC) - Expand
(no subject) - lionet - Feb. 24th, 2010 08:25 am (UTC) - Expand
(no subject) - dmzlj - Feb. 24th, 2010 08:32 am (UTC) - Expand
(no subject) - lionet - Feb. 24th, 2010 08:38 am (UTC) - Expand
(no subject) - gaperton - Feb. 23rd, 2010 09:56 pm (UTC) - Expand
(no subject) - lionet - Feb. 23rd, 2010 10:12 pm (UTC) - Expand
(no subject) - gaperton - Feb. 23rd, 2010 10:30 pm (UTC) - Expand
(no subject) - lionet - Feb. 23rd, 2010 10:37 pm (UTC) - Expand
(no subject) - gaperton - Feb. 23rd, 2010 10:42 pm (UTC) - Expand
(no subject) - lionet - Feb. 21st, 2010 02:34 pm (UTC) - Expand
(no subject) - Kirill A. Korinskiy [catap.ru] - Feb. 21st, 2010 03:06 pm (UTC) - Expand
(no subject) - lionet - Feb. 21st, 2010 03:11 pm (UTC) - Expand
(no subject) - thesz - Feb. 22nd, 2010 01:07 am (UTC) - Expand
Для Ocaml есть Wadler's pretty-printer - zoonior - Feb. 21st, 2010 06:58 pm (UTC) - Expand
(Deleted comment)
(no subject) - lionet - Feb. 21st, 2010 02:49 pm (UTC) - Expand
(Deleted comment)
(no subject) - lionet - Feb. 21st, 2010 02:58 pm (UTC) - Expand
(no subject) - sigterm - Feb. 22nd, 2010 07:16 pm (UTC) - Expand
(no subject) - lionet - Feb. 22nd, 2010 08:12 pm (UTC) - Expand
(no subject) - _adept_ - Feb. 22nd, 2010 01:29 pm (UTC) - Expand
(Deleted comment)
demmonoid
Feb. 21st, 2010 03:11 pm (UTC)
Как человек, уже успевший попользовать, подтверждаю - офигенная штука! :)
Собираешься все серверное API JS-Kit'а потихоньку выкатить в массы? Или просто выборочные (самые полезные или самые интересные) куски выкладываешь?
lionet
Feb. 21st, 2010 03:16 pm (UTC)
Те, которые 1) наиболее интересные и 2) не составляют IP (Intellectual Property). Выкатили три пока, но ещё проектов пять осталось из того, что в данный момент планируем.
( 91 comments — Leave a comment )