From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 24440 invoked from network); 3 Jul 2021 21:33:52 -0000 Received: from tb-ob21.topicbox.com (173.228.157.67) by inbox.vuxu.org with ESMTPUTF8; 3 Jul 2021 21:33:52 -0000 Received: from tb-mx0.topicbox.com (tb-mx0.nyi.icgroup.com [10.90.30.73]) by tb-ob21.topicbox.com (Postfix) with ESMTP id D32761888F for ; Sat, 3 Jul 2021 17:33:49 -0400 (EDT) (envelope-from bounce.mMdaa9427b1343b7aa707c8979.r522be890-2105-11eb-b15e-8d699134e1fa@9fans.bounce.topicbox.com) Received: by tb-mx0.topicbox.com (Postfix, from userid 1132) id B7E7C199CBCD; Sat, 3 Jul 2021 17:33:49 -0400 (EDT) ARC-Authentication-Results: i=2; topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=fastmail.fm header.i=@fastmail.fm header.b=DrrdoPi/ header.a=rsa-sha256 header.s=fm3 x-bits=2048; dkim=pass (2048-bit rsa key sha256) header.d=messagingengine.com header.i=@messagingengine.com header.b=XXh5vGsM header.a=rsa-sha256 header.s=fm3 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=none,d=none,d.eval=none) policy.policy-from=p header.from=fastmail.fm; spf=pass smtp.mailfrom=eekee57@fastmail.fm smtp.helo=out5-smtp.messagingengine.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (message has been altered)) (Message modified while forwarding at Topicbox) ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:message-id:in-reply-to:references :date:from:to:subject:content-type:list-help:list-id:list-post :list-subscribe:reply-to:content-transfer-encoding :list-unsubscribe; s=sysmsg-1; t=1625348029; bh=cO6LQB8hemFG0Whp 8LZ7ub2JBhBkrZaOGRh2COH8QeY=; b=YIm1M6CGis4vqIwpSM7wINeYCHO8V1Ed HPVGKDx6Kf+MNevCXo+5x2BWDUw1IqJ8x8MB+m3SL0Q0BjHCegicQkE173hfT7MT 6Ira0YSWSM443sFDUQNGOcgh+DzWoZ4IznuP39Ww2UDQy2+whZaUjFJOq2gHL6ct pmHcyVJhlrQ= ARC-Seal: i=2; a=rsa-sha256; cv=pass; d=topicbox.com; s=sysmsg-1; t= 1625348029; b=ow1XB186ukCKF7vhfs10AtjbStQd9ZIRUPZWVXkWBfI2IEtbJD y1ekyJyDvqh89+d/Wtgde6LXDh25gCdJAOxrdrNM/5vtJX3MWNR3JMARDSNXGzgK PA7INW623kGD8mNsCOyvW+P7suzyaDyX1OqpEDIwBn0EbMj9Qf4GWFkSo= Authentication-Results: topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=fastmail.fm header.i=@fastmail.fm header.b=DrrdoPi/ header.a=rsa-sha256 header.s=fm3 x-bits=2048; dkim=pass (2048-bit rsa key sha256) header.d=messagingengine.com header.i=@messagingengine.com header.b=XXh5vGsM header.a=rsa-sha256 header.s=fm3 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=none,d=none,d.eval=none) policy.policy-from=p header.from=fastmail.fm; spf=pass smtp.mailfrom=eekee57@fastmail.fm smtp.helo=out5-smtp.messagingengine.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (message has been altered)) (Message modified while forwarding at Topicbox) X-Received-Authentication-Results: tb-mx0.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC Policy is not at enforcement); dkim=pass (2048-bit rsa key sha256) header.d=fastmail.fm header.i=@fastmail.fm header.b=DrrdoPi/ header.a=rsa-sha256 header.s=fm3 x-bits=2048; dkim=pass (2048-bit rsa key sha256) header.d=messagingengine.com header.i=@messagingengine.com header.b=XXh5vGsM header.a=rsa-sha256 header.s=fm3 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=none,d=none,d.eval=none) policy.policy-from=p header.from=fastmail.fm; iprev=pass smtp.remote-ip=66.111.4.29 (out5-smtp.messagingengine.com); spf=pass smtp.mailfrom=eekee57@fastmail.fm smtp.helo=out5-smtp.messagingengine.com; x-aligned-from=pass (Address match); x-me-sender=pass policy.xms= sdfgYIwo8nz-bh_JfZhnJTK233eTdwV-V3AEdXV-9-AS_h5aMsbIR-MEIvTAl4afpsXk51noFMewTlwGCvYosVshP7IC9KThKD19MwWtAS7b1Zh2rq5r7peLvtDV9CkesBNNC7eAiA; x-ptr=pass smtp.helo=out5-smtp.messagingengine.com policy.ptr=out5-smtp.messagingengine.com; x-return-mx=pass header.domain=fastmail.fm policy.is_org=yes (MX Records found: in1-smtp.messagingengine.com,in2-smtp.messagingengine.com); x-return-mx=pass smtp.domain=fastmail.fm policy.is_org=yes (MX Records found: in1-smtp.messagingengine.com,in2-smtp.messagingengine.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=9fans.net; h= mime-version:message-id:in-reply-to:references:date:from:to :subject:content-type:list-help:list-id:list-post:list-subscribe :reply-to:content-transfer-encoding:list-unsubscribe; s=dkim-1; bh=pPjHNQci0nKevVfkJqKeJCbilJ8q1CmLxTh9wIs3b2U=; b=qNhKpnehoEqS VBJ+VwOBP03gXf488FPQwvexZ5UOw8tnj3alkXH/CNeCM7MF7IPsWx/cf/DPdciG ZN2BLgiPv2vnOBKE1bhu+j/SunxzsYDsQWRrDLemvdwqThQlAP27QwlXzXz7JrEh 1a0S/MOWWuPEyoG9S0RL+AAFhpgicQY= Received: from tb-mx0.topicbox.com (localhost.local [127.0.0.1]) by tb-mx0.topicbox.com (Postfix) with ESMTP id E4C35199B982 for <9fans@9fans.net>; Sat, 3 Jul 2021 17:33:37 -0400 (EDT) (envelope-from eekee57@fastmail.fm) Received: from tb-mx0.topicbox.com (localhost [127.0.0.1]) by tb-mx0.topicbox.com (Authentication Milter) with ESMTP id 8CF9C2268A4; Sat, 3 Jul 2021 17:33:37 -0400 ARC-Seal: i=1; a=rsa-sha256; cv=none; d=topicbox.com; s=arcseal; t= 1625348017; b=AAzXbGsz1JAq25CJz7rNojyrXFD9BiCouo/cRFyvDEKcEZvixA eycmFgi9RGfw6sU3Aj5GmW25oGSg17CYWT0gzPx2Ot4seY3iFCM43HeUSRDrcwzu J3j25fZw2aU/AGGvqKsfjnzEf//+G82awLaxjq4ceQhIl3F+QaV+477cBiHexu5e Ri+A0jXIjgLP0V5SlzFYm0MPguCoYyB3c2+jdWEO0nT7xfwBlsoesqf7XqZ/svaD bBJxf+eT+VQhRqK5N4fugq41IzpmwGMqQDzlR6AN5W3EqYv2LpGxvl9AELSxDksG x9lphtCJC8phT6vHab/0cc/rdoLjUuQaWpGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:message-id:in-reply-to:references :date:from:to:subject:content-type; s=arcseal; t=1625348017; bh= dLVaGrRJPP/P7RIy56flih8hrpRsUjZzF6T9qHztWXE=; b=FHnKqRPF3pbDigfS 9GmdyLFTIhunlAco+EMJb2rV/KiWVWMpq72ETEy2OUVaZ7tOo+Td9OpU1J25Pqux NRD/UYOZqGL2fSyVXSczPbGArVAq+DtR3MfY8cAYiAyTbF5cIBe/DLafHjaNmZug eeDs/oyh3uGDBl/nB54qEX/HxXu3IU5WYi9vP7KEvywj+EXproViS+x3X043IoaK 9Tmxx29pCI/Gh5K7UyJk7LHnjztY1NijjWKQl06tQGZFsMDDpJxUE7rsfrcuoze9 /2L6jf70BmRdx6ov1IL1sfkNUmzO78h1d9oh1H1xXC98hJSlfgYdYrN/lM/xneJr sIRvMQ== ARC-Authentication-Results: i=1; tb-mx0.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC Policy is not at enforcement); dkim=pass (2048-bit rsa key sha256) header.d=fastmail.fm header.i=@fastmail.fm header.b=DrrdoPi/ header.a=rsa-sha256 header.s=fm3 x-bits=2048; dkim=pass (2048-bit rsa key sha256) header.d=messagingengine.com header.i=@messagingengine.com header.b=XXh5vGsM header.a=rsa-sha256 header.s=fm3 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=none,d=none,d.eval=none) policy.policy-from=p header.from=fastmail.fm; iprev=pass smtp.remote-ip=66.111.4.29 (out5-smtp.messagingengine.com); spf=pass smtp.mailfrom=eekee57@fastmail.fm smtp.helo=out5-smtp.messagingengine.com; x-aligned-from=pass (Address match); x-me-sender=pass policy.xms= sdfgYIwo8nz-bh_JfZhnJTK233eTdwV-V3AEdXV-9-AS_h5aMsbIR-MEIvTAl4afpsXk51noFMewTlwGCvYosVshP7IC9KThKD19MwWtAS7b1Zh2rq5r7peLvtDV9CkesBNNC7eAiA; x-ptr=pass smtp.helo=out5-smtp.messagingengine.com policy.ptr=out5-smtp.messagingengine.com; x-return-mx=pass header.domain=fastmail.fm policy.is_org=yes (MX Records found: in1-smtp.messagingengine.com,in2-smtp.messagingengine.com); x-return-mx=pass smtp.domain=fastmail.fm policy.is_org=yes (MX Records found: in1-smtp.messagingengine.com,in2-smtp.messagingengine.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgeduledrfeejtddgudegvdculddtuddrgeduhedrtd dtmdcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggft fghnshhusghstghrihgsvgdpuffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftd dtnecunecujfgurhepofgfggfkjghffffhvffutgesrgdtreerreertdenucfhrhhomhep fdfgthhhrghnucfirghruggvnhgvrhdfuceovggvkhgvvgehjeesfhgrshhtmhgrihhlrd hfmheqnecuggftrfgrthhtvghrnhepleeuudekhfekueelgfejhedtgfeugeeifeduiedv fefhffegfefgfffgiedugfdtnecukfhppeeiiedrudduuddrgedrvdelnecuvehluhhsth gvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepieeirdduuddurdegrddvledphhgv lhhopehouhhthedqshhmthhprdhmvghsshgrghhinhhgvghnghhinhgvrdgtohhmpdhmrg hilhhfrhhomhepoegvvghkvggvheejsehfrghsthhmrghilhdrfhhmqedpmhgrihhlfhhr ohhmpegvvghkvggvheejsehfrghsthhmrghilhdrfhhm X-ME-VSScore: 0 X-ME-VSCategory: clean Received-SPF: pass (fastmail.fm: Sender is authorized to use 'eekee57@fastmail.fm' in 'mfrom' identity (mechanism 'include:spf.messagingengine.com' matched)) receiver=tb-mx0.topicbox.com; identity=mailfrom; envelope-from="eekee57@fastmail.fm"; helo=out5-smtp.messagingengine.com; client-ip=66.111.4.29 Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tb-mx0.topicbox.com (Postfix) with ESMTPS for <9fans@9fans.net>; Sat, 3 Jul 2021 17:33:37 -0400 (EDT) (envelope-from eekee57@fastmail.fm) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 3831F5C00D9 for <9fans@9fans.net>; Sat, 3 Jul 2021 17:33:37 -0400 (EDT) Received: from imap35 ([10.202.2.85]) by compute2.internal (MEProxy); Sat, 03 Jul 2021 17:33:37 -0400 X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrfeejtddgudehjecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvffutgesrg dtreerreertdenucfhrhhomhepfdfgthhhrghnucfirghruggvnhgvrhdfuceovggvkhgv vgehjeesfhgrshhtmhgrihhlrdhfmheqnecuggftrfgrthhtvghrnhepleeuudekhfekue elgfejhedtgfeugeeifeduiedvfefhffegfefgfffgiedugfdtnecuvehluhhsthgvrhfu ihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepvggvkhgvvgehjeesfhgrshhtmh grihhlrdhfmh X-ME-Proxy: Received: by mailuser.nyi.internal (Postfix, from userid 501) id 9400815A006E; Sat, 3 Jul 2021 17:33:36 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.5.0-alpha0-530-gd0c265785f-fm-20210616.002-gd0c26578 Mime-Version: 1.0 Message-Id: <4f18b8a7-7f6f-43b2-a3a9-e783efd584cd@www.fastmail.com> In-Reply-To: References: <20210630.191534.433099114174883977.dworkin@weaselfish.com> <31c74da4-12f5-4236-ab6b-69cde447bb34@www.fastmail.com> Date: Sat, 03 Jul 2021 22:33:07 +0100 From: "Ethan Gardener" To: 9fans <9fans@9fans.net> Subject: Re: [9fans] Alternative to fine-grained mouse usage? Content-Type: multipart/alternative; boundary="968af4b0442249308bb632458da6e64a" Topicbox-Policy-Reasoning: allow: sender is a member Topicbox-Message-UUID: 569eaeec-dc46-11eb-a6ba-d3f04b5a82c6 Archived-At: =?UTF-8?B?PGh0dHBzOi8vOWZhbnMudG9waWNib3guY29tL2dyb3Vwcy85?= =?UTF-8?B?ZmFucy9UNzE2YzVhYTBlMmFhOGEyNy1NZGFhOTQyN2IxMzQzYjdhYTcwN2M4?= =?UTF-8?B?OTc5Pg==?= List-Help: List-Id: "9fans" <9fans.9fans.net> List-Post: List-Software: Topicbox v0 List-Subscribe: Precedence: list Reply-To: 9fans <9fans@9fans.net> Content-Transfer-Encoding: 7bit List-Unsubscribe: , Topicbox-Delivery-ID: 2:9fans:437d30aa-c441-11e9-8a57-d036212d11b0:522be890-2105-11eb-b15e-8d699134e1fa:Mdaa9427b1343b7aa707c8979:1:F4vPCbOQj2gzbG2MxZXpA3DweFjUNtU1zpNj8TzEfts --968af4b0442249308bb632458da6e64a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Jul 3, 2021, at 5:32 PM, silas poulson wrote: >> On 2 Jul 2021, at 19:06, Ethan Gardener wrote: >>=20 >> This reminds me why I switched to Forth: I can program my editor properly >=20 > Could you expand on this point? >=20 > Vaguely aware of Forth, but no experience with forth editors Sure. There's a few things. I like and sometimes make use of the fact that the input language is a full= systems language. I can access all the editor's variables and memory from = the input prompt or from my own code. Sometimes it blows up because Forth h= as even fewer safeguards than C, but I soon learned how to avoid the explos= ions. It helps that I now use a Forth which displays the stack contents bef= ore each prompt; I do recommend that. All this can be summarized with a lit= tle misquote: "[Forth] does not prevent you doing stupid things because tha= t would also prevent you doing clever things." ;) Sometimes I wish for type= safety, but now I've learned to do without it, it's fine. Other than that, I make some use of the data stack: I've written several wo= rds to leave string references on the stack for use by other words, chainin= g them together almost like a pipeline. Sam can do things like this so it's= not too new, but I can chain anything I like and easily write new commands= . I don't always chain them on the same line. If there's a memory copy or b= lank operation in there, I'll check the parameters look right first. The ch= eck doesn't take a second. Where Sam executes commands in braces "at the same time," not allowing you = to change the order, I've got full control of the order of execution. In Sa= m, I was never successful in changing text with commands in braces. Sam or = Acme would always report something about multiple changes at the same time,= and Sam would corrupt the text a bit. I don't remember exactly what I was = trying to do, but I was sure it would have worked if my commands were execu= ted in order. In Forth by contrast, there's nothing to get commands out of = order. I may not be working on large files with complex commands any more, = but I write sequences of simple commands all the time. To be honest, it helps that the editor's source code is only about 2.5KB. ;= ) Some of that isn't even editor, it's block indexing and multi-block searc= h, but I've replaced one and need to replace the other. Actually, I should = rewrite the editor seeing as I don't want my code GPL-licensed and the edit= or probably is. ("Probably"? There's no license in the editor itself, likel= y because it's hard to fit licensing boilerplate into 1KB blocks.) ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/T716c5aa0e2aa8a27-Mdaa94= 27b1343b7aa707c8979 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription --968af4b0442249308bb632458da6e64a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Sat, Jul 3, 2021, at 5:32 PM, silas poulson wrote:
On= 2 Jul 2021, at 19:06, Ethan Gardener <eekee57@fastmail.fm> wrote:

This reminds me why I switched to Forth: I can program my editor properly

Could you expand on this point?

Vaguely aware of Forth, but no experience with f= orth editors

Sure. There's a few things.

I like and sometimes make use of the fact that the input lan= guage is a full systems language. I can access all the editor's variabl= es and memory from the input prompt or from my own code. Sometimes it blows= up because Forth has even fewer safeguards than C, but I soon learned how = to avoid the explosions. It helps that I now use a Forth which displays the= stack contents before each prompt; I do recommend that. All this can be su= mmarized with a little misquote: "[Forth] does not prevent you doing s= tupid things because that would also prevent you doing clever things."= ;) Sometimes I wish for type safety, but now I've learned to do withou= t it, it's fine.

Othe= r than that, I make some use of the data stack: I've written several wo= rds to leave string references on the stack for use by other words, chainin= g them together almost like a pipeline. Sam can do things like this so it&#= 39;s not too new, but I can chain anything I like and easily write new comm= ands. I don't always chain them on the same line. If there's a= memory copy or blank operation in there, I'll check the parameters loo= k right first. The check doesn't take a second.

Where= Sam executes commands in braces "at the same time," not allowing= you to change the order, I've got full control of the order of executi= on. In Sam, I was never successful in changing text with commands in b= races. Sam or Acme would always report something about multiple changes at = the same time, and Sam would corrupt the text a bit. I don't remember e= xactly what I was trying to do, but I was sure it would have worked if my c= ommands were executed in order. In Forth by contrast, there's nothing t= o get commands out of order. I may not be working on large files with compl= ex commands any more, but I write sequences of simple commands all the time= .

To be honest, it helps that the editor's source code is onl= y about 2.5KB. ;) Some of that isn't even editor, it's block indexi= ng and multi-block search, but I've replaced one and need to replace th= e other. Actually, I should rewrite the editor seeing as I don't want m= y code GPL-licensed and the editor probably is. ("Probably"? Ther= e's no license in the editor itself, likely because it's hard to fi= t licensing boilerplate into 1KB blocks.)

=



= --968af4b0442249308bb632458da6e64a--