From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark H Weaver Subject: Re: [bootstrappable] Re: prototyping the full source bootstrap path Date: Wed, 22 Nov 2017 23:56:29 -0500 Message-ID: <87a7zdmw3m.fsf@netris.org> References: <877eulkii1.fsf@gnu.org> <87y3n15mru.fsf@gnu.org> <87vai5w50j.fsf@elephly.net> <87tvxoiyh7.fsf@gnu.org> <87o9nwzkb7.fsf@gnu.org> <87d14bikoo.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42620) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eHjZP-00066K-EU for guix-devel@gnu.org; Wed, 22 Nov 2017 23:57:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eHjZK-000773-GU for guix-devel@gnu.org; Wed, 22 Nov 2017 23:57:03 -0500 Received: from world.peace.net ([50.252.239.5]:52885) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eHjZK-0006yL-C0 for guix-devel@gnu.org; Wed, 22 Nov 2017 23:56:58 -0500 In-Reply-To: (Jeremiah Orians's message of "Tue, 21 Nov 2017 18:23:02 +0000") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: "Orians, Jeremiah (DTMB)" Cc: guix-devel@gnu.org, bootstrappable@freelists.org Hi, "Orians, Jeremiah (DTMB)" writes: >> Hmm, it's my understanding that Guile is pretty heavily tied to >> libguile/*.c. What makes you think that it's possible for Guile to >> run without libguile/*.c? > https://wingolog.org/archives/2016/01/11/the-half-strap-self-hosting-and-guile > > Specifically "The bootstrap C interpreter in libguile loads the Scheme > compiler and builds eval.go from eval.scm" > > Thus by simply having a scheme compiler able to compile eval.scm, we > can skip the libguile/*.c Assuming I interpreted that situation > correctly Jan is correct that Guile is still heavily tied to its C code. It's true that Guile's compiler is written in Scheme and that the C evaluator is used only during bootstrapping, but the C bootstrap evaluator is only a small piece of libguile. The majority of libguile is still needed. Notably, the entire runtime, the VM, and implementations of many data structures and other libraries are written in C. Mark