Commits

Dmitry Grebeniuk  committed ce47cec

TODO

  • Participants
  • Parent commits 08752e6

Comments (0)

Files changed (1)

+(обозначения в скобках:
+ ! -- повышенный приоритет
+ . -- сделано
+ ~ -- в работе
+)
+
+| [!] Тип "адресат": процесс, принимающий сообщения, и чистая map-функция,
+     отображающая эти сообщения для процесса (планируемые использования:
+     1. заворачивать "стандартные" сообщения, выдаваемые службами, типа
+     "`Stdout of chunk", в сообщения, принимаемые конкретным
+     "пользовательским" процессом, типа "[ Message_from_proc1 of int |
+     Message_from_proc2 of [= `Stdout of chunk] ]",
+     2. локальная обработка "стандартных" сообщений без передачи по сети,
+     в случаях, когда можно сильно сократить их объём этой обработкой.
+     3. оформление процессов в типа-пайпы.)
+     Если прикинуть грубо,
+       type addressee 'o = process 'o;
+       value make_addressee : ?map=identity -> process 'o -> addressee 'o;
+       value map_addressee :
+         ('external -> 'internal) ->
+         addressee 'internal -> addressee 'external;
+
+| [!] Запуск внешнего процесса ОС (как шелл-команду,
+     так и полное ps_name * argv * env * stdin * stdout * stderr),
+     принимая аргумент "адресат", с выдачей сообщений адресату
+     "вот вам из stdout, вот из stderr, а вот и сдох бобик",
+     с приёмом сообщений "запиши ему в stdin вот эти слова: ...",
+     "убей себя", "закрой stdin", "прими сигнал такой-то".
+
+| [!] Обработка потока сообщений в режиме "many-to-many", когда
+      0..N входящих сообщений вызывают отправку 0..M исходящих сообщений.
+      Из-за использования акторов это выливается в функцию, пригодную
+      для чего-то типа create_server, но имеющую на выходе не одно
+      сообщение, а список сообщений (в том числе пустой), и неявным образом
+      отправляющую эти сообщения нужному адресату.  То есть,
+        value create_mtm :
+          addressee 'o ->
+          ('i -> IO.m (list 'o)) ->
+          process_factory 'i;
+
+| <-
+   | Работа через сеть
+   | [] "Служба имён"
+   | [] Интерфейс для сериализации и проверок типов
+
 | <-
    | tests
    | [] Разобраться, почему падвендой только первый тест идёт
           оказывается так, что последние сообщения обрабатывает какой-то один
           процесс, и дело не доходит до качественного shutdown.
 
-| [] Дополнить план результатами `grep todo`
-
 | <-
    | process_limit
    | [] не перезапускать процесс из монитора, если к нему нет реальных