From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: arthur miller Newsgroups: gmane.emacs.devel Subject: Sv: Christmas wish: Literate Elisp Date: Fri, 20 Dec 2019 00:55:29 +0000 Message-ID: References: <87r213qkhm.fsf@alphapapa.net> <878sn9qxk3.fsf@alphapapa.net> <874kxxqlxz.fsf@alphapapa.net> <87v9qdp4x8.fsf@alphapapa.net> , <207B2E96-FE0D-4F53-8D5F-1B6C96480661@traduction-libre.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_007_VI1P194MB0429B5D3C65EC3F61D3A4B5F962D0VI1P194MB0429EURP_" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="248769"; mail-complaints-to="usenet@blaine.gmane.org" To: "emacs-devel@gnu.org" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Dec 20 01:56:45 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1ii6ay-0012Zl-OV for ged-emacs-devel@m.gmane.org; Fri, 20 Dec 2019 01:56:45 +0100 Original-Received: from localhost ([::1]:49344 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ii6ax-0003AQ-LY for ged-emacs-devel@m.gmane.org; Thu, 19 Dec 2019 19:56:43 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:41236) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ii6a3-0002Mn-2T for emacs-devel@gnu.org; Thu, 19 Dec 2019 19:55:49 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ii6Zz-0006R5-8a for emacs-devel@gnu.org; Thu, 19 Dec 2019 19:55:46 -0500 Original-Received: from mail-oln040092072068.outbound.protection.outlook.com ([40.92.72.68]:58022 helo=EUR03-VE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ii6Zr-0006HM-L0 for emacs-devel@gnu.org; Thu, 19 Dec 2019 19:55:38 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m9Xhz147yih/y2EU18hkEUlCv4hVQDJ/FbTWnBf0RFrp20X8toTGLEA1w3iKy3/ST/+sQ5tbrUpbGp5IguA0k+rl6JqqrERgBmu2pnM1pg+tuX/Ht7N0TrpSXcEdsduWb3IQGLjg1nJE7W9ncjyUc/9hMcUx4uR3SXLJtOKGTYqRjwY5+pleL3LyOw3U9z5uJujxGT+2ODn3caDoBrTUX1gEH3swikgaig/q/jIACQpQg9ejb/ClE3HXo9d7+hq/JzaR+x2W5xFLkcSIYPMDvZxm4s5Hc0TdIwjJIITyrqzG5WFBca0Bjo+l0VfXvS822ZZUTedP2aWrv2VLmwcJtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h1OwPKpfxMJPoIbKqtosGomjz8BXSjMNWiyNVMtkC6E=; b=OcvHJFJ6nR5MgJjCI6nE2NKSZeJLxKbwwvkJlVdfKp1z/4ATgIz+Q6LicLP8op1Nv0roXt9NF3d4wqUqSJrUP27UbTqjQXyDuOgB1t+fuLpWDVdtz7y5BkjWd22mKOJyX4QxKiW3/vFqVHv6vJcRihfSiJM7ZEOMf17jHzLGAAvlG5c2YXZs9DdW+WIjgDVFSJ7QKHv8xn6vEFZmQUYgJjoeqx8D0TmRv5X356HKsBiJwkyRVZfrNxvcIMRJeDNSY7Pgl3LAnCmrw0yrQW7CM31Dun2cqPkvitsjMdBxfye145vmN+7DVlSuGB66v0jVkpLb4it/18CVad0zUYqjPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h1OwPKpfxMJPoIbKqtosGomjz8BXSjMNWiyNVMtkC6E=; b=Uwqv2Wn8oKg8mOW//TsPv13WlyRnIdIBiEE0uYnjW2PKKgdst7u5S3DhgUoNOojUHGCXQHAJYi/iAF1eFBtPDxVVHnwoAgXl4VIlqmtsyA09At8QoBZ0JsGl8ymmTXNJnUteP7eZ1J3/WuR0t2fKip3pKZ9yXg2XzLkabrrHWIBcypXwJj7ISQAHhmefVIF3AWWfNeBS2nfFvMT0Jeoy6VQySOkkuan5KOFAQjn89vwph15PDZFxUU02lddba+EFdX9NcpTzp1u7TjzYtDQ3PRqAmxl0dR7qj3oxC+/nPXowTQZHqwYb1i0kOKN4gsc5r5uoI6SirGVdW0eGL+XQbg== Original-Received: from VE1EUR03FT004.eop-EUR03.prod.protection.outlook.com (10.152.18.51) by VE1EUR03HT165.eop-EUR03.prod.protection.outlook.com (10.152.19.238) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2559.14; Fri, 20 Dec 2019 00:55:29 +0000 Original-Received: from VI1P194MB0429.EURP194.PROD.OUTLOOK.COM (10.152.18.57) by VE1EUR03FT004.mail.protection.outlook.com (10.152.18.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2559.14 via Frontend Transport; Fri, 20 Dec 2019 00:55:29 +0000 Original-Received: from VI1P194MB0429.EURP194.PROD.OUTLOOK.COM ([fe80::35f2:9ea2:efd6:1d46]) by VI1P194MB0429.EURP194.PROD.OUTLOOK.COM ([fe80::35f2:9ea2:efd6:1d46%5]) with mapi id 15.20.2559.015; Fri, 20 Dec 2019 00:55:29 +0000 Thread-Topic: Christmas wish: Literate Elisp Thread-Index: AQHVtg7XZh3uePLzWUOpz6g6ivEWNafCMoBm In-Reply-To: <207B2E96-FE0D-4F53-8D5F-1B6C96480661@traduction-libre.org> Accept-Language: sv-SE, en-US Content-Language: sv-SE X-MS-Has-Attach: yes x-incomingtopheadermarker: OriginalChecksum:933E7058E9866D82EC688519F43E596B1069CCA2D1710928BC427EB2CD25B3FA; UpperCasedChecksum:6DDD119BFC65C9EECB5ADFBE03F8799343E9CB242F70BA851A7A7E8FB02A0B35; SizeAsReceived:7947; Count:45 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [Jev9wPRh8pPPrw1/EsGzzOhdUcyZyd2k] x-ms-publictraffictype: Email x-incomingheadercount: 45 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: f9ee406e-f4ac-482a-a8b3-08d784e74edf x-ms-traffictypediagnostic: VE1EUR03HT165: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9cYXneDN8M9RZLN8C6dNbhHqXifeusKtcaKo68KYUR/cs5jB06WutYbvBCvYc8AUcPZqPMPJXAJ8Ld4YYPj49s3F0R66Kru8v3ifgJMQnw3lMAHPF+XA0gzqB4FnxrLh9rjnO0ZbsTr94LUBbT2HUVbyhpatKC951yaNJKUg8qmXn5rZ9zcfcfdHFkSLGcV6YFHhDZ6/jZZyhgLkztw4V7EzgYG5U7pBzKxNaJ3os/g= x-ms-exchange-transport-forked: True X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: f9ee406e-f4ac-482a-a8b3-08d784e74edf X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Dec 2019 00:55:29.0787 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR03HT165 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.92.72.68 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:243499 Archived-At: --_007_VI1P194MB0429B5D3C65EC3F61D3A4B5F962D0VI1P194MB0429EURP_ Content-Type: multipart/alternative; boundary="_000_VI1P194MB0429B5D3C65EC3F61D3A4B5F962D0VI1P194MB0429EURP_" --_000_VI1P194MB0429B5D3C65EC3F61D3A4B5F962D0VI1P194MB0429EURP_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Here is a little prototype to test my idea with literal Elisp. I have patched read-eval loop as stated in previous mail, in lread.c. It is probably possible to implement that in Elisp, but I don't have enough knowledge of either Emacs internals nor Elisp to do this in some short time. It would took me a lot of time to look up all the things I would need. Anyway, C code turned to be rather trivial, and also completely by-passable if so desired, so I have introduced a user-customiza= ble variable 'emacs-lisp-allow-literal-comments', which is by default nil. I wasn't sure in which elisp file to introduce this variable, so I have use= d 'simple.el' found in lisp directory of Emacs source distribution. That file seems to have some other user customizable variables that affect elisp so I thought it might be appropriate place. For the byte compiler I have patched bytecomp.el, in rather brutish way, bu= t it seems to work. It wasn't very difficult either, but I think I have done it = rather ugly. Someone might wish to refactor that code. Anyway, it is less then twenty lines of code, and it is by default bypassed as well. The variable that controls it is also user customizable and found in same file, named 'byte-comp-allow-literal-comments'. I have attached also a small trivial elisp file for illustration purpose. It is just a test of an idea, and small prototype to show that it might wor= k. It needs more thorough testing and can probably be implemented in some bett= er way. I have tested on GNU/Linux and Windows. Emacs was able to compile it's own elisp as well as external packages I use. As a note, the change in C is completely backwards compatible. No logical change to elisp parser happens when 'emacs-lisp-allow-literal-comments' variable is nil. ________________________________ Fr=E5n: Emacs-devel = f=F6r Jean-Christophe Helary Skickat: den 19 december 2019 02:50 Till: emacs-devel@gnu.org =C4mne: Re: Christmas wish: Literate Elisp > On Dec 19, 2019, at 9:42, chad wrote: > > There is a large body of existing software which will be totally unaware = of your changes. Although I think the premise of your comment is absolutely valid, I'm not s= o sure about the "*large* body of existing software". Jean-Christophe Helary ----------------------------------------------- http://mac4translators.blogspot.com @brandelune --_000_VI1P194MB0429B5D3C65EC3F61D3A4B5F962D0VI1P194MB0429EURP_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Here is a little prototype to test my idea with literal Elisp.

I have patched read-eval loop as stated in previous mail, in lread.c.<= br>
It is probably possible to implement that in Elisp, but I don't have
enough knowledge of either Emacs internals nor Elisp to do this in som= e
short time. It would took me a lot of time to look up all the
things I would need. Anyway, C code turned to be rather trivial, and a= lso
completely by-passable if so desired, so I have introduced a user-cust= omizable
variable 'emacs-lisp-allow-literal-comments', which is by default nil.=

I wasn't sure in which elisp file to introduce this variable, so I hav= e used
'simple.el' found in lisp directory of Emacs source distribution. That= file
seems to have some other user customizable variables that affect elisp= so I
thought it might be appropriate place.

For the byte compiler I have patched bytecomp.el, in rather brutish wa= y, but it
seems to work. It wasn't very difficult either, but I think I have don= e it rather
ugly. Someone might wish to refactor that code. Anyway, it is less the= n
twenty lines of code, and it is by default bypassed as well. The varia= ble
that controls it is also user customizable and found  in same fil= e,
named 'byte-comp-allow-literal-comments'.

I have attached also a small trivial elisp file for illustration purpo= se.

It is just a test of an idea, and small prototype to show that it migh= t work.
It needs more thorough testing and can probably be implemented in some= better
way.

I have tested on GNU/Linux and Windows. Emacs was able to compile it's= own
elisp as well as external packages I use.

As a note, the change in C is completely backwards compatible. No logi= cal
change to elisp parser happens when 'emacs-lisp-allow-literal-co= mments'
variable is nil.


Fr=E5n: Em= acs-devel <emacs-devel-bounces+arthur.miller=3Dlive.com@gnu.org> = f=F6r Jean-Christophe Helary <jean.christophe.helary@traduction-libre.or= g>
Skickat: den 19 december 2019 02:50
Till: emacs-devel@gnu.org <emacs-devel@gnu.org>
=C4mne: Re: Christmas wish: Literate Elisp
 


> On Dec 19, 2019, at 9:42, chad <yandros@gmail.com> wrote:
>
> There is a large body of existing software which will be totally unawa= re of your changes.

Although I think the premise of your comment is absolutely valid, I'm not s= o sure about the "*large* body of existing software".


Jean-Christophe Helary
-----------------------------------------------
http://mac4trans= lators.blogspot.com @brandelune



--_000_VI1P194MB0429B5D3C65EC3F61D3A4B5F962D0VI1P194MB0429EURP_-- --_007_VI1P194MB0429B5D3C65EC3F61D3A4B5F962D0VI1P194MB0429EURP_ Content-Type: text/x-patch; name="simple.patch" Content-Description: simple.patch Content-Disposition: attachment; filename="simple.patch"; size=479; creation-date="Fri, 20 Dec 2019 00:50:04 GMT"; modification-date="Fri, 20 Dec 2019 00:51:18 GMT" Content-Transfer-Encoding: base64 LS0tIHNpbXBsZS5lbAkyMDE5LTEyLTIwIDAxOjA2OjE2Ljg0OTM0Mzk2MSArMDEwMAorKysgbXlz aW1wbGUuZWwJMjAxOS0xMi0yMCAwMTowMzowNS4yMTI0Njc2NzQgKzAxMDAKQEAgLTEyNyw2ICsx MjcsMTQgQEAKICAgOnNhZmUgIydib29sZWFucAogICA6dmVyc2lvbiAiMjcuMSIpCiAKKyhkZWZj dXN0b20gZW1hY3MtbGlzcC1hbGxvdy1saXRlcmFsLWNvbW1lbnRzIG5pbAorICAiSWYgbm90IG5p bCwgZWxpc3Agd2lsbCBhbGxvdyB5b3UgdG8gdHlwZSBpbiB0b3AtbGV2ZWwgY29tbWVudHMKKyAg IHdpdGhvdXQgdXNpbmcgc2VtaWNvbG9uLiIKKyAgOmdyb3VwICdsaXNwCisgIDp0eXBlICdib29s ZWFuCisgIDpzYWZlICMnYm9vbGVhbnAKKyAgOnZlcnNpb24gIjI3LjEiKQorCiAoZGVmdmFyIG5l eHQtZXJyb3ItaGlnaGxpZ2h0LXRpbWVyIG5pbCkKIAogKGRlZnZhciBuZXh0LWVycm9yLW92ZXJs YXktYXJyb3ctcG9zaXRpb24gbmlsKQo= --_007_VI1P194MB0429B5D3C65EC3F61D3A4B5F962D0VI1P194MB0429EURP_ Content-Type: text/x-patch; name="lread.patch" Content-Description: lread.patch Content-Disposition: attachment; filename="lread.patch"; size=906; creation-date="Fri, 20 Dec 2019 00:50:04 GMT"; modification-date="Fri, 20 Dec 2019 00:51:18 GMT" Content-Transfer-Encoding: base64 LS0tIGxyZWFkLmMJMjAxOS0xMi0yMCAwMTowNzozMy4yNjQwODkzMTcgKzAxMDAKKysrIG15bHJl YWQuYwkyMDE5LTEyLTIwIDAxOjAyOjM4LjYwNTMwODg1MCArMDEwMApAQCAtMTk1NSw2ICsxOTU1 LDggQEAKICAgLyogVHJ1ZSBvbiB0aGUgZmlyc3QgdGltZSBhcm91bmQuICAqLwogICBib29sIGZp cnN0X3NleHAgPSAxOwogICBMaXNwX09iamVjdCBtYWNyb2V4cGFuZCA9IGludGVybiAoImludGVy bmFsLW1hY3JvZXhwYW5kLWZvci1sb2FkIik7CisgIExpc3BfT2JqZWN0IGxpdGNvZGUgPSBpbnRl cm4gKCJlbWFjcy1saXNwLWFsbG93LWxpdGVyYWwtY29tbWVudHMiKTsKKyAgTGlzcF9PYmplY3Qg YWxsb3dfbGl0ZXJhbF9jb21tZW50cyA9IGZpbmRfc3ltYm9sX3ZhbHVlKGxpdGNvZGUpOwogCiAg IGlmIChOSUxQIChGZmJvdW5kcCAobWFjcm9leHBhbmQpKQogICAgICAgfHwgKFNUUklOR1AgKHNv dXJjZW5hbWUpICYmIHN1ZmZpeF9wIChzb3VyY2VuYW1lLCAiLmVsYyIpKSkKQEAgLTIwNTMsNiAr MjA1NSwxNSBAQAogCSAgfHwgYyA9PSBOT19CUkVBS19TUEFDRSkKIAlnb3RvIHJlYWRfbmV4dDsK IAorICAgICAgaWYgKEVRIChhbGxvd19saXRlcmFsX2NvbW1lbnRzLCBRdCkpCisgICAgICAgIHsK KyAgICAgICAgICBpZiAoYyAhPSAnKCcgJiYgYyAhPSAnIycpCisgICAgICAgICAgICB7CisgICAg ICAgICAgICAgIHdoaWxlICgoYyA9IFJFQURDSEFSKSAhPSAnXG4nICYmIGMgIT0gLTEpOworICAg ICAgICAgICAgICBnb3RvIHJlYWRfbmV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAg ICAgICBpZiAoISBIQVNIX1RBQkxFX1AgKHJlYWRfb2JqZWN0c19tYXApCiAJICB8fCBYSEFTSF9U QUJMRSAocmVhZF9vYmplY3RzX21hcCktPmNvdW50KQogCXJlYWRfb2JqZWN0c19tYXAK --_007_VI1P194MB0429B5D3C65EC3F61D3A4B5F962D0VI1P194MB0429EURP_ Content-Type: text/x-patch; name="bytecomp.patch" Content-Description: bytecomp.patch Content-Disposition: attachment; filename="bytecomp.patch"; size=3207; creation-date="Fri, 20 Dec 2019 00:50:05 GMT"; modification-date="Fri, 20 Dec 2019 00:51:18 GMT" Content-Transfer-Encoding: base64 LS0tIGJ5dGVjb21wLmVsCTIwMTktMTItMjAgMDE6MDU6NDQuNTc1NDE0MTQ3ICswMTAwCisrKyBt eWJ5dGVjb21wLmVsCTIwMTktMTItMjAgMDE6MDM6MjQuNDA5NDg5Mzg5ICswMTAwCkBAIC0xNTQs NiArMTU0LDE0IEBACiAgIDp0eXBlICcoY2hvaWNlIChjb25zdCBuaWwpIGZ1bmN0aW9uKQogICA6 dmVyc2lvbiAiMjMuMiIpCiAKKyhkZWZjdXN0b20gYnl0ZS1jb21waWxlLWFsbG93LWxpdGVyYWwt Y29tbWVudHMgbmlsCisgICJJZiBub3QgbmlsLCBieXRlIGNvbXBpbGVyIHdpbGwgYWxsb3cgeW91 IHRvIHR5cGUKKyAgIHRvcC1sZXZlbCBjb21tZW50cyB3aXRob3V0IHVzaW5nIHNlbWljb2xvbiBp biBlbWFjcyBsaXNwLiIKKyAgOmdyb3VwICdieXRlY29tcAorICA6dHlwZSAnYm9vbGVhbgorICA6 c2FmZSAjJ2Jvb2xlYW5wCisgIDp2ZXJzaW9uICIyNy4xIikKKwogOzsgVGhpcyBlbmFibGVzIGZp bGUgbmFtZSBoYW5kbGVycyBzdWNoIGFzIGprYS1jb21wcgogOzsgdG8gcmVtb3ZlIHBhcnRzIG9m IHRoZSBmaWxlIG5hbWUgdGhhdCBzaG91bGQgbm90IGJlIGNvcGllZAogOzsgdGhyb3VnaCB0byB0 aGUgb3V0cHV0IGZpbGUgbmFtZS4KQEAgLTIwNzksOCArMjA4Nyw4IEBACiAJKHByaW50LWxldmVs IG5pbCkKIAk7OyBQcmV2ZW50IGVkZWJ1ZyBmcm9tIGludGVyZmVyaW5nIHdoZW4gd2UgY29tcGls ZQogCTs7IGFuZCBwdXQgdGhlIG91dHB1dCBpbnRvIGEgZmlsZS4KLTs7IAkoZWRlYnVnLWFsbC1k ZWZzIG5pbCkKLTs7IAkoZWRlYnVnLWFsbC1mb3JtcyBuaWwpCisgICAgICAgIDs7IAkoZWRlYnVn LWFsbC1kZWZzIG5pbCkKKyAgICAgICAgOzsgCShlZGVidWctYWxsLWZvcm1zIG5pbCkKIAk7OyBT aW11bGF0ZSBlbnRyeSB0byBieXRlLWNvbXBpbGUtdG9wLWxldmVsCiAgICAgICAgIChieXRlLWNv bXBpbGUtanVtcC10YWJsZXMgbmlsKQogICAgICAgICAoYnl0ZS1jb21waWxlLWNvbnN0YW50cyBu aWwpCkBAIC0yMTI3LDE5ICsyMTM1LDM1IEBACiAJCQkgICAgICAgKD0gKGZvbGxvd2luZy1jaGFy KSA/XDspKQogCQkgICAoZm9yd2FyZC1saW5lIDEpKQogCQkgKG5vdCAoZW9icCkpKQotCSAgKHNl dHEgYnl0ZS1jb21waWxlLXJlYWQtcG9zaXRpb24gKHBvaW50KQorCisgICAgICAgICAgKHNldHEg Ynl0ZS1jb21waWxlLXJlYWQtcG9zaXRpb24gKHBvaW50KQogCQlieXRlLWNvbXBpbGUtbGFzdC1w b3NpdGlvbiBieXRlLWNvbXBpbGUtcmVhZC1wb3NpdGlvbikKLSAgICAgICAgICAobGV0KiAoKGxy ZWFkLS11bmVzY2FwZWQtY2hhcmFjdGVyLWxpdGVyYWxzIG5pbCkKLSAgICAgICAgICAgICAgICAg KGZvcm0gKHJlYWQgaW5idWZmZXIpKQotICAgICAgICAgICAgICAgICAod2FybmluZyAoYnl0ZS1y dW4tLXVuZXNjYXBlZC1jaGFyYWN0ZXItbGl0ZXJhbHMtd2FybmluZykpKQotICAgICAgICAgICAg KHdoZW4gd2FybmluZyAoYnl0ZS1jb21waWxlLXdhcm4gIiVzIiB3YXJuaW5nKSkKLQkgICAgKGJ5 dGUtY29tcGlsZS10b3BsZXZlbC1maWxlLWZvcm0gZm9ybSkpKQotCTs7IENvbXBpbGUgcGVuZGlu ZyBmb3JtcyBhdCBlbmQgb2YgZmlsZS4KLQkoYnl0ZS1jb21waWxlLWZsdXNoLXBlbmRpbmcpCi0J OzsgTWFrZSB3YXJuaW5ncyBhYm91dCB1bnJlc29sdmVkIGZ1bmN0aW9ucwotCTs7IGdpdmUgdGhl IGVuZCBvZiB0aGUgZmlsZSBhcyB0aGVpciBwb3NpdGlvbi4KLQkoc2V0cSBieXRlLWNvbXBpbGUt bGFzdC1wb3NpdGlvbiAocG9pbnQtbWF4KSkKLQkoYnl0ZS1jb21waWxlLXdhcm4tYWJvdXQtdW5y ZXNvbHZlZC1mdW5jdGlvbnMpKQorCisJICAoaWYgYnl0ZS1jb21waWxlLWFsbG93LWxpdGVyYWwt Y29tbWVudHMKKyAgICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgKGlmIChvciAo PSAoZm9sbG93aW5nLWNoYXIpID9cKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICg9IChmb2xs b3dpbmctY2hhcikgP1wjKQorICAgICAgICAgICAgICAgICAgICAgICAgKD0gKGZvbGxvd2luZy1j aGFyKSA/XCcpKQorICAgICAgICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAg ICAgICAobGV0KiAoKGxyZWFkLS11bmVzY2FwZWQtY2hhcmFjdGVyLWxpdGVyYWxzIG5pbCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm0gKHJlYWQgaW5idWZmZXIpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAod2FybmluZyAoYnl0ZS1ydW4tLXVuZXNjYXBlZC1jaGFy YWN0ZXItbGl0ZXJhbHMtd2FybmluZykpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4g d2FybmluZyAoYnl0ZS1jb21waWxlLXdhcm4gIiVzIiB3YXJuaW5nKSkKKwkgICAgICAgICAgICAg ICAgKGJ5dGUtY29tcGlsZS10b3BsZXZlbC1maWxlLWZvcm0gZm9ybSkpKQorICAgICAgICAgICAg ICAgICAgKGZvcndhcmQtbGluZSAxKSkpCisgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAg ICAgKGxldCogKChscmVhZC0tdW5lc2NhcGVkLWNoYXJhY3Rlci1saXRlcmFscyBuaWwpCisgICAg ICAgICAgICAgICAgICAgICAoZm9ybSAocmVhZCBpbmJ1ZmZlcikpCisgICAgICAgICAgICAgICAg ICAgICAod2FybmluZyAoYnl0ZS1ydW4tLXVuZXNjYXBlZC1jaGFyYWN0ZXItbGl0ZXJhbHMtd2Fy bmluZykpKQorICAgICAgICAgICAgICAgICh3aGVuIHdhcm5pbmcgKGJ5dGUtY29tcGlsZS13YXJu ICIlcyIgd2FybmluZykpCisJICAgICAgICAoYnl0ZS1jb21waWxlLXRvcGxldmVsLWZpbGUtZm9y bSBmb3JtKSkpKSkKKworICAgICAgICA7OyBDb21waWxlIHBlbmRpbmcgZm9ybXMgYXQgZW5kIG9m IGZpbGUuCisgICAgICAgIChieXRlLWNvbXBpbGUtZmx1c2gtcGVuZGluZykKKyAgICAgICAgOzsg TWFrZSB3YXJuaW5ncyBhYm91dCB1bnJlc29sdmVkIGZ1bmN0aW9ucworICAgICAgICA7OyBnaXZl IHRoZSBlbmQgb2YgdGhlIGZpbGUgYXMgdGhlaXIgcG9zaXRpb24uCisgICAgICAgIChzZXRxIGJ5 dGUtY29tcGlsZS1sYXN0LXBvc2l0aW9uIChwb2ludC1tYXgpKQorICAgICAgICAoYnl0ZS1jb21w aWxlLXdhcm4tYWJvdXQtdW5yZXNvbHZlZC1mdW5jdGlvbnMpKQogICAgICAgOzsgRml4IHVwIHRo ZSBoZWFkZXIgYXQgdGhlIGZyb250IG9mIHRoZSBvdXRwdXQKICAgICAgIDs7IGlmIHRoZSBidWZm ZXIgY29udGFpbnMgbXVsdGlieXRlIGNoYXJhY3RlcnMuCiAgICAgICAoYW5kIGJ5dGUtY29tcGls ZS1jdXJyZW50LWZpbGUK --_007_VI1P194MB0429B5D3C65EC3F61D3A4B5F962D0VI1P194MB0429EURP_ Content-Type: text/x-emacs-lisp; name="chatty.el" Content-Description: chatty.el Content-Disposition: attachment; filename="chatty.el"; size=524; creation-date="Fri, 20 Dec 2019 00:50:28 GMT"; modification-date="Fri, 20 Dec 2019 00:51:18 GMT" Content-Transfer-Encoding: base64 RWxpc3Agbm93IGFsb3dzIGNvbW1lbnRzIHdpdGhvdXQgOy4KCihzZXRxIGVtYWNzLWxpc3AtYWxs b3ctbGl0ZXJhbC1jb21tZW50cyBuaWwpCihzZXRxIGJ5dGUtY29tcGlsZS1hbGxvdy1saXRlcmFs LWNvbW1lbnRzIG5pbCkKCihtZXNzYWdlICJIZWxsbywgV29ybGQhIikKCkl0IGlzIG9mIGNvdXJz ZSBwb3NzaWJsZSB0byBpbnRlcnR3ZW5lIGNvZGUKd2l0aCBjb21tZW50cyBhbnl3aGVyZSBpbiB0 aGUgZmlsZS4KCihtZXNzYWdlICJIZWxsbyBBZ2FpbiEiKQoKT2YgY291cnNlIHdlIGNhbiBhbHNv IGNvbW1lbnQtb3V0IGNvZGUKanVzdCBhcyBiZWZvcmU6Cgo7OyhtZXNzYWdlICJJIGFtIHNpbGVu dCIpCkluIGNvZGUgYmxvY3MgdGhlICc7JyBpcyBzdGlsbCBhIGNvbW1lbnQgZGVsaW1pdGVyOgoo bWVzc2FnZQogOzsgSGVyZSBpcyBhIGxpbmUgY29tbW5lCiAiSSBhbSBhIGJpdCBjaGF0dHkgdG9k YXkhIikKClRoYXQncyBpdCBmb3IgdG9kYXkgZm9sa3MhCgoobWVzc2FnZSAiQnllIGJ5ZSBjcnVl bCB3b3JsZCEiKQo= --_007_VI1P194MB0429B5D3C65EC3F61D3A4B5F962D0VI1P194MB0429EURP_--