When using the debugger I get lines like the following in the stack trace:

#[0 "\302\303!\210\300\211\207" [describe-input-method this-command helm-mode 1] 2 "\n\n(fn)"]()

I have no clue what the #[0 notation means in this context? It seems like it is called like a function?

I tried googling, but good luck with finding "#[0" on google. Some of my best attempts was "pound-open-angle-bracket-0" or hash-angle-bracket-0, but they didn't yield anything (which this question will hopefully change).


You're looking at compiled byte code.

From (elisp) Byte-Code Type:

The printed representation and read syntax for a byte-code function object is like that for a vector, with an additional ‘#’ before the opening ‘[’.

| improve this answer | |
  • So what does the different parts of the vector mean? I'm guessing that "\302..." is the bytecode. – Hjulle Sep 12 '17 at 4:58
  • 2
    Yes, these are opcodes. Just use M-x disassemble to see it's disassembly. – user12563 Sep 12 '17 at 14:11
  • 1
    See also gnu.org/software/emacs/manual/html_node/elisp/… for more info on how byte code objects work (and what the parts of the vector are). – Hjulle Sep 12 '17 at 18:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.