0

I have Emacs 28.1.90, locally built, with cedet and semantic as built-in packages. However, when i tried turning things on (using semantic for auto-completion with company), i started getting eroors instead.

Here is the backtrace i am getting:

#f(compiled-function (table) "Update typecache for TABLE, and return the merged types from the include tags.\nInclude-tags are the tags brought in via includes, all merged together into\na master list." #<bytecode 0xe02e0dedb2010ce>)(#<semanticdb-table semanticdb-table-15690dd69336 (25 tags), DIRTY>)
  apply(#f(compiled-function (table) "Update typecache for TABLE, and return the merged types from the include tags.\nInclude-tags are the tags brought in via includes, all merged together into\na master list." #<bytecode 0xe02e0dedb2010ce>) #<semanticdb-table semanticdb-table-15690dd69336 (25 tags), DIRTY> nil)
  semanticdb-typecache-include-tags(#<semanticdb-table semanticdb-table-15690dd69336 (25 tags), DIRTY>)
  #f(compiled-function (table type find-file-match) "Search the typecache in TABLE for the datatype TYPE.\nIf type is a string, split the string, and search for the parts.\nIf type is a list, treat the type as a pre-split string.\nIf FIND-FILE-MATCH is non-nil, then force the file belonging to the\nfound tag to be loaded." #<bytecode 0xc189a8f4e81c8b7>)(#<semanticdb-table semanticdb-table-15690dd69336 (25 tags), DIRTY> ("p") nil)
  apply(#f(compiled-function (table type find-file-match) "Search the typecache in TABLE for the datatype TYPE.\nIf type is a string, split the string, and search for the parts.\nIf type is a list, treat the type as a pre-split string.\nIf FIND-FILE-MATCH is non-nil, then force the file belonging to the\nfound tag to be loaded." #<bytecode 0xc189a8f4e81c8b7>) #<semanticdb-table semanticdb-table-15690dd69336 (25 tags), DIRTY> (("p") nil))
  semanticdb-typecache-find-method(#<semanticdb-table semanticdb-table-15690dd69336 (25 tags), DIRTY> ("p") nil)
  semanticdb-typecache-find-default(("p") nil nil)
  semanticdb-typecache-find(("p"))
  semantic-analyze-find-tag-sequence-default(("p") #<semantic-scope-cache semantic-scope-cache-15690cfb4738> semantic--prefixtypes unfindable nil)
  semantic-analyze-find-tag-sequence(("p") #<semantic-scope-cache semantic-scope-cache-15690cfb4738> semantic--prefixtypes unfindable)
  semantic-analyze-current-context-default(6972)
  semantic-analyze-current-context()
  semantic-analyze-completion-at-point-function()
  completion--capf-wrapper(semantic-analyze-completion-at-point-function optimist)
  company--capf-wrapper(semantic-analyze-completion-at-point-function optimist)
  run-hook-wrapped(company--capf-wrapper semantic-analyze-completion-at-point-function optimist)
  company--capf-data-real()
  company--capf-data()
  company-capf(prefix)
  apply(company-capf prefix)
  (if (functionp company-backend) (apply company-backend args) (apply #'company--multi-backend-adapter company-backend args))
  (condition-case err (if (functionp company-backend) (apply company-backend args) (apply #'company--multi-backend-adapter company-backend args)) ((debug user-error) (user-error "Company: backend %s user-error: %s" company-backend (error-message-string err))) ((debug error) (error "Company: backend %s error \"%s\" with args %s" company-backend (error-message-string err) args)))
  company-call-backend-raw(prefix)
  apply(company-call-backend-raw prefix)
  (let ((value (apply fun args))) (if (not (eq (car-safe value) :async)) value (let ((res 'trash) (start (time-to-seconds))) (funcall (cdr value) #'(lambda (result) (setq res result))) (while (eq res 'trash) (if (> (- (time-to-seconds) start) company-async-timeout) (error "Company: backend %s async timeout with args %s" backend args) (sleep-for company-async-wait))) res)))
  company--force-sync(company-call-backend-raw (prefix) company-capf)
  company-call-backend(prefix)
  (let ((company-backend backend)) (company-call-backend 'prefix))
  (progn (let ((company-backend backend)) (company-call-backend 'prefix)))
  (if (company--maybe-init-backend backend) (progn (let ((company-backend backend)) (company-call-backend 'prefix))))
  (if (or (symbolp backend) (functionp backend)) (if (company--maybe-init-backend backend) (progn (let ((company-backend backend)) (company-call-backend 'prefix)))) (company--multi-backend-adapter backend 'prefix))
  (setq prefix (if (or (symbolp backend) (functionp backend)) (if (company--maybe-init-backend backend) (progn (let ((company-backend backend)) (company-call-backend 'prefix)))) (company--multi-backend-adapter backend 'prefix)))
  (let ((backend (car --dolist-tail--))) (setq prefix (if (or (symbolp backend) (functionp backend)) (if (company--maybe-init-backend backend) (progn (let ((company-backend backend)) (company-call-backend 'prefix)))) (company--multi-backend-adapter backend 'prefix))) (if prefix (progn (if (company--good-prefix-p prefix) (progn (let ((ignore-case ...)) (setq company-prefix (company--prefix-str prefix) company-backend backend c (company-calculate-candidates company-prefix ignore-case)) (cond (... ...) (... ...) (t ... ... ... ...))))) (throw '--cl-block-nil-- c))) (setq --dolist-tail-- (cdr --dolist-tail--)))
  (while --dolist-tail-- (let ((backend (car --dolist-tail--))) (setq prefix (if (or (symbolp backend) (functionp backend)) (if (company--maybe-init-backend backend) (progn (let (...) (company-call-backend ...)))) (company--multi-backend-adapter backend 'prefix))) (if prefix (progn (if (company--good-prefix-p prefix) (progn (let (...) (setq company-prefix ... company-backend backend c ...) (cond ... ... ...)))) (throw '--cl-block-nil-- c))) (setq --dolist-tail-- (cdr --dolist-tail--))))
  (let ((--dolist-tail-- (if company-backend (list company-backend) company-backends))) (while --dolist-tail-- (let ((backend (car --dolist-tail--))) (setq prefix (if (or (symbolp backend) (functionp backend)) (if (company--maybe-init-backend backend) (progn (let ... ...))) (company--multi-backend-adapter backend 'prefix))) (if prefix (progn (if (company--good-prefix-p prefix) (progn (let ... ... ...))) (throw '--cl-block-nil-- c))) (setq --dolist-tail-- (cdr --dolist-tail--)))))
  (catch '--cl-block-nil-- (let ((--dolist-tail-- (if company-backend (list company-backend) company-backends))) (while --dolist-tail-- (let ((backend (car --dolist-tail--))) (setq prefix (if (or (symbolp backend) (functionp backend)) (if (company--maybe-init-backend backend) (progn ...)) (company--multi-backend-adapter backend 'prefix))) (if prefix (progn (if (company--good-prefix-p prefix) (progn ...)) (throw '--cl-block-nil-- c))) (setq --dolist-tail-- (cdr --dolist-tail--))))))
  (let (prefix c) (catch '--cl-block-nil-- (let ((--dolist-tail-- (if company-backend (list company-backend) company-backends))) (while --dolist-tail-- (let ((backend (car --dolist-tail--))) (setq prefix (if (or ... ...) (if ... ...) (company--multi-backend-adapter backend ...))) (if prefix (progn (if ... ...) (throw ... c))) (setq --dolist-tail-- (cdr --dolist-tail--)))))))
  company--begin-new()
  (cond (company-candidates (company--continue)) ((company--should-complete) (company--begin-new)))
  company--perform()
  (let ((inhibit-quit nil)) (company--perform) company-candidates)
  (condition-case err (let ((inhibit-quit nil)) (company--perform) company-candidates) ((debug error) (message "Company: An error occurred in auto-begin") (message "%s" (error-message-string err)) (company-cancel)) ((debug quit) (company-cancel)))
  (let ((company-idle-delay 'now)) (condition-case err (let ((inhibit-quit nil)) (company--perform) company-candidates) ((debug error) (message "Company: An error occurred in auto-begin") (message "%s" (error-message-string err)) (company-cancel)) ((debug quit) (company-cancel))))
  (and company-mode (not company-candidates) (let ((company-idle-delay 'now)) (condition-case err (let ((inhibit-quit nil)) (company--perform) company-candidates) ((debug error) (message "Company: An error occurred in auto-begin") (message "%s" (error-message-string err)) (company-cancel)) ((debug quit) (company-cancel)))))
  company-auto-begin()
  (if (company-auto-begin) (progn (let ((this-command 'company-idle-begin)) (company-post-command))))
  (let ((non-essential t)) (if (company-auto-begin) (progn (let ((this-command 'company-idle-begin)) (company-post-command)))))
  (and (eq buf (current-buffer)) (eq win (selected-window)) (eq tick (buffer-chars-modified-tick)) (eq pos (point)) (let ((non-essential t)) (if (company-auto-begin) (progn (let ((this-command 'company-idle-begin)) (company-post-command))))))
  company-idle-begin(#<buffer sender/main.c> #<window 34 on sender/main.c> 120321 6972)
  apply(company-idle-begin (#<buffer sender/main.c> #<window 34 on sender/main.c> 120321 6972))
  timer-event-handler([t 25353 51021 826913 nil company-idle-begin (#<buffer sender/main.c> #<window 34 on sender/main.c> 120321 6972) nil 367000 nil])

As far as i am able to tell, semantic gets an error while working over "/usr/include/stdio.h", standsrd include file. Moreover, error seem to be purely internal to it.

Is that a known problem? How can it be resolved?

3
  • For several years now my impression has been that cedet in general and semantic in particular are dead or dying. I'd be pleased to learn different. Aug 27, 2022 at 10:09
  • Would you recommend something to replace them?
    – Srv19
    Aug 27, 2022 at 13:53
  • See this page: emacs-lsp.github.io/lsp-mode/tutorials/CPP-guide - you can add semantic use in lsp-mode configuration, and this works.
    – Ian
    Aug 28, 2022 at 12:55

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.