{"id":79,"date":"2010-02-06T15:54:03","date_gmt":"2010-02-06T20:54:03","guid":{"rendered":""},"modified":"2011-02-02T00:07:51","modified_gmt":"2011-02-02T05:07:51","slug":"llvm-bootstrap","status":"publish","type":"post","link":"https:\/\/pappp.net\/?p=79","title":{"rendered":"LLVM Bootstrap"},"content":{"rendered":"\n<p><a class=\"externlink\" title=\"Go to http:\/\/blog.llvm.org\/2010\/02\/clang-successfully-self-hosts.html\" href=\"http:\/\/blog.llvm.org\/2010\/02\/clang-successfully-self-hosts.html\">Apparently<\/a> the <a class=\"externlink\" title=\"Go to http:\/\/clang.llvm.org\/\" href=\"http:\/\/clang.llvm.org\/\">Clang frontend<\/a> has successfully <a class=\"externlink\" title=\"Go to http:\/\/en.wikipedia.org\/wiki\/Bootstrapping_%28compilers%29\" href=\"http:\/\/en.wikipedia.org\/wiki\/Bootstrapping_%28compilers%29\">bootstrapped<\/a> LLVM.  Clang has been complete for C for some time, and Objective C (thanks largely to Apple) for almost as long, but since much of LLVM is written in C++, supporting that as well has clearly been an important goal.<br \/>\nMaking a complete, functional C++ frontend is one of the ugliest tasks in computing; the C++ spec is a bloody fucking nightmare, which drastically extends C&#8217;s <a class=\"externlink\" title=\"Go to http:\/\/hal.cs.berkeley.edu\/cil\/cil016.html\" href=\"http:\/\/hal.cs.berkeley.edu\/cil\/cil016.html\">already considerable<\/a> collection of dark corners.  The fact that there is now another FOSS implementation, particularly one that is written in a much cleaner way than the one provided by GCC is excellent news for programmers and tool writers alike.  Congrats to the Clang devs, and all the upstream LLVM folks involved. <\/p>\n<p>I have been following LLVM development reasonably closely, as my master&#8217;s project will hopefully culminate with a functional port of the LLVM backed to LARs, and am continually impressed by how accessible, friendly, and well documented the code base and community are.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apparently the Clang frontend has successfully bootstrapped LLVM. Clang has been complete for C for some time, and Objective C (thanks largely to Apple) for almost as long, but since much of LLVM is written in C++, supporting that as &hellip; <a href=\"https:\/\/pappp.net\/?p=79\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,1,12],"tags":[46],"class_list":["post-79","post","type-post","status-publish","format-standard","hentry","category-computers","category-general","category-oldblog","tag-llvm"],"_links":{"self":[{"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/posts\/79","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pappp.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=79"}],"version-history":[{"count":0,"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/posts\/79\/revisions"}],"wp:attachment":[{"href":"https:\/\/pappp.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=79"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pappp.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=79"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pappp.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=79"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}