{"action":"created","issue":{"url":"https://api.github.com/repos/NixOS/nix/issues/2503","repository_url":"https://api.github.com/repos/NixOS/nix","labels_url":"https://api.github.com/repos/NixOS/nix/issues/2503/labels{/name}","comments_url":"https://api.github.com/repos/NixOS/nix/issues/2503/comments","events_url":"https://api.github.com/repos/NixOS/nix/issues/2503/events","html_url":"https://github.com/NixOS/nix/issues/2503","id":376136694,"node_id":"MDU6SXNzdWUzNzYxMzY2OTQ=","number":2503,"title":"Rewrite build system in non-autoconf","user":{"login":"Ericson2314","id":1055245,"node_id":"MDQ6VXNlcjEwNTUyNDU=","avatar_url":"https://avatars3.githubusercontent.com/u/1055245?v=4","gravatar_id":"","url":"https://api.github.com/users/Ericson2314","html_url":"https://github.com/Ericson2314","followers_url":"https://api.github.com/users/Ericson2314/followers","following_url":"https://api.github.com/users/Ericson2314/following{/other_user}","gists_url":"https://api.github.com/users/Ericson2314/gists{/gist_id}","starred_url":"https://api.github.com/users/Ericson2314/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ericson2314/subscriptions","organizations_url":"https://api.github.com/users/Ericson2314/orgs","repos_url":"https://api.github.com/users/Ericson2314/repos","events_url":"https://api.github.com/users/Ericson2314/events{/privacy}","received_events_url":"https://api.github.com/users/Ericson2314/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":17,"created_at":"2018-10-31T19:58:49Z","updated_at":"2018-11-02T21:42:17Z","closed_at":null,"author_association":"MEMBER","body":"The specific features I am thinking that Autoconf lacks are \r\n - Windows support (with and without mingw)\r\n - Outputs Ninja or something similar\r\n\r\nBoth of these are non essential, but good for various experiments:\r\n - Windows support obviously allows experimenting with Nix supporting windows. GCC is inadequate because it doesn't offer C++ interopt with MSVC, so many Windows C++ APIs are unusable.\r\n - Outputing a dependency graph allows fun experiments with Recursive Nix (https://github.com/edolstra/nix/commit/1cfdfd728aa7faa78b55b97a2c2f2b5922cd079f) and ninja2nix (https://github.com/awakesecurity/ninja2nix)\r\n\r\nThis lowers the list down to [Meson](http://mesonbuild.com/) and [CMake](https://cmake.org/), AFIAK. I prefer Meson because:\r\n - It doesn't use compiler makefile generation, which avoids a regrettable ninja impurity\r\n - It's less crufty. CMake became better, but old cmake was bad, leaving a lot of legacy cruft. Meson is a clean slate so there's no minefield of deprecated bad ways of doing things.\r\n - Full disclosure, I've been working on improving Meson's cross compilation support, so I'm partial to it.\r\n\r\nCC @taktoa"},"comment":{"url":"https://api.github.com/repos/NixOS/nix/issues/comments/435517787","html_url":"https://github.com/NixOS/nix/issues/2503#issuecomment-435517787","issue_url":"https://api.github.com/repos/NixOS/nix/issues/2503","id":435517787,"node_id":"MDEyOklzc3VlQ29tbWVudDQzNTUxNzc4Nw==","user":{"login":"coretemp","id":34454443,"node_id":"MDQ6VXNlcjM0NDU0NDQz","avatar_url":"https://avatars0.githubusercontent.com/u/34454443?v=4","gravatar_id":"","url":"https://api.github.com/users/coretemp","html_url":"https://github.com/coretemp","followers_url":"https://api.github.com/users/coretemp/followers","following_url":"https://api.github.com/users/coretemp/following{/other_user}","gists_url":"https://api.github.com/users/coretemp/gists{/gist_id}","starred_url":"https://api.github.com/users/coretemp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coretemp/subscriptions","organizations_url":"https://api.github.com/users/coretemp/orgs","repos_url":"https://api.github.com/users/coretemp/repos","events_url":"https://api.github.com/users/coretemp/events{/privacy}","received_events_url":"https://api.github.com/users/coretemp/received_events","type":"User","site_admin":false},"created_at":"2018-11-02T21:42:17Z","updated_at":"2018-11-02T21:42:17Z","author_association":"NONE","body":"I can't really think of any reason as to why we would want to support Windows. Windows has a less efficient kernel to do anything interesting on the platform, so it's not fit to do serious computing. So, all you are doing is porting an interesting program (Nix) to a technically inferior platform (HPC community can tell you more), which is going to increase maintenance cost. \r\n\r\nOpen-source economics imply that the owner of the project needs to see and trust that someone is going to compensate that maintenance cost or it should be made in such a way that it is easy to rip it out when you get hit by a bus or something (assuming nobody else cares about the feature).\r\n\r\nWhy did you not just fork Nix and make a Windows port dazzling us with numbers on your build system is faster and more portable, etc.? If the code is that good, I am sure it would get merged in.\r\n"}}
{"actor":{"display_login":"coretemp"}}