{"action":"created","issue":{"url":"https://api.github.com/repos/lihaoyi/mill/issues/32","repository_url":"https://api.github.com/repos/lihaoyi/mill","labels_url":"https://api.github.com/repos/lihaoyi/mill/issues/32/labels{/name}","comments_url":"https://api.github.com/repos/lihaoyi/mill/issues/32/comments","events_url":"https://api.github.com/repos/lihaoyi/mill/issues/32/events","html_url":"https://github.com/lihaoyi/mill/issues/32","id":276893170,"number":32,"title":"Parallel Task Evaluation","user":{"login":"lihaoyi","id":934140,"avatar_url":"https://avatars0.githubusercontent.com/u/934140?v=4","gravatar_id":"","url":"https://api.github.com/users/lihaoyi","html_url":"https://github.com/lihaoyi","followers_url":"https://api.github.com/users/lihaoyi/followers","following_url":"https://api.github.com/users/lihaoyi/following{/other_user}","gists_url":"https://api.github.com/users/lihaoyi/gists{/gist_id}","starred_url":"https://api.github.com/users/lihaoyi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lihaoyi/subscriptions","organizations_url":"https://api.github.com/users/lihaoyi/orgs","repos_url":"https://api.github.com/users/lihaoyi/repos","events_url":"https://api.github.com/users/lihaoyi/events{/privacy}","received_events_url":"https://api.github.com/users/lihaoyi/received_events","type":"User","site_admin":false},"labels":[{"id":776876244,"url":"https://api.github.com/repos/lihaoyi/mill/labels/hard","name":"hard","color":"fc9ca2","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":13,"created_at":"2017-11-27T03:47:23Z","updated_at":"2018-05-20T13:44:39Z","closed_at":null,"author_association":"OWNER","body":"The current `Evaluator` is sequential: tasks are evaluated one by one in a linear topological order.\r\n\r\nBecause we have the dependency graph between tasks, it should be straightforward to implement a parallel evaluator that evaluates tasks N-ways parallel. This would not require any change to the user-code implementing tasks and targets.\r\n\r\nOpen questions include how such a parallel evaluator will fit into the existing codebase (we probably want to keep the sequential evaluator around as an option indefinitely) and how to make sense of the interleaved log-spam from the parallel-executing tasks (we could provide a `T.ctx().println` method that will prefix the stdout with the name of the target being evaluated, and ask task writers to use that)"},"comment":{"url":"https://api.github.com/repos/lihaoyi/mill/issues/comments/390484282","html_url":"https://github.com/lihaoyi/mill/issues/32#issuecomment-390484282","issue_url":"https://api.github.com/repos/lihaoyi/mill/issues/32","id":390484282,"user":{"login":"lihaoyi","id":934140,"avatar_url":"https://avatars0.githubusercontent.com/u/934140?v=4","gravatar_id":"","url":"https://api.github.com/users/lihaoyi","html_url":"https://github.com/lihaoyi","followers_url":"https://api.github.com/users/lihaoyi/followers","following_url":"https://api.github.com/users/lihaoyi/following{/other_user}","gists_url":"https://api.github.com/users/lihaoyi/gists{/gist_id}","starred_url":"https://api.github.com/users/lihaoyi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lihaoyi/subscriptions","organizations_url":"https://api.github.com/users/lihaoyi/orgs","repos_url":"https://api.github.com/users/lihaoyi/repos","events_url":"https://api.github.com/users/lihaoyi/events{/privacy}","received_events_url":"https://api.github.com/users/lihaoyi/received_events","type":"User","site_admin":false},"created_at":"2018-05-20T13:44:39Z","updated_at":"2018-05-20T13:44:39Z","author_association":"OWNER","body":"Mill's task is a free-applicative and it should be possible to do this without touching the `mill.Task` type at all; all the core changes for parallelism should take place in the `Evaluator`.\r\n\r\nWhether the new \"`ParallelEvaluator`\" uses Future or Monix or Scalaz or Cats for it's parallelization logic is an internal implementation detail. If we need to tag our `mill.Task`s with some metadata to allow a `ParallelEvaluator` to schedule more effectively, we can easily do so without invasively replacing the core type."}}
{"actor":{"display_login":"lihaoyi"}}