{"id":4774,"date":"2018-10-24T18:54:48","date_gmt":"2018-10-24T16:54:48","guid":{"rendered":"https:\/\/monodes.com\/predaelli\/?p=4774"},"modified":"2018-10-24T18:54:48","modified_gmt":"2018-10-24T16:54:48","slug":"bootstrappable-builds","status":"publish","type":"post","link":"https:\/\/monodes.com\/predaelli\/2018\/10\/24\/bootstrappable-builds\/","title":{"rendered":"Bootstrappable builds"},"content":{"rendered":"<h1><a href=\"https:\/\/bootstrappable.org\/\"><img decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/bootstrappable.org\/images\/banner.svg\" alt=\"\" \/><\/a>\u00a0<em><a href=\"https:\/\/bootstrappable.org\/\">Bootstrappable builds<\/a><\/em><\/h1>\n<blockquote><p><strong>Compilers are often written in the language they are compiling.<\/strong> This creates a chicken-and-egg problem that leads users and distributors to rely on opaque, pre-built binaries of those compilers that they use to build newer versions of the compiler.<\/p>\n<p>To gain trust in our computing platforms, we need to be able to tell how each part was produced from source. We believe that opaque binaries are a threat to user security and user freedom since they are not auditable; we believe the amount of bootstrap binaries should be minimized.<\/p><\/blockquote>\n<p>Well, it holds also for Eiffel<\/p>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">\u00a0Bootstrappable builds Compilers are often written in the language they are compiling. This creates a chicken-and-egg problem that leads users and distributors to rely on opaque, pre-built binaries of those compilers that they use to build newer versions of the compiler. To gain trust in our computing platforms, we need to be able to tell&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/monodes.com\/predaelli\/2018\/10\/24\/bootstrappable-builds\/\">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-4774","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-1f0","jetpack-related-posts":[{"id":9166,"url":"https:\/\/monodes.com\/predaelli\/2022\/03\/20\/bootstrappable-builds-2\/","url_meta":{"origin":4774,"position":0},"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":1751,"url":"https:\/\/monodes.com\/predaelli\/2016\/09\/05\/black-magic\/","url_meta":{"origin":4774,"position":1},"title":"Black magic","author":"Paolo Redaelli","date":"2016-09-05","format":false,"excerpt":"I'm considering to move my personal cloud from OwnCloud to NextCloud. Then you read those build instructions. Building on Linux Run: mkdir build-linux cd build-linux cmake -D OEM_THEME_DIR=`pwd`\/..\/nextcloudtheme ..\/client make make install Building on OSX Attention: When building make sure to use an old Core 2 Duo build machine running\u2026","rel":"","context":"In &quot;Mood&quot;","block_context":{"text":"Mood","link":"https:\/\/monodes.com\/predaelli\/category\/mood\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2266,"url":"https:\/\/monodes.com\/predaelli\/2017\/03\/09\/random-webassembly-links\/","url_meta":{"origin":4774,"position":2},"title":"Random WebAssembly links","author":"Paolo Redaelli","date":"2017-03-09","format":false,"excerpt":"Some WebAssembly links to study (to implement LibertyEiffel to WebAssembler): hGoogling \"webassembly support for older browser\" Guide for C\/C++ developers WebAssembly Concepts Writing WebAssembly directly Maybe you want to build your own compiler, or your own tools, or make a JavaScript library that generates WebAssembly at runtime? In the same\u2026","rel":"","context":"In &quot;Eiffel&quot;","block_context":{"text":"Eiffel","link":"https:\/\/monodes.com\/predaelli\/category\/eiffel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":392,"url":"https:\/\/monodes.com\/predaelli\/2015\/06\/19\/big-g-or-big-brother\/","url_meta":{"origin":4774,"position":3},"title":"Big G or Big Brother?","author":"Paolo Redaelli","date":"2015-06-19","format":false,"excerpt":"\u00a0Google Criticized For 'Opaque' Audio-Listening Binary In Debian Chromium (source Slashdot): Debian, mother of Ubuntu, a major player in the software Libre world always required to have access to the sources of the programs they distribute1, especially in web-browsers. I'm not surprised to read this. I do not use proprietary\u2026","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"1000px-Chromium_11_Logo.svg","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2015\/06\/1000px-Chromium_11_Logo.svg_-150x1501.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":776,"url":"https:\/\/monodes.com\/predaelli\/2015\/11\/04\/gcc5-and-libertyeiffel\/","url_meta":{"origin":4774,"position":4},"title":"GCC5 and LibertyEiffel","author":"Paolo Redaelli","date":"2015-11-04","format":false,"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. ... The new library in GCC 5 is named libgccjit, since it can be used to implement Just-In-Time\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":1165,"url":"https:\/\/monodes.com\/predaelli\/2016\/03\/15\/ise-eiffel-sqlite\/","url_meta":{"origin":4774,"position":5},"title":"(ISE) Eiffel SQLite","author":"Paolo Redaelli","date":"2016-03-15","format":false,"excerpt":"According to eiffelroom ISE has SQLite wrappers. Ok, the linked website (http:\/\/esqlite.origo.ethz.ch\/) is down but it must be noted that Jocelyn Fiat wrote it almost seven years ago. Meanwhile Eiffel Studio got some SQLite wrappers: https:\/\/svn.eiffel.com\/eiffelstudio\/trunk\/Src\/unstable\/library\/persistency\/database\/sqlite3\/sqlite_statement.e I do like those copyright notes at the end: they released under GPLv2! And\u2026","rel":"","context":"In &quot;Eiffel&quot;","block_context":{"text":"Eiffel","link":"https:\/\/monodes.com\/predaelli\/category\/eiffel\/"},"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\/4774","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=4774"}],"version-history":[{"count":0,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/4774\/revisions"}],"wp:attachment":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media?parent=4774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/categories?post=4774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/tags?post=4774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}