all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eduardo Ochs <eduardoochs@gmail.com>
To: Heime <heimeborgia@protonmail.com>
Cc: Heime via Users list for the GNU Emacs text editor
	<help-gnu-emacs@gnu.org>
Subject: Re: Printing code made by a macro
Date: Sun, 6 Aug 2023 17:36:29 -0300	[thread overview]
Message-ID: <CADs++6gdo1fyNgKYF6zZZzBoBmcTnKcBcMn-N6SJ=8mjiU1faA@mail.gmail.com> (raw)
In-Reply-To: <MSVFrzqqUeUgza66CLsQFGKs9pqekjDyZ8sXFfPHu377NUjOPzM6DfIaW8CLky2tS-fo4xRUtuAI6ffYByw_Thuo2iJR39IDvrvLU5HTTf4=@protonmail.com>

On Sun, 6 Aug 2023 at 14:24, Heime <heimeborgia@protonmail.com> wrote:
>
> I am now looping to find pp-to-string and find-estring-elisp
>
> Where are they ?
>
> You call these "find-" tools (e.g. find-eppm) which I can use
> to print code derived from a macro.  Although in actual fact,
> you use them to print code that is found in elisp files.  And
> thusly  you call them "find-" tools.  It just happens that I
> can use them to pretty print the output of my macro, even though
> no code will be found in my libraries.  Is this the correct
> evaluation of find-eppm ?

Hi Heime,

eev has lots of functions to inspect how Emacs represents things in
memory and only a few functions to jump to their source code, and the
functions in eev that start with the prefix `find-' are the ones that
are usually used as elisp hyperlinks... for example, this - note that
it is a sexp of the form "(find-... ...)" - is an elisp hyperlink:

  (find-efunction 'find-eppm)

if you follow it it will take you to the definition of the function
`find-eppm' in the file "eev-blinks.el". Elisp hyperlinks are
explained here:

  (find-eev-quick-intro "2. Evaluating Lisp")
  (find-eev-quick-intro "3. Elisp hyperlinks")
  http://anggtwu.net/eev-intros/find-eev-quick-intro.html#2
  http://anggtwu.net/eev-intros/find-eev-quick-intro.html#3

The "Emacs way" to get help about a function is to put the point on
the name of the function and then type `C-h f RET'; this creates a
temporary buffer with lots of information, and one of the first things
in that temporary buffer is a link to where the function is defined.
The "eev way" to get help about a function is to put the point on the
name of the function and then type `M-h M-f RET'; this creates a
temporary buffer with lots of elisp hyperlinks. If you do `M-h M-f
RET' with the point on `find-eppm' some of the elisp hyperlinks that
will appear are these ones:

  (find-efunction-links 'find-eppm)
  (eek "M-h M-f  find-eppm")
  (find-eev-quick-intro "4.2. `find-ekey-links' and friends")

  (find-efunctiondescr 'find-eppm)
  (find-efunction      'find-eppm)
  (find-efunctionpp    'find-eppm)

  (symbol-file 'find-eppm 'defun)
  (find-fline (symbol-file 'find-eppm 'defun))
  (find-epp (assoc (symbol-file 'find-eppm 'defun) load-history))

Try them - I mean, try the ones above and then try all the ones in the
temporary buffer... you will see that some of them do things that are
easy to understand, and some other ones do things that are very
low-level and very technical... but you are trying to learn things
that are very low-level and very technical, so I think that you will
like them. Also, take a look at this:

  (find-elisp-intro)
  http://anggtwu.net/eev-intros/find-elisp-intro.html

I have the impression that its section 6

  (find-elisp-intro "6. Defining functions")
  http://anggtwu.net/eev-intros/find-elisp-intro.html#6

explains some things about how functions are stored in memory that may
be useful to you...

Btw, eev has a mailing list:

  https://lists.nongnu.org/mailman/listinfo/eev
  https://lists.gnu.org/archive/html/eev/

More later! Cheers =),
  Eduardo
  http://anggtwu.net/eepitch.html



  reply	other threads:[~2023-08-06 20:36 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-05 23:42 Printing code made by a macro Heime
2023-08-06  0:31 ` Eduardo Ochs
2023-08-06  0:44   ` Heime
2023-08-06  0:50     ` Eduardo Ochs
2023-08-06  1:15       ` Heime
2023-08-06  2:16         ` Heime
2023-08-06  2:54           ` Eduardo Ochs
2023-08-06  3:36             ` Heime
2023-08-06 17:23             ` Heime
2023-08-06 20:36               ` Eduardo Ochs [this message]
2023-08-06 22:45                 ` Heime
2023-08-06 23:11                   ` Emanuel Berg
2023-08-06 18:10       ` Heime
2023-08-06  5:04 ` Eli Zaretskii
2023-08-06  6:22 ` Sebastian Miele
2023-08-07 19:54 ` Pierre Rouleau

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='CADs++6gdo1fyNgKYF6zZZzBoBmcTnKcBcMn-N6SJ=8mjiU1faA@mail.gmail.com' \
    --to=eduardoochs@gmail.com \
    --cc=heimeborgia@protonmail.com \
    --cc=help-gnu-emacs@gnu.org \
    /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.