CINXE.COM

Mes - GNU Project - Free Software Foundation

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rel="author" href="mailto:webmasters@gnu.org" /> <link rel="icon" type="image/png" href="/graphics/gnu-head-mini.png" /> <meta name="ICBM" content="42.355469,-71.058627" /> <link rel="stylesheet" type="text/css" href="/layout.min.css" media="screen" /> <link rel="stylesheet" type="text/css" href="/print.min.css" media="print" /> <!-- Parent-Version: $Revision: 1.18 $ --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <title>Mes - GNU Project - Free Software Foundation</title> <!-- begin /server/gnun/initial-translations-list.html --> <!-- HTML head: set a flag for further expansion in body-include*.html. --> <!-- end /server/gnun/initial-translations-list.html --> <!-- start of server/banner.html --> <!-- start of head-include-2.html --> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="stylesheet" type="text/css" href="/server/banners/fundraiser.css" media="screen" /> <style type="text/css" media="screen"><!-- .progress-bar { width: 12%; } .percentage { text-align: left; left: 100%; padding-right: 1em; padding-left: .5em; } --></style> <style type="text/css" media="screen"> <!-- TRANSLATORS: Change direction to rtl if you translate the fundraiser and your script is right-to-left. --> #fundraiser { direction: ltr; } </style> <!-- end of head-include-2.html --> </head> <body> <div class="inner"> <!-- start of server/body-include-1.html --> <div id="top"> <p><a class="skip" href="#content"><b>Skip to main text</b></a></p> </div> <div id='fundraiser'> <div class="message"> <p class="headline"><b>Come build a better world with us!</b></p> <p><a href="https://my.fsf.org/donate?mtm_campaign=fall24&amp;mtm_source=banner">Please don't scroll past this. We've been building a better world with free software since 1985. Today, we ask for your support. Only with your help can the FSF continue to be the cornerstone of a more just digital society! Donate to help us reach the goal of USD $400,000 by Dec 31.<span class="gnun-split"></span></a></p> <p class="button"><a href="https://my.fsf.org/donate?mtm_campaign=fall24&amp;mtm_source=banner">Donate<span class="gnun-split"></span></a> </p> <div style="clear: both"></div> </div><!-- .message --> <div class="progress"> <div class="progress-bar"><span class="percentage">$50,762</span></div> <span class="goal">$400,000<span class="gnun-split"></span> </span> </div><!-- .progress --> </div><!-- #fundraiser --> <div style="clear: both"></div> <div id="header" role="banner"> <p id="gnu-banner"> <a href="/"> <img src="/graphics/heckert_gnu.transp.small.png" height="48" width="49" alt="&nbsp;[A GNU head]&nbsp;" /><strong>GNU</strong> <span class="hide">Operating System</span></a><br /> <small id="fsf-support">Supported by the <a href="#mission-statement">Free Software Foundation</a></small> </p> <div id="switches"> <div id="search-button" class="switch"> <a href="//www.gnu.org/cgi-bin/estseek.cgi"> <img id="search-icon" height="30" width="30" src="/graphics/icons/search.png" alt="&nbsp;[Search www.gnu.org]&nbsp;" /></a> </div> </div><!-- #switches --> </div><!-- #header --> <!-- end of server/body-include-1.html --> <!-- start of server/body-include-2 --> <div style="clear: both"></div> <div id="navigation" role="navigation"> <a id="more-links" href="#navigation" title="More..."> <span>Site navigation</span></a> <a id="less-links" href="#content"><b>Skip</b></a> <ul> <li id="tabAboutGNU"><a href="/gnu/gnu.html">ABOUT&nbsp;GNU</a></li> <li id="tabPhilosophy"><a href="/philosophy/philosophy.html">PHILOSOPHY</a></li> <li id="tabLicenses"><a href="/licenses/licenses.html">LICENSES</a></li> <li id="tabEducation"><a href="/education/education.html">EDUCATION</a></li> <li id="tabSoftware" class="active"> <span class='no-display'>=</span> <a href="/software/software.html">SOFTWARE</a> <span class="gnun-split"></span> <span class='no-display'>=</span> </li> <li id="tabDistros"><a href="/distros/distros.html">DISTROS</a></li> <li id="tabDoc"><a href="/doc/doc.html">DOCS</a></li> <li id="tabMalware"><a href="/proprietary/proprietary.html">MALWARE</a></li> <li id="tabHelp"><a href="/help/help.html">HELP&nbsp;GNU</a></li> <li id="tabAV"><a href="/audio-video/audio-video.html">AUDIO&nbsp;&amp;&nbsp;VIDEO</a></li> <li id="tabArt"><a href="/graphics/graphics.html">GNU&nbsp;ART</a></li> <li id="tabFun"><a href="/fun/humor.html">FUN</a></li> <li id="tabPeople"><a href="/people/people.html">GNU'S&nbsp;WHO?</a></li> <li><a href="//directory.fsf.org">SOFTWARE&nbsp;DIRECTORY</a></li> <li><a href="https://h-node.org/">HARDWARE</a></li> <li><a href="/server/sitemap.html">SITEMAP</a></li> </ul> <div style="clear: both"></div> </div><!-- /"navigation --> <!-- end of server/body-include-2 --> <div id="content" role="main"> <!-- end of server/banner.html --> <h2>GNU Mes</h2> <!--------------------------------------------------------------------------------> <p> <a href="https://www.gnu.org/software/mes">GNU Mes</a> is a Scheme interpreter and C compiler for bootstrapping the GNU System. It has helped to decimate the number and size of binary seeds that were used in the bootstrap of <a href="https://www.gnu.org/software/guix">GNU Guix</a> 1.0. Recently, version 0.24.2 has realized the first <a href="https://guix.gnu.org/en/blog/2023/the-full-source-bootstrap-building-from-source-all-the-way-down/">Full Source Bootstrap</a> for Guix. The final goal is to help create a full source bootstrap as part of the <a href="https://bootstrappable.org">bootstrappable builds</a> effort for any UNIX-like operating system. </p> <p> The Scheme interpreter is written in ~5,000 LOC of simple C, and the C compiler written in Scheme and these are mutual self-hosting. Mes can now be bootstrapped from <a href="https://github.com/oriansj/m2-planet">M2-Planet</a> and <a href="https://savannah.nongnu.org/projects/mescc-tools">Mescc-Tools</a>. </p> <p> Mes has a Garbage Collector, a library of loadable Scheme modules&#x2013; notably Dominique Boucher's <a href="https://github.com/schemeway/lalr-scm">LALR</a>, Pre-R6RS <a href="https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html">portable syntax-case</a> with R7RS ellipsis, Matt Wette's <a href="https://www.nongnu.org/nyacc">Nyacc</a> &#x2013;and test suite, just enough to support a REPL and a C99 compiler: mescc. </p> <p> Mes + MesCC + Mes C Library can build a <a href="https://gitlab.com/janneke/tinycc">bootstrappable TinyCC</a> that is self-hosting. Using this bootstrappable-tcc and the Mes C library we can build an ancient version of the GNU tools triplet: glibc-2.2.5, binutils-2.20.1, gcc-2.95.3. This is enough to bootstrap Guix for i686-linux, x86<sub>64</sub>-linux, armhf-linux and aarch64-linux. </p> <p> Mes was inspired by The Maxwell Equations of Software: <a href="https://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf">LISP-1.5</a> &#x2013; John McCarthy page 13, Guix's source/binary packaging transparency and Jeremiah Orians's <a href="https://github.com/oriansj/stage0">stage0</a>, a ~500-byte self-hosting hex assembler. </p> <p> We are very grateful to NLNet for sponsoring the <a href="https://nlnet.nl/project/GNUMes">Reduced Binary Seed bootstrap</a>, the <a href="https://nlnet.nl/project/GNUMes-arm">ARM port</a>, and the <a href="https://nlnet.nl/project/GNUMes-ARM_RISC-V">Full Source Bootstrap.</a> <a href="https://NLnet.nl/NGI0"> <img src="images/ngi0.png" alt="Logo NGI Zero: letterlogo shaped like a tag" height="40px" /> </a> </p> <p> GNU Mes is free software, it is distributed under the terms of the GNU General Public Licence version 3 or later. </p> <!--------------------------------------------------------------------------------> <h3 id="download">Downloading Mes</h3> <div class="outline-text-2" id="text-1"> <div class="org-src-container"> <pre class="src src-bash">git clone https://git.savannah.gnu.org/git/mes.git </pre> </div> </div> <p>Mes can be found on the main GNU ftp server: <a href="https://ftp.gnu.org/gnu/mes/">https://ftp.gnu.org/gnu/mes/</a> (via HTTP) and <a href="ftp://ftp.gnu.org/gnu/mes/">ftp://ftp.gnu.org/gnu/mes/</a> (via FTP). It can also be found on the <a href="/prep/ftp.html">GNU mirrors</a>; please <a href="https://ftpmirror.gnu.org/mes/">use a mirror</a> if possible.</p> <h3 id="documentation">Documentation</h3> <p><a href="manual/">Documentation for Mes</a> is available online, as is <a href="/manual/">documentation for most GNU software</a>. You may also find more information about Mes by running <em>info&nbsp;mes</em> or <em>man&nbsp;mes</em>, or by looking at <em>&lt;prefix&gt;/share/doc/mes/</em>, <em>/usr/doc/mes/</em>, <em>/usr/local/doc/mes/</em>, or similar directories on your system. A brief summary is available by running <em>mes&nbsp;--help</em>.</p> <h3 id="mail">Mailing lists</h3> <p>Mes uses the following mailing lists:</p> <ul> <li><a href="https://lists.gnu.org/mailman/listinfo/bug-mes">bug-mes</a> is used to discuss most aspects of Mes, including development and enhancement requests, as well as bug reports.</li> <li><a href="https://lists.gnu.org/mailman/listinfo/guix-devel">guix-devel</a> is for general user help and discussion.</li> </ul> <p>Announcements about Mes and most other GNU software are made on <a href="https://lists.gnu.org/mailman/listinfo/info-gnu">info-gnu</a> (<a href="https://lists.gnu.org/archive/html/info-gnu/">archive</a>).</p> <p>Security reports that should not be made immediately public can be sent directly to the maintainer. If there is no response to an urgent issue, you can escalate to the general <a href="https://lists.gnu.org/mailman/listinfo/security">security</a> mailing list for advice.</p> <h3 id="contribute">Getting involved</h3> <p>Development of Mes, and GNU in general, is a volunteer effort, and you can contribute. For information, please read <a href="/help/">How to help GNU</a>. If you'd like to get involved, it's a good idea to join the discussion mailing list (see above). </p> <p> Join the <code>#bootstrappable</code> channel on the <a href="https://en.wikipedia.org/wiki/Libera_Chat">Libera聽Chat IRC network</a> to chat with the Bootstrappable and GNU Mes community or to get help in real time. </p> <dl> <dt>Test releases</dt> <dd>Trying the latest test release (when available) is always appreciated. Test releases of Mes can be found at <a href="https://alpha.gnu.org/gnu/mes/">https://alpha.gnu.org/gnu/mes/</a> (via HTTPS) and <a href="ftp://alpha.gnu.org/gnu/mes/">ftp://alpha.gnu.org/gnu/mes/</a> (via FTP).</dd> <dt>Development</dt> <dd>For development sources, issue trackers, and other information, please see the <a href="https://savannah.gnu.org/projects/mes/">Mes project page</a> at <a href="https://savannah.gnu.org">savannah.gnu.org</a>.</dd> <!-- <dt>Translating Mes</dt> <dd>To translate Mes's messages into other languages, please see the <a href="https://translationproject.org/domain/mes.html">Translation Project page for Mes</a>. If you have a new translation of the message strings, or updates to the existing strings, please have the changes made in this repository. Only translations from this site will be incorporated into Mes. For more information, see the <a href="https://translationproject.org/html/welcome.html">Translation Project</a>.</dd> !--> <dt>Maintainer</dt> <dd>Mes is currently being maintained by Janneke Nieuwenhuizen. Please use the mailing lists for contact.</dd> </dl> <h3 id="license">Licensing</h3> <p>Mes is free software; you can redistribute it and/or modify it under the terms of the <a href="https://www.gnu.org/licenses/gpl.html" rel="license">GNU General Public License</a> as published by the Free Software Foundation; either version&nbsp;3 of the License, or (at your option) any later version.</p> </div><!-- for id="content", starts in the include above --> <!-- begin server/footer-text.html --> <div style="clear:both"></div> <div id="mission-statement" role="complementary"> <div class="backtotop"> <hr class="no-display" /> <a href="#header"><span>BACK TO TOP </span>&#9650;</a> </div> <div style="clear: both"></div> <blockquote> <p style="direction:ltr; text-align:left"><a href="//www.fsf.org"><img id="fsfbanner" src="/graphics/fsf-logo-notext-small.png" alt="&nbsp;[FSF logo]&nbsp;" width="75" height="25" /></a><strong> &ldquo;The Free Software Foundation (FSF) is a nonprofit with a worldwide mission to promote computer user freedom. We defend the rights of all software users.&rdquo;</strong></p> </blockquote> <div id="support-the-fsf" class="button"> <a class="join" href="//www.fsf.org/associate/support_freedom?referrer=4052">JOIN</a> <a class="donate" href="//donate.fsf.org/">DONATE</a> <a class="shop" href="//shop.fsf.org/">SHOP</a> </div> </div> <!-- end server/footer-text.html --> <div id="footer"> <div class="unprintable"> <p>Please send general FSF &amp; GNU inquiries to <a href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>. There are also <a href="/contact/">other ways to contact</a> the FSF. Broken links and other corrections or suggestions can be sent to <a href="mailto:bug-mes@gnu.org">&lt;bug-mes@gnu.org&gt;</a>.</p> <p><!-- TRANSLATORS: Ignore the original text in this paragraph, replace it with the translation of these two: We work hard and do our best to provide accurate, good quality translations. However, we are not exempt from imperfection. Please send your comments and general suggestions in this regard to <a href="mailto:web-translators@gnu.org"> &lt;web-translators@gnu.org&gt;</a>.</p> <p>For information on coordinating and submitting translations of our web pages, see <a href="/server/standards/README.translations.html">Translations README</a>. --> Please see the <a href="/server/standards/README.translations.html">Translations README</a> for information on coordinating and submitting translations of this article.</p> </div> <!-- Regarding copyright, in general, standalone pages (as opposed to files generated as part of manuals) on the GNU web server should be under CC BY-ND 4.0. Please do NOT change or remove this without talking with the webmasters or licensing team first. Please make sure the copyright date is consistent with the document. For web pages, it is ok to list just the latest year the document was modified, or published. If you wish to list earlier years, that is ok too. Either "2001, 2002, 2003" or "2001-2003" are ok for specifying years, as long as each year in the range is in fact a copyrightable year, i.e., a year in which the document was published (including being publicly visible on the web or in a revision control system). There is more detail about copyright years in the GNU Maintainers Information document, www.gnu.org/prep/maintain. --> <p>Copyright &copy; 2022 Free Software Foundation, Inc.</p> <p>This page is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-nd/4.0/">Creative Commons Attribution-NoDerivatives 4.0 International License</a>.</p> <!-- start of server/bottom-notes.html --> <div id="bottom-notes" class="unprintable"> <p><a href="//www.fsf.org/about/dmca-notice">Copyright Infringement Notification</a></p> <div id="generic"> </div> </div> <!-- end of server/bottom-notes.html --> <p class="unprintable">Updated: <!-- timestamp start --> $Date: 2023/11/11 06:20:27 $ <!-- timestamp end --> </p> </div> </div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10