From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Ihor Radchenko Newsgroups: gmane.emacs.bugs Subject: bug#52753: 29.0.50; Printing long list-like structures fails Date: Thu, 23 Dec 2021 19:07:03 +0800 Message-ID: <87lf0binqg.fsf@localhost> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="20241"; mail-complaints-to="usenet@ciao.gmane.io" To: 52753@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Dec 23 12:06:18 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n0LvN-00053I-BB for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 23 Dec 2021 12:06:17 +0100 Original-Received: from localhost ([::1]:38546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n0LvL-0007XQ-VM for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 23 Dec 2021 06:06:15 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:47562) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n0Lv8-0007Uu-Iy for bug-gnu-emacs@gnu.org; Thu, 23 Dec 2021 06:06:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:48962) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n0Lv7-0003K8-Vy for bug-gnu-emacs@gnu.org; Thu, 23 Dec 2021 06:06:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1n0Lv7-0001Gb-Q1 for bug-gnu-emacs@gnu.org; Thu, 23 Dec 2021 06:06:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Ihor Radchenko Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 23 Dec 2021 11:06:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 52753 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.16402575564856 (code B ref -1); Thu, 23 Dec 2021 11:06:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 23 Dec 2021 11:05:56 +0000 Original-Received: from localhost ([127.0.0.1]:60508 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n0Lv0-0001GD-Az for submit@debbugs.gnu.org; Thu, 23 Dec 2021 06:05:55 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:40068) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n0Lux-0001G5-IE for submit@debbugs.gnu.org; Thu, 23 Dec 2021 06:05:53 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:47506) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n0Lux-0007QY-8w for bug-gnu-emacs@gnu.org; Thu, 23 Dec 2021 06:05:51 -0500 Original-Received: from [2607:f8b0:4864:20::42b] (port=41852 helo=mail-pf1-x42b.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n0Lus-0003HY-Po for bug-gnu-emacs@gnu.org; Thu, 23 Dec 2021 06:05:50 -0500 Original-Received: by mail-pf1-x42b.google.com with SMTP id m1so4970379pfk.8 for ; Thu, 23 Dec 2021 03:05:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:mime-version; bh=d4lRzjCiIRM3h/ssCrw+sJM0VnPrYLEQnv2h3PHB67w=; b=lNALsdsgT0iK3GPt6jFtVTwcKxWyDVGAHjiS5IuXCNmAhx2gLSTY6MYivwP6zKYRJN NWlaFi2N7vydX15Pt6mL1KtFj/l8n3qAMoInDj6qOw7fExejKFd+UmXbw4od/ZXN8/j7 qzyxsmzTt8wgaAPMJZqj4+/dAcPlyAjLEfl83QwpaxiraXd3xzXCXZpsSfpnkQO6F3UO OLMWzZ4zVnnxAMVHo12h2TjuPEngwMawqPziD0qdwgMoBdDx9rSmcfwGo97rUB5RZL2F ju8LP3CsmSJUsi8T2aTYH6Kj0a44vPnccmbaZEIhSuu0hQhZ1rJ+aB7V1ruMncTnhS3U Ow2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=d4lRzjCiIRM3h/ssCrw+sJM0VnPrYLEQnv2h3PHB67w=; b=WcwBGRce64PPtkNmPs3PDhGAS9NGCaGigSj4Se9EBA7WzAiUTTOOCyoLIrKDOWKrR9 LG+uoB3k7uYEADurE9ta3wey/GYBG9VL8inRUTge63swn5qI2e8wlpooli/7pPWoOVlH PFg9nkRmYAoW7MSamZNmNhVkh32mdtPsuyMtEKYQ9hJTy0YbUcZ/aBd+x7J+VHmGf9fe szRfp6Fmt0XT2mn6+nNZbZwaxWy3skFVluc+Sxk90MbsDdSwYWS3vcl9qr1ZqLUcbMJj wf3OCiIBPMNLuRJog6fJHWzC226SwrBIwn+xfw2qSc9cWfhA3IB8oQW83dXmrwbRAdMo DJ8w== X-Gm-Message-State: AOAM531RK/Rhw31lkWKfEJiMACJLPqhhnDm29VBKzPJVOM8MQH9dhkvT nhYc7mLd6hZUcvgJZluPNqANkz7Uk8yZWH1ywcs= X-Google-Smtp-Source: ABdhPJz4dTyfdaIDPtfooS6LAAkeKUzHqNJ/qbHfs3tgfnrjPj1fCId9kqUsULIpwJQH+gUa7Mo0SQ== X-Received: by 2002:a63:1947:: with SMTP id 7mr1719134pgz.616.1640257544729; Thu, 23 Dec 2021 03:05:44 -0800 (PST) Original-Received: from localhost ([210.3.160.226]) by smtp.gmail.com with ESMTPSA id w13sm4655289pgm.5.2021.12.23.03.05.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Dec 2021 03:05:43 -0800 (PST) X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::42b (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::42b; envelope-from=yantar92@gmail.com; helo=mail-pf1-x42b.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:222979 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, I am trying to write elisp implementation of skip list (see the attached). Everything works fine until I try to print the skip list into file. The print function goes deep into recursion until reaching the recursion limit. It happens even for ~ >10000 elements in the list. I expect the skip list structure to be printed without issues. Steps to reproduce: With the attached org-skip-list.el in load-path, run the following code: (require 'org-skip-list) (setq x (org-skip-list-create #'<)) (dotimes (i 10000) (org-skip-list-insert x i)) (with-temp-file "/tmp/dump-elisp" (let ((print-circle t) print-level print-length print-quoted (print-escape-control-characters t) (print-escape-nonascii t) (print-continuous-numbering t) print-number-table) (prin1 x (current-buffer)))) The code fails with Re-entering top level after C stack overflow Also (funcall-interactively #'memory-report) after execution the above code will fail with memory-report--object-size: Lisp nesting exceeds =E2=80=98max-lisp-eval-depth=E2=80=99 Finally, Increasing the number of elements in the loop to 400000 will simply crash Emacs. Best, Ihor --=-=-= Content-Type: application/emacs-lisp Content-Disposition: attachment; filename=org-skip-list.el Content-Transfer-Encoding: quoted-printable ;;; org-skip-list.el --- Skip list -*- lexical-binding: t= ; -*- ;; Copyright (C) 2021 Ihor Radchenko ;; Author: Ihor Radchenko ;; Keywords: extensions, data structures, skip list ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; A skip list is a probabilitic ordered data structure comparable ;; with binary trees. Inserting, deleting, and retrieveing data from ;; a skip list containing n elements is O(log n). Compared to ;; non-randomized balanced trees, skip lists have slightly larger ;; retrieval constant, but faster insertion/deletion times. Skip ;; lists may be a better alternative to Elisp AVL-tree implementation ;; when the data is a subject of frequent changes. ;; Cached Org buffer representations are a subject of frequent change ;; (on every buffer edit) and thus skip trees are a better data ;; structure to be used instead of AVL trees. ;; Basic description and analysis of skip lists can be found in ;; original paper by Willian Pugh (DOI: 10.1007/3-540-51542-9_36) ;; W Pugh [Springer Berlin Heidelberg] (1989) A Probabilistic ;; Alternative to Balanced Trees. ;; The paper pdf is available for free at ;; https://link.springer.com/content/pdf/10.1007%2F3-540-51542-9_36.pdf ;; Internally, a skip list consist of a header node, MaxLevel of the ;; list, and the comparison function. ;; I also modified the canonic implementation to store the recent ;; search data. This way, inserting, deleting, and searching for ;; consequent elements is done in O(1) - a useful feature for ;; org-element-cache where cached elements are usually modified one by ;; one in confined regions of buffer. ;; Each node of the skip list is a cons cell with its car containing ;; data and cdr is a vector of forward pointers to following list ;; elements. For each node the forward vector size is randomly ;; assigned up to MaxLevel. Forward[k] pointer always references ;; another list node with larger or equal forward vector size. Please ;; refer to Figure 3 of the Pugh's paper for a nice schematic. ;;; Code: (eval-when-compile (require 'cl-lib)) (require 'generator) ;; Each node is a cons of (data . forward vector). ;; Nodes must use as little memory as possible because there may ;; potentially be a lot of them. (defmacro org-skip-list--head-p (node) "Check if NODE is a head node." `(eq 'org-skip-list--head (org-skip-list--node-data ,node))) (defmacro org-skip-list--node-p (node) "Return non-nil when NODE is a skip list node." (and (consp node) (car node) (vectorp (cdr node)))) (defmacro org-skip-list--node-create (data level) "Create a new LEVEL node conaining DATA." `(cons ,data (make-vector ,level nil))) (defmacro org-skip-list--node-data (node) "Get NDOE data." `(car ,node)) (defmacro org-skip-list--node-forward (node) "Get forward vector for NODE." `(cdr ,node)) (defmacro org-skip-list-car (node) "Get data value of the NODE." `(org-skip-list--node-data ,node)) (cl-defmacro org-skip-list-cdr (node &optional (level 0)) "Return a node after NODE at LEVEL." `(aref (org-skip-list--node-forward ,node) ,level)) (cl-defmacro org-skip-list-cadr (node &optional (level 0)) "Return a node value for node after NODE at LEVEL." `(org-skip-list-car (org-skip-list-cdr ,node ,level))) (cl-defstruct (org-skip-list- :named (:type vector) (:constructor nil) (:constructor org-skip-list--create ( cmpfun &key maxlevel probability-constant &aux (header (org-skip-list--node-create= 'org-skip-list--head maxlevel)) (cursor (make-vector maxlevel heade= r)))) (:predicate org-skip-list-p) (:copier nil)) (maxlevel 16) (level 1) ;; See Pugh's paper. We optimise for search constant here. ;; Decreasing the constant will degrade search constant and decrease ;; memory requirement. A value of 1/16 will make search 2.12x slower ;; but use up ~50% less memory. ;; The default value here is 1/e, which gives best expected ;; asymptotic search times for large (>5000) number of list ;; elements. (probability-constant 0.367879441171) ;; This should give a much smaller memory overheads. Though we do ;; not care about them when data stored in the list is much larger ;; compared to forward vector size (vector size is 1x-2x of number ;; of nodes, which is negligible compared to typical org-element ;; sizes). (probability-constant (/ 1.0 8)) header ;; The cursor below stores last update vector. The purpose is ;; speeding up local searches (i.e. subsequent element ;; insertion/deletion/lookup). cursor cmpfun) (defalias 'org-skip-list-create #'org-skip-list--create "Create an empty skip list. CMPFUN is a function which takes two arguments, A and B, and returns non-nil if A is less than B, and nil otherwise. PROBABILITY-CONSTANT defines distribution of list node levels. Decreasing the constant makes search slower, but uses up less memory. See Pugh's paper (DOI: 10.1007/3-540-51542-9_36) for details. The default is 1/e. MAXIMUM-LEVEL is maximum possible list node level bounding maximum number of elements in the list (maximum number of elements is PROBABILITY-CONSTANT^MAXIMUM-LEVEL)). By default MAXIMUM-LEVEL is 16 allowing up to 8.8E9 elements. \(fn CMPFUN &optional MAXLEVEL PROBABILITY-CONSTANT)") (defun org-skip-list--get-level (skiplist) "Generate level for a new node. See Pugh's paper (DOI: 10.1007/3-540-51542-9_36)." (let ((level 1) (threshold (* #x40000000 (org-skip-list--probability-constant skipl= ist)))) (while (and (< (random #x40000000) threshold) (< level (org-skip-list--maxlevel skiplist))) (cl-incf level)) level)) (defun org-skip-list--find-before (skiplist data &optional update) "Find an element in SKIPLIST strictly smaller than DATA. An optional argument UPDATE should be a vector of SKIPLIST maxlevel length. The vector will be modified for side-effects storing nodes where DATA is splicing the node forward references." (cl-loop for idx from (1- (org-skip-list--level skiplist)) downto 0 with node =3D (org-skip-list--header skiplist) with cursor =3D (org-skip-list--cursor skiplist) do (when (and (aref cursor idx) (not (org-skip-list--head-p (aref cursor idx))) (and (or (org-skip-list--head-p node) (funcall (org-skip-list--cmpfun skiplist) (org-skip-list-car node) (org-skip-list-car (aref cursor idx)))) (funcall (org-skip-list--cmpfun skiplist) (org-skip-list-car (aref cursor idx)) data))) (setq node (aref cursor idx))) (while (and (org-skip-list-cdr node idx) (funcall (org-skip-list--cmpfun skiplist) (org-skip-list-cadr node idx) data)) (setq node (org-skip-list-cdr node idx))) (aset cursor idx node) (when update (aset update idx node)) finally return node)) (defun org-skip-list-insert (skiplist data) "Insert DATA into SKIPLIST. If data is equal with the existing node according to CMPFUN, replace that node's data field with DATA." (let* ((update (make-vector (org-skip-list--maxlevel skiplist) nil)) (node-before (org-skip-list--find-before skiplist data update))) ;; DATA key should not be equal to existing list element. (unless (equal (org-skip-list-cadr node-before) data) (let ((level (org-skip-list--get-level skiplist)) (idx (org-skip-list--level skiplist)) ;; Terminating the process can garble the list structure. (inhibit-quit t)) (when (> level idx) ; idx=3D(org-skip-list--level skiplist) (while (< idx level) (aset update idx (org-skip-list--header skiplist)) (cl-incf idx)) (setf (org-skip-list--level skiplist) level)) (let ((node (org-skip-list--node-create data level))) (setq idx 0) (while (< idx level) (setf (org-skip-list-cdr node idx) (org-skip-list-cdr (aref update idx) idx)) (setf (org-skip-list-cdr (aref update idx) idx) node) (cl-incf idx)) ;; Return the inserted data. (org-skip-list-car node)))))) (defun org-skip-list-remove (skiplist data) "Remove element matching DATA from SKIPLIST. Return non-nil when operation actually deletes an element." (let* ((update (make-vector (org-skip-list--maxlevel skiplist) nil)) (node (org-skip-list-cdr (org-skip-list--find-before skiplist data= update))) (idx 0) (skip-list-level (org-skip-list--level skiplist)) ;; Terminating the process can garble the list structure. (inhibit-quit t)) (when (equal (org-skip-list-car node) data) (while (and (< idx skip-list-level) (eq node (org-skip-list-cdr (aref update idx) idx))) (setf (org-skip-list-cdr (aref update idx) idx) (org-skip-list-cdr node idx)) (cl-incf idx)) (while (and (> (org-skip-list--level skiplist) 1) (not (org-skip-list-cdr (org-skip-list--header skiplist) = (1- (org-skip-list--level skiplist))))) (aset (org-skip-list--cursor skiplist) (1- (org-skip-list--level sk= iplist)) (org-skip-list--header skiplist)) (cl-decf (org-skip-list--level skiplist))) t))) (defun org-skip-list-flatten (skiplist) "Return a sorted list contnaining all elements of SKIPLIST." (cl-loop with node =3D (org-skip-list--header skiplist) do (setq node (org-skip-list-cdr node)) while node collect (org-skip-list-car node))) (defun org-skip-list-find (skiplist data &optional nilflag) "Find a node matching DATA in SKIPLIST. Return NILFLAG if DATA is not in the SKIPLIST." (let ((node (org-skip-list-cdr (org-skip-list--find-before skiplist data = nil)))) (if (or (not node) (not (equal data (org-skip-list-car node)))) nilflag node))) (defun org-skip-list-find-leq (skiplist data &optional nilflag) "Find a node that is less or equal than DATA in SKIPLIST. Return NILFLAG if SKIPLIST does not contain such nodes." (let ((node (org-skip-list--find-before skiplist data))) (cond ((equal data (org-skip-list-cadr node)) (org-skip-list-cdr node)) ((org-skip-list--head-p node) nilflag) (t node)))) (defun org-skip-list-find-geq (skiplist data &optional nilflag) "Find first node that is greater or equal than DATA in SKIPLIST. Return NILFLAG if SKIPLIST does not contain such nodes." (let ((node (org-skip-list--find-before skiplist data))) (or (org-skip-list-cdr node) nilflag))) (defun org-skip-list-find-before (skiplist data &optional nilflag) "Find a node that is before DATA in SKIPLIST. Return NILFLAG if SKIPLIST does not contain such nodes." (let ((node (org-skip-list--find-before skiplist data))) (if (org-skip-list--head-p node) nilflag node))) (defun org-skip-list-length (skiplist) "Return length of SKIPLIST." (cl-loop with node =3D (org-skip-list-cdr (org-skip-list--header skiplist= )) with size =3D 0 while node do (setq node (org-skip-list-cdr node)) do (cl-incf size) finally return size)) (defmacro org-skip-list-first (skiplist) "Return first node in SKIPLIST." `(org-skip-list-cdr (org-skip-list--header ,skiplist))) (iter-defun org-skip-list-iter (skiplist &optional start node-iter?) "Return skip list iterator object. Optional argument START will make the iterator begin from first element at or after START. Non-nil optional argument NODE-ITER? will make the iterator yield skip list node instead of the node value." (let ((current-node (org-skip-list-first skiplist))) (while current-node (when start (if (org-skip-list--node-p start) (setq current-node start) (setq current-node (org-skip-list-find-before skiplist start)))) (when current-node (setq start (iter-yield (if node-iter? current-node (org-skip-list--node-data current-node)))) (setq current-node (org-skip-list-cdr current-node)))))) (defun org-skip-list-size (slist) "Return size of skip list SLIST." (let ((elem (org-skip-list-first slist)) (size 0)) (while elem (cl-incf size) (setq elem (org-skip-list-cdr elem))) size)) (defun org-skip-list-verify (slist) "Assert SLIST consistency." (let ((header (org-skip-list--header slist))) (cl-loop for level from (1- (length (org-skip-list--node-forward header= ))) downto 0 do (let ((node (org-skip-list-cdr header level))) (when (>=3D level (org-skip-list--level slist)) (cl-assert (not (org-skip-list-cdr header level)) t "Forward references above list level")) (while node (when (org-skip-list-cdr node level) (cl-assert (funcall (org-skip-list--cmpfun slist) (org-skip-list-car node) (org-skip-list-cadr node level))) t "Wrong element order") (setq node (org-skip-list-cdr node level))))))) (provide 'org-skip-list) ;;; org-skip-list.el ends here --=-=-= Content-Type: text/plain In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, cairo version 1.16.0) of 2021-12-21 built on localhost Repository revision: c0e9785c7c788a591cbc67ba875c5bc2bd76f4df Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12013000 System Description: Gentoo/Linux Configured using: 'configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --datarootdir=/usr/share --disable-silent-rules --docdir=/usr/share/doc/emacs-29.0.9999 --htmldir=/usr/share/doc/emacs-29.0.9999/html --libdir=/usr/lib64 --program-suffix=-emacs-29-vcs --includedir=/usr/include/emacs-29-vcs --infodir=/usr/share/info/emacs-29-vcs --localstatedir=/var --enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp --without-compress-install --without-hesiod --without-pop --with-file-notification=inotify --with-pdumper --enable-acl --with-dbus --with-modules --without-gameuser --with-libgmp --without-gpm --with-native-compilation --with-json --without-kerberos --without-kerberos5 --without-lcms2 --with-xml2 --without-mailutils --with-selinux --with-gnutls --without-libsystemd --with-threads --with-wide-int --with-zlib --with-sound=oss --with-x --without-ns --without-gconf --without-gsettings --without-toolkit-scroll-bars --with-gif --with-jpeg --with-png --with-rsvg --with-tiff --with-xpm --with-imagemagick --with-xft --with-cairo --with-harfbuzz --without-libotf --without-m17n-flt --with-x-toolkit=no --with-dumping=pdumper 'CFLAGS=-march=native -pipe -O2' CPPFLAGS= 'LDFLAGS=-Wl,-O1 -Wl,--as-needed'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ IMAGEMAGICK JPEG JSON LIBSELINUX LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF WEBP X11 XDBE XIM XPM ZLIB Important settings: value of $LC_COLLATE: C value of $LANG: en_US.utf8 locale-coding-system: utf-8-unix Major mode: Org-Agenda Day Ddl Habit -@work-@groupmeeting Minor modes in effect: TeX-PDF-mode: t org-edna-mode: t eros-mode: t which-key-mode: t diredfl-global-mode: t winner-mode: t recentf-mode: t helm-adaptive-mode: t helm-mode: t helm-minibuffer-history-mode: t helm--remap-mouse-mode: t async-bytecomp-package-mode: t eval-sexp-fu-flash-mode: t el-patch-use-package-mode: t global-git-commit-mode: t magit-auto-revert-mode: t shell-dirtrack-mode: t unpackaged/magit-log-date-headers-mode: t persistent-scratch-autosave-mode: t savehist-mode: t boon-mode: t boon-local-mode: t global-hl-line-mode: t hl-line-mode: t global-page-break-lines-mode: t shackle-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t global-prettify-symbols-mode: t file-name-shadow-mode: t global-font-lock-mode: t window-divider-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t line-number-mode: t transient-mark-mode: t abbrev-mode: t Load-path shadows: /usr/share/emacs/site-lisp/cmake-mode hides /usr/share/emacs/site-lisp/cmake/cmake-mode /home/yantar92/.emacs.d/straight/build/dash/dash hides /usr/share/emacs/site-lisp/dash/dash /usr/share/emacs/site-lisp/desktop-entry-mode hides /usr/share/emacs/site-lisp/desktop-file-utils/desktop-entry-mode /home/yantar92/.emacs.d/straight/build/f/f hides /usr/share/emacs/site-lisp/f/f /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-lib hides /usr/share/emacs/site-lisp/notmuch/notmuch-lib /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-compat hides /usr/share/emacs/site-lisp/notmuch/notmuch-compat /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-parser hides /usr/share/emacs/site-lisp/notmuch/notmuch-parser /home/yantar92/.emacs.d/straight/build/notmuch/notmuch hides /usr/share/emacs/site-lisp/notmuch/notmuch /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-query hides /usr/share/emacs/site-lisp/notmuch/notmuch-query /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-show hides /usr/share/emacs/site-lisp/notmuch/notmuch-show /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-tree hides /usr/share/emacs/site-lisp/notmuch/notmuch-tree /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-wash hides /usr/share/emacs/site-lisp/notmuch/notmuch-wash /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-hello hides /usr/share/emacs/site-lisp/notmuch/notmuch-hello /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-mua hides /usr/share/emacs/site-lisp/notmuch/notmuch-mua /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-address hides /usr/share/emacs/site-lisp/notmuch/notmuch-address /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-maildir-fcc hides /usr/share/emacs/site-lisp/notmuch/notmuch-maildir-fcc /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-message hides /usr/share/emacs/site-lisp/notmuch/notmuch-message /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-crypto hides /usr/share/emacs/site-lisp/notmuch/notmuch-crypto /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-tag hides /usr/share/emacs/site-lisp/notmuch/notmuch-tag /home/yantar92/.emacs.d/straight/build/notmuch/coolj hides /usr/share/emacs/site-lisp/notmuch/coolj /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-print hides /usr/share/emacs/site-lisp/notmuch/notmuch-print /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-jump hides /usr/share/emacs/site-lisp/notmuch/notmuch-jump /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-company hides /usr/share/emacs/site-lisp/notmuch/notmuch-company /home/yantar92/.emacs.d/straight/build/notmuch/notmuch-draft hides /usr/share/emacs/site-lisp/notmuch/notmuch-draft /home/yantar92/.emacs.d/straight/build/s/s hides /usr/share/emacs/site-lisp/s/s /home/yantar92/.emacs.d/straight/build/with-editor/with-editor hides /usr/share/emacs/site-lisp/with-editor/with-editor /home/yantar92/.emacs.d/straight/build/transient/transient hides /usr/share/emacs/29.0.50/lisp/transient /home/yantar92/.emacs.d/straight/build/org/ob-C hides /usr/share/emacs/29.0.50/lisp/org/ob-C /home/yantar92/.emacs.d/straight/build/org/ob-R hides /usr/share/emacs/29.0.50/lisp/org/ob-R /home/yantar92/.emacs.d/straight/build/org/ob-awk hides /usr/share/emacs/29.0.50/lisp/org/ob-awk /home/yantar92/.emacs.d/straight/build/org/ob-calc hides /usr/share/emacs/29.0.50/lisp/org/ob-calc /home/yantar92/.emacs.d/straight/build/org/ob-clojure hides /usr/share/emacs/29.0.50/lisp/org/ob-clojure /home/yantar92/.emacs.d/straight/build/org/ob-comint hides /usr/share/emacs/29.0.50/lisp/org/ob-comint /home/yantar92/.emacs.d/straight/build/org/ob-core hides /usr/share/emacs/29.0.50/lisp/org/ob-core /home/yantar92/.emacs.d/straight/build/org/ob-css hides /usr/share/emacs/29.0.50/lisp/org/ob-css /home/yantar92/.emacs.d/straight/build/org/ob-ditaa hides /usr/share/emacs/29.0.50/lisp/org/ob-ditaa /home/yantar92/.emacs.d/straight/build/org/ob-dot hides /usr/share/emacs/29.0.50/lisp/org/ob-dot /home/yantar92/.emacs.d/straight/build/org/ob-emacs-lisp hides /usr/share/emacs/29.0.50/lisp/org/ob-emacs-lisp /home/yantar92/.emacs.d/straight/build/org/ob-eshell hides /usr/share/emacs/29.0.50/lisp/org/ob-eshell /home/yantar92/.emacs.d/straight/build/org/ob-eval hides /usr/share/emacs/29.0.50/lisp/org/ob-eval /home/yantar92/.emacs.d/straight/build/org/ob-exp hides /usr/share/emacs/29.0.50/lisp/org/ob-exp /home/yantar92/.emacs.d/straight/build/org/ob-forth hides /usr/share/emacs/29.0.50/lisp/org/ob-forth /home/yantar92/.emacs.d/straight/build/org/ob-fortran hides /usr/share/emacs/29.0.50/lisp/org/ob-fortran /home/yantar92/.emacs.d/straight/build/org/ob-gnuplot hides /usr/share/emacs/29.0.50/lisp/org/ob-gnuplot /home/yantar92/.emacs.d/straight/build/org/ob-groovy hides /usr/share/emacs/29.0.50/lisp/org/ob-groovy /home/yantar92/.emacs.d/straight/build/org/ob-haskell hides /usr/share/emacs/29.0.50/lisp/org/ob-haskell /home/yantar92/.emacs.d/straight/build/org/ob-java hides /usr/share/emacs/29.0.50/lisp/org/ob-java /home/yantar92/.emacs.d/straight/build/org/ob-js hides /usr/share/emacs/29.0.50/lisp/org/ob-js /home/yantar92/.emacs.d/straight/build/org/ob-julia hides /usr/share/emacs/29.0.50/lisp/org/ob-julia /home/yantar92/.emacs.d/straight/build/org/ob-latex hides /usr/share/emacs/29.0.50/lisp/org/ob-latex /home/yantar92/.emacs.d/straight/build/org/ob-lilypond hides /usr/share/emacs/29.0.50/lisp/org/ob-lilypond /home/yantar92/.emacs.d/straight/build/org/ob-lisp hides /usr/share/emacs/29.0.50/lisp/org/ob-lisp /home/yantar92/.emacs.d/straight/build/org/ob-lob hides /usr/share/emacs/29.0.50/lisp/org/ob-lob /home/yantar92/.emacs.d/straight/build/org/ob-lua hides /usr/share/emacs/29.0.50/lisp/org/ob-lua /home/yantar92/.emacs.d/straight/build/org/ob-makefile hides /usr/share/emacs/29.0.50/lisp/org/ob-makefile /home/yantar92/.emacs.d/straight/build/org/ob-matlab hides /usr/share/emacs/29.0.50/lisp/org/ob-matlab /home/yantar92/.emacs.d/straight/build/org/ob-maxima hides /usr/share/emacs/29.0.50/lisp/org/ob-maxima /home/yantar92/.emacs.d/straight/build/org/ob-ocaml hides /usr/share/emacs/29.0.50/lisp/org/ob-ocaml /home/yantar92/.emacs.d/straight/build/org/ob-octave hides /usr/share/emacs/29.0.50/lisp/org/ob-octave /home/yantar92/.emacs.d/straight/build/org/ob-org hides /usr/share/emacs/29.0.50/lisp/org/ob-org /home/yantar92/.emacs.d/straight/build/org/ob-perl hides /usr/share/emacs/29.0.50/lisp/org/ob-perl /home/yantar92/.emacs.d/straight/build/org/ob-plantuml hides /usr/share/emacs/29.0.50/lisp/org/ob-plantuml /home/yantar92/.emacs.d/straight/build/org/ob-processing hides /usr/share/emacs/29.0.50/lisp/org/ob-processing /home/yantar92/.emacs.d/straight/build/org/ob-python hides /usr/share/emacs/29.0.50/lisp/org/ob-python /home/yantar92/.emacs.d/straight/build/org/ob-ref hides /usr/share/emacs/29.0.50/lisp/org/ob-ref /home/yantar92/.emacs.d/straight/build/org/ob-ruby hides /usr/share/emacs/29.0.50/lisp/org/ob-ruby /home/yantar92/.emacs.d/straight/build/org/ob-sass hides /usr/share/emacs/29.0.50/lisp/org/ob-sass /home/yantar92/.emacs.d/straight/build/org/ob-scheme hides /usr/share/emacs/29.0.50/lisp/org/ob-scheme /home/yantar92/.emacs.d/straight/build/org/ob-screen hides /usr/share/emacs/29.0.50/lisp/org/ob-screen /home/yantar92/.emacs.d/straight/build/org/ob-sed hides /usr/share/emacs/29.0.50/lisp/org/ob-sed /home/yantar92/.emacs.d/straight/build/org/ob-shell hides /usr/share/emacs/29.0.50/lisp/org/ob-shell /home/yantar92/.emacs.d/straight/build/org/ob-sql hides /usr/share/emacs/29.0.50/lisp/org/ob-sql /home/yantar92/.emacs.d/straight/build/org/ob-sqlite hides /usr/share/emacs/29.0.50/lisp/org/ob-sqlite /home/yantar92/.emacs.d/straight/build/org/ob-table hides /usr/share/emacs/29.0.50/lisp/org/ob-table /home/yantar92/.emacs.d/straight/build/org/ob-tangle hides /usr/share/emacs/29.0.50/lisp/org/ob-tangle /home/yantar92/.emacs.d/straight/build/org/ob hides /usr/share/emacs/29.0.50/lisp/org/ob /home/yantar92/.emacs.d/straight/build/org/oc-basic hides /usr/share/emacs/29.0.50/lisp/org/oc-basic /home/yantar92/.emacs.d/straight/build/org/oc-biblatex hides /usr/share/emacs/29.0.50/lisp/org/oc-biblatex /home/yantar92/.emacs.d/straight/build/org/oc-csl hides /usr/share/emacs/29.0.50/lisp/org/oc-csl /home/yantar92/.emacs.d/straight/build/org/oc-natbib hides /usr/share/emacs/29.0.50/lisp/org/oc-natbib /home/yantar92/.emacs.d/straight/build/org/oc hides /usr/share/emacs/29.0.50/lisp/org/oc /home/yantar92/.emacs.d/straight/build/org/ol-bbdb hides /usr/share/emacs/29.0.50/lisp/org/ol-bbdb /home/yantar92/.emacs.d/straight/build/org/ol-bibtex hides /usr/share/emacs/29.0.50/lisp/org/ol-bibtex /home/yantar92/.emacs.d/straight/build/org/ol-docview hides /usr/share/emacs/29.0.50/lisp/org/ol-docview /home/yantar92/.emacs.d/straight/build/org/ol-doi hides /usr/share/emacs/29.0.50/lisp/org/ol-doi /home/yantar92/.emacs.d/straight/build/org/ol-eshell hides /usr/share/emacs/29.0.50/lisp/org/ol-eshell /home/yantar92/.emacs.d/straight/build/org/ol-eww hides /usr/share/emacs/29.0.50/lisp/org/ol-eww /home/yantar92/.emacs.d/straight/build/org/ol-gnus hides /usr/share/emacs/29.0.50/lisp/org/ol-gnus /home/yantar92/.emacs.d/straight/build/org/ol-info hides /usr/share/emacs/29.0.50/lisp/org/ol-info /home/yantar92/.emacs.d/straight/build/org/ol-irc hides /usr/share/emacs/29.0.50/lisp/org/ol-irc /home/yantar92/.emacs.d/straight/build/org/ol-man hides /usr/share/emacs/29.0.50/lisp/org/ol-man /home/yantar92/.emacs.d/straight/build/org/ol-mhe hides /usr/share/emacs/29.0.50/lisp/org/ol-mhe /home/yantar92/.emacs.d/straight/build/org/ol-rmail hides /usr/share/emacs/29.0.50/lisp/org/ol-rmail /home/yantar92/.emacs.d/straight/build/org/ol-w3m hides /usr/share/emacs/29.0.50/lisp/org/ol-w3m /home/yantar92/.emacs.d/straight/build/org/ol hides /usr/share/emacs/29.0.50/lisp/org/ol /home/yantar92/.emacs.d/straight/build/org/org-agenda hides /usr/share/emacs/29.0.50/lisp/org/org-agenda /home/yantar92/.emacs.d/straight/build/org/org-archive hides /usr/share/emacs/29.0.50/lisp/org/org-archive /home/yantar92/.emacs.d/straight/build/org/org-attach-git hides /usr/share/emacs/29.0.50/lisp/org/org-attach-git /home/yantar92/.emacs.d/straight/build/org/org-attach hides /usr/share/emacs/29.0.50/lisp/org/org-attach /home/yantar92/.emacs.d/straight/build/org/org-capture hides /usr/share/emacs/29.0.50/lisp/org/org-capture /home/yantar92/.emacs.d/straight/build/org/org-clock hides /usr/share/emacs/29.0.50/lisp/org/org-clock /home/yantar92/.emacs.d/straight/build/org/org-colview hides /usr/share/emacs/29.0.50/lisp/org/org-colview /home/yantar92/.emacs.d/straight/build/org/org-compat hides /usr/share/emacs/29.0.50/lisp/org/org-compat /home/yantar92/.emacs.d/straight/build/org/org-crypt hides /usr/share/emacs/29.0.50/lisp/org/org-crypt /home/yantar92/.emacs.d/straight/build/org/org-ctags hides /usr/share/emacs/29.0.50/lisp/org/org-ctags /home/yantar92/.emacs.d/straight/build/org/org-datetree hides /usr/share/emacs/29.0.50/lisp/org/org-datetree /home/yantar92/.emacs.d/straight/build/org/org-duration hides /usr/share/emacs/29.0.50/lisp/org/org-duration /home/yantar92/.emacs.d/straight/build/org/org-element hides /usr/share/emacs/29.0.50/lisp/org/org-element /home/yantar92/.emacs.d/straight/build/org/org-entities hides /usr/share/emacs/29.0.50/lisp/org/org-entities /home/yantar92/.emacs.d/straight/build/org/org-faces hides /usr/share/emacs/29.0.50/lisp/org/org-faces /home/yantar92/.emacs.d/straight/build/org/org-feed hides /usr/share/emacs/29.0.50/lisp/org/org-feed /home/yantar92/.emacs.d/straight/build/org/org-footnote hides /usr/share/emacs/29.0.50/lisp/org/org-footnote /home/yantar92/.emacs.d/straight/build/org/org-goto hides /usr/share/emacs/29.0.50/lisp/org/org-goto /home/yantar92/.emacs.d/straight/build/org/org-habit hides /usr/share/emacs/29.0.50/lisp/org/org-habit /home/yantar92/.emacs.d/straight/build/org/org-id hides /usr/share/emacs/29.0.50/lisp/org/org-id /home/yantar92/.emacs.d/straight/build/org/org-indent hides /usr/share/emacs/29.0.50/lisp/org/org-indent /home/yantar92/.emacs.d/straight/build/org/org-inlinetask hides /usr/share/emacs/29.0.50/lisp/org/org-inlinetask /home/yantar92/.emacs.d/straight/build/org/org-install hides /usr/share/emacs/29.0.50/lisp/org/org-install /home/yantar92/.emacs.d/straight/build/org/org-keys hides /usr/share/emacs/29.0.50/lisp/org/org-keys /home/yantar92/.emacs.d/straight/build/org/org-lint hides /usr/share/emacs/29.0.50/lisp/org/org-lint /home/yantar92/.emacs.d/straight/build/org/org-list hides /usr/share/emacs/29.0.50/lisp/org/org-list /home/yantar92/.emacs.d/straight/build/org/org-macro hides /usr/share/emacs/29.0.50/lisp/org/org-macro /home/yantar92/.emacs.d/straight/build/org/org-macs hides /usr/share/emacs/29.0.50/lisp/org/org-macs /home/yantar92/.emacs.d/straight/build/org/org-mobile hides /usr/share/emacs/29.0.50/lisp/org/org-mobile /home/yantar92/.emacs.d/straight/build/org/org-mouse hides /usr/share/emacs/29.0.50/lisp/org/org-mouse /home/yantar92/.emacs.d/straight/build/org/org-num hides /usr/share/emacs/29.0.50/lisp/org/org-num /home/yantar92/.emacs.d/straight/build/org/org-pcomplete hides /usr/share/emacs/29.0.50/lisp/org/org-pcomplete /home/yantar92/.emacs.d/straight/build/org/org-plot hides /usr/share/emacs/29.0.50/lisp/org/org-plot /home/yantar92/.emacs.d/straight/build/org/org-protocol hides /usr/share/emacs/29.0.50/lisp/org/org-protocol /home/yantar92/.emacs.d/straight/build/org/org-refile hides /usr/share/emacs/29.0.50/lisp/org/org-refile /home/yantar92/.emacs.d/straight/build/org/org-src hides /usr/share/emacs/29.0.50/lisp/org/org-src /home/yantar92/.emacs.d/straight/build/org/org-table hides /usr/share/emacs/29.0.50/lisp/org/org-table /home/yantar92/.emacs.d/straight/build/org/org-tempo hides /usr/share/emacs/29.0.50/lisp/org/org-tempo /home/yantar92/.emacs.d/straight/build/org/org-timer hides /usr/share/emacs/29.0.50/lisp/org/org-timer /home/yantar92/.emacs.d/straight/build/org/org-version hides /usr/share/emacs/29.0.50/lisp/org/org-version /home/yantar92/.emacs.d/straight/build/org/org hides /usr/share/emacs/29.0.50/lisp/org/org /home/yantar92/.emacs.d/straight/build/org/ox-ascii hides /usr/share/emacs/29.0.50/lisp/org/ox-ascii /home/yantar92/.emacs.d/straight/build/org/ox-beamer hides /usr/share/emacs/29.0.50/lisp/org/ox-beamer /home/yantar92/.emacs.d/straight/build/org/ox-html hides /usr/share/emacs/29.0.50/lisp/org/ox-html /home/yantar92/.emacs.d/straight/build/org/ox-icalendar hides /usr/share/emacs/29.0.50/lisp/org/ox-icalendar /home/yantar92/.emacs.d/straight/build/org/ox-koma-letter hides /usr/share/emacs/29.0.50/lisp/org/ox-koma-letter /home/yantar92/.emacs.d/straight/build/org/ox-latex hides /usr/share/emacs/29.0.50/lisp/org/ox-latex /home/yantar92/.emacs.d/straight/build/org/ox-man hides /usr/share/emacs/29.0.50/lisp/org/ox-man /home/yantar92/.emacs.d/straight/build/org/ox-md hides /usr/share/emacs/29.0.50/lisp/org/ox-md /home/yantar92/.emacs.d/straight/build/org/ox-odt hides /usr/share/emacs/29.0.50/lisp/org/ox-odt /home/yantar92/.emacs.d/straight/build/org/ox-org hides /usr/share/emacs/29.0.50/lisp/org/ox-org /home/yantar92/.emacs.d/straight/build/org/ox-publish hides /usr/share/emacs/29.0.50/lisp/org/ox-publish /home/yantar92/.emacs.d/straight/build/org/ox-texinfo hides /usr/share/emacs/29.0.50/lisp/org/ox-texinfo /home/yantar92/.emacs.d/straight/build/org/ox hides /usr/share/emacs/29.0.50/lisp/org/ox /home/yantar92/.emacs.d/straight/build/org/org-loaddefs hides /usr/share/emacs/29.0.50/lisp/org/org-loaddefs /home/yantar92/.emacs.d/straight/build/let-alist/let-alist hides /usr/share/emacs/29.0.50/lisp/emacs-lisp/let-alist /home/yantar92/.emacs.d/straight/build/map/map hides /usr/share/emacs/29.0.50/lisp/emacs-lisp/map /usr/share/emacs/29.0.50/lisp/emacs-lisp/eieio-compat hides /usr/share/emacs/29.0.50/lisp/obsolete/eieio-compat Features: (shadow sort footnote mail-extr emacsbug sendmail org-learn cal-china lunar solar cal-dst cal-bahai cal-islam cal-hebrew mule-util cal-move tabify elfeed-link cus-edit cus-start cus-load cl-print helm-imenu boon-main boon-hl boon-arguments multiple-cursors mc-separate-operations rectangular-region-mode mc-mark-pop mc-edit-lines mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors multiple-cursors-core boon-regs boon-moves boon-utils er-basic-expansions expand-region-core expand-region-custom misearch multi-isearch latex latex-flymake flymake-proc flymake tex-ispell tex-style tex org-duration cal-iso ffap org-table-sticky-header org-appear oc-basic ol-eww eww mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-search eieio-opt speedbar ezimage dframe ol-docview doc-view jka-compr ol-bbdb ol-w3m ol-doi org-link-doi profiler helm-command helm-elisp helm-eval tramp-archive tramp-gvfs helm-x-files org-crypt helm-notmuch helm-notmuch-autoloads notmuch-autoloads ol-notmuch org-eldoc org-appear-autoloads doom-themes-ext-org doom-themes doom-themes-base doom-themes-autoloads org-table-sticky-header-autoloads posframe ob-async ob-async-autoloads ob-latex ob-dot ob-calc calc-store calc-trail ob-gnuplot ob-ditaa ob-C cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ob-python python tramp-sh ob-perl ob-org ob-shell ob-mathematica org-tempo tempo org-archive ox-md ox-beamer ox-extra doct ya-org-capture ya-org-capture-autoloads doct-autoloads org-capture-pop-frame org-capture-pop-frame-autoloads org-protocol org-analyzer-autoloads pomidor-autoloads alert-autoloads log4e-autoloads gntp-autoloads org-clock org-autosort org-autosort-autoloads helm-org-contacts helm-org-contacts-autoloads org-contacts gnus-art mm-uu mml2015 gnus-sum gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader helm-org-ql helm-org helm-org-ql-autoloads helm-org-autoloads org-ql-search org-ql-view ov org-super-agenda org-ql peg org-ql-autoloads peg-autoloads ov-autoloads org-super-agenda-autoloads map-autoloads org-quick-peek org-quick-peek-autoloads calfw-org calfw-org-autoloads calfw holidays hol-loaddefs calfw-autoloads org-attach cdlatex texmathp cdlatex-autoloads helm-recoll eieio-compat helm-for-files helm-bookmark helm-info helm-external helm-recoll-autoloads org-capture-ref org-ref-url-utils org-ref org-ref-helm-bibtex org-ref-helm helm-bibtex helm-net helm-config org-ref-core reftex-cite reftex reftex-loaddefs reftex-vars org-ref-glossary org-ref-bibtex org-ref-citeproc key-chord doi-utils org-ref-utils org-ref-pdf ol-bibtex htmlize bibtex-completion biblio biblio-download biblio-dissemin biblio-ieee biblio-hal biblio-dblp biblio-crossref biblio-arxiv timezone biblio-doi biblio-core ido parsebib bibtex org-ref-autoloads key-chord-autoloads ivy-autoloads helm-bibtex-autoloads bibtex-completion-autoloads biblio-autoloads biblio-core-autoloads parsebib-autoloads htmlize-autoloads scimax-inkscape scimax-inkscape-autoloads org-pdftools-autoloads org-noter-autoloads org-capture org-checklist org-habit org-edna org-edna-autoloads org-inlinetask org-drill persist org-drill-autoloads persist-autoloads speed-type speed-type-autoloads notmuch-calendar-x notmuch-calendar-x-autoloads notmuch notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser notmuch-wash coolj notmuch-query icalendar diary-lib diary-loaddefs notmuch-tag notmuch-lib notmuch-version notmuch-compat mm-view mml-smime smime dig w3m-load w3m-autoloads elfeed-score elfeed-score-maint elfeed-score-scoring elfeed-score-serde elfeed-score-rule-stats elfeed-org elfeed-org-autoloads quick-peek quick-peek-autoloads elfeed-show elfeed-search vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc hideshow display-fill-column-indicator eros flycheck-tip error-tip notifications dbus flycheck-tip-autoloads flycheck rainbow-delimiters highlight-numbers parent-mode easy-escape yasnippet-snippets-autoloads yasnippet-snippets yasnippet elfeed-csv elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib avl-tree url-queue xml-query elfeed-score-rules elfeed-score-log elfeed-score-autoloads elfeed-autoloads qrencode-el-autoloads keycast keycast-autoloads gif-screencast gif-screencast-autoloads yaml-mode yaml-mode-autoloads mingus libmpdee cl mingus-autoloads libmpdee-autoloads calctex calc-sel calc-ext calctex-autoloads calc calc-loaddefs rect calc-macs shell-pop-autoloads eterm-256color-autoloads xterm-color-autoloads vterm term ehelp vterm-module term/xterm xterm vterm-autoloads ereader xml+ view shr pixel-fill kinsoku svg dom picture ereader-autoloads xml+-autoloads diffpdf diffpdf-autoloads pdf-view-restore-autoloads pdf-tools-autoloads tablist-autoloads wolfram-mode wolfram-mode-autoloads ledger-mode-autoloads auctex-autoloads tex-site ebuild-mode skeleton sh-script smie executable ebuild-mode-autoloads lua-mode lua-mode-autoloads gnuplot-autoloads elisp-def ert ewoc elisp-def-autoloads eros-autoloads nameless lisp-mnt nameless-autoloads paredit paredit-autoloads company-jedi company-jedi-autoloads jedi jedi-core python-environment epc ctable concurrent deferred auto-complete popup jedi-autoloads auto-complete-autoloads jedi-core-autoloads python-environment-autoloads epc-autoloads ctable-autoloads concurrent-autoloads deferred-autoloads pydoc goto-addr pydoc-autoloads which-key which-key-autoloads helm-descbinds helm-descbinds-autoloads elisp-demos elisp-demos-autoloads helpful edebug info-look help-fns radix-tree elisp-refs helpful-autoloads elisp-refs-autoloads tldr tldr-autoloads macrostep macrostep-autoloads font-lock-profiler font-lock-profiler-autoloads font-lock-studio font-lock-studio-autoloads memory-usage memory-usage-autoloads bug-hunter bug-hunter-autoloads lorem-ipsum lorem-ipsum-autoloads debug backtrace yasnippet-autoloads move-text move-text-autoloads aggressive-indent aggressive-indent-autoloads visual-regexp-autoloads magit-bookmark bookmark pp helm-bm helm-bm-autoloads bm bm-autoloads helm-dash dash-docs use-package-dash-docs xml helm-dash-autoloads dash-docs-autoloads disk-usage disk-usage-autoloads dired-git-info-autoloads dired-hide-dotfiles-autoloads dired-filter-autoloads diredfl diredfl-autoloads all-the-icons-dired-autoloads dired-async dired-open-autoloads dired-avfs dired-avfs-autoloads dired-narrow-autoloads dired-hacks-utils dired-hacks-utils-autoloads dired+ image-dired image-file image-converter dired-x dired-aux dired+-autoloads winner windower emacs-windower-autoloads goggles pulse skip-buffers-mode recentf tree-widget wid-edit helm-icons treemacs-icons treemacs-themes treemacs-core-utils treemacs-logging treemacs-customization pfuture inline helm-adaptive helm-mode helm-misc helm-files image-mode exif tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat ls-lisp helm-buffers helm-occur helm-tags helm-locate helm-grep helm-regexp helm-utils helm-help helm-types helm async-bytecomp helm-global-bindings helm-easymenu helm-source helm-multi-match helm-lib async eval-sexp-fu eval-sexp-fu-autoloads goggles-autoloads easy-escape-autoloads highlight-numbers-autoloads parent-mode-autoloads rainbow-delimiters-autoloads highlight-parentheses highlight-parentheses-autoloads flycheck-autoloads pkg-info-autoloads epl-autoloads langtool compile langtool-autoloads el-patch el-patch-autoloads flyspell ispell hi-lock ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util browse-at-remote vc-git vc-dispatcher f browse-at-remote-autoloads forge-list forge-commands forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy gsexp ghub let-alist gnutls forge-notify forge-revnote forge-pullreq forge-issue forge-topic yaml parse-time iso8601 bug-reference forge-post markdown-mode thingatpt forge-repo forge forge-core forge-db closql emacsql-sqlite emacsql emacsql-compiler url-http url-auth url-gw nsm magit-submodule magit-obsolete magit-blame magit-stash magit-reflog 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 git-commit log-edit message yank-media rmc puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor shell magit-mode transient magit-git magit-section magit-utils crm forge-autoloads yaml-autoloads markdown-mode-autoloads ghub-autoloads treepy-autoloads let-alist-autoloads closql-autoloads emacsql-sqlite-autoloads emacsql-autoloads unpackaged smerge-mode diff-mode diff package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf mailcap url-handlers 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 org-agenda ox-html table ox-ascii ox-publish ox org-element org-persist xdg org-skip-list ibuf-ext ibuffer ibuffer-loaddefs use-package use-package-ensure use-package-delight ts ts-autoloads unpackaged-autoloads magit-autoloads magit-section-autoloads git-commit-autoloads with-editor-autoloads transient-autoloads autorevert filenotify disp-table hl-todo pretty-symbols company-oddmuse company-keywords company-etags etags fileloop generator xref project company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb company persistent-scratch persistent-scratch-autoloads savehist backup-walker-autoloads company-autoloads helm-icons-autoloads treemacs-autoloads cfrs-autoloads posframe-autoloads pfuture-autoloads ace-window-autoloads avy-autoloads f-autoloads helm-autoloads helm-core-autoloads popup-autoloads face-remap pyim pyim-hacks pyim-probe pyim-cregexp xr pyim-process pyim-cstring pyim-autoselector pyim-punctuation pyim-outcome pyim-indicator pyim-preview pyim-magic pyim-candidates pyim-codes pyim-imobjs pyim-pinyin pyim-pymap pyim-entered pyim-dcache url-util url-parse auth-source eieio eieio-core eieio-loaddefs password-cache json map url-vars pyim-dict pyim-page pyim-scheme pyim-common pyim-autoloads xr-autoloads async-autoloads reverse-im quail reverse-im-autoloads hydra lv boon-qwerty color olivetti straight-x boon boon-keys boon-core boon-loaddefs boon-autoloads pcre2el-autoloads multiple-cursors-autoloads expand-region-autoloads meta-functions org-id org-refile meta-functions-autoloads hl-line memoize memoize-autoloads info-colors info-colors-autoloads hl-todo-autoloads latex-pretty-symbols latex-pretty-symbols-autoloads pretty-symbols-autoloads page-break-lines page-break-lines-autoloads edmacro kmacro adaptive-wrap adaptive-wrap-autoloads olivetti-autoloads shackle trace shackle-autoloads use-package-diminish all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons all-the-icons-autoloads org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-color ring org-list org-faces org-entities time-date noutline outline org-version ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-compat advice org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs modus-vivendi-theme modus-operandi-theme modus-themes modus-themes-autoloads s s-autoloads ht dash ht-autoloads dash-autoloads pcase asoc asoc.el-autoloads no-littering no-littering-autoloads hydra-autoloads lv-autoloads finder-inf use-package-bind-key org-contrib-autoloads comp comp-cstr warnings rx bind-key easy-mmode diminish diminish-autoloads use-package-core use-package-autoloads bind-key-autoloads straight-autoloads info cl-seq cl-extra help-mode seq byte-opt straight subr-x cl-macs gv cl-loaddefs cl-lib bytecomp byte-compile cconv server site-gentoo iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode 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 lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer 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 emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify dynamic-setting font-render-setting cairo x multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 8779739 3477292) (symbols 48 83658 4) (strings 32 643107 995677) (string-bytes 1 20902467) (vectors 16 324084) (vector-slots 8 5210583 10027616) (floats 8 11839 19436) (intervals 56 238548 63323) (buffers 992 67)) --=-=-=--