{"action":"created","issue":{"url":"https://api.github.com/repos/vim-jp/vital.vim/issues/267","labels_url":"https://api.github.com/repos/vim-jp/vital.vim/issues/267/labels{/name}","comments_url":"https://api.github.com/repos/vim-jp/vital.vim/issues/267/comments","events_url":"https://api.github.com/repos/vim-jp/vital.vim/issues/267/events","html_url":"https://github.com/vim-jp/vital.vim/pull/267","id":63591984,"number":267,"title":"RFC: ConcurrentProcess","user":{"login":"ujihisa","id":11504,"avatar_url":"https://avatars.githubusercontent.com/u/11504?v=3","gravatar_id":"","url":"https://api.github.com/users/ujihisa","html_url":"https://github.com/ujihisa","followers_url":"https://api.github.com/users/ujihisa/followers","following_url":"https://api.github.com/users/ujihisa/following{/other_user}","gists_url":"https://api.github.com/users/ujihisa/gists{/gist_id}","starred_url":"https://api.github.com/users/ujihisa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ujihisa/subscriptions","organizations_url":"https://api.github.com/users/ujihisa/orgs","repos_url":"https://api.github.com/users/ujihisa/repos","events_url":"https://api.github.com/users/ujihisa/events{/privacy}","received_events_url":"https://api.github.com/users/ujihisa/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-03-23T00:03:14Z","updated_at":"2015-03-28T05:36:33Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/vim-jp/vital.vim/pulls/267","html_url":"https://github.com/vim-jp/vital.vim/pull/267","diff_url":"https://github.com/vim-jp/vital.vim/pull/267.diff","patch_url":"https://github.com/vim-jp/vital.vim/pull/267.patch"},"body":"まだpullreqできるほどdoc/testが揃っていませんが、早いうちにフィードバックを得るため、pullreqの形で現状を共有したいと思います。\r\n\r\nConcurrentProcessは、ProcessManagerやその後継として試作されていたPM2を置き換える別のAPIと機能を持った類似のライブラリです。\r\n\r\nProcessManager / PM2では、\r\n* アプリケーション側にプロセスの内部状態を確認・調整する責任があり、アプリケーション開発が困難であった\r\n* PMがプロセスに行った行為をトラックするのが難しいため、デバッグにかなり強い推理力と想像力が求められた\r\n* 名前が意味するところが曖昧\r\nなどの問題がありました。ConcurrentProcessはこれらの問題を解決しています。\r\n\r\nneoclojure.vimはすでにPM2からConcurrentProcessを用いた実装に置き換えられています。\r\nhttps://github.com/ujihisa/neoclojure.vim\r\n\r\nthinca/quickrun.vimにもConcurrentProcessを用いた実装をあとでこのスレッドに投稿したいと思います。\r\n\r\n## 未来\r\n\r\n現在のConcurrentProcessは、以下をサポートしていませんが、今後(もしかしたら別モジュールに分離した形で)提供したいなと考えているもの:\r\n* autocmd CursorHold/CursorHoldIを用いたイベント登録の簡略化\r\n* Data.Closureとの連携\r\n* `if_python`に依存し、かわりに`vimproc`に依存しない実装"},"comment":{"url":"https://api.github.com/repos/vim-jp/vital.vim/issues/comments/87164672","html_url":"https://github.com/vim-jp/vital.vim/pull/267#issuecomment-87164672","issue_url":"https://api.github.com/repos/vim-jp/vital.vim/issues/267","id":87164672,"user":{"login":"thinca","id":20474,"avatar_url":"https://avatars.githubusercontent.com/u/20474?v=3","gravatar_id":"","url":"https://api.github.com/users/thinca","html_url":"https://github.com/thinca","followers_url":"https://api.github.com/users/thinca/followers","following_url":"https://api.github.com/users/thinca/following{/other_user}","gists_url":"https://api.github.com/users/thinca/gists{/gist_id}","starred_url":"https://api.github.com/users/thinca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thinca/subscriptions","organizations_url":"https://api.github.com/users/thinca/orgs","repos_url":"https://api.github.com/users/thinca/repos","events_url":"https://api.github.com/users/thinca/events{/privacy}","received_events_url":"https://api.github.com/users/thinca/received_events","type":"User","site_admin":false},"created_at":"2015-03-28T05:36:33Z","updated_at":"2015-03-28T05:36:33Z","body":"とりあえず今テスト落ちてるっぽいですね。"}}