* bug#33998: 27.0.50; cl-delete does not delete the first list element @ 2019-01-06 13:30 Deus Max 2019-01-07 17:13 ` João Távora 0 siblings, 1 reply; 18+ messages in thread From: Deus Max @ 2019-01-06 13:30 UTC (permalink / raw) To: 33998 Function cl-delete refuses to delete the first element of a list. I tried with all sorts of list elements, same results each time. Here is a simple example: (setq tst '(5 8 9 5 10 14 5 23)) (cl-delete 10 tst) -> returns (5 8 9 5 14 5 23) and tst -> (5 8 9 5 14 5 23) (cl-delete 5 tst) -> returns (8 9 14 23) but tst -> (5 8 9 14 23) The CL-manual says nothing about the first element being special. *ALL* should mean all, right ? Am I missing something here ? CL-manual says: — Function: cl-delete item seq &key :test :test-not :key :count :start :end :from-end This deletes all elements of seq that match item. It is a destructive operation. Since Emacs Lisp does not support stretchable strings or vectors, this is the same as cl-remove for those sequence types. On lists, cl-remove will copy the list if necessary to preserve the original list, whereas cl-delete will splice out parts of the argument list. Compare append and nconc, which are analogous non-destructive and destructive list operations in Emacs Lisp. In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.24) of 2018-11-24 built on dellcorei5dias Repository revision: 4ef9bcd0ff0eccb0c0810f43370eaa76aef2f4ec Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.11905000 System Description: Debian GNU/Linux buster/sid Recent messages: (5 8 9 10 14 23) (5 8 9 14 23) [3 times] (5 8 9 14) [2 times] (8 9 14) (5 8 9 14) [2 times] Indenting region...done t nil 8 (#o10, #x8, ?\C-h) (8 9 14) (5 8 9 14) Configured using: 'configure --with-x-toolkit=gtk3 --with-dbus --without-cairo --with-modules --with-file-notification=yes --with-xwidgets --without-selinux 'CFLAGS=-O2 -s'' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB NOTIFY INOTIFY GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS LIBSYSTEMD JSON LCMS2 GMP Important settings: value of $LANG: en_GB.UTF-8 locale-coding-system: utf-8-unix Major mode: Emacs-Lisp Minor modes in effect: treemacs-follow-mode: t treemacs-filewatch-mode: t treemacs-git-mode: deferred treemacs-fringe-indicator-mode: t which-key-mode: t global-magit-file-mode: t magit-auto-revert-mode: t global-git-commit-mode: t recentf-mode: t diff-auto-refine-mode: t paredit-mode: t helm-mode: t helm-autoresize-mode: t async-bytecomp-package-mode: t mode-icons-mode: t global-hl-line-mode: t shell-dirtrack-mode: t show-paren-mode: t midnight-mode: t electric-pair-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-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 auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-tangle hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-tangle /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-eshell hides /home/deusmax/.emacs.d/elpa/org-20181230/org-eshell /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org hides /home/deusmax/.emacs.d/elpa/org-20181230/org /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-clock hides /home/deusmax/.emacs.d/elpa/org-20181230/org-clock /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-install hides /home/deusmax/.emacs.d/elpa/org-20181230/org-install /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-keys hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-keys /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-octave hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-octave /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-indent hides /home/deusmax/.emacs.d/elpa/org-20181230/org-indent /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-org hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-org /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-processing hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-processing /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-version hides /home/deusmax/.emacs.d/elpa/org-20181230/org-version /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ref hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-ref /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lua hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-lua /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sed hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-sed /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-exp hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-exp /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-html hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-html /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox hides /home/deusmax/.emacs.d/elpa/org-20181230/ox /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-plantuml hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-plantuml /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-faces hides /home/deusmax/.emacs.d/elpa/org-20181230/org-faces /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sass hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-sass /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-coq hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-coq /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-irc hides /home/deusmax/.emacs.d/elpa/org-20181230/org-irc /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-mouse hides /home/deusmax/.emacs.d/elpa/org-20181230/org-mouse /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-pcomplete hides /home/deusmax/.emacs.d/elpa/org-20181230/org-pcomplete /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-latex hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-latex /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-css hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-css /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-gnuplot hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-gnuplot /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-texinfo hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-texinfo /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-rmail hides /home/deusmax/.emacs.d/elpa/org-20181230/org-rmail /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-crypt hides /home/deusmax/.emacs.d/elpa/org-20181230/org-crypt /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ebnf hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-ebnf /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-feed hides /home/deusmax/.emacs.d/elpa/org-20181230/org-feed /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-C hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-C /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-mhe hides /home/deusmax/.emacs.d/elpa/org-20181230/org-mhe /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-perl hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-perl /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-latex hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-latex /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-comint hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-comint /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-table hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-table /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-agenda hides /home/deusmax/.emacs.d/elpa/org-20181230/org-agenda /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-man hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-man /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-footnote hides /home/deusmax/.emacs.d/elpa/org-20181230/org-footnote /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-md hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-md /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ledger hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-ledger /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-abc hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-abc /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-io hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-io /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-hledger hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-hledger /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-maxima hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-maxima /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-plot hides /home/deusmax/.emacs.d/elpa/org-20181230/org-plot /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-duration hides /home/deusmax/.emacs.d/elpa/org-20181230/org-duration /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ocaml hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-ocaml /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-eww hides /home/deusmax/.emacs.d/elpa/org-20181230/org-eww /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-archive hides /home/deusmax/.emacs.d/elpa/org-20181230/org-archive /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-dot hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-dot /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-mscgen hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-mscgen /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-habit hides /home/deusmax/.emacs.d/elpa/org-20181230/org-habit /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-icalendar hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-icalendar /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-java hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-java /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-mobile hides /home/deusmax/.emacs.d/elpa/org-20181230/org-mobile /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-attach hides /home/deusmax/.emacs.d/elpa/org-20181230/org-attach /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-macro hides /home/deusmax/.emacs.d/elpa/org-20181230/org-macro /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-asymptote hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-asymptote /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-calc hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-calc /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-js hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-js /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sql hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-sql /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-clojure hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-clojure /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-shen hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-shen /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-odt hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-odt /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-stan hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-stan /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-beamer hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-beamer /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-shell hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-shell /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob hides /home/deusmax/.emacs.d/elpa/org-20181230/ob /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-forth hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-forth /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-entities hides /home/deusmax/.emacs.d/elpa/org-20181230/org-entities /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-timer hides /home/deusmax/.emacs.d/elpa/org-20181230/org-timer /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-scheme hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-scheme /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-publish hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-publish /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-bbdb hides /home/deusmax/.emacs.d/elpa/org-20181230/org-bbdb /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-eval hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-eval /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-src hides /home/deusmax/.emacs.d/elpa/org-20181230/org-src /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-macs hides /home/deusmax/.emacs.d/elpa/org-20181230/org-macs /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-ascii hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-ascii /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-core hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-core /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-inlinetask hides /home/deusmax/.emacs.d/elpa/org-20181230/org-inlinetask /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-docview hides /home/deusmax/.emacs.d/elpa/org-20181230/org-docview /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-gnus hides /home/deusmax/.emacs.d/elpa/org-20181230/org-gnus /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-capture hides /home/deusmax/.emacs.d/elpa/org-20181230/org-capture /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-haskell hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-haskell /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-datetree hides /home/deusmax/.emacs.d/elpa/org-20181230/org-datetree /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-groovy hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-groovy /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-emacs-lisp hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-emacs-lisp /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-protocol hides /home/deusmax/.emacs.d/elpa/org-20181230/org-protocol /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-awk hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-awk /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-info hides /home/deusmax/.emacs.d/elpa/org-20181230/org-info /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-lint hides /home/deusmax/.emacs.d/elpa/org-20181230/org-lint /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lilypond hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-lilypond /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-id hides /home/deusmax/.emacs.d/elpa/org-20181230/org-id /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-picolisp hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-picolisp /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-screen hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-screen /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-fortran hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-fortran /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-matlab hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-matlab /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-colview hides /home/deusmax/.emacs.d/elpa/org-20181230/org-colview /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-bibtex hides /home/deusmax/.emacs.d/elpa/org-20181230/org-bibtex /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-python hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-python /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-compat hides /home/deusmax/.emacs.d/elpa/org-20181230/org-compat /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lisp hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-lisp /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-list hides /home/deusmax/.emacs.d/elpa/org-20181230/org-list /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sqlite hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-sqlite /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-J hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-J /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-w3m hides /home/deusmax/.emacs.d/elpa/org-20181230/org-w3m /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-makefile hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-makefile /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ditaa hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-ditaa /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-R hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-R /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-org hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-org /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-goto hides /home/deusmax/.emacs.d/elpa/org-20181230/org-goto /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-table hides /home/deusmax/.emacs.d/elpa/org-20181230/org-table /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ruby hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-ruby /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-ctags hides /home/deusmax/.emacs.d/elpa/org-20181230/org-ctags /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-element hides /home/deusmax/.emacs.d/elpa/org-20181230/org-element /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-vala hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-vala /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-tempo hides /home/deusmax/.emacs.d/elpa/org-20181230/org-tempo /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-loaddefs hides /home/deusmax/.emacs.d/elpa/org-20181230/org-loaddefs /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lob hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-lob /home/deusmax/.emacs.d/elpa/auth-source-pass-20181106.1348/auth-source-pass hides /usr/local/share/emacs/27.0.50/lisp/auth-source-pass /home/deusmax/.emacs.d/elpa/ada-mode-6.0.1/ada-xref hides /usr/local/share/emacs/27.0.50/lisp/progmodes/ada-xref /home/deusmax/.emacs.d/elpa/ada-mode-6.0.1/ada-stmt hides /usr/local/share/emacs/27.0.50/lisp/progmodes/ada-stmt /home/deusmax/.emacs.d/elpa/ada-mode-6.0.1/ada-mode hides /usr/local/share/emacs/27.0.50/lisp/progmodes/ada-mode /home/deusmax/.emacs.d/elpa/ada-mode-6.0.1/ada-prj hides /usr/local/share/emacs/27.0.50/lisp/progmodes/ada-prj /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-tangle hides /usr/local/share/emacs/27.0.50/lisp/org/ob-tangle /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-eshell hides /usr/local/share/emacs/27.0.50/lisp/org/org-eshell /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-publish hides /usr/local/share/emacs/27.0.50/lisp/org/ox-publish /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org hides /usr/local/share/emacs/27.0.50/lisp/org/org /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-clock hides /usr/local/share/emacs/27.0.50/lisp/org/org-clock /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-install hides /usr/local/share/emacs/27.0.50/lisp/org/org-install /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-keys hides /usr/local/share/emacs/27.0.50/lisp/org/ob-keys /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-octave hides /usr/local/share/emacs/27.0.50/lisp/org/ob-octave /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-compat hides /usr/local/share/emacs/27.0.50/lisp/org/org-compat /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-indent hides /usr/local/share/emacs/27.0.50/lisp/org/org-indent /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-shen hides /usr/local/share/emacs/27.0.50/lisp/org/ob-shen /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-mouse hides /usr/local/share/emacs/27.0.50/lisp/org/org-mouse /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-forth hides /usr/local/share/emacs/27.0.50/lisp/org/ob-forth /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-asymptote hides /usr/local/share/emacs/27.0.50/lisp/org/ob-asymptote /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-processing hides /usr/local/share/emacs/27.0.50/lisp/org/ob-processing /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-element hides /usr/local/share/emacs/27.0.50/lisp/org/org-element /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-icalendar hides /usr/local/share/emacs/27.0.50/lisp/org/ox-icalendar /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-version hides /usr/local/share/emacs/27.0.50/lisp/org/org-version /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lua hides /usr/local/share/emacs/27.0.50/lisp/org/ob-lua /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-ctags hides /usr/local/share/emacs/27.0.50/lisp/org/org-ctags /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-w3m hides /usr/local/share/emacs/27.0.50/lisp/org/org-w3m /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sqlite hides /usr/local/share/emacs/27.0.50/lisp/org/ob-sqlite /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-html hides /usr/local/share/emacs/27.0.50/lisp/org/ox-html /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-feed hides /usr/local/share/emacs/27.0.50/lisp/org/org-feed /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-plantuml hides /usr/local/share/emacs/27.0.50/lisp/org/ob-plantuml /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-faces hides /usr/local/share/emacs/27.0.50/lisp/org/org-faces /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-irc hides /usr/local/share/emacs/27.0.50/lisp/org/org-irc /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-pcomplete hides /usr/local/share/emacs/27.0.50/lisp/org/org-pcomplete /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-org hides /usr/local/share/emacs/27.0.50/lisp/org/ox-org /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-css hides /usr/local/share/emacs/27.0.50/lisp/org/ob-css /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-timer hides /usr/local/share/emacs/27.0.50/lisp/org/org-timer /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-capture hides /usr/local/share/emacs/27.0.50/lisp/org/org-capture /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-clojure hides /usr/local/share/emacs/27.0.50/lisp/org/ob-clojure /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-texinfo hides /usr/local/share/emacs/27.0.50/lisp/org/ox-texinfo /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-rmail hides /usr/local/share/emacs/27.0.50/lisp/org/org-rmail /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-crypt hides /usr/local/share/emacs/27.0.50/lisp/org/org-crypt /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ebnf hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ebnf /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-mhe hides /usr/local/share/emacs/27.0.50/lisp/org/org-mhe /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-maxima hides /usr/local/share/emacs/27.0.50/lisp/org/ob-maxima /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-exp hides /usr/local/share/emacs/27.0.50/lisp/org/ob-exp /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-perl hides /usr/local/share/emacs/27.0.50/lisp/org/ob-perl /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-latex hides /usr/local/share/emacs/27.0.50/lisp/org/ox-latex /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-docview hides /usr/local/share/emacs/27.0.50/lisp/org/org-docview /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-eww hides /usr/local/share/emacs/27.0.50/lisp/org/org-eww /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-duration hides /usr/local/share/emacs/27.0.50/lisp/org/org-duration /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-comint hides /usr/local/share/emacs/27.0.50/lisp/org/ob-comint /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox hides /usr/local/share/emacs/27.0.50/lisp/org/ox /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-table hides /usr/local/share/emacs/27.0.50/lisp/org/ob-table /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-man hides /usr/local/share/emacs/27.0.50/lisp/org/ox-man /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-md hides /usr/local/share/emacs/27.0.50/lisp/org/ox-md /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-archive hides /usr/local/share/emacs/27.0.50/lisp/org/org-archive /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-abc hides /usr/local/share/emacs/27.0.50/lisp/org/ob-abc /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-odt hides /usr/local/share/emacs/27.0.50/lisp/org/ox-odt /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-groovy hides /usr/local/share/emacs/27.0.50/lisp/org/ob-groovy /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-src hides /usr/local/share/emacs/27.0.50/lisp/org/org-src /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sql hides /usr/local/share/emacs/27.0.50/lisp/org/ob-sql /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-io hides /usr/local/share/emacs/27.0.50/lisp/org/ob-io /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-coq hides /usr/local/share/emacs/27.0.50/lisp/org/ob-coq /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ledger hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ledger /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-plot hides /usr/local/share/emacs/27.0.50/lisp/org/org-plot /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-macro hides /usr/local/share/emacs/27.0.50/lisp/org/org-macro /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-ascii hides /usr/local/share/emacs/27.0.50/lisp/org/ox-ascii /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-mscgen hides /usr/local/share/emacs/27.0.50/lisp/org/ob-mscgen /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ref hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ref /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-awk hides /usr/local/share/emacs/27.0.50/lisp/org/ob-awk /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ruby hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ruby /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-inlinetask hides /usr/local/share/emacs/27.0.50/lisp/org/org-inlinetask /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-java hides /usr/local/share/emacs/27.0.50/lisp/org/ob-java /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-attach hides /usr/local/share/emacs/27.0.50/lisp/org/org-attach /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-entities hides /usr/local/share/emacs/27.0.50/lisp/org/org-entities /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-js hides /usr/local/share/emacs/27.0.50/lisp/org/ob-js /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-core hides /usr/local/share/emacs/27.0.50/lisp/org/ob-core /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-latex hides /usr/local/share/emacs/27.0.50/lisp/org/ob-latex /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-matlab hides /usr/local/share/emacs/27.0.50/lisp/org/ob-matlab /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob hides /usr/local/share/emacs/27.0.50/lisp/org/ob /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-vala hides /usr/local/share/emacs/27.0.50/lisp/org/ob-vala /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-picolisp hides /usr/local/share/emacs/27.0.50/lisp/org/ob-picolisp /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-lint hides /usr/local/share/emacs/27.0.50/lisp/org/org-lint /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-hledger hides /usr/local/share/emacs/27.0.50/lisp/org/ob-hledger /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sass hides /usr/local/share/emacs/27.0.50/lisp/org/ob-sass /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-scheme hides /usr/local/share/emacs/27.0.50/lisp/org/ob-scheme /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lilypond hides /usr/local/share/emacs/27.0.50/lisp/org/ob-lilypond /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-bbdb hides /usr/local/share/emacs/27.0.50/lisp/org/org-bbdb /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-eval hides /usr/local/share/emacs/27.0.50/lisp/org/ob-eval /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-habit hides /usr/local/share/emacs/27.0.50/lisp/org/org-habit /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-shell hides /usr/local/share/emacs/27.0.50/lisp/org/ob-shell /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-macs hides /usr/local/share/emacs/27.0.50/lisp/org/org-macs /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-mobile hides /usr/local/share/emacs/27.0.50/lisp/org/org-mobile /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-C hides /usr/local/share/emacs/27.0.50/lisp/org/ob-C /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-gnus hides /usr/local/share/emacs/27.0.50/lisp/org/org-gnus /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-agenda hides /usr/local/share/emacs/27.0.50/lisp/org/org-agenda /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-info hides /usr/local/share/emacs/27.0.50/lisp/org/org-info /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-stan hides /usr/local/share/emacs/27.0.50/lisp/org/ob-stan /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-J hides /usr/local/share/emacs/27.0.50/lisp/org/ob-J /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-emacs-lisp hides /usr/local/share/emacs/27.0.50/lisp/org/ob-emacs-lisp /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-protocol hides /usr/local/share/emacs/27.0.50/lisp/org/org-protocol /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-org hides /usr/local/share/emacs/27.0.50/lisp/org/ob-org /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-id hides /usr/local/share/emacs/27.0.50/lisp/org/org-id /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-colview hides /usr/local/share/emacs/27.0.50/lisp/org/org-colview /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-screen hides /usr/local/share/emacs/27.0.50/lisp/org/ob-screen /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-bibtex hides /usr/local/share/emacs/27.0.50/lisp/org/org-bibtex /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-haskell hides /usr/local/share/emacs/27.0.50/lisp/org/ob-haskell /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-beamer hides /usr/local/share/emacs/27.0.50/lisp/org/ox-beamer /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ocaml hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ocaml /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-datetree hides /usr/local/share/emacs/27.0.50/lisp/org/org-datetree /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-makefile hides /usr/local/share/emacs/27.0.50/lisp/org/ob-makefile /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-list hides /usr/local/share/emacs/27.0.50/lisp/org/org-list /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-table hides /usr/local/share/emacs/27.0.50/lisp/org/org-table /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lisp hides /usr/local/share/emacs/27.0.50/lisp/org/ob-lisp /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-fortran hides /usr/local/share/emacs/27.0.50/lisp/org/ob-fortran /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ditaa hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ditaa /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sed hides /usr/local/share/emacs/27.0.50/lisp/org/ob-sed /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-python hides /usr/local/share/emacs/27.0.50/lisp/org/ob-python /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-calc hides /usr/local/share/emacs/27.0.50/lisp/org/ob-calc /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-R hides /usr/local/share/emacs/27.0.50/lisp/org/ob-R /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lob hides /usr/local/share/emacs/27.0.50/lisp/org/ob-lob /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-loaddefs hides /usr/local/share/emacs/27.0.50/lisp/org/org-loaddefs /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-dot hides /usr/local/share/emacs/27.0.50/lisp/org/ob-dot /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-footnote hides /usr/local/share/emacs/27.0.50/lisp/org/org-footnote /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-gnuplot hides /usr/local/share/emacs/27.0.50/lisp/org/ob-gnuplot Features: (shadow flyspell emacsbug gnus-registry registry helm-misc helm-ls-git powerline-separators powerline-themes gnus-recent-helm gnus-uu yenc novice ac-js2 skewer-mode cache-table js2-mode js sgml-mode simple-httpd ert ewoc spinner ghub-graphql treepy graphql ghub guix-ui-generation guix-ui-profile guix-ui-package guix-license guix-ui-store-item guix-package pcmpl-unix guix-location guix-auto-mode guix-build-log guix-misc guix-ui guix-ui-messages guix-read guix-repl guix-profiles guix-external guix-geiser guix-guile geiser-mode geiser-xref geiser-compile geiser-debug geiser-chibi geiser-mit geiser-chez geiser-chicken geiser-racket geiser-guile geiser-repl geiser-image geiser-company geiser-doc geiser-menu geiser-edit geiser-completion geiser-autodoc geiser-eval geiser-connection tq geiser-syntax scheme geiser-log geiser-popup view guix-help-vars guix-config guix-default-config guix-help guix-utils guix bui bui-list bui-info bui-entry bui-core bui-history bui-button bui-utils request trace info-look shut-up dash-functional elisp-refs loop ledger-check ledger-texi ledger-test ledger-sort ledger-reconcile ledger-occur ledger-fonts ledger-complete ledger-fontify ledger-state ledger-schedule ledger-init ledger-report ledger-commodities ledger-xact ledger-post ledger-exec ledger-navigate ledger-context ledger-regex edit-indirect dabbrev savehist org-learn hi-lock org-capture org-bibtex org-attach ob-clojure password-store skeleton ibuf-macs ibuf-ext ibuffer ibuffer-loaddefs treemacs-compatibility treemacs-mode treemacs-interface treemacs-extensions treemacs-persistence treemacs-mouse-interface treemacs-tag-follow-mode treemacs-follow-mode treemacs-filewatch-mode treemacs-tags treemacs-faces treemacs-rendering treemacs-async treemacs-icons treemacs-workspaces treemacs-structure treemacs-visuals treemacs-fringe-indicator pulse treemacs-impl treemacs-macros inline treemacs-customization ace-window avy f pfuture s tempo org-table bibtex geiser-impl geiser-custom geiser-base geiser ob-octave ebnf2ps calc-store calc-trail calc-ext autoload url-http-ntlm ntlm calc calc-loaddefs calc-macs hmac-md5 hex-util md4 url-http url-gw url-cache wdired cc-awk magit-ediff ediff-merg ediff-wind ediff-diff ediff-mult ediff-help ediff-init ediff-util ediff vc vc-dispatcher auto-complete popup php-mode php-project mode-local flymake-proc flymake warnings cc-langs sh-script smie executable org-eldoc org-toc org-bookmark org-mouse org-info org-id org-gnus nnir org-eww org-eshell org-docview doc-view org-crypt org-bbdb gitconfig-mode lisp-mnt checkdoc gnus-kill iso-transl which-key cus-edit shr-color gitignore-mode conf-mode bug-reference image-mode dired-x magit-extras magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff magit-core magit-autorevert autorevert filenotify magit-process magit-margin magit-mode git-commit magit-git magit-section magit-utils magit-popup log-edit pcvs-util add-log with-editor server smerge-mode diff ispell helm-ring switch-window switch-window-mvborder switch-window-asciiart quail cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs debug cl-print gnus-dup shr text-property-search svg dom mm-archive sort smiley gnus-cite mail-extr gnus-bcklg gnus-async qp gnus-ml cursor-sensor nndraft nnmh nnfolder utf-7 gnutls network-stream nsm gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache misearch multi-isearch help-fns radix-tree dired-aux helm-eshell company-oddmuse company-keywords company-etags etags multifile xref project company-gtags company-dabbrev-code company-dabbrev company-files company-capf company-cmake company-xcode company-clang company-semantic company-eclim company-template company-bbdb eshell-fringe-status jka-compr em-unix em-term term disp-table ehelp em-script em-prompt em-ls em-hist em-pred em-glob em-cmpl em-basic em-banner em-alias tramp-cache tramp-sh recentf tree-widget ido helm-x-files helm-for-files helm-bookmark helm-adaptive bookmark pp dired-hide-dotfiles gnus-recent helm-command helm-elisp helm-eval edebug backtrace helm-info vc-git diff-mode winner image-file helm-external helm-net browse-url xml url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf ffap paredit pdf-loader two-column hydra lv bm printing ps-print ps-print-loaddefs ps-def lpr flycheck-ledger flycheck occur-x multiple-cursors mc-hide-unmatched-lines-mode mc-separate-operations rectangular-region-mode mc-mark-pop mc-mark-more thingatpt mc-cycle-cursors mc-edit-lines multiple-cursors-core rect esh-autosuggest company eshell-z em-dirs eshell-did-you-mean esh-var esh-cmd esh-opt esh-io esh-ext esh-proc esh-arg esh-groups eshell esh-module esh-mode esh-util eshell-up helm-swoop helm-mode helm-files helm-buffers helm-tags helm-locate helm-grep wgrep-helm wgrep grep compile helm-regexp helm-utils helm-help helm-types helm helm-source eieio-compat helm-multi-match helm-lib helm-config helm-easymenu async-bytecomp async ace-jump-mode mode-icons emojify apropos tar-mode ht dash hl-line color edmacro kmacro cal-china lunar solar cal-dst cal-islam cal-julian holidays hol-loaddefs appt diary-lib diary-loaddefs org-mime ox-org ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox org-habit org-edna org-clock htmlize cl ebdb-complete ebdb-message sendmail ebdb-gnus gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range message rmc puny dired dired-loaddefs rfc822 mml mml-sec epa mm-decode mm-bodies mm-encode mail-parse rfc2231 gmm-utils mailheader gnus-win ebdb-mua ebdb-org org-element avl-tree generator org-location-google-maps org-agenda google-maps google-maps-static url-util google-maps-geocode google-maps-base org org-macro org-footnote org-pcomplete org-list org-faces org-entities noutline outline easy-mmode org-version ob-latex ob-plantuml ob-org ob-shell ob-ditaa ob-dot ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs org-loaddefs ebdb-com crm mailabbrev ebdb-format ebdb eieio-opt speedbar sb-image ezimage dframe find-func eieio-base cal-menu calendar cal-loaddefs timezone lxc-tramp tramp trampver tramp-compat tramp-loaddefs ucs-normalize shell pcomplete comint ansi-color ring parse-time format-spec advice paren midnight gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums time-date mail-utils mm-util mail-prsvr wid-edit elec-pair cus-start cus-load mule-util tex-site rx url-auth info finder-inf package let-alist derived pcase cl-extra help-mode easymenu url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json map url-vars seq byte-opt gv bytecomp byte-compile cconv epg epg-config subr-x cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame cl-generic 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 charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting xwidget-internal move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 2296603 369440) (symbols 48 101962 3) (strings 32 395979 68773) (string-bytes 1 12997792) (vectors 16 172805) (vector-slots 8 3160555 181220) (floats 8 2162 1676) (intervals 56 154396 6404) (buffers 992 375)) ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-06 13:30 bug#33998: 27.0.50; cl-delete does not delete the first list element Deus Max @ 2019-01-07 17:13 ` João Távora 2019-01-07 17:28 ` Drew Adams 2019-01-07 20:20 ` Deus Max 0 siblings, 2 replies; 18+ messages in thread From: João Távora @ 2019-01-07 17:13 UTC (permalink / raw) To: Deus Max; +Cc: 33998 There is no bug. You should always read "destructive" as "potentially destructive". 'cl-delete', being a function, cannot know that the value you passed it is pointed to by the symbol 'tst'. Or, in lisp speak, that that value is the variable binding of 'tst'. Because it doesn't know this, it cannot affect the variable binding of 'tst', to be '(cdr tst)', which would be the only way to do what you want (remove the first element). If 'cl-delete' were a macro, like 'pop' is, it could do that (but that would have other disadvantages). So, cumbersome as it is, you should always use: (setq seq (cl-delete thing seq )) The docstring of 'delq' has this explanation more or less: delq is a built-in function in `C source code'. (delq ELT LIST) Delete members of LIST which are `eq' to ELT, and return the result. More precisely, this function skips any members `eq' to ELT at the front of LIST, then removes members `eq' to ELT from the remaining sublist by modifying its list structure, then returns the resulting list. Write `(setq foo (delq element foo))' to be sure of correctly changing the value of a list `foo'. See also `remq', which does not modify the argument. João On Sun, Jan 6, 2019 at 5:48 PM Deus Max <deusmax@gmx.com> wrote: > > > Function cl-delete refuses to delete the first element of a list. > I tried with all sorts of list elements, same results each time. > Here is a simple example: > > (setq tst '(5 8 9 5 10 14 5 23)) > > (cl-delete 10 tst) -> returns (5 8 9 5 14 5 23) > and > tst -> (5 8 9 5 14 5 23) > > (cl-delete 5 tst) -> returns (8 9 14 23) > but > tst -> (5 8 9 14 23) > > The CL-manual says nothing about the first element being special. *ALL* > should mean all, right ? Am I missing something here ? > > CL-manual says: > — Function: cl-delete item seq &key :test :test-not :key :count :start :end :from-end > > This deletes all elements of seq that match item. It is a > destructive operation. Since Emacs Lisp does not support > stretchable strings or vectors, this is the same as cl-remove for > those sequence types. On lists, cl-remove will copy the list if > necessary to preserve the original list, whereas cl-delete will > splice out parts of the argument list. Compare append and nconc, > which are analogous non-destructive and destructive list > operations in Emacs Lisp. > > > In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.24) > of 2018-11-24 built on dellcorei5dias > Repository revision: 4ef9bcd0ff0eccb0c0810f43370eaa76aef2f4ec > Repository branch: master > Windowing system distributor 'The X.Org Foundation', version 11.0.11905000 > System Description: Debian GNU/Linux buster/sid > > Recent messages: > (5 8 9 10 14 23) > (5 8 9 14 23) [3 times] > (5 8 9 14) [2 times] > (8 9 14) > (5 8 9 14) [2 times] > Indenting region...done > t > nil > 8 (#o10, #x8, ?\C-h) > (8 9 14) > (5 8 9 14) > Configured using: > 'configure --with-x-toolkit=gtk3 --with-dbus --without-cairo > --with-modules --with-file-notification=yes --with-xwidgets > --without-selinux 'CFLAGS=-O2 -s'' > > Configured features: > XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB > NOTIFY INOTIFY GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB > TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS > LIBSYSTEMD JSON LCMS2 GMP > > Important settings: > value of $LANG: en_GB.UTF-8 > locale-coding-system: utf-8-unix > > Major mode: Emacs-Lisp > > Minor modes in effect: > treemacs-follow-mode: t > treemacs-filewatch-mode: t > treemacs-git-mode: deferred > treemacs-fringe-indicator-mode: t > which-key-mode: t > global-magit-file-mode: t > magit-auto-revert-mode: t > global-git-commit-mode: t > recentf-mode: t > diff-auto-refine-mode: t > paredit-mode: t > helm-mode: t > helm-autoresize-mode: t > async-bytecomp-package-mode: t > mode-icons-mode: t > global-hl-line-mode: t > shell-dirtrack-mode: t > show-paren-mode: t > midnight-mode: t > electric-pair-mode: t > tooltip-mode: t > global-eldoc-mode: t > eldoc-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 > auto-composition-mode: t > auto-encryption-mode: t > auto-compression-mode: t > buffer-read-only: t > column-number-mode: t > line-number-mode: t > transient-mark-mode: t > > Load-path shadows: > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-tangle hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-tangle > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-eshell hides /home/deusmax/.emacs.d/elpa/org-20181230/org-eshell > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org hides /home/deusmax/.emacs.d/elpa/org-20181230/org > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-clock hides /home/deusmax/.emacs.d/elpa/org-20181230/org-clock > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-install hides /home/deusmax/.emacs.d/elpa/org-20181230/org-install > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-keys hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-keys > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-octave hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-octave > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-indent hides /home/deusmax/.emacs.d/elpa/org-20181230/org-indent > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-org hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-org > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-processing hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-processing > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-version hides /home/deusmax/.emacs.d/elpa/org-20181230/org-version > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ref hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-ref > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lua hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-lua > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sed hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-sed > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-exp hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-exp > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-html hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-html > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox hides /home/deusmax/.emacs.d/elpa/org-20181230/ox > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-plantuml hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-plantuml > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-faces hides /home/deusmax/.emacs.d/elpa/org-20181230/org-faces > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sass hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-sass > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-coq hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-coq > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-irc hides /home/deusmax/.emacs.d/elpa/org-20181230/org-irc > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-mouse hides /home/deusmax/.emacs.d/elpa/org-20181230/org-mouse > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-pcomplete hides /home/deusmax/.emacs.d/elpa/org-20181230/org-pcomplete > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-latex hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-latex > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-css hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-css > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-gnuplot hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-gnuplot > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-texinfo hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-texinfo > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-rmail hides /home/deusmax/.emacs.d/elpa/org-20181230/org-rmail > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-crypt hides /home/deusmax/.emacs.d/elpa/org-20181230/org-crypt > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ebnf hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-ebnf > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-feed hides /home/deusmax/.emacs.d/elpa/org-20181230/org-feed > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-C hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-C > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-mhe hides /home/deusmax/.emacs.d/elpa/org-20181230/org-mhe > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-perl hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-perl > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-latex hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-latex > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-comint hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-comint > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-table hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-table > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-agenda hides /home/deusmax/.emacs.d/elpa/org-20181230/org-agenda > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-man hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-man > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-footnote hides /home/deusmax/.emacs.d/elpa/org-20181230/org-footnote > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-md hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-md > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ledger hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-ledger > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-abc hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-abc > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-io hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-io > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-hledger hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-hledger > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-maxima hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-maxima > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-plot hides /home/deusmax/.emacs.d/elpa/org-20181230/org-plot > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-duration hides /home/deusmax/.emacs.d/elpa/org-20181230/org-duration > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ocaml hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-ocaml > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-eww hides /home/deusmax/.emacs.d/elpa/org-20181230/org-eww > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-archive hides /home/deusmax/.emacs.d/elpa/org-20181230/org-archive > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-dot hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-dot > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-mscgen hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-mscgen > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-habit hides /home/deusmax/.emacs.d/elpa/org-20181230/org-habit > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-icalendar hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-icalendar > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-java hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-java > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-mobile hides /home/deusmax/.emacs.d/elpa/org-20181230/org-mobile > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-attach hides /home/deusmax/.emacs.d/elpa/org-20181230/org-attach > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-macro hides /home/deusmax/.emacs.d/elpa/org-20181230/org-macro > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-asymptote hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-asymptote > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-calc hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-calc > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-js hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-js > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sql hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-sql > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-clojure hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-clojure > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-shen hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-shen > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-odt hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-odt > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-stan hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-stan > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-beamer hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-beamer > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-shell hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-shell > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob hides /home/deusmax/.emacs.d/elpa/org-20181230/ob > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-forth hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-forth > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-entities hides /home/deusmax/.emacs.d/elpa/org-20181230/org-entities > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-timer hides /home/deusmax/.emacs.d/elpa/org-20181230/org-timer > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-scheme hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-scheme > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-publish hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-publish > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-bbdb hides /home/deusmax/.emacs.d/elpa/org-20181230/org-bbdb > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-eval hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-eval > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-src hides /home/deusmax/.emacs.d/elpa/org-20181230/org-src > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-macs hides /home/deusmax/.emacs.d/elpa/org-20181230/org-macs > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-ascii hides /home/deusmax/.emacs.d/elpa/org-20181230/ox-ascii > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-core hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-core > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-inlinetask hides /home/deusmax/.emacs.d/elpa/org-20181230/org-inlinetask > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-docview hides /home/deusmax/.emacs.d/elpa/org-20181230/org-docview > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-gnus hides /home/deusmax/.emacs.d/elpa/org-20181230/org-gnus > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-capture hides /home/deusmax/.emacs.d/elpa/org-20181230/org-capture > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-haskell hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-haskell > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-datetree hides /home/deusmax/.emacs.d/elpa/org-20181230/org-datetree > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-groovy hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-groovy > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-emacs-lisp hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-emacs-lisp > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-protocol hides /home/deusmax/.emacs.d/elpa/org-20181230/org-protocol > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-awk hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-awk > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-info hides /home/deusmax/.emacs.d/elpa/org-20181230/org-info > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-lint hides /home/deusmax/.emacs.d/elpa/org-20181230/org-lint > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lilypond hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-lilypond > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-id hides /home/deusmax/.emacs.d/elpa/org-20181230/org-id > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-picolisp hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-picolisp > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-screen hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-screen > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-fortran hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-fortran > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-matlab hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-matlab > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-colview hides /home/deusmax/.emacs.d/elpa/org-20181230/org-colview > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-bibtex hides /home/deusmax/.emacs.d/elpa/org-20181230/org-bibtex > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-python hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-python > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-compat hides /home/deusmax/.emacs.d/elpa/org-20181230/org-compat > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lisp hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-lisp > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-list hides /home/deusmax/.emacs.d/elpa/org-20181230/org-list > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sqlite hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-sqlite > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-J hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-J > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-w3m hides /home/deusmax/.emacs.d/elpa/org-20181230/org-w3m > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-makefile hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-makefile > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ditaa hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-ditaa > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-R hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-R > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-org hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-org > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-goto hides /home/deusmax/.emacs.d/elpa/org-20181230/org-goto > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-table hides /home/deusmax/.emacs.d/elpa/org-20181230/org-table > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ruby hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-ruby > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-ctags hides /home/deusmax/.emacs.d/elpa/org-20181230/org-ctags > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-element hides /home/deusmax/.emacs.d/elpa/org-20181230/org-element > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-vala hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-vala > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-tempo hides /home/deusmax/.emacs.d/elpa/org-20181230/org-tempo > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-loaddefs hides /home/deusmax/.emacs.d/elpa/org-20181230/org-loaddefs > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lob hides /home/deusmax/.emacs.d/elpa/org-20181230/ob-lob > /home/deusmax/.emacs.d/elpa/auth-source-pass-20181106.1348/auth-source-pass hides /usr/local/share/emacs/27.0.50/lisp/auth-source-pass > /home/deusmax/.emacs.d/elpa/ada-mode-6.0.1/ada-xref hides /usr/local/share/emacs/27.0.50/lisp/progmodes/ada-xref > /home/deusmax/.emacs.d/elpa/ada-mode-6.0.1/ada-stmt hides /usr/local/share/emacs/27.0.50/lisp/progmodes/ada-stmt > /home/deusmax/.emacs.d/elpa/ada-mode-6.0.1/ada-mode hides /usr/local/share/emacs/27.0.50/lisp/progmodes/ada-mode > /home/deusmax/.emacs.d/elpa/ada-mode-6.0.1/ada-prj hides /usr/local/share/emacs/27.0.50/lisp/progmodes/ada-prj > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-tangle hides /usr/local/share/emacs/27.0.50/lisp/org/ob-tangle > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-eshell hides /usr/local/share/emacs/27.0.50/lisp/org/org-eshell > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-publish hides /usr/local/share/emacs/27.0.50/lisp/org/ox-publish > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org hides /usr/local/share/emacs/27.0.50/lisp/org/org > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-clock hides /usr/local/share/emacs/27.0.50/lisp/org/org-clock > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-install hides /usr/local/share/emacs/27.0.50/lisp/org/org-install > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-keys hides /usr/local/share/emacs/27.0.50/lisp/org/ob-keys > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-octave hides /usr/local/share/emacs/27.0.50/lisp/org/ob-octave > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-compat hides /usr/local/share/emacs/27.0.50/lisp/org/org-compat > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-indent hides /usr/local/share/emacs/27.0.50/lisp/org/org-indent > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-shen hides /usr/local/share/emacs/27.0.50/lisp/org/ob-shen > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-mouse hides /usr/local/share/emacs/27.0.50/lisp/org/org-mouse > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-forth hides /usr/local/share/emacs/27.0.50/lisp/org/ob-forth > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-asymptote hides /usr/local/share/emacs/27.0.50/lisp/org/ob-asymptote > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-processing hides /usr/local/share/emacs/27.0.50/lisp/org/ob-processing > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-element hides /usr/local/share/emacs/27.0.50/lisp/org/org-element > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-icalendar hides /usr/local/share/emacs/27.0.50/lisp/org/ox-icalendar > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-version hides /usr/local/share/emacs/27.0.50/lisp/org/org-version > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lua hides /usr/local/share/emacs/27.0.50/lisp/org/ob-lua > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-ctags hides /usr/local/share/emacs/27.0.50/lisp/org/org-ctags > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-w3m hides /usr/local/share/emacs/27.0.50/lisp/org/org-w3m > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sqlite hides /usr/local/share/emacs/27.0.50/lisp/org/ob-sqlite > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-html hides /usr/local/share/emacs/27.0.50/lisp/org/ox-html > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-feed hides /usr/local/share/emacs/27.0.50/lisp/org/org-feed > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-plantuml hides /usr/local/share/emacs/27.0.50/lisp/org/ob-plantuml > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-faces hides /usr/local/share/emacs/27.0.50/lisp/org/org-faces > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-irc hides /usr/local/share/emacs/27.0.50/lisp/org/org-irc > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-pcomplete hides /usr/local/share/emacs/27.0.50/lisp/org/org-pcomplete > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-org hides /usr/local/share/emacs/27.0.50/lisp/org/ox-org > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-css hides /usr/local/share/emacs/27.0.50/lisp/org/ob-css > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-timer hides /usr/local/share/emacs/27.0.50/lisp/org/org-timer > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-capture hides /usr/local/share/emacs/27.0.50/lisp/org/org-capture > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-clojure hides /usr/local/share/emacs/27.0.50/lisp/org/ob-clojure > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-texinfo hides /usr/local/share/emacs/27.0.50/lisp/org/ox-texinfo > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-rmail hides /usr/local/share/emacs/27.0.50/lisp/org/org-rmail > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-crypt hides /usr/local/share/emacs/27.0.50/lisp/org/org-crypt > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ebnf hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ebnf > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-mhe hides /usr/local/share/emacs/27.0.50/lisp/org/org-mhe > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-maxima hides /usr/local/share/emacs/27.0.50/lisp/org/ob-maxima > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-exp hides /usr/local/share/emacs/27.0.50/lisp/org/ob-exp > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-perl hides /usr/local/share/emacs/27.0.50/lisp/org/ob-perl > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-latex hides /usr/local/share/emacs/27.0.50/lisp/org/ox-latex > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-docview hides /usr/local/share/emacs/27.0.50/lisp/org/org-docview > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-eww hides /usr/local/share/emacs/27.0.50/lisp/org/org-eww > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-duration hides /usr/local/share/emacs/27.0.50/lisp/org/org-duration > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-comint hides /usr/local/share/emacs/27.0.50/lisp/org/ob-comint > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox hides /usr/local/share/emacs/27.0.50/lisp/org/ox > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-table hides /usr/local/share/emacs/27.0.50/lisp/org/ob-table > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-man hides /usr/local/share/emacs/27.0.50/lisp/org/ox-man > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-md hides /usr/local/share/emacs/27.0.50/lisp/org/ox-md > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-archive hides /usr/local/share/emacs/27.0.50/lisp/org/org-archive > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-abc hides /usr/local/share/emacs/27.0.50/lisp/org/ob-abc > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-odt hides /usr/local/share/emacs/27.0.50/lisp/org/ox-odt > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-groovy hides /usr/local/share/emacs/27.0.50/lisp/org/ob-groovy > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-src hides /usr/local/share/emacs/27.0.50/lisp/org/org-src > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sql hides /usr/local/share/emacs/27.0.50/lisp/org/ob-sql > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-io hides /usr/local/share/emacs/27.0.50/lisp/org/ob-io > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-coq hides /usr/local/share/emacs/27.0.50/lisp/org/ob-coq > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ledger hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ledger > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-plot hides /usr/local/share/emacs/27.0.50/lisp/org/org-plot > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-macro hides /usr/local/share/emacs/27.0.50/lisp/org/org-macro > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-ascii hides /usr/local/share/emacs/27.0.50/lisp/org/ox-ascii > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-mscgen hides /usr/local/share/emacs/27.0.50/lisp/org/ob-mscgen > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ref hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ref > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-awk hides /usr/local/share/emacs/27.0.50/lisp/org/ob-awk > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ruby hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ruby > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-inlinetask hides /usr/local/share/emacs/27.0.50/lisp/org/org-inlinetask > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-java hides /usr/local/share/emacs/27.0.50/lisp/org/ob-java > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-attach hides /usr/local/share/emacs/27.0.50/lisp/org/org-attach > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-entities hides /usr/local/share/emacs/27.0.50/lisp/org/org-entities > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-js hides /usr/local/share/emacs/27.0.50/lisp/org/ob-js > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-core hides /usr/local/share/emacs/27.0.50/lisp/org/ob-core > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-latex hides /usr/local/share/emacs/27.0.50/lisp/org/ob-latex > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-matlab hides /usr/local/share/emacs/27.0.50/lisp/org/ob-matlab > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob hides /usr/local/share/emacs/27.0.50/lisp/org/ob > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-vala hides /usr/local/share/emacs/27.0.50/lisp/org/ob-vala > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-picolisp hides /usr/local/share/emacs/27.0.50/lisp/org/ob-picolisp > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-lint hides /usr/local/share/emacs/27.0.50/lisp/org/org-lint > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-hledger hides /usr/local/share/emacs/27.0.50/lisp/org/ob-hledger > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sass hides /usr/local/share/emacs/27.0.50/lisp/org/ob-sass > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-scheme hides /usr/local/share/emacs/27.0.50/lisp/org/ob-scheme > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lilypond hides /usr/local/share/emacs/27.0.50/lisp/org/ob-lilypond > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-bbdb hides /usr/local/share/emacs/27.0.50/lisp/org/org-bbdb > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-eval hides /usr/local/share/emacs/27.0.50/lisp/org/ob-eval > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-habit hides /usr/local/share/emacs/27.0.50/lisp/org/org-habit > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-shell hides /usr/local/share/emacs/27.0.50/lisp/org/ob-shell > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-macs hides /usr/local/share/emacs/27.0.50/lisp/org/org-macs > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-mobile hides /usr/local/share/emacs/27.0.50/lisp/org/org-mobile > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-C hides /usr/local/share/emacs/27.0.50/lisp/org/ob-C > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-gnus hides /usr/local/share/emacs/27.0.50/lisp/org/org-gnus > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-agenda hides /usr/local/share/emacs/27.0.50/lisp/org/org-agenda > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-info hides /usr/local/share/emacs/27.0.50/lisp/org/org-info > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-stan hides /usr/local/share/emacs/27.0.50/lisp/org/ob-stan > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-J hides /usr/local/share/emacs/27.0.50/lisp/org/ob-J > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-emacs-lisp hides /usr/local/share/emacs/27.0.50/lisp/org/ob-emacs-lisp > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-protocol hides /usr/local/share/emacs/27.0.50/lisp/org/org-protocol > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-org hides /usr/local/share/emacs/27.0.50/lisp/org/ob-org > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-id hides /usr/local/share/emacs/27.0.50/lisp/org/org-id > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-colview hides /usr/local/share/emacs/27.0.50/lisp/org/org-colview > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-screen hides /usr/local/share/emacs/27.0.50/lisp/org/ob-screen > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-bibtex hides /usr/local/share/emacs/27.0.50/lisp/org/org-bibtex > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-haskell hides /usr/local/share/emacs/27.0.50/lisp/org/ob-haskell > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ox-beamer hides /usr/local/share/emacs/27.0.50/lisp/org/ox-beamer > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ocaml hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ocaml > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-datetree hides /usr/local/share/emacs/27.0.50/lisp/org/org-datetree > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-makefile hides /usr/local/share/emacs/27.0.50/lisp/org/ob-makefile > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-list hides /usr/local/share/emacs/27.0.50/lisp/org/org-list > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-table hides /usr/local/share/emacs/27.0.50/lisp/org/org-table > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lisp hides /usr/local/share/emacs/27.0.50/lisp/org/ob-lisp > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-fortran hides /usr/local/share/emacs/27.0.50/lisp/org/ob-fortran > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-ditaa hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ditaa > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-sed hides /usr/local/share/emacs/27.0.50/lisp/org/ob-sed > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-python hides /usr/local/share/emacs/27.0.50/lisp/org/ob-python > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-calc hides /usr/local/share/emacs/27.0.50/lisp/org/ob-calc > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-R hides /usr/local/share/emacs/27.0.50/lisp/org/ob-R > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-lob hides /usr/local/share/emacs/27.0.50/lisp/org/ob-lob > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-loaddefs hides /usr/local/share/emacs/27.0.50/lisp/org/org-loaddefs > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-dot hides /usr/local/share/emacs/27.0.50/lisp/org/ob-dot > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/org-footnote hides /usr/local/share/emacs/27.0.50/lisp/org/org-footnote > /home/deusmax/.emacs.d/elpa/org-plus-contrib-20181230/ob-gnuplot hides /usr/local/share/emacs/27.0.50/lisp/org/ob-gnuplot > > Features: > (shadow flyspell emacsbug gnus-registry registry helm-misc helm-ls-git > powerline-separators powerline-themes gnus-recent-helm gnus-uu yenc > novice ac-js2 skewer-mode cache-table js2-mode js sgml-mode simple-httpd > ert ewoc spinner ghub-graphql treepy graphql ghub guix-ui-generation > guix-ui-profile guix-ui-package guix-license guix-ui-store-item > guix-package pcmpl-unix guix-location guix-auto-mode guix-build-log > guix-misc guix-ui guix-ui-messages guix-read guix-repl guix-profiles > guix-external guix-geiser guix-guile geiser-mode geiser-xref > geiser-compile geiser-debug geiser-chibi geiser-mit geiser-chez > geiser-chicken geiser-racket geiser-guile geiser-repl geiser-image > geiser-company geiser-doc geiser-menu geiser-edit geiser-completion > geiser-autodoc geiser-eval geiser-connection tq geiser-syntax scheme > geiser-log geiser-popup view guix-help-vars guix-config > guix-default-config guix-help guix-utils guix bui bui-list bui-info > bui-entry bui-core bui-history bui-button bui-utils request trace > info-look shut-up dash-functional elisp-refs loop ledger-check > ledger-texi ledger-test ledger-sort ledger-reconcile ledger-occur > ledger-fonts ledger-complete ledger-fontify ledger-state ledger-schedule > ledger-init ledger-report ledger-commodities ledger-xact ledger-post > ledger-exec ledger-navigate ledger-context ledger-regex edit-indirect > dabbrev savehist org-learn hi-lock org-capture org-bibtex org-attach > ob-clojure password-store skeleton ibuf-macs ibuf-ext ibuffer > ibuffer-loaddefs treemacs-compatibility treemacs-mode treemacs-interface > treemacs-extensions treemacs-persistence treemacs-mouse-interface > treemacs-tag-follow-mode treemacs-follow-mode treemacs-filewatch-mode > treemacs-tags treemacs-faces treemacs-rendering treemacs-async > treemacs-icons treemacs-workspaces treemacs-structure treemacs-visuals > treemacs-fringe-indicator pulse treemacs-impl treemacs-macros inline > treemacs-customization ace-window avy f pfuture s tempo org-table bibtex > geiser-impl geiser-custom geiser-base geiser ob-octave ebnf2ps > calc-store calc-trail calc-ext autoload url-http-ntlm ntlm calc > calc-loaddefs calc-macs hmac-md5 hex-util md4 url-http url-gw url-cache > wdired cc-awk magit-ediff ediff-merg ediff-wind ediff-diff ediff-mult > ediff-help ediff-init ediff-util ediff vc vc-dispatcher auto-complete > popup php-mode php-project mode-local flymake-proc flymake warnings > cc-langs sh-script smie executable org-eldoc org-toc org-bookmark > org-mouse org-info org-id org-gnus nnir org-eww org-eshell org-docview > doc-view org-crypt org-bbdb gitconfig-mode lisp-mnt checkdoc gnus-kill > iso-transl which-key cus-edit shr-color gitignore-mode conf-mode > bug-reference image-mode dired-x magit-extras magit-bookmark > magit-submodule magit-obsolete magit-blame magit-stash magit-bisect > magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit > magit-sequence magit-notes magit-worktree magit-tag magit-merge > magit-branch magit-reset magit-files magit-refs magit-status magit > magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff > magit-core magit-autorevert autorevert filenotify magit-process > magit-margin magit-mode git-commit magit-git magit-section magit-utils > magit-popup log-edit pcvs-util add-log with-editor server smerge-mode > diff ispell helm-ring switch-window switch-window-mvborder > switch-window-asciiart quail cc-mode cc-fonts cc-guess cc-menus cc-cmds > cc-styles cc-align cc-engine cc-vars cc-defs debug cl-print gnus-dup shr > text-property-search svg dom mm-archive sort smiley gnus-cite mail-extr > gnus-bcklg gnus-async qp gnus-ml cursor-sensor nndraft nnmh nnfolder > utf-7 gnutls network-stream nsm gnus-agent gnus-srvr gnus-score > score-mode nnvirtual nntp gnus-cache misearch multi-isearch help-fns > radix-tree dired-aux helm-eshell company-oddmuse company-keywords > company-etags etags multifile xref project company-gtags > company-dabbrev-code company-dabbrev company-files company-capf > company-cmake company-xcode company-clang company-semantic company-eclim > company-template company-bbdb eshell-fringe-status jka-compr em-unix > em-term term disp-table ehelp em-script em-prompt em-ls em-hist em-pred > em-glob em-cmpl em-basic em-banner em-alias tramp-cache tramp-sh recentf > tree-widget ido helm-x-files helm-for-files helm-bookmark helm-adaptive > bookmark pp dired-hide-dotfiles gnus-recent helm-command helm-elisp > helm-eval edebug backtrace helm-info vc-git diff-mode winner image-file > helm-external helm-net browse-url xml url url-proxy url-privacy > url-expand url-methods url-history url-cookie url-domsuf ffap paredit > pdf-loader two-column hydra lv bm printing ps-print ps-print-loaddefs > ps-def lpr flycheck-ledger flycheck occur-x multiple-cursors > mc-hide-unmatched-lines-mode mc-separate-operations > rectangular-region-mode mc-mark-pop mc-mark-more thingatpt > mc-cycle-cursors mc-edit-lines multiple-cursors-core rect > esh-autosuggest company eshell-z em-dirs eshell-did-you-mean esh-var > esh-cmd esh-opt esh-io esh-ext esh-proc esh-arg esh-groups eshell > esh-module esh-mode esh-util eshell-up helm-swoop helm-mode helm-files > helm-buffers helm-tags helm-locate helm-grep wgrep-helm wgrep grep > compile helm-regexp helm-utils helm-help helm-types helm helm-source > eieio-compat helm-multi-match helm-lib helm-config helm-easymenu > async-bytecomp async ace-jump-mode mode-icons emojify apropos tar-mode > ht dash hl-line color edmacro kmacro cal-china lunar solar cal-dst > cal-islam cal-julian holidays hol-loaddefs appt diary-lib diary-loaddefs > org-mime ox-org ox-odt rng-loc rng-uri rng-parse rng-match rng-dt > rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex > ox-icalendar ox-html table ox-ascii ox-publish ox org-habit org-edna > org-clock htmlize cl ebdb-complete ebdb-message sendmail ebdb-gnus > gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap > gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail > mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range message rmc > puny dired dired-loaddefs rfc822 mml mml-sec epa mm-decode mm-bodies > mm-encode mail-parse rfc2231 gmm-utils mailheader gnus-win ebdb-mua > ebdb-org org-element avl-tree generator org-location-google-maps > org-agenda google-maps google-maps-static url-util google-maps-geocode > google-maps-base org org-macro org-footnote org-pcomplete org-list > org-faces org-entities noutline outline easy-mmode org-version ob-latex > ob-plantuml ob-org ob-shell ob-ditaa ob-dot ob-emacs-lisp ob ob-tangle > org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval > org-compat org-macs org-loaddefs ebdb-com crm mailabbrev ebdb-format > ebdb eieio-opt speedbar sb-image ezimage dframe find-func eieio-base > cal-menu calendar cal-loaddefs timezone lxc-tramp tramp trampver > tramp-compat tramp-loaddefs ucs-normalize shell pcomplete comint > ansi-color ring parse-time format-spec advice paren midnight gnus > nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums > time-date mail-utils mm-util mail-prsvr wid-edit elec-pair cus-start > cus-load mule-util tex-site rx url-auth info finder-inf package > let-alist derived pcase cl-extra help-mode easymenu url-handlers > url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs > password-cache json map url-vars seq byte-opt gv bytecomp byte-compile > cconv epg epg-config subr-x cl-loaddefs cl-lib tooltip eldoc electric > uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win > term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe > tabulated-list replace newcomment text-mode elisp-mode lisp-mode > prog-mode register page menu-bar rfn-eshadow isearch timer select > scroll-bar mouse jit-lock font-lock syntax facemenu font-core > term/tty-colors frame cl-generic 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 charscript charprop case-table epa-hook jka-cmpr-hook > help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs > button faces cus-face macroexp files text-properties overlay sha1 md5 > base64 format env code-pages mule custom widget hashtable-print-readable > backquote threads dbusbind inotify lcms2 dynamic-setting > system-font-setting font-render-setting xwidget-internal move-toolbar > gtk x-toolkit x multi-tty make-network-process emacs) > > Memory information: > ((conses 16 2296603 369440) > (symbols 48 101962 3) > (strings 32 395979 68773) > (string-bytes 1 12997792) > (vectors 16 172805) > (vector-slots 8 3160555 181220) > (floats 8 2162 1676) > (intervals 56 154396 6404) > (buffers 992 375)) > > > -- João Távora ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-07 17:13 ` João Távora @ 2019-01-07 17:28 ` Drew Adams 2019-01-07 18:04 ` João Távora 2019-01-07 20:20 ` Deus Max 1 sibling, 1 reply; 18+ messages in thread From: Drew Adams @ 2019-01-07 17:28 UTC (permalink / raw) To: João Távora, Deus Max; +Cc: 33998 > So, cumbersome as it is, you should always use: ^^^^^^^^^^^^^ > (setq seq (cl-delete thing seq)) FWIW, this is not really true. `cl-delete' deletes THING from the _value_ of SEQ. You might or you might not want variable SEQ to have the updated value. A variable and its value are two different things. IOW, that's one common, and important, use case, but this is not some always-do-this rule for users. The manual takes pains to explain this stuff carefully. It's better to just refer to the manual to help users understand it. (And you did that, which is great.) ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-07 17:28 ` Drew Adams @ 2019-01-07 18:04 ` João Távora 2019-01-07 18:14 ` Drew Adams 0 siblings, 1 reply; 18+ messages in thread From: João Távora @ 2019-01-07 18:04 UTC (permalink / raw) To: Drew Adams; +Cc: 33998, Deus Max On Mon, Jan 7, 2019 at 5:29 PM Drew Adams <drew.adams@oracle.com> wrote: > > > So, cumbersome as it is, you should always use: > ^^^^^^^^^^^^^ > > (setq seq (cl-delete thing seq)) > > FWIW, this is not really true. > > `cl-delete' deletes THING from the > _value_ of SEQ. You might or you > might not want variable SEQ to have > the updated value. But this is what he wanted, so what's the point in making this more confusing than it needs to be? (rethorical btw, but type away if you so wish...). João ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-07 18:04 ` João Távora @ 2019-01-07 18:14 ` Drew Adams 2019-01-08 13:45 ` João Távora 0 siblings, 1 reply; 18+ messages in thread From: Drew Adams @ 2019-01-07 18:14 UTC (permalink / raw) To: João Távora; +Cc: 33998, Deus Max > > > So, cumbersome as it is, you should always use: > > ^^^^^^^^^^^^^ > > > (setq seq (cl-delete thing seq)) > > > > FWIW, this is not really true. > > > > `cl-delete' deletes THING from the > > _value_ of SEQ. You might or you > > might not want variable SEQ to have > > the updated value. > > But this is what he wanted, so what's > the point in making this more confusing > than it needs to be? It's enough to suggest that he might want to do that, and point to the manual for explanation. It's the "always" that's misleading. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-07 18:14 ` Drew Adams @ 2019-01-08 13:45 ` João Távora 2019-01-08 18:22 ` Drew Adams 0 siblings, 1 reply; 18+ messages in thread From: João Távora @ 2019-01-08 13:45 UTC (permalink / raw) To: Drew Adams; +Cc: 33998, Deus Max On Mon, Jan 7, 2019 at 6:14 PM Drew Adams <drew.adams@oracle.com> wrote: > > > > > So, cumbersome as it is, you should always use: > > > ^^^^^^^^^^^^^ > > > > (setq seq (cl-delete thing seq)) > > > > > > FWIW, this is not really true. > > > > > > `cl-delete' deletes THING from the > > > _value_ of SEQ. You might or you > > > might not want variable SEQ to have > > > the updated value. > > > > But this is what he wanted, so what's > > the point in making this more confusing > > than it needs to be? > > It's enough to suggest that he might want > to do that, and point to the manual for > explanation. It's the "always" that's > misleading. Actually, as I've subsequently demonstrated the leeway given to cl-delete by the CL spec is such that it is quite a good idea to *always* use the (setq SEQ (cl-delete THING SEQ)) idiom, because you have no control on what cl-delete does with SEQ. You might indeed not want it changed but it may change, and not in ways you can predict. João ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-08 13:45 ` João Távora @ 2019-01-08 18:22 ` Drew Adams 2019-01-08 18:31 ` João Távora 0 siblings, 1 reply; 18+ messages in thread From: Drew Adams @ 2019-01-08 18:22 UTC (permalink / raw) To: João Távora; +Cc: 33998, Deus Max > > > > > So, cumbersome as it is, you should always use: > > > > ^^^^^^^^^^^^^ > > > > > (setq seq (cl-delete thing seq)) > > > > > > > > FWIW, this is not really true. > > > > > > > > `cl-delete' deletes THING from the > > > > _value_ of SEQ. You might or you > > > > might not want variable SEQ to have > > > > the updated value. > > > > > > But this is what he wanted, so what's > > > the point in making this more confusing > > > than it needs to be? > > > > It's enough to suggest that he might want > > to do that, and point to the manual for > > explanation. It's the "always" that's > > misleading. > > Actually, as I've subsequently demonstrated > the leeway given to cl-delete by the CL spec > is such that it is quite a good idea to *always* > use the (setq SEQ (cl-delete THING SEQ)) idiom, > because you have no control on what cl-delete > does with SEQ. You might indeed not want it > changed but it may change, and not in ways > you can predict. No. This has nothing to do with CL or the CL spec or the implementation of `cl-delete'. Again, you should set the variable to the value returned by `cl-delete' only if that's what you want - only if you want the variable to point to the result of the operation instead of what it pointed to previously. This is so, regardless of what the result of that operation might be - regardless of how `cl-delete' is implemented or even what it might do. It's about the difference between a variable and its value. `cl-delete' can only act on the value, not on the variable (it never sees the variable). Only other code can decide whether the variable should be set to the return value of `cl-delete'. If yes, then `setq'; if no, then no `set'`. Pretty simple, really. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-08 18:22 ` Drew Adams @ 2019-01-08 18:31 ` João Távora 2019-01-08 18:45 ` Drew Adams 0 siblings, 1 reply; 18+ messages in thread From: João Távora @ 2019-01-08 18:31 UTC (permalink / raw) To: Drew Adams; +Cc: 33998, Deus Max On Tue, Jan 8, 2019 at 6:22 PM Drew Adams <drew.adams@oracle.com> wrote: > Again, you should set the variable to the value > returned by `cl-delete' only if that's what you > want OK. Say you don't. Say you don't SETQ the variable to the return value. What do you expect to be left with in the value bound to the SEQ symbol? > Pretty simple, really. Then answer the pretty simple question above. João ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-08 18:31 ` João Távora @ 2019-01-08 18:45 ` Drew Adams 2019-01-08 18:57 ` João Távora 0 siblings, 1 reply; 18+ messages in thread From: Drew Adams @ 2019-01-08 18:45 UTC (permalink / raw) To: João Távora; +Cc: 33998, Deus Max > > Again, you should set the variable to the value > > returned by `cl-delete' only if that's what you > > want > > OK. Say you don't. Say you don't SETQ the variable > to the return value. What do you expect to be left > with in the value bound to the SEQ symbol? > > > Pretty simple, really. > > Then answer the pretty simple question above. Without setting variable `seq' (i.e., without the `setq'), that variable is still bound to whatever it was bound to prior to your invoking `(cl-delete thing seq)'. Presumably it was bound to a cons. It is still bound to that cons - the same (`eq') cons. `cl-delete' is not passed the variable. It is passed only its value. It can only act on that value. It can act on that cons. A function can change the car or cdr of a cons. A function cannot change which cons some variable points to, unless the function has access to that variable (not just its value). Whether the car or cdr of the cons passed to `cl-delete' is redirected, that has no effect on which cons is the value of variable `seq'. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-08 18:45 ` Drew Adams @ 2019-01-08 18:57 ` João Távora 2019-01-08 19:07 ` Drew Adams 0 siblings, 1 reply; 18+ messages in thread From: João Távora @ 2019-01-08 18:57 UTC (permalink / raw) To: Drew Adams; +Cc: 33998, Deus Max On Tue, Jan 8, 2019 at 6:46 PM Drew Adams <drew.adams@oracle.com> wrote: > > > > Again, you should set the variable to the value > > > returned by `cl-delete' only if that's what you > > > want > > > > OK. Say you don't. Say you don't SETQ the variable > > to the return value. What do you expect to be left > > with in the value bound to the SEQ symbol? > > > > > Pretty simple, really. > > > > Then answer the pretty simple question above. > > Without setting variable `seq' (i.e., without > the `setq'), that variable is still bound to > whatever it was bound to prior to your invoking > `(cl-delete thing seq)'. Presumably it was > bound to a cons. It could have been bound to a vector. cl-delete (as delq, delete) accepts sequences. And contrary to those two, it makes no guarantees as to how it potentially destroys the original sequence. So unless you're relying on a particular implementation, relying on SEQ after calling cl-delete on it is a bad, bad idea. So yes, always (setq SEQ (cl-delete THING SEQ)). With the extraordinary exception that you're leaving the scope where SEQ is visible. Then you can bypass it. João ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-08 18:57 ` João Távora @ 2019-01-08 19:07 ` Drew Adams 2019-01-08 21:38 ` João Távora 0 siblings, 1 reply; 18+ messages in thread From: Drew Adams @ 2019-01-08 19:07 UTC (permalink / raw) To: João Távora; +Cc: 33998, Deus Max > > Without setting variable `seq' (i.e., without > > the `setq'), that variable is still bound to > > whatever it was bound to prior to your invoking > > `(cl-delete thing seq)'. Presumably it was > > bound to a cons. > > It could have been bound to a vector. cl-delete (as delq, delete) > accepts sequences. And contrary to those two, it makes > no guarantees as to how it potentially destroys the original > sequence. So unless you're relying on a particular > implementation, relying on SEQ after calling cl-delete on it > is a bad, bad idea. > > So yes, always (setq SEQ (cl-delete THING SEQ)). With > the extraordinary exception that you're leaving the scope > where SEQ is visible. Then you can bypass it. I'm repeating myself, so I'll stop here. You are _not_ "calling cl-delete on it", where "it" is the variable SEQ. You are calling the function on its value, whether that value is a vector, a list or any other kind of sequence. `cl-delete' never sees, smells, or hears the variable. It all depends what a user intends by "relying on SEQ". If you ALWAYS mean relying on its value to be what `cl-delete' returns then sure, clearly you must ALWAYS set it to that return value. If in some case you instead mean relying on it not to be affected by `cl-delete' then you won't want to assign it to the result of invoking `cl-delete'. It's not about implementation of `cl-delete'. It's not about the type of sequence you pass it. It's about a variable being something different from its value. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-08 19:07 ` Drew Adams @ 2019-01-08 21:38 ` João Távora 2019-01-09 1:30 ` Drew Adams 0 siblings, 1 reply; 18+ messages in thread From: João Távora @ 2019-01-08 21:38 UTC (permalink / raw) To: Drew Adams; +Cc: 33998, Deus Max Drew Adams <drew.adams@oracle.com> writes: > It's not about implementation of `cl-delete'. It's > not about the type of sequence you pass it. It's > about a variable being something different from its > value. Drew, it is you who are missing something basic here: (defun mistery (thing seq) (let ((head (elt seq 0))) (cl-delete thing seq) (eq head (elt seq 0)))) Today, in Emacs this always returns t, for every THING and sequence SEQ you can think of (in fact, for vectors, cl-delete delegates to cl-remove). This is perfectly CL-compliant. But a future, different, also perfectly CL-compliant, implementation of cl-delete, might very well make this function return nil. In fact, if you port this code to SBCL or Allegro CL by changing 'cl-delete' to 'cl:delete' (mistery 1 (list 1 2 3 4)) ;; => t (mistery 1 (vector 1 2 3 4)) ;; => nil So again, for the nth time, it's a bad idea to rely on SEQ after calling 'cl-delete'. João ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-08 21:38 ` João Távora @ 2019-01-09 1:30 ` Drew Adams 0 siblings, 0 replies; 18+ messages in thread From: Drew Adams @ 2019-01-09 1:30 UTC (permalink / raw) To: João Távora; +Cc: 33998, Deus Max > > It's not about implementation of `cl-delete'. It's > > not about the type of sequence you pass it. It's > > about a variable being something different from its > > value. > > Drew, it is you who are missing something basic here: > > (defun mistery (thing seq) > (let ((head (elt seq 0))) > (cl-delete thing seq) > (eq head (elt seq 0)))) > > Today, in Emacs this always returns t, for every THING and sequence SEQ > you can think of (in fact, for vectors, cl-delete delegates to cl-remove). > This is perfectly CL-compliant. But a future, different, also perfectly > CL-compliant, implementation of cl-delete, might very well make this > function return nil. In fact, if you port this code to SBCL or Allegro > CL by changing 'cl-delete' to 'cl:delete' > > (mistery 1 (list 1 2 3 4)) ;; => t > (mistery 1 (vector 1 2 3 4)) ;; => nil Your example has no bearing on our discussion, AFAICT. What is passed to your function are two values - no variables. Again, `cl-delete' sees only a sequence value, not any _variable_ that might have that sequence as its variable. And yes, that's by design. `cl-delete' can change the elements of a sequence (a value), but it cannot change the value of a variable. That's not its job. > So again, for the nth time, it's a bad idea to rely on SEQ after calling > 'cl-delete'. Again, you are confusing `SEQ' the variable with its value. There is no such general rule with "always" as part of it. Not in Lisp, there ain't. If that were not the case then you would be in effect claiming (and perhaps you are explicitly claiming) that CL's definition of `delete' is a bad one, misguided, since it applies only to a sequence and not to any variable that might have that sequence as its value. Contrast Lisp functions such as `delete' and `nconc' to a Lisp function such as `add-to-list' or to a special form (or macro) such as `push'. The latter act on a _variable_ (possibly a generalized variable - a place). `delete', `nconc' etc. do NOT act on a variable. If you really believe "always" to apply then you had better toss all of the functions that possibly modify values, replacing them with only macros or special forms that (like `push') set a variable (place) to its modified value or to functions that (like `add-to-list') accept a variable (symbol) as argument and set it to its modified value. Such things are available in Lisp, and you can define more such. But Lisp doesn't _limit_ itself to such things - IOW, Lisp does NOT say "always". Why? For the reasons I gave - sometimes you don't want to update a variable. IOW, "always" is not always the case - it just isn't. I already said I'd stop. I hope that's the case now, at least. Perhaps we can agree to disagree: you say "always"; I say "often". You (apparently) think there's no reason for a function such as `cl-delete', and that it would be better for Lisp itself to enforce your "always" rule, using either a macro or a function that takes a symbol argument rather than just a value. Any programmer can certainly do that. Lisp offers both possibilities. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-07 17:13 ` João Távora 2019-01-07 17:28 ` Drew Adams @ 2019-01-07 20:20 ` Deus Max 2019-01-07 20:27 ` Dmitry Gutov 1 sibling, 1 reply; 18+ messages in thread From: Deus Max @ 2019-01-07 20:20 UTC (permalink / raw) To: João Távora, Drew Adams; +Cc: 33998 Thank you both for your replies. On Mon, Jan 07 2019, João Távora wrote: > There is no bug. > > You should always read "destructive" as "potentially > destructive". > I believe the manual is precise and not up to interpretation. When it says that it is "destructive", it is always "destructive". The cl-delete function is always destructive. The variable you pass is modified. > 'cl-delete', being a function, cannot know that the value > you passed it is pointed to by the symbol 'tst'. Or, in lisp > speak, that that value is the variable binding of 'tst'. > > Because it doesn't know this, it cannot affect the variable > binding of 'tst', to be '(cdr tst)', which would be the only > way to do what you want (remove the first element). > > If 'cl-delete' were a macro, like 'pop' is, it could do that > (but that would have other disadvantages). > > So, cumbersome as it is, you should always use: > > (setq seq (cl-delete thing seq )) > > The docstring of 'delq' has this explanation more or less: > > delq is a built-in function in `C source code'. > > (delq ELT LIST) > > Delete members of LIST which are `eq' to ELT, and return the result. > More precisely, this function skips any members `eq' to ELT at the > front of LIST, then removes members `eq' to ELT from the remaining > sublist by modifying its list structure, then returns the resulting > list. > > Write `(setq foo (delq element foo))' to be sure of correctly changing > the value of a list `foo'. See also `remq', which does not modify the > argument. > > João > The elisp functions `delq' and delete "destructive" as per manual remove elements from a list and return the resulting list. It goes on to recommend to always use the `(setq foo (delq elm foo))' construct. OK, I agree, no argument here. But my point is about function `cl-delete', which is part of the cl-extension. So, the manual descriptions of `delq', `delete' do not apply. In cl: - to keep the original sequence intact, use `cl-remove'. - to modify the original sequence, use `cl-delete'. The manual states for `cl-delete': This deletes all elements of seq that match item. It is a destructive operation. (period, no optional) It goes on to remark, on the analogy between `cl-remove' and `cl-delete': Compare append and nconc, which are analogous non-destructive and destructive list operations in Emacs Lisp. I still thing it is a bug. It (`cl-delete') should delete *all* elements of seq, that match item, not only in the returning value, but in the sequence itself. Anyway, that is how it behaves in all other cases, except for the case of a match on the *first* element. I don't see why the first element should be different. The manual makes no mention of this as a special (and peculiar) case. > > > > > On Sun, Jan 6, 2019 at 5:48 PM Deus Max <deusmax@gmx.com> wrote: >> >> >> Function cl-delete refuses to delete the first element of a list. >> I tried with all sorts of list elements, same results each time. >> Here is a simple example: >> >> (setq tst '(5 8 9 5 10 14 5 23)) >> >> (cl-delete 10 tst) -> returns (5 8 9 5 14 5 23) >> and >> tst -> (5 8 9 5 14 5 23) >> >> (cl-delete 5 tst) -> returns (8 9 14 23) >> but >> tst -> (5 8 9 14 23) *** Wrong ! should be the same to the returned value. >> >> The CL-manual says nothing about the first element being special. *ALL* >> should mean all, right ? Am I missing something here ? >> >> CL-manual says: >> — Function: cl-delete item seq &key :test :test-not :key :count :start :end > :from-end >> >> This deletes all elements of seq that match item. It is a >> destructive operation. Since Emacs Lisp does not support >> stretchable strings or vectors, this is the same as cl-remove for >> those sequence types. On lists, cl-remove will copy the list if >> necessary to preserve the original list, whereas cl-delete will >> splice out parts of the argument list. Compare append and nconc, >> which are analogous non-destructive and destructive list >> operations in Emacs Lisp. >> DeusMax ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-07 20:20 ` Deus Max @ 2019-01-07 20:27 ` Dmitry Gutov 2019-01-07 20:48 ` Deus Max 2019-01-07 21:06 ` João Távora 0 siblings, 2 replies; 18+ messages in thread From: Dmitry Gutov @ 2019-01-07 20:27 UTC (permalink / raw) To: Deus Max, João Távora, Drew Adams; +Cc: 33998 On 07.01.2019 23:20, Deus Max wrote: > The variable you pass is modified. The value. Not the variable. The latter keeps pointing at whatever cons it's pointed before. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-07 20:27 ` Dmitry Gutov @ 2019-01-07 20:48 ` Deus Max 2019-01-07 21:06 ` João Távora 1 sibling, 0 replies; 18+ messages in thread From: Deus Max @ 2019-01-07 20:48 UTC (permalink / raw) To: Dmitry Gutov; +Cc: 33998, João Távora On Mon, Jan 07 2019, Dmitry Gutov wrote: > On 07.01.2019 23:20, Deus Max wrote: >> The variable you pass is modified. > > The value. Not the variable. The latter keeps pointing at whatever cons it's pointed > before. Now, I got it ! Yes it is not a bug! thank you all ! ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-07 20:27 ` Dmitry Gutov 2019-01-07 20:48 ` Deus Max @ 2019-01-07 21:06 ` João Távora 2019-01-07 22:46 ` Deus Max 1 sibling, 1 reply; 18+ messages in thread From: João Távora @ 2019-01-07 21:06 UTC (permalink / raw) To: Dmitry Gutov; +Cc: 33998, Deus Max Dmitry Gutov <dgutov@yandex.ru> writes: > On 07.01.2019 23:20, Deus Max wrote: >> The variable you pass is modified. > > The value. Not the variable. The latter keeps pointing at whatever > cons it's pointed before. What Dmitry said, let me just add this: what you call variables in Lisp are actually symbols that, among other things, may (or may not) have a "variable binding" (this is why you sometimes get "unbound" errors when you try to evaluate a symbol's variable value). They are indeed pointers. So if you read "destructive" as in "modify a variable's binding, i.e. the place where it points to" then no *function* can do that when passed the variable, because what it is receiving is the value pointed to by the symbol. A macro, like 'setq' or 'pop' can do that, because it "sees" the symbol. An alternative place to read on Common Lisp's DELETE is Common Lisp's hyperspec: http://www.lispworks.com/documentation/HyperSpec/Body/f_rm_rm.htm The "may modify sequence" sentence figures prominently there. Emacs's cl-delete attempts to emulate Common Lisp's CL:DELETE. In Emacs it behaves, in this regard, no different from delete or delq. It is "potentially destructive" because it *may* modify the *structure* of the sequence *value* that you pass to it, be it a linked list or a vector: 1) If it is a linked list, it does the trick of making the pointer before the element you want to delete point to the element after it; 2) If it is a vector, it moves all the vector elements after the one you want to delete back one position and readjusts the vector size. If you notice, for situation 2 you could theoretically affect the variable binding directly. And curiously, this is where I found differences between Emacs's cl-delete and some CL's implementation of CL:DELETE. Emacs: (setq bla (vector 1 2 3 4)) (delete 1 bla) => [2 3 4] bla => [1 2 3 4] (setq bla (vector 1 2 3 4)) (cl-delete 1 bla) => [2 3 4] bla => [1 2 3 4] Allegro common lisp and CMU common lisp: (setq bla (vector 1 2 3 4)) (delete 1 bla) => #(2 3 4) bla => #(2 3 4) SBCL common lisp: (setq bla (vector 1 2 3 4)) (delete 1 bla) => #(2 3 4) bla => #(2 3 4 4) So, for vector sequences, CL:DELETE is apparently allowed to do whatever. Reading the hyperspec, it seems that all these results are correct, even SBCL's. João ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#33998: 27.0.50; cl-delete does not delete the first list element 2019-01-07 21:06 ` João Távora @ 2019-01-07 22:46 ` Deus Max 0 siblings, 0 replies; 18+ messages in thread From: Deus Max @ 2019-01-07 22:46 UTC (permalink / raw) To: João Távora; +Cc: 33998, Dmitry Gutov On Mon, Jan 07 2019, João Távora wrote: > Emacs's cl-delete attempts to emulate Common Lisp's CL:DELETE. In Emacs > it behaves, in this regard, no different from delete or delq. It is > "potentially destructive" because it *may* modify the *structure* of the > sequence *value* that you pass to it, be it a linked list or a vector: > > 1) If it is a linked list, it does the trick of making the pointer > before the element you want to delete point to the element after it; > > 2) If it is a vector, it moves all the vector elements after the one you > want to delete back one position and readjusts the vector size. > > If you notice, for situation 2 you could theoretically affect the > variable binding directly. And curiously, this is where I found > differences between Emacs's cl-delete and some CL's implementation of > CL:DELETE. > > Emacs: > > (setq bla (vector 1 2 3 4)) > (delete 1 bla) => [2 3 4] > bla => [1 2 3 4] > > (setq bla (vector 1 2 3 4)) > (cl-delete 1 bla) => [2 3 4] > bla => [1 2 3 4] > > Allegro common lisp and CMU common lisp: > > (setq bla (vector 1 2 3 4)) > (delete 1 bla) => #(2 3 4) > bla => #(2 3 4) > > SBCL common lisp: > > (setq bla (vector 1 2 3 4)) > (delete 1 bla) => #(2 3 4) > bla => #(2 3 4 4) > > So, for vector sequences, CL:DELETE is apparently allowed to do > whatever. Reading the hyperspec, it seems that all these results are > correct, even SBCL's. > > João Wow! thanks for clarifying the points. I had to fire up my SBCL to see it ! ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2019-01-09 1:30 UTC | newest] Thread overview: 18+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-01-06 13:30 bug#33998: 27.0.50; cl-delete does not delete the first list element Deus Max 2019-01-07 17:13 ` João Távora 2019-01-07 17:28 ` Drew Adams 2019-01-07 18:04 ` João Távora 2019-01-07 18:14 ` Drew Adams 2019-01-08 13:45 ` João Távora 2019-01-08 18:22 ` Drew Adams 2019-01-08 18:31 ` João Távora 2019-01-08 18:45 ` Drew Adams 2019-01-08 18:57 ` João Távora 2019-01-08 19:07 ` Drew Adams 2019-01-08 21:38 ` João Távora 2019-01-09 1:30 ` Drew Adams 2019-01-07 20:20 ` Deus Max 2019-01-07 20:27 ` Dmitry Gutov 2019-01-07 20:48 ` Deus Max 2019-01-07 21:06 ` João Távora 2019-01-07 22:46 ` Deus Max
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git 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).