Subject: bug#76487: 31.0.50; org babel source block :results code returns nil - pp possible culprit

From: No Control To Edit <[email-masked]>
Date: Sat, 22 Feb 2025 17:03:52 +0000

problem:

when using ':results code' in an 'org babel source block' I get nil
instead of the result of last executed expression

setup:

Activate org mode on a buffer

    M-x org-mode

Insert this text

   #+BEGIN_SRC emacs-lisp :results code
     (+ 1 1)
   #+END_SRC

Do C-c C-c in source block and enter 'yes' to execute 

Actual results:

   #+RESULTS:
   #+begin_src emacs-lisp
    nil
   #+end_src

Expected results:

   #+RESULTS:
   #+begin_src emacs-lisp
    2
   #+end_src

Observations:

pp might be be causing the problem see: ob-emacs-lisp.el

when ':results code' used the  block contents are wrapped in pp i.e. (pp src-block-contents)

evaluating the following code in elisp returns

(pp (+ 1 1))
>> 2
>> nil

In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.16.0) of 2024-12-30 built on maestro
Repository revision: 7671d50b149edd9e19c29f5fa8ee71c01e2f583d
Repository branch: master
System Description: LMDE 6 (faye)

Configured using:
 'configure --with-mailutils --with-modules --with-imagemagick
 --prefix=/home/no-control/installs --bindir=/home/no-control/bin
 --with-native-compilation --with-tree-sitter'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ IMAGEMAGICK
JPEG LCMS2 LIBSELINUX LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER
PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP
X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Org

Minor modes in effect:
  xterm-mouse-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort emacsbug reveal ffap network-stream nsm help-fns radix-tree
cl-print debug backtrace mail-extr smtpmail use-package-core pp oc-basic
cl-extra help-mode org-element org-persist org-id org-refile
org-element-ast inline avl-tree generator ol-eww eww vtable mule-util
url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr
pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start
gnus-dbus dbus xml gnus-cloud nnimap nnmail browse-url xdg url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util url-parse auth-source cl-seq
eieio eieio-core cl-macs json map url-vars mail-source utf7 nnoo
parse-time gnus-spec gnus-int gnus-range message sendmail mailcap
yank-media puny rfc822 mml mml-sec password-cache epa derived epg
rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
nnheader gnus-util mail-utils range mm-util mail-prsvr wid-edit
ol-docview doc-view filenotify jka-compr image-mode exif dired
dired-loaddefs ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ol-doi
org-link-doi org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-src sh-script smie treesit executable ob-comint org-pcomplete
pcomplete org-list org-footnote org-faces org-entities noutline outline
icons org-version ob-emacs-lisp ob-core ob-eval org-cycle org-table ol
org-fold org-fold-core org-keys oc org-loaddefs thingatpt find-func
cal-menu calendar cal-loaddefs org-compat org-macs format-spec time-date
cl-loaddefs cl-lib compile text-property-search comint subr-x ansi-osc
ansi-color ring comp-run comp-common rx xt-mouse term/xterm xterm
byte-opt gv bytecomp byte-compile rmc iso-transl tooltip cconv eldoc
paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo gtk
x-toolkit xinput2 x multi-tty move-toolbar make-network-process
tty-child-frames native-compile emacs)

Memory information:
((conses 16 337879 89867) (symbols 48 22581 0) (strings 32 99229 3195)
 (string-bytes 1 2967838) (vectors 16 45383)
 (vector-slots 8 494459 18201) (floats 8 442 468)
 (intervals 56 663 120) (buffers 992 16))