From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Maxime Devos Newsgroups: gmane.lisp.guile.user Subject: Re: Can guile be implementation independent? Date: Fri, 17 Dec 2021 16:19:34 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40104"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.38.3-1 To: Jacob Hrbek , guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Fri Dec 17 17:19:52 2021 Return-path: Envelope-to: guile-user@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 1myFxY-000AD7-9v for guile-user@m.gmane-mx.org; Fri, 17 Dec 2021 17:19:52 +0100 Original-Received: from localhost ([::1]:55034 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1myFxW-0005aN-Ty for guile-user@m.gmane-mx.org; Fri, 17 Dec 2021 11:19:50 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:41378) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1myFxM-0005a6-Va for guile-user@gnu.org; Fri, 17 Dec 2021 11:19:40 -0500 Original-Received: from [2a02:1800:110:4::f00:19] (port=36594 helo=laurent.telenet-ops.be) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1myFxK-0006N0-Cs for guile-user@gnu.org; Fri, 17 Dec 2021 11:19:40 -0500 Original-Received: from ptr-bvsjgyhxw7psv60dyze.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:3c5f:2eff:feb0:ba5a]) by laurent.telenet-ops.be with bizsmtp id XUKb260014UW6Th01UKboM; Fri, 17 Dec 2021 17:19:35 +0100 In-Reply-To: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1639757975; bh=zUi7Jal3oGSeyVCk+HxHNoRPKEawGlFirMSiVJ0aHLc=; h=Subject:From:To:Date:In-Reply-To:References; b=dPHBX64rGYICAE4opyOJv1RASHQ2j6wN4aBTeLRl9KIhzG5R9wrXJ0dA8HwLCU4p/ P8S5nbyNh1D/8uJ+Udm2AmgJEBeK7MSf0wK4VVIgczCSU/nspgr8QYGBBvzSo+3fa6 p7Gb7w2aILXJrBEFeIIW5a4d8EFO6guZ5en86Qv9mpbWMlvhUTvY1IgETml09AoqAd 9DRPYRX9qnl99dOuoIJy1GK5X+oV2j3kB070LwIfhG08h/tokY28O1kOq7ii3u7M5j snrMJcPEFqRF7sCgXLDXy/JZQcfzFpSY9xI83pRMbpB8ylt3wdTM1CjVTwHC/WtHea JYElKVHaocQ5A== X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a02:1800:110:4::f00:19 (failed) Received-SPF: pass client-ip=2a02:1800:110:4::f00:19; envelope-from=maximedevos@telenet.be; helo=laurent.telenet-ops.be X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:17866 Archived-At: Jacob Hrbek schreef op vr 17-12-2021 om 01:42 [+0000]: > I am used to working with common lisp where i can write code that is > "implementation independent" meaning that following a specific coding > style makes it compatible across multiple interpretators/compilers > (sbcl, LispWorks, etc..) > > Is there a way to do the same on GNU Guile? Like writing a code that > can > be interpreted by implementations that are following the IEEE 1178- > 2008 > or R7RS standard? I'm not aware of any Scheme implementations acknowleding that IEEE 1178-2008 even exists. So for most practical intents and purposes, IEEE 1178-2008 isn't a standard at all. The de facto and de jure standards are the RnRS (https://docs.racket-lang.org/r5rs/r5rs-std/index.html, http://www.r6rs.org/, https://small.r7rs.org/) and the SRFIs (https://srfi.schemers.org/). The RnRS and SRFIs are supposedly not official, but I don't see why since there is a discussion process, a ratification process and everything --- although often Schemes don't bother implementing all of R6RS (out of inertia, minimalism, maybe backwards compatibility, limited developer time, parts being problematic to implement (e.g. 'include-ci')) and sometimes disagree about arcane details. Often only a selection of the SRFIs are implemented. Overall, you can't do everything in portable Schemes, but most things can be made reasonably portable by using the SRFIs and RnRS (e.g. 'define-library' or 'library' instead of 'define-module'), though at times some implementation-specific code is required (e.g. for FFI and GUIs). Greetings, Maxime.