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 SRFI-119 / language/wisp to Guile? (new patch, squashed) Date: Sat, 20 Jan 2024 00:56:41 +0100 Message-ID: <87ttn84zd2.fsf@web.de> References: <87h6w2fkz8.fsf@web.de> <87fsb5i912.fsf@web.de> <87ttzc7gwa.fsf@gnu.org> <1e0d07bc-dcf8-fe56-7f16-a72e5df0c20d@telenet.be> <875ybr2hk9.fsf@gnu.org> <87v8jrdmk5.fsf@web.de> <87jzzr7cba.fsf@web.de> <87v8hc8i8v.fsf@web.de> <87legrs23a.fsf@gnu.org> <209e68fd-b010-8213-6c9b-a0d1b8f0f72c@telenet.be> <87o7jf2slw.fsf@web.de> <875y5h8j04.fsf@web.de> <87il9ctzhl.fsf@gnu.org> <875y5cdyvt.fsf@web.de> <87sf7omuag.fsf@web.de> <877co1jgww.fsf@web.de> <875y3egjtd.fsf@web.de> <87sf5v67k5.fsf@web.de> <87mstf9e67.fsf@web.de> <340c71c5-9e25-d622-8b24-9c18ea373a77@mutix.org> 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="7864"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.10.8; emacs 30.0.50 Cc: Ludovic =?utf-8?Q?Court=C3=A8s?= , guile-devel@gnu.org To: Christina O'Donnell Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Sat Jan 20 01:34:36 2024 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 1rQzJk-0001pI-64 for guile-devel@m.gmane-mx.org; Sat, 20 Jan 2024 01:34:36 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rQzJO-000479-0F; Fri, 19 Jan 2024 19:34:14 -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 1rQzJL-0003yo-Fw for guile-devel@gnu.org; Fri, 19 Jan 2024 19:34:12 -0500 Original-Received: from mout.web.de ([217.72.192.78]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rQzJI-0000qr-SN; Fri, 19 Jan 2024 19:34:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=s29768273; t=1705710845; x=1706315645; i=arne_bab@web.de; bh=zX9vP2PaO8t7TcRbjc5CpL4WlOc8BolTDiYWvoZrbXM=; h=X-UI-Sender-Class:References:From:To:Cc:Subject:Date: In-reply-to; b=PTUgeL2AtPAT4c4Jpt6rDckwLeTSjQ3OTC9HT4vFEbOizfv+LD7ol5fGKGwMd7Yt 0QTBj7Gjw9TVKXxA3D/clXC/eRvCB5DPdf37+UJgg/GH02wviiiD5pPXhIyQ6vWp5 X3J0o5EWyKeJSM/nsTgdZ0OkU3f4MBnqAl37vHGRombc2uCyGKGpSZacPZEOFhPhS uVXnZRhdbw6ftOAZPc0m9TCmkhrBhJJWx8HljIuOh5QHfVxhu5MHAdTeniujexEnA GksxVU+/wXn8ehqNagJjgEhiyBYLh/2VD/hPmTom2ZlfV5oPRZN9hLa+sFnFzScBh kgKUtNTI9szURl1fVw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Original-Received: from fluss ([84.165.16.40]) by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M91Lg-1rVuzD0XAc-006Zbb; Sat, 20 Jan 2024 01:34:05 +0100 In-reply-to: <340c71c5-9e25-d622-8b24-9c18ea373a77@mutix.org> X-Provags-ID: V03:K1:etAMByOb9obZ2P+0UPjobSU+bgoul6VC1k8ZOHC4ipV01sDwcTO iUFLul+ocaqh8YRGsJaaiy4LstbqFkaCoiSsuMkmhRgVrOmh3VTdOmti1Ue0bD+p50cJEUA /R1w8IHNWJ3FlHgVGeJrN0nbo/GBk+MuOXOqM+CeBbIztGf+UYUNOeWjkQjvOYYRa1g0CjH fOPSNt/uZfHLMphv1ITlA== UI-OutboundReport: notjunk:1;M01:P0:IkvOgQAxeJQ=;Ws2dfhxyEJrvjhii98HWWMPW53X K6jBn06xDFmpPGZ2Vo66QKC8xcK/MKwX6pGGeQ+itq3wkAJ2dkIelFaaeAjYRR8OgBJPF2mgz aCQ5/vv1/I6AAnMRZiJULkjg5d6hW8hcHBGt+nlrZabm5Z3hy5DLGVtYT0aNkTLljGXt4Dhom XGfzMFw9d24QeyNSdAjMtxs0UaYm7TzBRR6u/T+i+GNeWKnze6v6eDogi/oJI+UH4YUIc6fuB lCYjCDTbJWj1C7G0pGba5yrDxGh+5s72/86JbLOmcxpkQgMbtzYzNnb7ISt4HzL4A4alB1Lxv PIOboygNyIxGeiIGrvQCLdGAxQ5WO1NnXJp2YjioYVulvF/+B2f8uFCAEY//y04peMyuadH41 /xPSn12Mdkqc963inryz5/yOu8EkB3xjvjXIx8Eu+q8GWtuFoZqDrb6bWp2HXzIsYL/JvO07y untO7vrHqCR2ynaKIXFQ38napoJqkkuQOrpbyJ5PM3CioMVJDFWXlfU0eORBOXvgUdqILTiml URA/asBL9y30HL4DrlE6tI/SGZXfBrn1y8TxKpsyve57YaKbpZNcNwZRFp8lllS1X+DkiqCiK K3a3LOyONKHr5oMFQLpjzFrYWvDC4/uDPcc7WrZ/g/8oOBsQuUYA1agizHC1WROwk6S//82Px 0bu5fzuLayF+by8UVEcBlGzHf3QcmpWbHI/OLknf2rqeeOyCgymyEdvfBhYrw08bMnNOnH1cR 618evOfj/q2PAxVOOlEF6zvqZB/y9jNAUJUjOECZyDyUZu8tUCUEhcIs0Nm1gqWiiwkUbWTK Received-SPF: pass client-ip=217.72.192.78; 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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:22273 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Christina O'Donnell writes: > On 09/01/2024 07:05, Dr. Arne Babenhauserheide wrote: >> It=E2=80=99s a new year =E2=80=94 any chance for one more look whether a= dding SRFI-119 >> in Guile is ok to merge? > > As a disclaimer, I'm a Scheme newbie, but I think my opinion may have /so= me/ > value. > On its own, Wisp seems like a better syntax for tooling that looks at > files as a list of lines, rather than as a tree of S-expressions. For > example, the diff tool looks for changes in lines, so when adding a > value to the end of a list it will always show 1 extra line removed > and then added again with one less paren. For example (from a record > definition): > > =C2=A0=C2=A0 (device-tree-support? bootloader-configuration-device-tree-s= upport? > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (d= efault #t)))=C2=A0=C2=A0 ;boolean > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (d= efault #t))=C2=A0=C2=A0=C2=A0 ;boolean > +=C2=A0 (extra-initrd=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 bootloader-configuration-extra-initrd > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (d= efault #f)))=C2=A0=C2=A0 ;string | #f Looking at that may actually explain why many non-lisp-languages put closing parens (braces: }) on their own line. Some are even starting to do that for function arguments by allowing a comma after the last parameter. > However it could cause some fragmentation of the community as peoples > editors are set up for Lisp and not Wisp or vice versa. Though, I > think that could be mostly resolved if there was a script that could > convert Wisp to Lisp and back. Ideally such that on a large code base > there's very few instances where Lisp -> Wisp -> Lisp produces changes > the code even by white-space. But, I don't know whether even then > you'd find much interest from the other maintainers. there=E2=80=99s currently only a script to go from wisp to lisp (called wisp2lisp, shipped with wisp), but not the other way round =E2=80=94 for th= ree reasons: 1. that was the original implementation: just transform wisp to lisp, then run it as lisp. 2. the transformation from lisp to wisp is somewhat more complex. You need to decide whether to use inline-parentheses, a colon, or indentation. Though if the goal is to back-transform code transformed from wisp, that would be easier. 3. wisp2lisp is a contingency plan: if wisp turns out not to be right for you, you can simply migrate onwards to Scheme with a simple command. Part of this is that Wisp is not intended to take over Scheme. There is already so much Scheme code and Scheme tooling and knowledge about Scheme, and ongoing improvements in Scheme, that Wisp will work best by being a part of Scheme. To share them with non-Wisp Scheme, extract common parts, transform them to Scheme with wisp2lisp, and make these the canonical source. That way you get more tooling, better linters, compatibility to many more Scheme implementations, and far less required maintenance for Wisp. The more specialized tooling wisp would get, the harder it would be to actually work with all of Scheme and benefit from all of its improvements, because that tooling would have to play constant catch-up with the evolution of Scheme. So I think the sweet spot is to keep Wisp small, lean, and simple. This has worked well for the past decade, and it looks like the best way forward. 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+sFAmWrFPoQHGFybmVfYmFi QHdlYi5kZQAKCRAT741FJAPD6/ZVD/9VwPftqTAKwfVLfqbDUfHFBtB4GDBPiqei 9P9/4sOOeS30D7ilrnqYzmB6W1SsAL5gdsRBh0HOV2gEfsgA8/ftFdPJw9i+zmHI 6HinEe2tE+jv53xXGrDlPiWw3B2ArXSjp8MoSYoXPDiWvebM38ZY7tfGRkXK0mSk 1afvpBHZ6J2xmRj6ftqPjK9kU7yFO7zvDWzsFnhftp1M+tn/I8U3rPaF7p+j1x3w pqOhlUYCRNHjWICdjOB/V17YcZ9dNuMPSEAAIibxzvs/MFcgpw59eDiKdgWcZ0Vi nW2rQBO3VrlQk6fru1u4OZyWa2qdC/6iCggVCGoFWMaIrjMbTiw0deHipF/Vewpw 3uRXhILeo26e3L0RsGVmlwiGRlpACvhM0Ja7vtMZFC1aC9mTA6U6v60GaCH+xnuU gN757V8BFJb8YOfDYwqgR9ksztMybwcW9ElI40lbqt31XMajuyiESbOBnnji8XO8 xzowHjJErlhwuf1SjoEQ2zLVZYYxFQLbgtwjQbX9GysCQ780CwsJv7NxXxDgbB2s H1sLXP6voI4/N5nyTak9rUyrEgagwQqlvPP1opJjC6W1jGRh5EnE6A0RKhDvFZSf kB4F00joJcsiZdaRkVOIX3i0CIAvMWo1kNjvZN3AliOLnGr8x+peNTKDPKxnI6EO dnv0nYlXRIjEBAEBCAAuFiEE3Si95tmHXKvOSosd3M8NswvBBUgFAmWrFPwQHGFy bmVfYmFiQHdlYi5kZQAKCRDczw2zC8EFSEicBACU4JMFCHiqpWHud8e2Ku5cF79H xri4Fay4YRaPAKolJ1accCJTB/tpUn2f3GC4gBPaByrIr1FlE06tDcdOIyBc/Gvl Kch7UCjCFDyBpS7rCBHZAshRBYqkEOxM9RnhYPvUuURJ0SnjINUzWkVNQ8nRptI7 6adsTZMjUch9HgaZXw== =0/6b -----END PGP SIGNATURE----- --=-=-=--