unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Jean Louis <bugs@gnu.support>
To: help-gnu-emacs@gnu.org
Subject: rcd-template-eval, much is in Org mode
Date: Fri, 30 Apr 2021 22:48:56 +0300	[thread overview]
Message-ID: <YIxfKFyYgKYPQSUh@protected.localdomain> (raw)
In-Reply-To: <874kfn292f.fsf@disroot.org>

* Jorge P. de Morais Neto <jorge+list@disroot.org> [2021-04-30 17:29]:
> Hi all!
> 
> Em [2021-04-22 qui 10:46:59-0400], Stefan Monnier escreveu:
> 
> >> Is there a way to avoid these warnings?
> >
> > Yes: don't abuse `eval` ;-)
> 
> Jean Louis, could you provide a little more detail on what are you using
> ~eval~ for?  Some tasks accomplished by eval can be done more safely by
> other means.  For example, if you just want symbol indirection, you can
> use ~symbol-value~ (there is also ~symbol-function~).  If you want to
> apply a function object to a sequence of arguments, you can use ~apply~
> or ~funcall~.
> 
> I know little about Elisp; more experienced hackers may know about other
> mechanisms that avoid the need for ~eval~.

Org mode is one of popular modes, and it has 52 matches for "(eval "
on my computer. See below.

For almost 2 decades I use that for WWW publishing. Imagine:

<html>
  <body>
    <title>⟦ (xml-escape "My new <title>") ⟧</title>
  </body>
</html>

it would expand into:

<html>
  <body>
    <title>My new &lt;title&gt;</title>
  </body>
</html>

and I like it that way more than CL-EMB, where I had to do something like:

<html>
  <body>
    <title><% @var title -escape-xml %></title>
  </body>
</html>

We are eval-ing in Emacs more than we think when we use Org mode.

-*- mode: grep; default-directory: "~/.emacs.d/elpa/org-20201216/" -*-
Grep started at Fri Apr 30 22:43:55

grep --color=auto -nH --null -e "(eval " *.el
ob-core.el\0231:	 (eval (or (cdr  (assq :eval headers))
ob-core.el\0617:		      (and (boundp lang-headers) (eval lang-headers t))
ob-core.el\0870:		   (when (boundp lang-headers) (eval lang-headers t))))
ob-core.el\0908:         (lang-headers (when (boundp lang-headers-var) (eval lang-headers-var t)))
ob-core.el\01617:					  (eval raw-result t)))
ob-core.el\02710:				   (if (stringp value) value (eval value t))))))
ob-core.el\02990:	 (eval (read cell) t))
ob-emacs-lisp.el\070:	 (result (eval (read (if (or (member "code" result-params)
ob-shell.el\051:    (eval `(defun ,(intern (concat "org-babel-execute:" name))
ob-shell.el\056:    (eval `(defalias ',(intern (concat "org-babel-variable-assignments:" name))
ob-shell.el\061:    (eval `(defvar ,(intern (concat "org-babel-default-header-args:" name)) '()))))
ob-table.el\0127:                        (eval `(org-babel-parse-header-arguments
ol-bbdb.el\0412:                       ((listp form) (eval form))
ol.el\01324:		   (eval (read path))
org-agenda.el\02910:	      (setq type (nth 2 entry) org-match (eval (nth 3 entry))
org-agenda.el\03241:      (setq match (eval (nth 1 org-cmd)))
org-agenda.el\03400:  (eval (list 'org-batch-store-agenda-views)))
org-agenda.el\03710:    (eval form)))
org-agenda.el\04128:	       (eval form)))))))
org-agenda.el\06728:	(setq rtn (concat (eval formatter) txt))
org-agenda.el\07257:	  (eval (cons 'or org-agenda-sorting-strategy-selected))
org-agenda.el\07511:	(eval series-redo-cmd)
org-agenda.el\08114:	  (unless (eval org-agenda-filter-form)
org-agenda.el\08228:	  (eval org-agenda-jump-prefer-future))
org.el\08421:    (eval `(let ,binds
org.el\09329:			       (or (eval checklist)
org.el\012473:	      (setq scope (eval scope)))
org.el\014231:    (eval form)
org.el\014645:	 (result (if calendar-debug-sexp (eval sexp)
org.el\014647:		       (eval sexp)
org.el\016525:      (eval org-speed-command))
org.el\018337:			(not (equal (symbol-value v) (eval (car (get v 'standard-value)))))))
org-macro.el\0152:	  '("n" . "(eval (org-macro--counter-increment $1 $2))")
org-macro.el\0153:	  '("keyword" . "(eval (org-macro--find-keyword-value $1))")
org-macro.el\0154:	  '("time" . "(eval (format-time-string $1))")
org-macro.el\0155:	  '("property" . "(eval (org-macro--get-property $1 $2))")))))
org-macro.el\0180:          (setq value (eval (condition-case nil (read value)
org-macro.el\0334:	(format "(eval (if (org-string-nw-p $1) %s %S))"
org-macs.el\0176:  `(eval (list 'let ,environment ',form)))
org-macs.el\0626:  (eval (cons 'let (cons list body))))
org-macs.el\0630:  (eval (cons 'let (cons list1 (list (cons 'let (cons list2 body)))))))
org-macs.el\0636:      (eval form)
org-mouse.el\0522:	    (eval `(org-agenda nil (string-to-char ,key))))
org-pcomplete.el\0429:		   (and (boundp lang-headers) (eval lang-headers t)))))
org-table.el\02600:			 (eval (eval (read form)))
ox.el\01572:		 (let ((value (eval (nth 3 cell))))
ox.el\03107:                               (mapconcat #'identity (eval (nth 3 entry)) " ")
ox.el\03108:                             (eval (nth 3 entry)))))
ox.el\03111:                   (push (cons option (eval (nth 3 entry))) options))))))
ox-odt.el\0538:			  (eval (car (widget-get w :args)))))
ox-odt.el\0627:			  (eval (car (widget-get w :args)))))



-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

Sign an open letter in support of Richard M. Stallman
https://stallmansupport.org/
https://rms-support-letter.github.io/




  parent reply	other threads:[~2021-04-30 19:48 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-22 14:43 How to tame compiler? Jean Louis
2021-04-22 14:46 ` Stefan Monnier
2021-04-22 15:47   ` Jean Louis
2021-04-22 16:06   ` Jean Louis
2021-04-30 13:31   ` Jorge P. de Morais Neto
2021-04-30 19:38     ` rcd-template-eval - was " Jean Louis
2021-04-30 19:48     ` Jean Louis [this message]
2021-04-30 20:06       ` rcd-template-eval, much is in Org mode Tassilo Horn
2021-04-30 22:08       ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-04-30 23:04         ` Org mode rant Jean Louis
2021-05-01  0:46           ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-01  6:10             ` Jean Louis
2021-05-01  6:34               ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-01  9:41                 ` On markdown images Jean Louis
2021-05-01  9:59                   ` Yuri Khan
2021-05-01 10:18                     ` Jean Louis
2021-05-01 11:09                       ` Yuri Khan
2021-05-01 11:25                         ` Jean Louis
2021-05-02 19:30                         ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-03  5:43                           ` Yuri Khan
2021-05-03 17:08                             ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-03 23:22                               ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-04  2:39                   ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-01  5:00           ` Org mode rant Bastien
2021-05-01  5:10             ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-01  9:16             ` Jean Louis
2021-05-01 10:06               ` Bastien
2021-05-01 10:42                 ` Jean Louis
2021-05-01 10:10               ` Bastien
2021-05-01 11:19                 ` Jean Louis
2021-05-01 13:48                 ` [External] : " Drew Adams
2021-05-01 14:05                   ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-01 10:10               ` Bastien
2021-04-30 20:23     ` eval myths - Re: How to tame compiler? Jean Louis
2021-04-30 22:11       ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-04-30 23:07         ` Jean Louis
2021-05-01  0:28           ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-01  8:13       ` tomas
2021-04-30 22:06     ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-04-30 22:20       ` Stefan Monnier
2021-04-30 22:31         ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-04-30 22:50           ` Stefan Monnier
2021-04-30 22:56             ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-01  0:44 ` Michael Heerdegen
2021-05-01  3:49   ` Stefan Monnier
2021-05-01  4:55     ` Michael Heerdegen
2021-05-01  6:34     ` Jean Louis
2021-05-01 13:38       ` Stefan Monnier
2021-05-01 16:19         ` Jean Louis
2021-05-02  5:41     ` Michael Heerdegen
2021-05-02  7:37       ` Jean Louis
2021-05-02  7:45       ` Jean Louis
2021-05-02  9:06         ` tomas
2021-05-02 11:18           ` Jean Louis
2021-05-02 12:24             ` tomas
2021-05-02 18:17               ` Jean Louis
2021-05-02 12:06           ` Stages of WWW development compared to Emacs Lisp development Jean Louis
2021-05-02 16:51             ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-02 18:37               ` Jean Louis
2021-05-02 16:45       ` How to tame compiler? Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-02 22:29       ` Stefan Monnier
2021-05-02 23:14         ` Jean Louis
2021-05-03  1:58           ` Eduardo Ochs
2021-05-03  6:51             ` Eval in templates - " Jean Louis
2021-05-01  4:53   ` Michael Heerdegen
2021-05-01  7:05     ` Jean Louis
2021-05-01  7:59       ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-01  6:03   ` Jean Louis
2021-05-01  6:17     ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-02  5:58     ` Michael Heerdegen
2021-05-02  6:54       ` Jean Louis
2021-05-03 21:39       ` Jean Louis

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YIxfKFyYgKYPQSUh@protected.localdomain \
    --to=bugs@gnu.support \
    --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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).