{"id":776,"date":"2015-11-04T08:50:17","date_gmt":"2015-11-04T07:50:17","guid":{"rendered":"http:\/\/monodes.com\/predaelli\/?p=776"},"modified":"2015-11-04T08:50:17","modified_gmt":"2015-11-04T07:50:17","slug":"gcc5-and-libertyeiffel","status":"publish","type":"post","link":"https:\/\/monodes.com\/predaelli\/2015\/11\/04\/gcc5-and-libertyeiffel\/","title":{"rendered":"GCC5 and LibertyEiffel"},"content":{"rendered":"<p>From: <em><a href=\"http:\/\/developerblog.redhat.com\/2015\/04\/07\/jit-compilation-using-gcc-5-2\/\">JIT-compilation using GCC 5 | Red Hat Developer Blog <\/a><\/em><\/p>\n<blockquote><p>This post is about something more user-visible: as of GCC 5, GCC\u2019s code-generation backend can now be built as a shared library.<\/p>\n<p>&#8230;<\/p>\n<p>The new library in GCC 5 is named <a href=\"https:\/\/gcc.gnu.org\/wiki\/JIT\">libgccjit<\/a>, since it can be used to implement Just-In-Time compilation within a language interpreter. Although I primarily had JIT-compilation in mind when writing it, <strong>the library can also write the code it generates out to disk as an executable, allowing you to build more conventional ahead-of-time compilers.<\/strong><\/p>\n<\/blockquote>\n<p>Eureka!<\/p>\n<h2>That&#8217;s exactly what we need for GNU LIberty Eiffel!<\/h2>\n<p>Let&#8217;s study it a little, issuing<\/p>\n<blockquote>\n<p>The new library in GCC 5 is named <a href=\"https:\/\/gcc.gnu.org\/wiki\/JIT\">libgccjit<\/a>, since it can be used to implement Just-In-Time compilation within a language interpreter. Although I primarily had JIT-compilation in mind when writing it, the library can also write the code it generates out to disk as an executable, allowing you to build more conventional ahead-of-time compilers.<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">From: JIT-compilation using GCC 5 | Red Hat Developer Blog This post is about something more user-visible: as of GCC 5, GCC\u2019s code-generation backend can now be built as a shared library. &#8230; The new library in GCC 5 is named libgccjit, since it can be used to implement Just-In-Time compilation within a language interpreter.&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/monodes.com\/predaelli\/2015\/11\/04\/gcc5-and-libertyeiffel\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-776","post","type-post","status-publish","format-standard","hentry","category-senza-categoria"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6daft-cw","jetpack-related-posts":[{"id":148,"url":"https:\/\/monodes.com\/predaelli\/2015\/05\/16\/148\/","url_meta":{"origin":776,"position":0},"title":"Ok, I feel stupid. I'm\u2026","author":"Paolo Redaelli","date":"2015-05-16","format":false,"excerpt":"Ok, I feel stupid. I'm reading several weeks of unread mail discovering this one of 26th of march: Hi Folks, I'm happy to announce CastXML, a successor to GCC-XML [1]. CastXML is hosted here: https:\/\/github.com\/CastXML\/CastXML#readme It is a tool based on LLVM\/Clang that generates the same XML output format as\u2026","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4639,"url":"https:\/\/monodes.com\/predaelli\/2018\/10\/13\/gcc-optimizing-everything\/","url_meta":{"origin":776,"position":1},"title":"GCC: Optimizing Everything","author":"Paolo Redaelli","date":"2018-10-13","format":"link","excerpt":"Software is useless if computers can't run it. Even the most talented developer is at the mercy of the compiler when it comes to run-time performance - if you don\u2019t have a reliable compiler toolchain you can\u2019t build anything serious. The GNU Compiler Collection (GCC) provides a robust, mature and\u2026","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":9166,"url":"https:\/\/monodes.com\/predaelli\/2022\/03\/20\/bootstrappable-builds-2\/","url_meta":{"origin":776,"position":2},"title":"Bootstrappable builds","author":"Paolo Redaelli","date":"2022-03-20","format":false,"excerpt":"Source: Bootstrappable builds Do you know how to make yoghurt? The first step is to add yoghurt to milk! How can you build a compiler like GCC? The first step is to get a compiler that can compile the compiler.","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":137,"url":"https:\/\/monodes.com\/predaelli\/2015\/05\/14\/137\/","url_meta":{"origin":776,"position":3},"title":"Time to dive into GCC:\u2026","author":"Paolo Redaelli","date":"2015-05-14","format":false,"excerpt":"Time to dive into GCC: [code lang=\"bash\"] git clone git:\/\/gcc.gnu.org\/git\/gcc.git [\/code] From https:\/\/gcc.gnu.org\/wiki\/GitMirror. And study Parsing C++ with GCC plugins, (Part 1 Part 2 and Part 3) together with GCC Internals Manual. \u00a0 Why? Because I used gccxml to build a wrapper generator for LibertyEiffel. Nowadays gccxml is not updated\u2026","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8158,"url":"https:\/\/monodes.com\/predaelli\/2021\/02\/07\/the-v-programming-language\/","url_meta":{"origin":776,"position":4},"title":"The V Programming Language","author":"Paolo Redaelli","date":"2021-02-07","format":false,"excerpt":"I've just read \"Is Zig the long awaited C replacement\" and it cites: The V Programming Language seems to be a \"fastly compiling\" language. Compilation speed benchmark C 5.2s gcc test.c C++ 1m 25s g++ test.cpp Zig 10.1s zig build-exe test.zig Nim 45s nim c test.nim Rust Stopped after 30\u2026","rel":"","context":"In &quot;Comparisons&quot;","block_context":{"text":"Comparisons","link":"https:\/\/monodes.com\/predaelli\/category\/comparisons\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6678,"url":"https:\/\/monodes.com\/predaelli\/2020\/02\/23\/wasm-links\/","url_meta":{"origin":776,"position":5},"title":"Wasm links","author":"Paolo Redaelli","date":"2020-02-23","format":"link","excerpt":"Some assorted links about Web Assembly: https:\/\/webassembly.org\/https:\/\/docs.assemblyscript.org\/https:\/\/webassembly.studio\/https:\/\/github.com\/AssemblyScript\/assemblyscripthttps:\/\/medium.com\/@rossbulat\/webassembly-modules-an-introduction-5554b8982402Someone started a GCC backend https:\/\/sourceware.org\/ml\/binutils\/2017-03\/msg00044.html but it seems all stopped 3 years ago https:\/\/github.com\/pipcet\/asmjshttps:\/\/emscripten.org\/https:\/\/github.com\/mbasso\/awesome-wasm#compilers","rel":"","context":"In &quot;Documentations&quot;","block_context":{"text":"Documentations","link":"https:\/\/monodes.com\/predaelli\/category\/documentations\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/776","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/comments?post=776"}],"version-history":[{"count":0,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/776\/revisions"}],"wp:attachment":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media?parent=776"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/categories?post=776"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/tags?post=776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}