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: Sv: Sv: Sv: Christmas wish: Literate Elisp Date: Sun, 22 Dec 2019 07:01:03 +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_VI1P194MB0429B0265C9E8D00C0595D30962F0VI1P194MB0429EURP_" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="183772"; mail-complaints-to="usenet@blaine.gmane.org" To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Dec 22 08:01:47 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 1iivFK-000lhO-TU for ged-emacs-devel@m.gmane.org; Sun, 22 Dec 2019 08:01:47 +0100 Original-Received: from localhost ([::1]:44938 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iivFJ-0004Ve-8A for ged-emacs-devel@m.gmane.org; Sun, 22 Dec 2019 02:01:45 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:41315) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iivEj-0003zs-JS for emacs-devel@gnu.org; Sun, 22 Dec 2019 02:01:11 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iivEg-0006hK-W8 for emacs-devel@gnu.org; Sun, 22 Dec 2019 02:01:08 -0500 Original-Received: from mail-oln040092071076.outbound.protection.outlook.com ([40.92.71.76]:65257 helo=EUR03-DB5-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 1iivEf-0006V6-Px for emacs-devel@gnu.org; Sun, 22 Dec 2019 02:01:06 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GU3hMxSKFM+VR2ESvUP/adb228HJn8a3A5B47x7B8ezv3DoFoFHhhLru9bRZyhBx5KLgq7zRQipQmgDuR4fmqIBH/tiFrFxYNd3NrM0U09NqQ1/xtlsJdB4asUSuzmrxMyAAX2mP121KRLURkyEig+vB8ucrW6f2n+z5VekUBBhArbRX5k6UnEQxKmXJ80aFNqfEqUrDAGXBYyk6WXa4C9h5yebHGCdKpccsSBBWtPokNU6CNw8Dqo6bztEZ05u+3dLrR8lbfAksUF9KpZ2ZfQMK1ngKM5Wx979xvvOPJQQpKLchhevj64aYSVIiyDy022Os2zdwYZILukjMI26fwA== 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=jmZUksVbONUxmJ2vdSEoc95gxwNKzXriwWyZeUh3PJs=; b=cPcrdwfqNy8w8HzEkTTjis3DSBkBbgYkYsYXCOg0d12BYaxR6jbNHWV5V2HOs79he9euqUWlIT6uDjyvSKPxiJAHCqwwkNNYknCoZCtxPoWwuKUk5S801PAr1hNcOKRvGDtN+StyP5xA3CGYwwUQVgELj4Src1csEIFljUEPyJxd7PII6NEfBzrVnXFokTzj2mptDhiXptoT8+OxEf19Nr2arXQHgW++6aXuAB+CvrscnnIguxy1If0u8P8csZeRV5j8VZYNvjUohSie4a8v2tcU5T0hIzmInIqWSPkj3gj4JtdSzQofIds8Akf1HH4MRNCpTJTDFmJ0Qi/6kXOfRg== 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=jmZUksVbONUxmJ2vdSEoc95gxwNKzXriwWyZeUh3PJs=; b=DojbNxSGilHEgdWXqJ8IvlDpIan8WUBn229e/4C8z+uSQEAKCv5woNEivYFlIACbToMq5aq3d4xgUgoZNpaai5QpUCwEqKXr2np0EDMsjf/eQH/T3qsJxGHIpdipCJrXiLAlhL0378Lr3ho5+Ez+PWbdhm/MFwBU5XDr7W2u+MesFUg8MBJk7vWahHu5zzv7kmUB3OXnbLOuK3f5/J9J4dkHno/ryiH5vcATTPWIfncaa2KnW/sfVksZ5vtKfE5y5H9BoWsNYMpzh4Ku0kQ2mwXXz++Oql1KgzprYvXrPhG3+m+Mm1fyxeUjg2jDqH813RSGjDzrfsQEdmpB3vN2BQ== Original-Received: from DB5EUR03FT036.eop-EUR03.prod.protection.outlook.com (10.152.20.55) by DB5EUR03HT020.eop-EUR03.prod.protection.outlook.com (10.152.21.125) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2559.14; Sun, 22 Dec 2019 07:01:03 +0000 Original-Received: from VI1P194MB0429.EURP194.PROD.OUTLOOK.COM (10.152.20.60) by DB5EUR03FT036.mail.protection.outlook.com (10.152.20.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2559.14 via Frontend Transport; Sun, 22 Dec 2019 07:01:03 +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.017; Sun, 22 Dec 2019 07:01:03 +0000 Thread-Topic: Sv: Sv: Sv: Christmas wish: Literate Elisp Thread-Index: AQHVtg7XZh3uePLzWUOpz6g6ivEWNafCMoBmgADt+lGAAAh0WYAADPZfgADbJCaAAKoNyoAABqo4gAD4g/8= In-Reply-To: Accept-Language: sv-SE, en-US Content-Language: sv-SE X-MS-Has-Attach: yes x-incomingtopheadermarker: OriginalChecksum:488F63D154B3F776ECE7E146CA57D3F6F2115A06B84F122A0C8DAE8AAD45E673; UpperCasedChecksum:E1B5FF57260A5CFB72E0893AEFD982771743BE1D221C2705EF11EDF310A5BF04; SizeAsReceived:8336; Count:45 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [D4QJjmrhNFr3qSOJ/OBSotSsb0C/kBfX] x-ms-publictraffictype: Email x-incomingheadercount: 45 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: 2e648cf0-2754-4599-194f-08d786acb573 x-ms-traffictypediagnostic: DB5EUR03HT020: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rnE3BdRbtLBI3DlH0bQaH+n6sdDY89OPmgBANm87juM8ATqaPX6XSPt47bq7XheaTeYrMfSfQp429zb+TyfHy22bhCB3P5ZccYX2X8JajB04UPctJNkRTcZSJ8KyjhPwgh6n1l2iDf7yXt5gRfiTiiuq3gqiQEm9VAHPtav2jrGUuRUmFY2HDaoa26ONjGpO 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: 2e648cf0-2754-4599-194f-08d786acb573 X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Dec 2019 07:01:03.1301 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5EUR03HT020 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.92.71.76 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:243558 Archived-At: --_007_VI1P194MB0429B0265C9E8D00C0595D30962F0VI1P194MB0429EURP_ Content-Type: multipart/alternative; boundary="_000_VI1P194MB0429B0265C9E8D00C0595D30962F0VI1P194MB0429EURP_" --_000_VI1P194MB0429B0265C9E8D00C0595D30962F0VI1P194MB0429EURP_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable My 2nd patch was wrong as I noticed too late yesterady, sorry for that. Unfortunately I didn't have time to fix it. Here is one that works (at leas= t in my emacs), if any one would like to test the idea and play with idea of using literal elisp. It is not only about being able to omit ';' in comment= s. The idea is that normally in elisp, compiler skips comment-lines and evaluate everything else. Here compiler evaluates code-lines and skips everythign else. While it might seems like a same thing, it is not! There i= s a certain inversion and slight difference because of that apparently subtle difference. For instance, sine but code is ignored, this lets one use org-mode as a kind of annotation tool or organisational tool for the code. Normally the parser would choke and produced error messages if it was feeded with org headings and so n. Another possibility is to maybe be able use elisp as a template or annotation language or code generator for some other languages. For example one could write a C code and use elisp macros or code generators which expand to C after eval-buffer, kind -of what org-mode does, but it would maybe make it easier or open some more possibilites if one combines org-mode with directly evaluable elisp. Don't know, haven't had time yet. Anyway, I hope you can give it a try and discuss the idea not the implementeation, implementation is just a sketch to give you something to play with. It is unnecessary to theorycraft essays about all kind of space problems before one tries it, in my opinion. Cheers ________________________________ Fr=E5n: arthur miller Skickat: den 21 december 2019 17:03 Till: Stefan Monnier =C4mne: Sv: Sv: Sv: Sv: Christmas wish: Literate Elisp > I personally would oppose these few-lines of new code in lread.c at > least until this new feature is properly supported in the rest of the > Elisp-manipulating tools we have (starting with the byte-compiler, but > including checkdoc, autoload, ...) and until there's some clear evidence > that it's useful (i.e. used by more than one person). Completely agree on that one. Unfortunately the time and effort and my struggle to just patch bytecompiler.el to do this tells me I am not the right person to jump on implementing "the skip" approach you suggest. Maybe some code, or at least approach used in bytecompiler and eval can be even reused for this, but to me personally it would take too much time and effort. The other approach of copying file to temp buffer and modifying the file is certainly less jobb and easier to implement. I also agree that it is sui= table for small toys and demo examples. It couldn't be difficult to implement, on= e would need to keep track of balanced paranthesis + some few other small things which isn't very difficult. While I can certainly hack elisp to a de= gree, I am still not the right person to implement something you would distribute= in Emacs anyway, so if somebod else is interesting to implement this approach it would be great. --_000_VI1P194MB0429B0265C9E8D00C0595D30962F0VI1P194MB0429EURP_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
My 2nd patch was wrong as I noticed too late yesterady, sorry for that.
Unfortunately I didn't have time to fix it. Here is one that works (at leas= t
in my emacs), if any one would like to test the idea and play with idea of<= /div>
using literal elisp. It is not only about being able to omit ';' in comment= s.

The idea is that normally in elisp, compiler skips comment-lines and
evaluate everything else. Here compiler evaluates code-lines and skips
everythign else. While it might seems like a same thing, it is not! There i= s
a certain inversion and slight difference because of that apparently subtle=
difference. For instance, sine but code is ignored, this lets one use
org-mode as a kind of annotation tool or organisational tool for the
code. Normally the parser would choke and produced  error
messages if it was feeded with org headings and so n.

Another possibility is to maybe be able use elisp as a template or
annotation language or code generator for some other languages. For
example one could write a C code and use elisp macros or code
generators which expand to C after eval-buffer, kind -of what org-mode
does, but it would maybe make it easier or open some more possibilites
if one combines org-mode with directly evaluable elisp. Don't know, haven't=
had time yet.

Anyway, I hope you can give it a try and discuss the idea not the
implementeation, implementation is just a sketch to give you something
to play with. It is unnecessary to theorycraft essays about all kind of
space problems before one tries it, in my opinion.

Cheers

Fr=E5n: arthur miller <a= rthur.miller@live.com>
Skickat: den 21 december 2019 17:03
Till: Stefan Monnier <monnier@iro.umontreal.ca>
=C4mne: Sv: Sv: Sv: Sv: Christmas wish: Literate Elisp
 

> I personally would oppose these few-lines of new code in lread.c = at
> least until this new feature is properly su= pported in the rest of the
> Elisp-manipulating tools we have (starting with the byte-compiler, but=
> including checkdoc, autoload, ...) and until there's some clear eviden= ce
> that it's useful (i.e. used by more than one person).

Completely agree on that one.

Unfortunately the time and effort and my struggle to just patch
bytecompiler.el to do this tells me I am not the= right person to jump on
implementing "the skip" approach you s= uggest. Maybe some code, or
at least approach used in bytecompiler and eval = can be even reused for
this, but to me personally it would take too muc= h time and effort.

The other approach of copying file to temp buffe= r and modifying the file
is certainly less jobb and easier to implement. = I also agree that it is suitable
for small toys and demo examples. It couldn't be= difficult to implement, one
would need to keep track of balanced paranthesis= + some few other small
things which isn't very difficult. While I can c= ertainly hack elisp to a degree,
I am still not the right person to implement som= ething you would distribute in
Emacs anyway, so if somebod else is interesting = to implement this approach
it would be great.


--_000_VI1P194MB0429B0265C9E8D00C0595D30962F0VI1P194MB0429EURP_-- --_007_VI1P194MB0429B0265C9E8D00C0595D30962F0VI1P194MB0429EURP_ Content-Type: text/x-patch; name="lread.patch" Content-Description: lread.patch Content-Disposition: attachment; filename="lread.patch"; size=1067; creation-date="Sun, 22 Dec 2019 07:00:08 GMT"; modification-date="Sun, 22 Dec 2019 07:00:58 GMT" Content-Transfer-Encoding: base64 LS0tIGxyZWFkLmMJMjAxOS0xMi0yMCAwMTowNzozMy4yNjQwODkzMTcgKzAxMDAKKysrIG15bHJl YWQuYwkyMDE5LTEyLTIyIDA3OjM1OjMxLjQ3OTMwNTk0MCArMDEwMApAQCAtMTk1NSw2ICsxOTU1 LDggQEAKICAgLyogVHJ1ZSBvbiB0aGUgZmlyc3QgdGltZSBhcm91bmQuICAqLwogICBib29sIGZp cnN0X3NleHAgPSAxOwogICBMaXNwX09iamVjdCBtYWNyb2V4cGFuZCA9IGludGVybiAoImludGVy bmFsLW1hY3JvZXhwYW5kLWZvci1sb2FkIik7CisgIExpc3BfT2JqZWN0IGxpdGNvZGUgPSBpbnRl cm4gKCJlbWFjcy1saXNwLWFsbG93LWxpdGVyYWwtY29tbWVudHMiKTsKKyAgTGlzcF9PYmplY3Qg YWxsb3dfbGl0ZXJhbF9jb21tZW50cyA9IGZpbmRfc3ltYm9sX3ZhbHVlKGxpdGNvZGUpOwogCiAg IGlmIChOSUxQIChGZmJvdW5kcCAobWFjcm9leHBhbmQpKQogICAgICAgfHwgKFNUUklOR1AgKHNv dXJjZW5hbWUpICYmIHN1ZmZpeF9wIChzb3VyY2VuYW1lLCAiLmVsYyIpKSkKQEAgLTIwNTMsNiAr MjA1NSwyMCBAQAogCSAgfHwgYyA9PSBOT19CUkVBS19TUEFDRSkKIAlnb3RvIHJlYWRfbmV4dDsK IAorICAgICAgaWYgKEVRIChhbGxvd19saXRlcmFsX2NvbW1lbnRzLCBRdCkpCisgICAgICAgIHsK KyAgICAgICAgICBpZiAoYyAhPSAnKCcpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGlm KGMgPT0gJyMnIHx8IGMgPT0gJ1wnJyB8fCBjID09ICdcYCcpIGMgPSBSRUFEQ0hBUjsKKyAgICAg ICAgICAgICAgaWYoYyA9PSAnKCcpIFVOUkVBRChjKTsKKyAgICAgICAgICAgICAgZWxzZQorICAg ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHdoaWxlICgoYyA9IFJFQURDSEFSKSAh PSAnXG4nICYmIGMgIT0gLTEpOworICAgICAgICAgICAgICAgICAgZ290byByZWFkX25leHQ7Cisg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgIGlmICgh IEhBU0hfVEFCTEVfUCAocmVhZF9vYmplY3RzX21hcCkKIAkgIHx8IFhIQVNIX1RBQkxFIChyZWFk X29iamVjdHNfbWFwKS0+Y291bnQpCiAJcmVhZF9vYmplY3RzX21hcAo= --_007_VI1P194MB0429B0265C9E8D00C0595D30962F0VI1P194MB0429EURP_ Content-Type: text/x-patch; name="bytecomp.patch" Content-Description: bytecomp.patch Content-Disposition: attachment; filename="bytecomp.patch"; size=3106; creation-date="Sun, 22 Dec 2019 07:00:08 GMT"; modification-date="Sun, 22 Dec 2019 07:00:58 GMT" Content-Transfer-Encoding: base64 LS0tIGJ5dGVjb21wLmVsCTIwMTktMTItMjAgMDE6MDU6NDQuNTc1NDE0MTQ3ICswMTAwCisrKyBt eWJ5dGVjb21wLmVsCTIwMTktMTItMjIgMDc6MzU6NTkuNTA5NzUzMTc4ICswMTAwCkBAIC0xNTQs 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 Y29tbWVudHMKKyAgICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgKGlmICg9IChm b2xsb3dpbmctY2hhcikgP1woKQorICAgICAgICAgICAgICAgICAgICAocHJvZ24KKworICAgICAg ICAgICAgICAgICAgICAgIChsZXQqICgobHJlYWQtLXVuZXNjYXBlZC1jaGFyYWN0ZXItbGl0ZXJh bHMgbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybSAocmVhZCBpbmJ1ZmZl cikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3YXJuaW5nIChieXRlLXJ1bi0tdW5l c2NhcGVkLWNoYXJhY3Rlci1saXRlcmFscy13YXJuaW5nKSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAod2hlbiB3YXJuaW5nIChieXRlLWNvbXBpbGUtd2FybiAiJXMiIHdhcm5pbmcpKQorCSAg ICAgICAgICAgICAgICAoYnl0ZS1jb21waWxlLXRvcGxldmVsLWZpbGUtZm9ybSBmb3JtKSkpCisg ICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lIDEpKSkKKyAgICAgICAgICAgIChwcm9nbgor CisgICAgICAgICAgICAgIChsZXQqICgobHJlYWQtLXVuZXNjYXBlZC1jaGFyYWN0ZXItbGl0ZXJh bHMgbmlsKQorICAgICAgICAgICAgICAgICAgICAgKGZvcm0gKHJlYWQgaW5idWZmZXIpKQorICAg ICAgICAgICAgICAgICAgICAgKHdhcm5pbmcgKGJ5dGUtcnVuLS11bmVzY2FwZWQtY2hhcmFjdGVy LWxpdGVyYWxzLXdhcm5pbmcpKSkKKyAgICAgICAgICAgICAgICAod2hlbiB3YXJuaW5nIChieXRl LWNvbXBpbGUtd2FybiAiJXMiIHdhcm5pbmcpKQorCSAgICAgICAgKGJ5dGUtY29tcGlsZS10b3Bs ZXZlbC1maWxlLWZvcm0gZm9ybSkpKSkpCisKKyAgICAgICAgOzsgQ29tcGlsZSBwZW5kaW5nIGZv cm1zIGF0IGVuZCBvZiBmaWxlLgorICAgICAgICAoYnl0ZS1jb21waWxlLWZsdXNoLXBlbmRpbmcp CisgICAgICAgIDs7IE1ha2Ugd2FybmluZ3MgYWJvdXQgdW5yZXNvbHZlZCBmdW5jdGlvbnMKKyAg ICAgICAgOzsgZ2l2ZSB0aGUgZW5kIG9mIHRoZSBmaWxlIGFzIHRoZWlyIHBvc2l0aW9uLgorICAg ICAgICAoc2V0cSBieXRlLWNvbXBpbGUtbGFzdC1wb3NpdGlvbiAocG9pbnQtbWF4KSkKKyAgICAg ICAgKGJ5dGUtY29tcGlsZS13YXJuLWFib3V0LXVucmVzb2x2ZWQtZnVuY3Rpb25zKSkKICAgICAg IDs7IEZpeCB1cCB0aGUgaGVhZGVyIGF0IHRoZSBmcm9udCBvZiB0aGUgb3V0cHV0CiAgICAgICA7 OyBpZiB0aGUgYnVmZmVyIGNvbnRhaW5zIG11bHRpYnl0ZSBjaGFyYWN0ZXJzLgogICAgICAgKGFu ZCBieXRlLWNvbXBpbGUtY3VycmVudC1maWxlCg== --_007_VI1P194MB0429B0265C9E8D00C0595D30962F0VI1P194MB0429EURP_ Content-Type: text/x-patch; name="simple.patch" Content-Description: simple.patch Content-Disposition: attachment; filename="simple.patch"; size=479; creation-date="Sun, 22 Dec 2019 07:00:08 GMT"; modification-date="Sun, 22 Dec 2019 07:00:58 GMT" Content-Transfer-Encoding: base64 LS0tIHNpbXBsZS5lbAkyMDE5LTEyLTIwIDAxOjA2OjE2Ljg0OTM0Mzk2MSArMDEwMAorKysgbXlz aW1wbGUuZWwJMjAxOS0xMi0yMCAwMTowMzowNS4yMTI0Njc2NzQgKzAxMDAKQEAgLTEyNyw2ICsx MjcsMTQgQEAKICAgOnNhZmUgIydib29sZWFucAogICA6dmVyc2lvbiAiMjcuMSIpCiAKKyhkZWZj dXN0b20gZW1hY3MtbGlzcC1hbGxvdy1saXRlcmFsLWNvbW1lbnRzIG5pbAorICAiSWYgbm90IG5p bCwgZWxpc3Agd2lsbCBhbGxvdyB5b3UgdG8gdHlwZSBpbiB0b3AtbGV2ZWwgY29tbWVudHMKKyAg IHdpdGhvdXQgdXNpbmcgc2VtaWNvbG9uLiIKKyAgOmdyb3VwICdsaXNwCisgIDp0eXBlICdib29s ZWFuCisgIDpzYWZlICMnYm9vbGVhbnAKKyAgOnZlcnNpb24gIjI3LjEiKQorCiAoZGVmdmFyIG5l eHQtZXJyb3ItaGlnaGxpZ2h0LXRpbWVyIG5pbCkKIAogKGRlZnZhciBuZXh0LWVycm9yLW92ZXJs YXktYXJyb3ctcG9zaXRpb24gbmlsKQo= --_007_VI1P194MB0429B0265C9E8D00C0595D30962F0VI1P194MB0429EURP_ Content-Type: text/x-emacs-lisp; name="chatty.el" Content-Description: chatty.el Content-Disposition: attachment; filename="chatty.el"; size=720; creation-date="Sun, 22 Dec 2019 07:00:35 GMT"; modification-date="Sun, 22 Dec 2019 07:00:58 GMT" Content-Transfer-Encoding: base64 OzsgLSotIG1vZGU6IG9yZzsgLSotCgpFbGlzcCBub3cgYWxvd3MgY29tbWVudHMgd2l0aG91dCA7 LgoKJyBjYW4gYWxzbyB1c2Ugc3RhcnQgbGl0ZXJhbCBjb21tZW50cyB3aXRoCiMgYWxzbyB3b3Jr cwoKKiBTb21lIGVsaXNwIGhlcmUKKHNldHEgZW1hY3MtbGlzcC1hbGxvdy1saXRlcmFsLWNvbW1l bnRzIHQpCihzZXRxIGJ5dGUtY29tcGlsZS1hbGxvdy1saXRlcmFsLWNvbW1lbnRzIHQpCihtZXNz YWdlICJJIGNhbiBub3cgcnVuIHNpbXBsZSBlbGlzcCBvbiBteSBvd24hIikKCiogTW9yZSBzdHVm ZiBoZXJlCiMrQkVHSU5fU1JDIGVtYWNzLWxpc3AKKG1lc3NhZ2UgIkhlbGxvLCBXb3JsZCEiKQoj K0VORF9TUkMKCkl0IGlzIG9mIGNvdXJzZSBwb3NzaWJsZSB0byBpbnRlcnR3ZW5lIGNvZGUKd2l0 aCBjb21tZW50cyBhbnl3aGVyZSBpbiB0aGUgZmlsZS4KCihtZXNzYWdlICJIZWxsbyBBZ2FpbiEi KQoKT2YgY291cnNlIHdlIGNhbiBhbHNvIGNvbW1lbnQtb3V0IGNvZGUKanVzdCBhcyBiZWZvcmU6 Cgo7OyhtZXNzYWdlICJJIGFtIHNpbGVudCIpCkluIGNvZGUgYmxvY3MgdGhlICc7JyBpcyBzdGls bCBhIGNvbW1lbnQgZGVsaW1pdGVyOgoobWVzc2FnZQogOzsgSGVyZSBpcyBhIGxpbmUgY29tbWVu dAogIkkgYW0gYSBiaXQgY2hhdHR5IHRvZGF5ISIpCgpUaGF0J3MgaXQgZm9yIHRvZGF5IGZvbGtz IQoKKG1lc3NhZ2UgIkJ5ZSBieWUgY3J1ZWwgd29ybGQhIikK --_007_VI1P194MB0429B0265C9E8D00C0595D30962F0VI1P194MB0429EURP_--