Subject: bug#20270: 25.0.50; 'Invalid slot type: semanticdb-project-database-file, reference-directory, string, nil' with semantic-mode

From: Rupert Swarbrick <[email-masked]>
Date: Tue, 7 Apr 2015 11:20:34 +0100

With the current head of the master branch, I get the error in the
subject line whenever I try to open a file with semantic mode enabled. I
can reproduce this with '-Q' as follows:

  new-emacs.sh -Q --eval '(semantic-mode t)' --eval '(find-file "test.c")'

(where new-emacs.sh is just a shell script that calls my locally
compiled Emacs).

Setting debug-on-error gives the following stack trace:

  Debugger entered--Lisp error: (invalid-slot-type semanticdb-project-database-file reference-directory string nil)
    signal(invalid-slot-type (semanticdb-project-database-file reference-directory string nil))
    eieio--validate-slot-value([defclass semanticdb-project-database-file "Database of file tables saved to disk." ([defclass semanticdb-project-database "Database of file tables." ([defclass eieio-instance-tracker "This special class enables instance tracking.\nInheritors from this class must overload `tracking-symbol' which is\na variable symbol used to store a list of all instances." nil [] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8 data ( ...)) (semanticdb-project-database) nil [[cl-struct-cl-slot-descriptor tracking-symbol unbound symbol (...)]] [unbound] [eieio-class-tag--eieio-instance-tracker] (:custom-groups nil :documentation "This special class enables instance tracking.\nInheritors from this class must overload `tracking-symbol' which is\na variable symbol used to store a list of all instances." :abstract t)]) [[cl-struct-cl-slot-descriptor reference-directory unbound string ((:documentation . "Directory this database refers to.\nWhen a cache directory is specified, then this refers to the directory\nthis database contains symbols for."))] [cl-struct-cl-slot-descriptor new-table-class semanticdb-table class ((:documentation . "New tables created for this database are of this class."))] [cl-struct-cl-slot-descriptor cache nil list ((:documentation . "List of cache information for tools.\nAny particular tool can cache data to a database at runtime\nwith `semanticdb-cache-get'.\n\nUsing a semanticdb cache does not save any information to a file,\nso your cache will need to be recalculated at runtime.\n\nNote: This index will not be saved in a persistent file."))] [cl-struct-cl-slot-descriptor tables unbound semanticdb-abstract-table-list ((:documentation . "List of `semantic-db-table' objects.") (:protection . protected))]] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8 data (reference-directory 0 new-table-class 1 cache 2 tables 3 ...)) (semanticdb-project-database-file) ((:tables . tables)) [[cl-struct-cl-slot-descriptor tracking-symbol semanticdb-database-list symbol ((:documentation . "The symbol used to maintain a list of our instances.\nThe instance list is treated as a variable, with new instances added to it."))]] [semanticdb-database-list] [eieio-class-tag--semanticdb-project-database unbound semanticdb-table nil unbound] (:custom-groups nil :documentation "Database of file tables.")] [defclass eieio-persistent "This special class enables persistence through save files\nUse the `object-save' method to write this object to disk.  The save\nformat is Emacs Lisp code which calls the constructor for the saved\nobject.  For this reason, only slots which do not have an `:initarg'\nspecified will not be saved." nil [[cl-struct-cl-slot-descriptor file unbound string ((:documentation . "The save file for this persistent object.\nThis must be a string, and must be specified when the new object is\ninstantiated."))]] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8 data (file 0 ...)) (semanticdb-project-database-file) ((:file . file)) [[cl-struct-cl-slot-descriptor do-backups t boolean ((:documentation . "Saving this object should make backup files.\nSetting to nil will mean no backups are made."))] [cl-struct-cl-slot-descriptor file-header-line ";; EIEIO PERSISTENT OBJECT" string ((:documentation . "Header line for the save file.\nThis is used with the `object-write' method."))] [cl-struct-cl-slot-descriptor extension ".eieio" string ((:documentation . "Extension of files saved by this object.\nEnables auto-choosing nice file names based on name."))]] [t ";; EIEIO PERSISTENT OBJECT" ".eieio"] [eieio-class-tag--eieio-persistent unbound] (:custom-groups nil :documentation "This special class enables persistence through save files\nUse the `object-save' method to write this object to disk.  The save\nformat is Emacs Lisp code which calls the constructor for the saved\nobject.  For this reason, only slots which do not have an `:initarg'\nspecified will not be saved." :abstract t)]) [[cl-struct-cl-slot-descriptor reference-directory unbound string ((:documentation . "Directory this database refers to.\nWhen a cache directory is specified, then this refers to the directory\nthis database contains symbols for."))] [cl-struct-cl-slot-descriptor new-table-class semanticdb-table class ((:documentation . "New tables created for this database are of this class."))] [cl-struct-cl-slot-descriptor cache nil list ((:documentation . "List of cache information for tools.\nAny particular tool can cache data to a database at runtime\nwith `semanticdb-cache-get'.\n\nUsing a semanticdb cache does not save any information to a file,\nso your cache will need to be recalculated at runtime.\n\nNote: This index will not be saved in a persistent file."))] [cl-struct-cl-slot-descriptor tables unbound semanticdb-abstract-table-list ((:documentation . "List of `semantic-db-table' objects.") (:protection . protected))] [cl-struct-cl-slot-descriptor file unbound string ((:documentation . "The save file for this persistent object.\nThis must be a string, and must be specified when the new object is\ninstantiated."))] [cl-struct-cl-slot-descriptor semantic-tag-version "1.4" t ((:documentation . "The version of the tags saved.\nThe default value is 1.4.  In semantic 1.4 there was no versioning, so\nwhen those files are loaded, this becomes the version number.\nTo save the version number, we must hand-set this version string."))] [cl-struct-cl-slot-descriptor semanticdb-version "1.4" t ((:documentation . "The version of the object system saved.\nThe default value is 1.4.  In semantic 1.4, there was no versioning,\nso when those files are loaded, this becomes the version number.\nTo save the version number, we must hand-set this version string."))]] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8 data (reference-directory 0 new-table-class 1 cache 2 tables 3 file 4 semantic-tag-version 5 semanticdb-version 6 ...)) nil ((:tables . reference-directory) (:file . file) (:semantic-tag-version . semantic-tag-version) (:semanticdb-version . semanticdb-version)) [[cl-struct-cl-slot-descriptor extension ".eieio" string ((:documentation . "Extension of files saved by this object.\nEnables auto-choosing nice file names based on name."))] [cl-struct-cl-slot-descriptor file-header-line ";; SEMANTICDB Tags save file" string ((:documentation . "Header line for the save file.\nThis is used with the `object-write' method."))] [cl-struct-cl-slot-descriptor do-backups nil boolean ((:documentation . "Saving this object should make backup files.\nSetting to nil will mean no backups are made."))] [cl-struct-cl-slot-descriptor tracking-symbol semanticdb-database-list symbol ((:documentation . "The symbol used to maintain a list of our instances.\nThe instance list is treated as a variable, with new instances added to it."))]] [".eieio" ";; SEMANTICDB Tags save file" nil semanticdb-database-list] [eieio-class-tag--semanticdb-project-database-file unbound semanticdb-table nil unbound unbound "1.4" "1.4"] (:custom-groups nil :documentation "Database of file tables saved to disk.")] 1 nil reference-directory)
    eieio-oset([eieio-class-tag--semanticdb-project-database-file unbound semanticdb-table nil unbound "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" "1.4" "1.4"] reference-directory nil)
    #[514 "\211\2051^@\300^B\211\301HJ\262^A^B@\"\211\204 ^@\302^C^C@\303^EA@$\210\202(^@\304^C^B^DA@#\210\210\211AA\262^A\202^@^@\207" [eieio--initarg-to-attribute 0 slot-missing oset eieio-oset] 8 "Set slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the constructor routine.\n\n(fn OBJ SLOTS)"]([eieio-class-tag--semanticdb-project-database-file unbound semanticdb-table nil unbound "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" "1.4" "1.4"] (:file "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" :tables nil :semantic-tag-version "2.0" :semanticdb-version "2.2"))
    apply(#[514 "\211\2051^@\300^B\211\301HJ\262^A^B@\"\211\204 ^@\302^C^C@\303^EA@$\210\202(^@\304^C^B^DA@#\210\210\211AA\262^A\202^@^@\207" [eieio--initarg-to-attribute 0 slot-missing oset eieio-oset] 8 "Set slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the constructor routine.\n\n(fn OBJ SLOTS)"] [eieio-class-tag--semanticdb-project-database-file unbound semanticdb-table nil unbound "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" "1.4" "1.4"] (:file "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" :tables nil :semantic-tag-version "2.0" :semanticdb-version "2.2"))
    shared-initialize([eieio-class-tag--semanticdb-project-database-file unbound semanticdb-table nil unbound "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" "1.4" "1.4"] (:file "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" :tables nil :semantic-tag-version "2.0" :semanticdb-version "2.2"))
    #[513 "^A\211\301HJ\262^A\211\302H\211G\301\211^BW\203T^@\211^C^AH\211\301H>\204&^@\303\304\305^CD\"\210\211\306H\307^A!\211^B=\204K^@\310^F\n^D\301H>\204E^@\303\304\305^F^GD\"\210^D\311H^C#\210\266^D\211T\262^A\202^M^@\266^D\312^B^B\"\207" [cl-struct-cl-slot-descriptor-tags 0 4 signal wrong-type-argument cl-slot-descriptor 2 eieio-default-eval-maybe eieio-oset 1 shared-initialize] 16 "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically.  If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS.\n\n(fn THIS &optional SLOTS)"]([eieio-class-tag--semanticdb-project-database-file unbound semanticdb-table nil unbound "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" "1.4" "1.4"] (:file "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" :tables nil :semantic-tag-version "2.0" :semanticdb-version "2.2"))
    apply(#[513 "^A\211\301HJ\262^A\211\302H\211G\301\211^BW\203T^@\211^C^AH\211\301H>\204&^@\303\304\305^CD\"\210\211\306H\307^A!\211^B=\204K^@\310^F\n^D\301H>\204E^@\303\304\305^F^GD\"\210^D\311H^C#\210\266^D\211T\262^A\202^M^@\266^D\312^B^B\"\207" [cl-struct-cl-slot-descriptor-tags 0 4 signal wrong-type-argument cl-slot-descriptor 2 eieio-default-eval-maybe eieio-oset 1 shared-initialize] 16 "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically.  If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS.\n\n(fn THIS &optional SLOTS)"] ([eieio-class-tag--semanticdb-project-database-file unbound semanticdb-table nil unbound "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" "1.4" "1.4"] (:file "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" :tables nil :semantic-tag-version "2.0" :semanticdb-version "2.2")))
    #[128 "\300\211\203^S^@\211@\303^A^D\"\210^AA\266\202\202^A^@\210\303\302^B\"\301\211\203+^@\211@\303^A^E\"\210^AA\266\202\202^Y^@\210\207" [nil (#[385 "\300^B\301\"^B^AJ>?\205^T^@\211\302^BJ^EC\"L\207" [eieio-oref tracking-symbol append] 7 "Make sure THIS is in our master list of this class.\nOptional argument SLOTS are the initialization arguments.\n\n(fn THIS &rest SLOTS)"]) #[513 "^A\211\301HJ\262^A\211\302H\211G\301\211^BW\203T^@\211^C^AH\211\301H>\204&^@\303\304\305^CD\"\210\211\306H\307^A!\211^B=\204K^@\310^F\n^D\301H>\204E^@\303\304\305^F^GD\"\210^D\311H^C#\210\266^D\211T\262^A\202^M^@\266^D\312^B^B\"\207" [cl-struct-cl-slot-descriptor-tags 0 4 signal wrong-type-argument cl-slot-descriptor 2 eieio-default-eval-maybe eieio-oset 1 shared-initialize] 16 "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically.  If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS.\n\n(fn THIS &optional SLOTS)"] apply] 7 "\n\n(fn &rest ARGS)"]([eieio-class-tag--semanticdb-project-database-file unbound semanticdb-table nil unbound "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" "1.4" "1.4"] (:file "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" :tables nil :semantic-tag-version "2.0" :semanticdb-version "2.2"))
    apply(#[128 "\300\211\203^S^@\211@\303^A^D\"\210^AA\266\202\202^A^@\210\303\302^B\"\301\211\203+^@\211@\303^A^E\"\210^AA\266\202\202^Y^@\210\207" [nil (#[385 "\300^B\301\"^B^AJ>?\205^T^@\211\302^BJ^EC\"L\207" [eieio-oref tracking-symbol append] 7 "Make sure THIS is in our master list of this class.\nOptional argument SLOTS are the initialization arguments.\n\n(fn THIS &rest SLOTS)"]) #[513 "^A\211\301HJ\262^A\211\302H\211G\301\211^BW\203T^@\211^C^AH\211\301H>\204&^@\303\304\305^CD\"\210\211\306H\307^A!\211^B=\204K^@\310^F\n^D\301H>\204E^@\303\304\305^F^GD\"\210^D\311H^C#\210\266^D\211T\262^A\202^M^@\266^D\312^B^B\"\207" [cl-struct-cl-slot-descriptor-tags 0 4 signal wrong-type-argument cl-slot-descriptor 2 eieio-default-eval-maybe eieio-oset 1 shared-initialize] 16 "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically.  If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS.\n\n(fn THIS &optional SLOTS)"] apply] 7 "\n\n(fn &rest ARGS)"] [eieio-class-tag--semanticdb-project-database-file unbound semanticdb-table nil unbound "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" "1.4" "1.4"] (:file "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" :tables nil :semantic-tag-version "2.0" :semanticdb-version "2.2"))
    initialize-instance([eieio-class-tag--semanticdb-project-database-file unbound semanticdb-table nil unbound "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" "1.4" "1.4"] (:file "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" :tables nil :semantic-tag-version "2.0" :semanticdb-version "2.2"))
    #[385 "\301^B\2119\203^P^@\211\302N\206^Q^@\202^S^@\211\262^A\211\303H\262^A!^A\203>^@^A@\211;\206&^@\211?\262^A\203>^@\2033^@\304\2024^@\305\306^C\211A\262^E\242^E#\210\307^A^C\"\210\211\207" [eieio-backward-compatibility copy-sequence eieio-class-definition 10 ignore message "Obsolete name %S passed to %S constructor" initialize-instance] 7 "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object.\n\n(fn CLASS &rest SLOTS)"](semanticdb-project-database-file "include/" :file "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" :tables nil :semantic-tag-version "2.0" :semanticdb-version "2.2")
    apply(#[385 "\301^B\2119\203^P^@\211\302N\206^Q^@\202^S^@\211\262^A\211\303H\262^A!^A\203>^@^A@\211;\206&^@\211?\262^A\203>^@\2033^@\304\2024^@\305\306^C\211A\262^E\242^E#\210\307^A^C\"\210\211\207" [eieio-backward-compatibility copy-sequence eieio-class-definition 10 ignore message "Obsolete name %S passed to %S constructor" initialize-instance] 7 "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object.\n\n(fn CLASS &rest SLOTS)"] semanticdb-project-database-file ("include/" :file "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" :tables nil :semantic-tag-version "2.0" :semanticdb-version "2.2"))
    make-instance(semanticdb-project-database-file "include/" :file "/home/ruperts/.emacs.d/semanticdb/!usr!include!semantic.cache" :tables nil :semantic-tag-version "2.0" :semanticdb-version "2.2")
    #[(dbc directory) "\306!^P\307	\"^Z\310\n!\206^X^@\311\n!\205^X^@\312\n!\211^[\2041^@\313	\314\315!!\316P\317\n\320\321\322\f\323^M&\n^S\324\325#\210*\207" [directory dbc fn db semantic-tag-version semanticdb-file-version file-truename semanticdb-cache-filename semanticdb-file-loaded-p file-exists-p semanticdb-load-database make-instance file-name-nondirectory directory-file-name "/" :file :tables nil :semantic-tag-version :semanticdb-version eieio-oset reference-directory] 12 "Create a new semantic database for DIRECTORY and return it.\nIf a database for DIRECTORY has already been loaded, return it.\nIf a database for DIRECTORY exists, then load that database, and return it.\nIf DIRECTORY doesn't exist, create a new one."](semanticdb-project-database-file "/usr/include/")
    apply(#[(dbc directory) "\306!^P\307	\"^Z\310\n!\206^X^@\311\n!\205^X^@\312\n!\211^[\2041^@\313	\314\315!!\316P\317\n\320\321\322\f\323^M&\n^S\324\325#\210*\207" [directory dbc fn db semantic-tag-version semanticdb-file-version file-truename semanticdb-cache-filename semanticdb-file-loaded-p file-exists-p semanticdb-load-database make-instance file-name-nondirectory directory-file-name "/" :file :tables nil :semantic-tag-version :semanticdb-version eieio-oset reference-directory] 12 "Create a new semantic database for DIRECTORY and return it.\nIf a database for DIRECTORY has already been loaded, return it.\nIf a database for DIRECTORY exists, then load that database, and return it.\nIf DIRECTORY doesn't exist, create a new one."] semanticdb-project-database-file "/usr/include/")
    semanticdb-create-database(semanticdb-project-database-file "/usr/include/")
    semanticdb-create-table-for-file("/usr/include/features.h")
    semanticdb-file-table-object("/usr/include/features.h" t)
    semantic-c-reset-preprocessor-symbol-map()
    byte-code("\300\301!\210\302 \207" [provide semantic/bovine/c semantic-c-reset-preprocessor-symbol-map] 2)
    semantic-default-c-setup()
    semantic-new-buffer-fcn()
    run-hooks(mode-local-init-hook)
    #[nil "\300 \210\301\302!\207" [activate-mode-local-bindings run-hooks mode-local-init-hook] 2]()
    mode-local-map-file-buffers(#[nil "\300 \210\301\302!\207" [activate-mode-local-bindings run-hooks mode-local-init-hook] 2] #[nil "	=?\207" [mode-local--init-mode major-mode] 2] (#<buffer test.c>))
    mode-local-post-major-mode-change()
    run-hooks(find-file-hook)
    after-find-file(t t)
    find-file-noselect-1(#<buffer test.c> "~/test.c" nil nil "~/test.c" nil)
    find-file-noselect("test.c" nil nil nil)
    find-file("test.c")
    eval((find-file "test.c"))
    command-line-1(("--eval" "(semantic-mode t)" "--eval" "(setq debug-on-error t)" "--eval" "(find-file \"test.c\")"))

In case it's relevant, the /home/ruperts/.emacs.d/semanticdb directory
does not exist.

I last compiled myself a new Emacs a couple of weeks ago, so whatever
change has broken things seems to have appeared in the meantime.

Rupert

In GNU Emacs 25.0.50.1 (x86_64-unknown-linux-gnu, X toolkit, Xaw scroll bars)
 of 2015-04-07 on xl-cam-20
Repository revision: 23468561682aea0705249a469f614bb873e4f411
Windowing system distributor `The X.Org Foundation', version 11.0.11300000
System Description:	Red Hat Enterprise Linux Server release 6.4 (Santiago)

Configured using:
 `configure
 --prefix=<something>
 --with-xml2 --without-sound --without-rsvg --without-imagemagick
 --with-x-toolkit=lucid'

Configured features:
XPM JPEG TIFF GIF PNG GPM DBUS GCONF NOTIFY ACL LIBSELINUX GNUTLS
LIBXML2 FREETYPE XFT ZLIB

Important settings:
  value of $LC_COLLATE: C
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  pyvenv-mode: t
  elisp-slime-nav-mode: t
  paredit-mode: t
  global-semanticdb-minor-mode: t
  global-semantic-idle-scheduler-mode: t
  global-semantic-idle-local-symbol-highlight-mode: t
  global-semantic-idle-summary-mode: t
  semantic-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  desktop-save-mode: t
  minibuffer-depth-indicate-mode: t
  icicle-mode: t
  keyfreq-autosave-mode: t
  keyfreq-mode: t
  show-paren-mode: t
  recentf-mode: t
  diff-auto-refine-mode: t
  magit-auto-revert-mode: t
  global-auto-revert-mode: t
  global-git-commit-mode: t
  shell-dirtrack-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t

<Omitting load-path shadowing list and recent messages because the bug
 appears with emacs -Q and they include various Broadcom-specific paths>

Features:
(shadow sort mail-extr emacsbug sendmail mc-edit-lines
multiple-cursors-core rect smex misearch multi-isearch eww mm-url gnus
gnus-ems nnheader url-queue url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap shr dom
subr-x browse-url company-files company-oddmuse company-keywords
company-etags company-gtags company-dabbrev-code company-dabbrev
company-cmake company-xcode company-clang company-eclim company-template
company-css company-nxml company-bbdb mule-util yasnippet
highlight-indentation flymake company elpy pyvenv elpy-refactor ido grep
files-x semantic/wisent/python compile semantic/wisent/python-wy
semantic/wisent semantic/wisent/wisent python json semantic/bovine/make
semantic/bovine/make-by make-mode semantic/decorate/include
semantic/decorate/mode semantic/decorate hideif semantic/bovine/c-by
semantic/lex-spp semantic/bovine/gcc semantic/dep semantic/bovine
semantic/analyze/refs semantic/db-find semantic/db-ref semantic/analyze
semantic/sort semantic/scope semantic/analyze/fcn cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
vc vc-dispatcher vc-git dired-aux elisp-slime-nav etags xref paredit
jka-compr semantic/db-mode semantic/db eieio-base pulse semantic/idle
semantic/format ezimage semantic/tag-ls semantic/find semantic/ctxt
em-ls esh-ext esh-opt esh-util semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local cedet
undo-tree diff fp_binutils adsl-mech apps rx fp_sdk broadcom diary-lib
diary-loaddefs cal-menu calendar cal-loaddefs midnight desktop frameset
icicles mb-depth two-column icicles-mode icicles-cmd2 icicles-cmd1
icicles-mcmd image-dired icicles-fn icicles-var icicles-opt ffap
url-parse url-vars fuzzy-match fuzzy cl cus-theme cus-edit cus-start
cus-load bookmark+ bookmark+-key derived bookmark+-1 bookmark+-bmu
bookmark+-lit bookmark pp thingatpt icicles-face keyfreq dired-x paren
windmove recentf tree-widget wid-edit edmacro kmacro magit-wip
magit-extras magit-backup magit-ediff ediff-merg ediff-wind ediff-diff
ediff-mult ediff-help ediff-init ediff-util ediff magit-blame
magit-bisect magit-remote magit-commit magit-stash magit-sequence magit
magit-log crm magit-apply magit-diff smerge-mode diff-mode magit-core
magit-process magit-popup magit-mode help-mode autorevert filenotify
magit-git magit-section magit-utils git-rebase git-commit log-edit
easy-mmode message dired rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
mail-utils gmm-utils mailheader pcvs-util add-log with-editor tramp-sh
tramp tramp-compat auth-source cl-macs eieio eieio-core cl-generic
byte-opt gv bytecomp byte-compile cl-extra seq cconv gnus-util mm-util
mail-prsvr password-cache tramp-loaddefs trampver shell pcomplete comint
ansi-color ring format-spec advice help-fns server dash cl-loaddefs
pcase cl-lib tex-site highline-autoloads info easymenu slime-autoloads
package epg-config time-date tooltip eldoc electric uniquify ediff-hook
vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
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 make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting x-toolkit x multi-tty emacs)

Memory information:
((conses 16 470773 63274)
 (symbols 48 54546 0)
 (miscs 40 673 473)
 (strings 32 128238 13773)
 (string-bytes 1 4292289)
 (vectors 16 56669)
 (vector-slots 8 1058434 11501)
 (floats 8 1249 574)
 (intervals 56 4415 392)
 (buffers 976 34)
 (heap 1024 50955 7314))