{"action":"created","issue":{"url":"https://api.github.com/repos/dropbox/pyston/issues/616","labels_url":"https://api.github.com/repos/dropbox/pyston/issues/616/labels{/name}","comments_url":"https://api.github.com/repos/dropbox/pyston/issues/616/comments","events_url":"https://api.github.com/repos/dropbox/pyston/issues/616/events","html_url":"https://github.com/dropbox/pyston/issues/616","id":88927190,"number":616,"title":"can't run tests if pyston is broken","user":{"login":"tjhance","id":592054,"avatar_url":"https://avatars.githubusercontent.com/u/592054?v=3","gravatar_id":"","url":"https://api.github.com/users/tjhance","html_url":"https://github.com/tjhance","followers_url":"https://api.github.com/users/tjhance/followers","following_url":"https://api.github.com/users/tjhance/following{/other_user}","gists_url":"https://api.github.com/users/tjhance/gists{/gist_id}","starred_url":"https://api.github.com/users/tjhance/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tjhance/subscriptions","organizations_url":"https://api.github.com/users/tjhance/orgs","repos_url":"https://api.github.com/users/tjhance/repos","events_url":"https://api.github.com/users/tjhance/events{/privacy}","received_events_url":"https://api.github.com/users/tjhance/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-06-17T06:31:54Z","updated_at":"2015-06-17T06:38:32Z","closed_at":null,"body":"One part of the build system is self-hosted (by necessity, apparently)\r\n\r\n```\r\nninja -C /home/tjhance/pyston/build/Debug pyston copy_stdlib copy_libpyston sharedmods ext_pyston ext_cpython \r\nninja: Entering directory `/home/tjhance/pyston/build/Debug'\r\n[4/4] Generating basic_test.pyston.so\r\nFAILED: cd /home/tjhance/pyston/test/test_extension && /home/tjhance/pyston/build/Debug/pyston setup.py build --build-lib /home/tjhance/pyston/build/Debug/test/test_extension\r\nSegmentation fault (core dumped)\r\n[4/4] Generating ../lib_pyston/_multiprocessing.pyston.so, ../lib_pyston/pyexpat.pyston.so, ../lib_pyston/_elementtree.pyston.so\r\nFAILED: cd /home/tjhance/pyston/from_cpython && /home/tjhance/pyston/build/Debug/pyston setup.py build --build-lib /home/tjhance/pyston/build/Debug/lib_pyston\r\nSegmentation fault (core dumped)\r\nninja: build stopped: subcommand failed.\r\nmake: *** [pyston_dbg] Error 1\r\n```\r\n\r\nThis means that if pyston is broken, `make check` and related tools can't even get to the point where they run tests. And then you can't debug pyston!\r\n\r\nMost tests don't actually need these extension modules, so we should delay building them until after most tests have run."},"comment":{"url":"https://api.github.com/repos/dropbox/pyston/issues/comments/112673605","html_url":"https://github.com/dropbox/pyston/issues/616#issuecomment-112673605","issue_url":"https://api.github.com/repos/dropbox/pyston/issues/616","id":112673605,"user":{"login":"kmod","id":271916,"avatar_url":"https://avatars.githubusercontent.com/u/271916?v=3","gravatar_id":"","url":"https://api.github.com/users/kmod","html_url":"https://github.com/kmod","followers_url":"https://api.github.com/users/kmod/followers","following_url":"https://api.github.com/users/kmod/following{/other_user}","gists_url":"https://api.github.com/users/kmod/gists{/gist_id}","starred_url":"https://api.github.com/users/kmod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kmod/subscriptions","organizations_url":"https://api.github.com/users/kmod/orgs","repos_url":"https://api.github.com/users/kmod/repos","events_url":"https://api.github.com/users/kmod/events{/privacy}","received_events_url":"https://api.github.com/users/kmod/received_events","type":"User","site_admin":false},"created_at":"2015-06-17T06:38:32Z","updated_at":"2015-06-17T06:38:32Z","body":"One idea would be to not rebuild extension modules when we rebuild pyston.  ie as long as you build once with a good revision, you should be able to go to a bad revision and not hit this behavior.  I don't think it would hurt anything, but it opens up to the even-harder-to-diagnose case where the extension module has a bug because the pyston that built it had a bug, and it doesn't go away even if you fix the underlying pyston bug.  I think the chances of that are rare, so maybe it's worth trying out?\r\n\r\n@dagar is there a good way we could create that behavior in the build system?  We want to make sure that the extension modules exist, but if they already exist to not recreate them (except if the includes change).  I think I had this behavior accidentally when I made [sharedmods](https://github.com/dropbox/pyston/blob/master/from_cpython/CMakeLists.txt#L136) depend on `pyston`, rather than the current way we do it of having the .so files depend on `pyston`, but I'm not sure if that's a good approach."}}