From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Arne Babenhauserheide Newsgroups: gmane.lisp.guile.devel Subject: Re: Wisp as shipped language in Guile? Date: Fri, 19 May 2017 01:03:37 +0200 Message-ID: <87a8693gza.fsf@web.de> References: <87h90wz8rg.fsf@web.de> <87o9uxfrpt.fsf@netris.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Trace: blaine.gmane.org 1495148649 6331 195.159.176.226 (18 May 2017 23:04:09 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 18 May 2017 23:04:09 +0000 (UTC) User-Agent: mu4e 0.9.18; emacs 25.2.1 Cc: Guile Devel To: Mark H Weaver Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri May 19 01:04:03 2017 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dBUSe-0001OH-NH for guile-devel@m.gmane.org; Fri, 19 May 2017 01:04:00 +0200 Original-Received: from localhost ([::1]:55848 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dBUSh-0007Sw-0C for guile-devel@m.gmane.org; Thu, 18 May 2017 19:04:03 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50756) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dBUSV-0007Rm-51 for guile-devel@gnu.org; Thu, 18 May 2017 19:03:52 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dBUSR-00047f-VT for guile-devel@gnu.org; Thu, 18 May 2017 19:03:51 -0400 Original-Received: from mout.web.de ([212.227.17.11]:49368) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dBUSR-00047K-Jc for guile-devel@gnu.org; Thu, 18 May 2017 19:03:47 -0400 Original-Received: from fluss ([85.212.107.51]) by smtp.web.de (mrweb103 [213.165.67.124]) with ESMTPSA (Nemesis) id 0LuLt5-1e9tJQ0EFD-011mik; Fri, 19 May 2017 01:03:43 +0200 In-reply-to: <87o9uxfrpt.fsf@netris.org> X-Provags-ID: V03:K0:JPpFj+2+SiBOf6iul9B9pk5bf10PNU3DQDpM4ExvmsMEOeFgYhO Zn9QqAH0Ao1HtYeYXoXbl4+sIPl4gGLKSlhqo33vBlapJw584YviLoOV8byOJXQhlFIdToY CIdQKyk1u6hMHSdog/6y2C2i1l3ZC132ZknFLHJtOSnl37HWilpXC0M30Wy5j2N3eWY+BDd LLEJMLJxSalP4I7kFVFdw== X-UI-Out-Filterresults: notjunk:1;V01:K0:VRsCw0EdimI=:bVvYCPTj79dWSoXxQ88tK8 txjF69Tl+KjLx4Tay6b7/Tap4eLEyhyk3EeIKMThArFll458UJFdDZn6xJItaNwh9/aMpHRFa GY8/z/x4R91ti7GOSU90DINaMarbOrHPtzlaAGpEMEoEjXArFOJXLY2Zj68LdL0rNEicfkWMs m9tjK/OKX9CRz25Gz0L8MqD9zyFanla/yF3mIWqudCWpmqIjFOSIN3k1D5h6q2Am0ycl8Hd23 cvtXMPFCR6dxwn1taQpmYDqzArrMy3NKyDadWPRd4/uhAlGphN2YbCze+zlC5nOWc+NAsno0J MNr/wT8NThyFwg+q523MkTWAvgLKimNipoRPD10o9PwKPZrjt/e1k/pbApwS6p0MJzD4lnZqU kn2o45TlYf9mN13CG4j99t7WE5ig7ngggnRf8B1EMXw29WE9gXdwkzqmLJlnXPZKs9ks+bzzu onGF6psTtErnuaax99gBE+UpwUnIweBeINAwjcje+XgWK52fnNKNQ0HxtH6/sO9lG626R8aGs aN1RIHXmeHornYHRnQ0AKrI1bR50VCpOtOoI96Rewslx9BTKOh0qlcQuntYXnJIakczpvT940 ToK2JMP4xjatNwwxbvieUA1XhaGgHSVpbLwFORLTb410hmnAI2QIxBy655D4jXR8OebYHu03n S5RtlDKYxfnoF4gUx18p2D1lEsUlp3zjaZGvDqI3N56wyxo2EEgNScUsOPcVscXfSIq+S1Vo4 EoXMBhaREeeb8Vdpd4YFRIALiwCv+6esxPCy47F5YQvdqSglYL/WJ9jek/U= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.17.11 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.org gmane.lisp.guile.devel:19160 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Mark, Mark H Weaver writes: >> Essentially this is about making wisp as language part of the >> "batteries" of Guile. > > About 4.5 years ago, I went out on a limb and added SRFI-105 (curly > infix expressions) to core Guile. Even now, I'm of the opinion that > judicious use of curly infix could be beneficial for readability, but as > far as I can tell, there's been essentially no uptake. If I'm wrong > about that, please let me know. I=E2=80=99ve been using SRFI-105 quite a bit =E2=80=94 not only in Wisp. It= helped me in reducing the reservations colleagues of mine had against Scheme (prefix-comparisons and prefix-math look odd to many people). > Anyway, regardless of my personal opinion, I think we need to be careful > not to add things to Guile that will go unused and merely contribute to > its increasing bloat. Given that language/wisp (as I have it here) is less than half the size of language/elisp or language/ecmascript, and will require much less maintenance (it is in final form and will automatically benefit from all improvements to Scheme proper =E2=80=94 different from both elisp and ecmas= cript which need to follow a moving target to keep their utility) and that it is less than twice the size of language/brainfuck, I think calling Wisp part of bloat isn=E2=80=99t right. > I think the relevant question is: are a > non-trivial number of people likely to use this? For starters, do you > know anyone writing non-trivial amounts of Wisp code other than > yourself? You might expect that to change if we added it to core Guile, > but that didn't seem to happen with SRFI-105. This depends on what you consider non-trivial. Two weeks ago CalGuixSD said in IRC he=E2=80=99d written the system definit= ion for Guix in Wisp. However he had to give up on that, because it would have required to install Wisp while he did not have Guix yet. (https://gnunet.org/bot/log/guix/2017-05-03). This is actually what prompted me to write here again: In this usecase it acts to facilitate entry into Scheme, because using the language for setup is an obvious case where people get put off by the parens at first. And different from other notations, going from Wisp to regular Scheme is trivial: automatic conversion even keeps the comments. Using Wisp as system language is among the things people can only do when they always have Wisp with Guile =E2=80=94 when it=E2=80=99s part of i= ts batteries (along with brainfuck, javascript and elisp). Aside from being a good starter, there are domains where I see Wisp as a different quality of readability, for example when it comes to text-rich formats (I think you know the talk from FOSDEM: https://fosdem.org/2017/schedule/event/naturalscriptwritingguile/ ). Finally I see that Wisp is the one project of mine which generates the most interest (as estimated by people reading its site =E2=80=94 easily twi= ce as many as those who have read my Freenet articles (since 2010!) =E2=80=94 and= from people asking how to use it), so I would like to make Wisp easier for people to use. It seems that Wisp draws people. > So, unless Wisp is being used by more people than I suspect, my personal > take on this is that we should not incorporate Wisp into Guile at this > time. > > On the other hand, if there are sane changes that we can make to Guile > that would facilitate adding support for languages like Wisp and > SRFI-110 to Guile via external libraries, I would absolutely be in favor > of working toward that goal. The main missing piece I see right now would be the option for language//spec.scm to automatically add suffixes to %load-extensions when switching to a language and removing them when switching back (along with a solution for ..go). Or providing a mapping from extension to language. One of these would also be needed for *.el(elisp) and *.js(ecmascript). However this will not allow using Wisp in the REPL on Guile installations without adapting the load path or installing a package systemwide. For usability there is a large difference between guile --language=3Dwisp and guile --language=3Dwisp -L ~/.local/lib/ Also if you=E2=80=99re on a readonly system with Guile but without admin-ad= ded Wisp, or on a system without internet access, you cannot use Wisp if it is not provided by Guile or the admin/system author. > For example, I've pondered the idea of making the "reader directive" > mechanism (e.g. things like #!curly-infix) easily extensible. For > example, we could perhaps arrange for 'read', when encountering "#!FOO" > in the input stream, to look for a module named something like (system > reader-directives FOO) which would extend the reader as needed. > > What do you think? That sounds useful on its own, though it does not resolve the problem of having to adjust the load path or needing the permission to install systemwide. > PS: While visiting the web page to > refresh my memory about Wisp details, my browser tried to access > port 8888 on my local machine. Looking at your site code, I see > that there's an iframe element with > src=3D"http://127.0.0.1:8888/Sone/viewSone.html?sone=3D[...]", and al= so > an input element with value=3D"http://127.0.0.1:8888". You might want > to fix those. That iframe is for using a Freenet service (Sone) as decentralized comment system for websites, so these aren=E2=80=99t mistakes per-se. Howev= er they got broken by recent security tightening in Freenet, so I actually should remove them until I create a stronger system. Best wishes, Arne =2D- Unpolitisch sein hei=C3=9Ft politisch sein ohne es zu merken --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE801qEjXQSQPNItXAE++NRSQDw+sFAlkeKEwACgkQE++NRSQD w+uTFQ//Y5LwbokPSzT7ghpFFWvqap9Cbf/iei5Txf6+dxbueJTWffoRRRCdVXtn qyqNhAIjAd5CLNpkP04ub2uuYpTF0zh+chsDPFj5KbvQVCE/I5rub4FAYF/kyaaU w2fe78ncmeVjj2JyIh6STEUMMxY64nCpg6Ep9YMoUvgSfWV027kk+nI5KRRWgoYA pIWDvUv/0phZme8TPapI9bdGVwvVuPU717DgCkZ2LpezAQXciIn1qjX029/TBUHv +5/IRYisScaD8hnW2MQNgQiulJumcxMIt7SsVGrQqP1ZzbMOzCY1JCqk8HGAJV5V nxL5mabh5ovoSYzmtk6MLE0y/MvL5t99s2rwwAuZYEGfDpizwffN8x0Du47as4SF 8mZbrbkatlo6q5q5f9hY396lkkhUUOmf/8OBl58koReLukynF7lbnQD+5jxfyt/+ ytvto1HPjEfguRANUCrLVuRKSrIAuqooUcOnWQZiAPTtexCNSC1FBPQ68IQ98wyW +JBmDcq3VOjS6GKAXLTp6wD7lQAGt+NoDwGqzkPpMS3zK1n0Wheix/Lba/ErKNCH 5T4gj3Jw01SOI9iJWIDsYtbi8igB3ryy2J2BvU1XeviyU2HKRuL3ypGxs906KvTj uXtUWlGM9D+VBoDSb7J6f78uiouh5RDEitsxfO7Gq7DsTjO7570= =PyvH -----END PGP SIGNATURE----- --=-=-=--