From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tomas Volf <~@wolfsden.cz> Newsgroups: gmane.lisp.guile.devel Subject: [PATCH v2] Add more detailed instructions into the HACKING file. Date: Tue, 5 Dec 2023 01:02:11 +0100 Message-ID: <20231205000337.21517-1-~@wolfsden.cz> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19470"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Tomas Volf <~@wolfsden.cz> To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Tue Dec 05 01:04:08 2023 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rAIv1-0004ot-Hk for guile-devel@m.gmane-mx.org; Tue, 05 Dec 2023 01:04:07 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rAIuk-0002uG-2n; Mon, 04 Dec 2023 19:03:50 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rAIuh-0002t6-KV for guile-devel@gnu.org; Mon, 04 Dec 2023 19:03:47 -0500 Original-Received: from wolfsden.cz ([37.205.8.62]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rAIuf-0007Bg-5m for guile-devel@gnu.org; Mon, 04 Dec 2023 19:03:47 -0500 Original-Received: by wolfsden.cz (Postfix, from userid 104) id 92B0A262D69; Tue, 5 Dec 2023 00:03:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1701734621; bh=AECFYResDXYxnHtKSPuZAFda74Sop/AOoA74XjidvHU=; h=From:To:Cc:Subject:Date; b=LOtJ7SFuw1ClnNYLhbN2n58g2GxxpKsWbnIIaFczvbSgHHAYzA2s98wP4a9s+4dTm UtoRWZS9tJ2mUx2U4c+uELy66zUy0zcqpyUoNs688ruap9CCG2UakQIOhSDkOEZLXz xxeRuuPS067Kmm6q2Ii6JtGTD2wNto3o+ASQj8GbaYlRCRl9ZWO8tTG5vpnKjzI0MR 5p1r3h2+xNPxo7oklg7Xg5vUfNh2fH/CzMGf8CdkTk03/lvZaBCTs7mS8AcnLsTFZd pGIk0nVzDDRErJGAc9f89fw+5r5l84UEZmPt1F9PN5WJVnnLyFbluYXEuSsgbfbmc1 4WOKlxXxj0B6eDupjePvHvzUJW5BTcg4ACHsL5VcaZhO6WHdbIrkHZGJThQgTNphrp XYSyeJUwcFXvN5wX0Eely9w5QKvKmgS/hpvTi8d51U+DscLdfTlWEE6AoBhP7dDplc WwxT+yqvZVshUTsgiys1gH+Gf0JnyzRUC/845GlON/cC0A3CZxdiLhiiZY7XYn7Xzx Gh+rkQMA55nI8SmPBYmjP9NiXJdGrg9gaIJdubaN6NlavT60jPRV1gveNLJx0cAKZy VZ/JC+c3jKwmZZE88qf52e+mv85ACoJZ9456nyOnD0UQALqrLdWTJ5OE21h8uS6DFZ 8xBnaJTmRct2nq1ExvEaEHwA= Original-Received: from localhost (unknown [193.32.127.157]) by wolfsden.cz (Postfix) with ESMTPSA id A1D072630FB; Tue, 5 Dec 2023 00:03:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1701734619; bh=AECFYResDXYxnHtKSPuZAFda74Sop/AOoA74XjidvHU=; h=From:To:Cc:Subject:Date; b=yyNO3O9HnA3s2MKrc0/5sly0XLtmoRU7Qxt8WjDL8RR8c5sS7kxOQNOjmMPA8tirc ofp+maK+pSVVoQyYH2WmuKUYy841Ksrs64wvnoROen+ZsMZ1B+YftXyVv26DCzHo1+ Yq9gLDM9AdaaFBKDok6K3PMxaJxDXp4LnwM35La5HYDRM6bosd2QEswOcfxgoehGem ycT7FONA/vofbbxVg8PW70mh9d0M6vKtG4kFvkdMecwMqqBGNjv+yvhsRp+6HO2f34 BhnSyjbqDNgNAMIgdPOhzEwELEXkfqXNEB/IHAcmRouV4qNYVKGhyeVcIP7gKesZZJ j5uKzgV9354FCma+U2dMnbAKOc7+7+ooyFmX4cJ3lINQfxsmfyJ8FZawM4bWiu+XhI Fg24t5wQvQjaJE09ulx54+qkGFMngH3zclbsGOktwaVdQKxps9c/nA3zXNfGz5Ya+k z5QddHEWs9q0JZA7HyXSurN+njQYn8zLHcz1kf8b2sGgNp2+2XhsqDRJJgaU2MglRr UGtx/h6Q199ZC+cNUH1Mc9ihy/y5QSKJxHGel8IUzTzMVH+IARUE7tou34ZQenH4/Q R4BkEmbnUZhZXFRReYw9NIXRjOFNx0esObXa9Hyfzt46CcD9kEvnq9RX+iW+3Jkhim H3RQxUi/0F5kBj97V/a2z6Fg= Original-Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id 0c01f59c; Tue, 5 Dec 2023 00:03:38 +0000 (UTC) X-Mailer: git-send-email 2.41.0 Received-SPF: none client-ip=37.205.8.62; envelope-from=ws@wolfsnet.cz; helo=wolfsden.cz X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_PASS=-0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, UNPARSEABLE_RELAY=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.devel:22202 Archived-At: Until now, the ./meta/guile was not mentioned anywhere, and therefore it was not obvious how to run the locally compiled Guile without installing it. While modifying the file, I took the liberty to also mention a bit about compiling Guile using Guix. Finally, the header lines where cleaned up, ensuring all of them end at 70 and have a leading space. * HACKING (Hacking It Yourself): Add Guix instructions. Add a note about meta/guile script. (Sample GDB Initialization File), (Naming conventions): Clean up the header line. --- v2: Add note regarding JIT and GNU Hurd. Add note regarding -fexcess-precision. Add --disable-static and explain it. HACKING | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/HACKING b/HACKING index 387643bf7..5926fb275 100644 --- a/HACKING +++ b/HACKING @@ -26,6 +26,40 @@ http://www.gnu.org/software/guile/mail/mail.html for more info. Hacking It Yourself ================================================== +You can spawn a shell with all the required dependencies using GNU Guix +by running the following command: + + guix shell -D -f guix.scm --pure + +In this way, you can effortlessly compile Guile from the Git checkout +with just these three lines: + + guix shell -D -f guix.scm --pure -- ./autogen.sh + guix shell -D -f guix.scm --pure -- ./configure \ + --enable-mini-gmp --disable-static + guix shell -D -f guix.scm --pure -- make + +Disabling of the static libraries is optional, but it does speed up the +builds, and you are unlikely to need them for local development. + + Note: Currently JIT causes Guile to crash in obscure ways on GNU Hurd, + so on that platform you want to also pass the --disable-jit flag + to the configure script. + + Note: On any i*86 architecture, you also need to pass in the compiler + flag -fexcess-precision=standard in order to get the test suite + to pass. That can be done by passing an additional argument to + the configure script: + CFLAGS='-g -O2 -fexcess-precision=standard' + +Once that finishes, you can execute your newly compiled Guile using the +./meta/guile script: + + $ ./meta/guile -v | head -n1 + guile (GNU Guile) 3.0.9.139-d7cf5-dirty + +For more manual approach, read on. + When Guile is obtained from Git, a few extra steps must be taken before the usual configure, make, make install. You will need to have up-to-date versions of the tools as listed below, correctly installed. @@ -73,7 +107,7 @@ Here is the authoritative list of tool/version/platform tuples that have been known to cause problems, and a short description of the problem. -Sample GDB Initialization File========================================= +Sample GDB Initialization File ======================================= In GDB, you probably want to load the gdbinit file included with Guile, which defines a number of GDB helpers to inspect Scheme values. @@ -215,7 +249,7 @@ The goal is to reduce (and over time, eliminate) spurious diffs. For Emacs users: (add-hook 'before-save-hook 'delete-trailing-whitespace) -Naming conventions ================================================= +Naming conventions =================================================== We use certain naming conventions to structure the considerable number of global identifiers. All identifiers should be either all lower -- 2.41.0