I think I've found out what that stacktrace means. The regular expression in disassemble-internal hasn't taken into account LLVM's objdump output format for mach-o objects. The first couple of lines of the *Disassemble* buffer looks like this on macOS: /Users/wyuenho/.emacs.d/eln-cache/28_0_50-83d1a9b9/markdown-mode-4888e153-14d4f01e.eln: file format mach-o 64-bit x86-64 Disassembly of section __TEXT,__text: 0000000000002fa0 <_maybe_gc_quit>: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump: warning: '/Users/wyuenho/.emacs.d/eln-cache/28_0_50-83d1a9b9/markdown-mode-4888e153-14d4f01e.eln': failed to parse debug information for /Users/wyuenho/.emacs.d/eln-cache/28_0_50-83d1a9b9/markdown-mode-4888e153-14d4f01e.eln 2fa0: 8b 05 86 9f 08 00 movl 565126(%rip), %eax # 8cf2c <_quitcounter> 2fa6: 83 c0 01 addl $1, %eax Jimmy On Tue, Jul 27, 2021 at 10:28 AM Andrea Corallo wrote: > Jimmy Yuen Ho Wong writes: > > > I'm not exactly sure how to even ask this question, as I've seen various > packages fail to natively compile circular lists > > or optimize it wrongly. So I've come up with a simple test case for me > to be able to disassemble the bytecode and the > > native code, and see if I could spot the problem, but disassembling > natively compiled code doesn't seem to work. > > > > Test case: > > > > (defun test-circular-list () > > (let ((l (list 1 2 3))) > > (setcdr (last l) l) > > l)) > > > > (print (test-circular-list)) > > > > (provide 'test-circular-list) > > > > M-x emacs-lisp-byte-compile-and-load > > M-x disassemble RET test-circular-list (works) > > > > M-x emacs-lisp-native-compile-and-load > > M-x disassemble RET test-circular-list (doesn't work) > > > > Debugger entered--Lisp error: (search-failed > "^.* > > re-search-forward("^.* > disassemble-internal(test-circular-list 0 nil) > > disassemble(test-circular-list nil 0 t) > > funcall-interactively(disassemble test-circular-list nil 0 t) > > command-execute(disassemble record) > > execute-extended-command(nil "disassemble" nil) > > funcall-interactively(execute-extended-command nil "disassemble" nil) > > command-execute(execute-extended-command) > > > > Furthermore, this test case, though superficially similar, doesn't seem > to be able to reproduce the same failure to > > natively compile issue as seen in powerline. > > > > There seems to be more than one thing wrong with this journey into my > deep dive into how native compiling circular lists > > work. > > > > Jimmy Yuen Ho Wong > > > > Hi Jimmy, > > I'm failing to reproduce this issue. > > Disassembling following your instructions works here. Also the compiled > `test-circular-list' function as expected here. > > Am I missing something? > > Best Regards > > Andrea >