From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.help Subject: Re: [External] : Re: Why is defun not executed during load-file? Date: Mon, 7 Jun 2021 09:27:58 +0300 Message-ID: References: <87k0nfesns.fsf@zoho.eu> <87mtsbd31w.fsf@zoho.eu> <87a6oad81r.fsf@zoho.eu> <87a6o22z81.fsf@zoho.eu> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8668"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/2.0.7+183 (3d24855) (2021-05-28) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jun 07 08:31:56 2021 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lq8nk-000217-Da for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 07 Jun 2021 08:31:56 +0200 Original-Received: from localhost ([::1]:45240 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lq8ni-0000zR-Rg for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 07 Jun 2021 02:31:54 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60758) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lq8n3-0000zG-AL for help-gnu-emacs@gnu.org; Mon, 07 Jun 2021 02:31:13 -0400 Original-Received: from stw1.rcdrun.com ([217.170.207.13]:33427) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lq8n1-0000us-HQ for help-gnu-emacs@gnu.org; Mon, 07 Jun 2021 02:31:13 -0400 Original-Received: from localhost ([::ffff:197.157.0.46]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 00000000000AE2B0.0000000060BDBD2C.000008D1; Sun, 06 Jun 2021 23:31:08 -0700 Mail-Followup-To: help-gnu-emacs@gnu.org Content-Disposition: inline In-Reply-To: <87a6o22z81.fsf@zoho.eu> Received-SPF: pass client-ip=217.170.207.13; envelope-from=bugs@gnu.support; helo=stw1.rcdrun.com X-Spam_score_int: -3 X-Spam_score: -0.4 X-Spam_bar: / X-Spam_report: (-0.4 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_SORBS_WEB=1.5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:130590 Archived-At: * Emanuel Berg via Users list for the GNU Emacs text editor [2021-06-07 05:20]: > OK so the hierarchy is: > > 1. `defun' (best) > 2. `defmacro' (at least better than `eval') > 3. eval (worse) No need for panic. There is nothing so special that can take place with `eval' that cannot take place with `defun' or any bad programming. We already said Org is eval-ing so much. Every Babel source block in Org mode is eval-ed. 8 matches for "(eval " in buffer: org.el 8421: (eval `(let ,binds 9329: (or (eval checklist) 12473: (setq scope (eval scope))) 14231: (eval form) 14645: (result (if calendar-debug-sexp (eval sexp) 14647: (eval sexp) 16525: (eval org-speed-command)) 18337: (not (equal (symbol-value v) (eval (car (get v 'standard-value))))))) Org from Org babel: (defun org-babel-execute:emacs-lisp (body params) "Execute a block of emacs-lisp code with Babel." (let* ((lexical (cdr (assq :lexical params))) (result-params (cdr (assq :result-params params))) (body (format (if (member "output" result-params) "(with-output-to-string %s\n)" "(progn %s\n)") (org-babel-expand-body:emacs-lisp body params))) (result (eval (read (if (or (member "code" result-params) I have been `eval'-ing for years by using Perl, by using Common Lisp and now Emacs Lisp especially when it comes to replacement of text, variables, or keeping some program code in the database. Each time you press C-x C-e you are `eval'-ing Some data has to be eval-ed and some data arrives from other places but program file, or is generated in some way and there is nothing wrong with using `eval' wherever it is required. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/