From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Dr. Arne Babenhauserheide" Newsgroups: gmane.lisp.guile.devel Subject: Re: [PATCH] add language/wisp to Guile? Date: Sun, 26 Feb 2023 17:14:19 +0100 Message-ID: <875yboe61s.fsf@web.de> References: <87h6w2fkz8.fsf@web.de> <877cwxe4ar.fsf@web.de> <2f7d015d-ceb4-ef8f-b4fe-b69e39b723f8@telenet.be> <87357ldqaq.fsf@web.de> <1a70460e-11fb-9f5d-0d5f-1eb507d5af0d@telenet.be> <87ilg4j65e.fsf@web.de> <87edqsj5vt.fsf@web.de> <01212259-37dd-5d67-7bbc-101e01d96d01@telenet.be> <1a6c8dda-0124-124c-f932-937a11386ced@gmail.com> <87fsb5i912.fsf@web.de> <08c725bd-84d4-4df9-a18c-6ee55d00634f@app.fastmail.com> <981b0e74-96c0-4430-b693-7fc8026e3ead@app.fastmail.com> <1b428f59-2b82-9a8e-77c0-3cf38b5bc25c@telenet.be> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="1503"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.8.13; emacs 28.1 Cc: Philip McGrath , Ludovic =?utf-8?Q?Court?= =?utf-8?Q?=C3=A8s?= , Matt Wette , Christine Lemmer-Webber , guile-devel@gnu.org To: Maxime Devos Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Sun Feb 26 17:38:46 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 1pWK2w-0000BS-6Y for guile-devel@m.gmane-mx.org; Sun, 26 Feb 2023 17:38:46 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pWK2X-0008Qd-1P; Sun, 26 Feb 2023 11:38:21 -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 1pWK2W-0008QH-3R for guile-devel@gnu.org; Sun, 26 Feb 2023 11:38:20 -0500 Original-Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pWK2U-0003pF-Ag; Sun, 26 Feb 2023 11:38:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=s29768273; t=1677429478; i=arne_bab@web.de; bh=efGi7k4OV042rLlLtuDt2j7PpJ9mBlLnLezryfeXVJc=; h=X-UI-Sender-Class:References:From:To:Cc:Subject:Date:In-reply-to; b=uUbJZItg8N9gBPGjqgHfy6qD1gV8DoVY1q3irLK2jSqYzo00B2B5/i0/WHwsI6Lq1 w353sx+3IVeRt7vu42iTe1N3aqAC15+SM57/LVoB0yCby7eQT1oDOZadMGdELsziex U+jQmx0u7uTldw6sPLcmGxWlgDqwDhWAVui91jTJorfLDtDMkLYxe/rk1jIPLZjw3o 2tq/goS/FSvMIBtARaeibwRf7F3y7wYCbqS7Mv37J/BfxzcOPOSqXSDHiGZynGGbaI NKsvRrqqe73fsN3LAE0wxZwt1GyiuRGEUHAYnX5TO59JoHMrjXHjUxM04h/micZLHY ZOZ6EMyvSOu6Q== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Original-Received: from fluss ([84.149.95.143]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MftC1-1oq7bD0gGH-00gJTC; Sun, 26 Feb 2023 17:37:58 +0100 In-reply-to: <1b428f59-2b82-9a8e-77c0-3cf38b5bc25c@telenet.be> X-Provags-ID: V03:K1:qgKT1w73Rm8YzJOY3N+vV92MaXeAGqPyK6JR9Bxe2IYyKYVpV3T Kl0Th331VsRkG95jpGaW2sjXqB24hmvKcIvZvavXvS9mrGBwm1T2frsdi39MHbB5EVOTHck 0RS7a9aZapuyIqcn+Jp7cdtv7cERQ7fMkQSzn/qindtpOlmaGihVbo6tG3oKxvtMIlDDtbH 0zWgcG0scSvDJljw6qfkQ== UI-OutboundReport: notjunk:1;M01:P0:U5fDdXABf6g=;Gw5RSaD1zDtfaVUtKDNHTlQAbM+ WQ5+zSjNrgZyvcXSe1h+07UVq8iHgNRX6Ok7tzz+e77aa8GRdBYMY0cwqS78+eqiT1wjEdczt ZeUeCJduQl+cg2xDxnLIm48dxpy/E59HbbMtUQ6P/cF0KZRw97DkioCICYxy4pbmnIvH35qJ4 fphSTZiw7VPBRqDIQnvHkLDs7Ak0N6hJgga8GAECvmXA+ff9kRj5HSA8gs6RvgZ3XZF+ANkKd BeeSuqSZZBxQAStCPVlLdCoPFqlrvPaC6lmLU9wchT6SK+aQiO8htRJPpbke58ogk4wblTpCv yVyXbKVz0fLntiZPhEV6wenzjP8z5y34W+RrqE4bA0ypTtXrrTF/XYoLdZseMe1NyLNfcuhS0 UDNIx/oMVctepKG1p4lRLt2XInVZb1wpgea0RI9uSwC/jjEI8P3h35KD/cM7SqeExlimmZNJk s7DUM5ySvV2e5wPke+2CG/rGW/HEudPop3Ht4c6NS/WGxPcf3k++5p7mKKNuRsWCDRMxFJXu3 3cXpx6vtIh4FdY4yqnpTsuTr5fVss373YpzUHIEwx5Nn6Na0gQpbzPdmzcHHtP3ZSLGt/O+tA yznz7/8nEIvFV5gcqFx9HPHIhFdezAPiL8Po85fu03tGTqHmcNeV5u4WKHarMdteUyeL3HAup LtkOlRPprOV04wn29hLDVREeBw6X07mEcKie6IAmXZ/rEWILv5zRV1k8UTJkYzvQbxDASuoWE QoN/M9t0Hkz6AvX/HjHWbKdGZuHOJ76O0leTYLai0nDuXglEtzJsL7n1mVAaTqxIwa+Wk6Xh Received-SPF: pass client-ip=212.227.15.4; envelope-from=arne_bab@web.de; helo=mout.web.de X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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:21747 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Maxime Devos writes: > Op 26-02-2023 om 08:45 schreef Philip McGrath: >> What I'm trying to advocate is that programs should say in-band, as part= of their source code, what language they are written in. In-band is not the same as in-language. I agree that it should be part of the source code =E2=80=94 at least for executable files - but this is already possible. I=E2=80=99ve been using shell-indirection for many years that ensures that = files for the different languages are recognized and compiled with the correct language. It does not look as clean, but it allows solving a lot of problems. It ensures that when language/wisp.scm is not available, it first gets compiled as scheme, and then the wisp files are used as wisp, as in the file dryads-wake.w: #!/usr/bin/env bash # -*- wisp -*- # ensure that (language wisp) is pre-compiled if ! guile -L $(dirname $(realpath "$0")) -C $(dirname $(realpath "$0")) --= language=3Dwisp -c '' 2>/dev/null; then guile -L $(dirname $(realpath "$0")) -C $(dirname $(realpath "$0")) -c = '(import (language wisp spec))' >/dev/null 2>&1 fi # run dryads-wake as module to ensure it is used pre-compiled exec -a "$0" guile -L $(dirname $(realpath "$0")) -C $(dirname $(realpath "= $0")) --language=3Dwisp -x .w -e '(dryads-wake)' -c '' "${@}" ; !# ; =E2=80=A6 code follows =E2=80=A6 This is an extra-linguistic feature, but it defines in the source-code what language is used for the different parts. And it has its own kind of elegance. Not in isolated language design, but in leveraging different parts of the GNU system to provide more capabilities than available from any of its parts. Best wishes, Arne =2D-=20 Unpolitisch sein hei=C3=9Ft politisch sein, ohne es zu merken. draketo.de --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJEBAEBCAAuFiEE801qEjXQSQPNItXAE++NRSQDw+sFAmP7iuEQHGFybmVfYmFi QHdlYi5kZQAKCRAT741FJAPD67rOD/96nRV/veJ9YqHLkNRYnfx4jDn8Wlg3a1gm teT+/eAhpYXoDzAKMLeu05ac5rU3iOqvfkHjjSSRGwxcDbafF1RWGx+X6u/XclPw 7CJnj/KXjQcT1hoZveGRTUECMu2CKAUQfCbfP+1gbQb7Qf6hiSDvyApeCTdIrEst fEzCFxpf0cV1yowrNvPHjDH8N0pd7KduMUEVn9z+38Vot7n5okASGELfabHucBX9 teon2g8lG1kEFY7f5tGKs8eRq1nra3MjO3fIb/GizCJqL9YkilzKMUH+9NcxZTOu DByr6t2rByYd4Aei1VDggTNOm8wQdOEguCnzVwQDSsIZ2W4KkkZD2xjFCdUqJONL 7s+DeXiUVEzlb6MOSfzVBHRGo5CHJVRjCpEV09NbmRiYaC+8me6o12czl7EWOpeO TnmRYLCdbzoyO164w1ewEtuajks6W4XJu0t9pgoPaOMfblfmpZLurtoaNPD6A2iw i6YufIoSCEmJ4ivWkBACPFbOoq7TYdHGNT0n0krZbOR7ecGnb774otiUtVsvR52s Y1jovWeHx5lr47N7uIWMaOEBtivmSrfm7pZvBn+HH02rJYdQlvExoEpkzp1Vdmyb 7F8ooajVpk4tBhT1LR/cZmdugjvmbpqssVMhjlTYt13BaZC1w1d2AEFqNhZCCQaQ jxNayvuLEojEBAEBCAAuFiEE3Si95tmHXKvOSosd3M8NswvBBUgFAmP7iuEQHGFy bmVfYmFiQHdlYi5kZQAKCRDczw2zC8EFSA2OA/43BMaDNKmVTSLwzQ4GlFVXHpB3 ht8ij4UhHeRhVTq9k6/bJlLkbNT+/LsBnnWgBNLV4CxJ4J6j8Zi8BRefB7EkeOfT oVJNdgWv+ubW8PvjEuU/N+D4t2+b+lZQu0ImnWe1f03NYXgAMrUPkncdI7tgrlL0 N4rHUu+/aUxeHuVCDA== =k4UE -----END PGP SIGNATURE----- --=-=-=--