Re: [PATCH] Add new :results ignore header argument (was: [External] : Re: [BUG] executing sh source block with ':results none' encounters error region is longer than org-table-convert-region-max-line

2022-11-26 Thread Ihor Radchenko
Ihor Radchenko  writes:

> See the updated patch.

Applied onto main.
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=eed4708b6

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at .
Support Org development at ,
or support my work at 



Re: [PATCH] Add new :results ignore header argument (was: [External] : Re: [BUG] executing sh source block with ':results none' encounters error region is longer than org-table-convert-region-max-line

2022-11-25 Thread Ihor Radchenko
Rudolf Adamkovič  writes:

>> Any objections?
>
> With the existing imprecise names, "silent" (that talks) and "none"
> (that exists), we should try for maximum precision to avoid further
> confusion.  Looking at your documentation, the word "discard" conveys
> the meaning better than "ignore".  It says that we actually "throw the
> result away" for all intents and purposes, this time.  Other than
> discard, I found scrap, drop, ditch, swallow.

Good idea. I also like "discard" better.
See the updated patch.

>From c262579e8f1ef9ffecfc8e051fd5ea2539b4525e Mon Sep 17 00:00:00 2001
Message-Id: 
From: Ihor Radchenko 
Date: Tue, 22 Nov 2022 10:06:24 +0800
Subject: [PATCH v2] org-babel: Add new :results discard header argument

* lisp/ob-core.el (org-babel-result-cond): Unconditionally return nil
and suppress all the processing for :results discard.
(org-babel-common-header-args-w-values):
(org-babel-sha1-hash): Add the new value to know :results value list.
* doc/org-manual.org (Handling):
* etc/ORG-NEWS (New =:results discard= header argument): Document the
new value.

Reported-by: Daniel Ortmann 
Link: https://orgmode.org/list/87tu2tjary.fsf@localhost
---
 doc/org-manual.org |  8 
 etc/ORG-NEWS   |  8 
 lisp/ob-core.el| 43 ++-
 3 files changed, 38 insertions(+), 21 deletions(-)

diff --git a/doc/org-manual.org b/doc/org-manual.org
index 760c1ee86..67b8b4dee 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -18487,6 +18487,14 @@ *** Handling
   can still be used when referenced from another code block.
   Usage example: =:results none=.
 
+- =discard= ::
+
+  Ignore the results completely.  This option is similar to =none=,
+  but no processing is performed on the return value.  Calling the
+  code block programatically (see [[*How to evaluate source code]]) or by
+  reference (see [[*Passing arguments]] and [[*Noweb Reference Syntax]]) will
+  always yield nil.
+
 - =append= ::
 
   Append results to the Org buffer.  Latest results are at the bottom.
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 63ff5d749..fd569106a 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -373,6 +373,14 @@ value of ~org-babel-clojure-backend~. For example:
 (range 2)
 #+end_src
 
+*** New =:results discard= header argument
+
+Unlike =:results none=, the return value of code blocks called with
+=:results discard= header argument is always ~nil~.  Org does not
+attempt to analyze the results and simply returns nil.  This can be
+useful when the code block is used for side effects only but generates
+large outputs that may be slow to analyze for Org.
+
 ** New options
 *** A new option for custom setting ~org-refile-use-outline-path~ to show document title in refile targets
 
diff --git a/lisp/ob-core.el b/lisp/ob-core.el
index 3a07c10d5..5f679a5e9 100644
--- a/lisp/ob-core.el
+++ b/lisp/ob-core.el
@@ -425,7 +425,7 @@ (defconst org-babel-common-header-args-w-values
 (prologue   . :any)
 (results	. ((file list vector table scalar verbatim)
 		   (raw html latex org code pp drawer link graphics)
-		   (replace silent none append prepend)
+		   (replace silent none discard append prepend)
 		   (output value)))
 (rownames	. ((no yes)))
 (sep	. :any)
@@ -1345,7 +1345,7 @@ (defun org-babel-sha1-hash ( info context)
 		(lambda (a b) (string< (car a) (car b)
 (let* ((rm (lambda (lst)
 		 (dolist (p '("replace" "silent" "none"
-			  "append" "prepend"))
+			  "discard" "append" "prepend"))
 		   (setq lst (remove p lst)))
 		 lst))
 	   (norm (lambda (arg)
@@ -1353,8 +1353,8 @@ (defun org-babel-sha1-hash ( info context)
 (copy-sequence (cdr arg))
 			  (cdr arg
 		 (when (and v (not (and (sequencep v)
-	(not (consp v))
-	(= (length v) 0
+	  (not (consp v))
+	  (= (length v) 0
 		   (cond
 			((and (listp v) ; lists are sorted
 			  (member (car arg) '(:result-params)))
@@ -1382,10 +1382,10 @@ (defun org-babel-sha1-hash ( info context)
  (mapconcat
   #'identity
   (delq nil (mapcar (lambda (arg)
-  (let ((normalized (funcall norm arg)))
-(when normalized
-  (format "%S" normalized
-(nth 2 info))) ":")
+(let ((normalized (funcall norm arg)))
+  (when normalized
+(format "%S" normalized
+  (nth 2 info))) ":")
  expanded))
  (hash (sha1 it)))
 (when (called-interactively-p 'interactive) (message hash))
@@ -3289,19 +3289,20 @@ (defmacro org-babel-result-cond (result-params scalar-form  table-forms)
   (declare 

Re: [PATCH] Add new :results ignore header argument (was: [External] : Re: [BUG] executing sh source block with ':results none' encounters error region is longer than org-table-convert-region-max-line

2022-11-25 Thread Rudolf Adamkovič
Ihor Radchenko  writes:

> Any objections?

With the existing imprecise names, "silent" (that talks) and "none"
(that exists), we should try for maximum precision to avoid further
confusion.  Looking at your documentation, the word "discard" conveys
the meaning better than "ignore".  It says that we actually "throw the
result away" for all intents and purposes, this time.  Other than
discard, I found scrap, drop, ditch, swallow.

Rudy
-- 
"Strange as it may sound, the power of mathematics rests on its evasion
of all unnecessary thought and on its wonderful saving of mental
operations."
-- Ernst Mach, 1838-1916

Rudolf Adamkovič  [he/him]
Studenohorská 25
84103 Bratislava
Slovakia



Re: [PATCH] Add new :results ignore header argument (was: [External] : Re: [BUG] executing sh source block with ':results none' encounters error region is longer than org-table-convert-region-max-line

2022-11-22 Thread Daniel Ortmann

Works great!

On 11/22/22 00:02, Daniel Ortmann wrote:

No objections.

On 11/21/22 20:12, Ihor Radchenko wrote:

Daniel Ortmann  writes:


I am happy with whatever you decide. :-)

Then, here is a tentative patch introducing new :results ignore header
argument.

Any objections?











Re: [PATCH] Add new :results ignore header argument (was: [External] : Re: [BUG] executing sh source block with ':results none' encounters error region is longer than org-table-convert-region-max-line

2022-11-21 Thread Daniel Ortmann

No objections.

On 11/21/22 20:12, Ihor Radchenko wrote:

Daniel Ortmann  writes:


I am happy with whatever you decide.  :-)

Then, here is a tentative patch introducing new :results ignore header
argument.

Any objections?