From: arthur miller <arthur.miller@live.com>
To: Eduardo Ochs <eduardoochs@gmail.com>,
Stefan Monnier <monnier@iro.umontreal.ca>
Cc: "emacs-devel@gnu.org" <emacs-devel@gnu.org>
Subject: Sv: Sv: Sv: Christmas wish: Literate Elisp
Date: Sat, 21 Dec 2019 01:18:50 +0000 [thread overview]
Message-ID: <VI1P194MB0429A5894D1BDD0AC20D7305962C0@VI1P194MB0429.EURP194.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <CADs++6iTmjXwKHq+YqaCSAwxTgqWSh09e2miPzgMBxH4eeguig@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2455 bytes --]
> I was expecting that Arthur would come up with a preprocessor written
> in (I guess) 30 lines of Elisp...
Interesting 🙂. If you have red my previous mails to this list you
might have noticed that I am not an elisp guru. Stefan has
outlined two possible ways how this could be implemented in
Elisp, if you follow his advice I am sure you will have a working
solution you can present to us. I don't care how many lines of code
it will take.
> a lot of people would like to play
> with it, add tests, modify it, and so on
You still can my friend, and I encourage you to do and test if the
idea itself is valid. That was the purpose why I wrote patch. I clearly
stated it is just a prototype of an idea in order to test the soundness of
the idea. It takes two minutes to patch 3 files and rebuild Emacs. if you
wish to play with it. It is not like it cost some enormous mount of money
or labour.
> and we could use it to
> earn how to create our own preprocessors.
There are many sources in Emacs source code or elsewhere you can look
at if you need learning material.
>A preprocessor written as patch to the C source of Emacs feels useless
>to me.
The patch is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
🙂
[[]],
Eduardo Ochs
http://angg.twu.net/#eev
http://angg.twu.net/emacsconf2019.html
On Fri, 20 Dec 2019 at 13:18, Stefan Monnier <monnier@iro.umontreal.ca<mailto:monnier@iro.umontreal.ca>> wrote:
> I really understand the concern, but I must ask how would one change the
> elisp itself without re-implementing much or some of of elisp parser if it would
> be done externally?
I recommend you take a look at the existing function used on
load-source-file-function (i.e. load-with-code-conversion): it loads the
source file into a buffer and then calls `eval-buffer`.
So all it would take is for you to erase the text (aka non-code) part of
the source code before passing it to `eval-buffer` (but of course, only
do it when that source is using your new format).
Or instead of `eval-buffer` you might "manually" skip the text parts,
then use `read` + `eval` on the code parts. This would probably take
a bit more effort in order to correctly handle (defvar foo).
Stefan
[-- Attachment #2: Type: text/html, Size: 4352 bytes --]
next prev parent reply other threads:[~2019-12-21 1:18 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-12 15:45 Christmas wish: Literate Elisp arthur miller
2019-12-12 17:29 ` Stefan Monnier
2019-12-14 4:40 ` Sv: " arthur miller
2019-12-14 14:08 ` Stefan Monnier
2019-12-15 8:37 ` arthur miller
2019-12-16 12:01 ` Sv: " arthur miller
2019-12-16 13:41 ` Stefan Monnier
2019-12-16 14:02 ` Sv: " arthur miller
2019-12-16 16:07 ` Jonathan Leech-Pepin
2019-12-17 2:09 ` arthur miller
2019-12-17 11:06 ` Adam Porter
2019-12-18 16:29 ` Sv: " arthur miller
2019-12-18 18:49 ` Adam Porter
2019-12-18 20:04 ` Sv: " arthur miller
2019-12-18 23:18 ` Adam Porter
2019-12-18 23:53 ` Sv: " arthur miller
2019-12-20 15:58 ` Unknown
2019-12-18 21:18 ` Sv: Sv: Sv: " Stefan Monnier
2019-12-18 22:43 ` Christmas wish: Literate Elisp (Intro) VanL
2019-12-19 0:05 ` Sv: " arthur miller
2019-12-18 22:59 ` Sv: Sv: Sv: Christmas wish: Literate Elisp Adam Porter
2019-12-18 23:18 ` Sv: " arthur miller
2019-12-18 23:52 ` Adam Porter
2019-12-19 0:02 ` Sv: " arthur miller
2019-12-19 0:42 ` chad
2019-12-19 1:50 ` Jean-Christophe Helary
2019-12-20 0:55 ` Sv: " arthur miller
2019-12-20 15:00 ` Stefan Monnier
2019-12-20 15:50 ` Stefan Monnier
2019-12-20 15:50 ` Sv: " arthur miller
2019-12-20 16:17 ` Stefan Monnier
2019-12-20 16:34 ` Eduardo Ochs
2019-12-21 1:18 ` arthur miller [this message]
2019-12-21 5:24 ` Eduardo Ochs
2019-12-21 5:52 ` Sv: " arthur miller
[not found] ` <VI1P194MB042965777086C4466B7FF5EC962C0@VI1P194MB0429.EURP194.PROD.OUTLOOK.COM>
2019-12-21 15:29 ` arthur miller
[not found] ` <VI1P194MB0429A123183C15AF8EC3956B962C0@VI1P194MB0429.EURP194.PROD.OUTLOOK.COM>
[not found] ` <jwv7e2pln3s.fsf-monnier+emacs@gnu.org>
[not found] ` <VI1P194MB0429F37A29A2720037CAD9F9962C0@VI1P194MB0429.EURP194.PROD.OUTLOOK.COM>
2019-12-22 7:01 ` Sv: " arthur miller
2019-12-20 16:51 ` Phillip Lord
2019-12-21 1:16 ` Tim Cross
2019-12-21 4:24 ` Sv: " arthur miller
2019-12-21 6:41 ` Tim Cross
2019-12-21 9:39 ` VanL
2019-12-21 14:17 ` Sv: " arthur miller
2019-12-14 4:16 ` Richard Stallman
2019-12-14 5:05 ` Sv: " arthur miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=VI1P194MB0429A5894D1BDD0AC20D7305962C0@VI1P194MB0429.EURP194.PROD.OUTLOOK.COM \
--to=arthur.miller@live.com \
--cc=eduardoochs@gmail.com \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.