{"action":"created","issue":{"url":"https://api.github.com/repos/crystal-lang/crystal/issues/3439","repository_url":"https://api.github.com/repos/crystal-lang/crystal","labels_url":"https://api.github.com/repos/crystal-lang/crystal/issues/3439/labels{/name}","comments_url":"https://api.github.com/repos/crystal-lang/crystal/issues/3439/comments","events_url":"https://api.github.com/repos/crystal-lang/crystal/issues/3439/events","html_url":"https://github.com/crystal-lang/crystal/pull/3439","id":183835578,"number":3439,"title":"Support LLVM 3.9","user":{"login":"ysbaddaden","id":47380,"avatar_url":"https://avatars.githubusercontent.com/u/47380?v=3","gravatar_id":"","url":"https://api.github.com/users/ysbaddaden","html_url":"https://github.com/ysbaddaden","followers_url":"https://api.github.com/users/ysbaddaden/followers","following_url":"https://api.github.com/users/ysbaddaden/following{/other_user}","gists_url":"https://api.github.com/users/ysbaddaden/gists{/gist_id}","starred_url":"https://api.github.com/users/ysbaddaden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ysbaddaden/subscriptions","organizations_url":"https://api.github.com/users/ysbaddaden/orgs","repos_url":"https://api.github.com/users/ysbaddaden/repos","events_url":"https://api.github.com/users/ysbaddaden/events{/privacy}","received_events_url":"https://api.github.com/users/ysbaddaden/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-10-19T00:17:57Z","updated_at":"2016-10-21T01:21:32Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/crystal-lang/crystal/pulls/3439","html_url":"https://github.com/crystal-lang/crystal/pull/3439","diff_url":"https://github.com/crystal-lang/crystal/pull/3439.diff","patch_url":"https://github.com/crystal-lang/crystal/pull/3439.patch"},"body":"Breaking changes (introduced by LLVM 3.9):\r\n- LLVMAddTargetData was removed (deprecated since 3.7).\r\n- LLVMGetTargetMachineData was removed (replaced by `LLVMCreateTargetDataLayout`).\r\n\r\nAlso:\r\n- drop custom data layouts to favor the LLVM default ones;\r\n- kept support for 3.5, 3.6 and 3.8 along with 3.9;\r\n- nice LLVM version macros (copied from Rust);\r\n- select `llvm-config` to use with `make LLVM_CONFIG=llvm-config-3.6` to select a specific LLVM version among the many that are installed.\r\n\r\nErrors:\r\n- [ ]  #crashing compiler specs (not reproducible when run directly)\r\n\r\n  `libgcc_s` crashes when trying to unwind from an exception raised in a compiler spec. Not reproducible when run directly. Not reproducible with 3.8 and lower.\r\n\r\n- [x] `--debug` fails with `Module validation failed: subprogram definitions must have a compile unit`\r\n\r\n  We used to generate the DICompileUnit after generating the IR code, but LLVM reverses the DICompileUnit and DISubprogram relationships. It now refers to the CU from the SP. We thus have to genrate the CU as soon as possible (i.e. immediately after instanciating the DIBuilder).\r\n\r\n- [x] `--debug` fail with `inlinable function call in a function with debug info must have a !dbg location`\r\n\r\ncloses #3237 "},"comment":{"url":"https://api.github.com/repos/crystal-lang/crystal/issues/comments/255270340","html_url":"https://github.com/crystal-lang/crystal/pull/3439#issuecomment-255270340","issue_url":"https://api.github.com/repos/crystal-lang/crystal/issues/3439","id":255270340,"user":{"login":"ilovezfs","id":5268928,"avatar_url":"https://avatars.githubusercontent.com/u/5268928?v=3","gravatar_id":"","url":"https://api.github.com/users/ilovezfs","html_url":"https://github.com/ilovezfs","followers_url":"https://api.github.com/users/ilovezfs/followers","following_url":"https://api.github.com/users/ilovezfs/following{/other_user}","gists_url":"https://api.github.com/users/ilovezfs/gists{/gist_id}","starred_url":"https://api.github.com/users/ilovezfs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ilovezfs/subscriptions","organizations_url":"https://api.github.com/users/ilovezfs/orgs","repos_url":"https://api.github.com/users/ilovezfs/repos","events_url":"https://api.github.com/users/ilovezfs/events{/privacy}","received_events_url":"https://api.github.com/users/ilovezfs/received_events","type":"User","site_admin":false},"created_at":"2016-10-21T01:21:32Z","updated_at":"2016-10-21T01:21:32Z","body":"@ysbaddaden @asterite just a heads up that in Homebrew I've now upgraded the llvm formula to 3.9 and alongside that shipped crystal-lang with this PR applied as a patch. So a new release tag with this PR or equivalent merged would be much appreciated as soon as possible so that we can get rid of the patching and distribute an unaltered upstream release once again."}}
{"actor":{"display_login":"ilovezfs"}}