Re: [cedet-semantic] "Apparently circular structure being printed" error when saving semantic cache
Brought to you by:
zappo
From: Eric M. L. <er...@si...> - 2008-11-12 12:21:36
|
Hi, Boost has some very very deep nested macros. When saving these macros out to the cache files (done at idle time) it does sometimes throw an error there. For example, in semantic-lex-spp.el (the pre-processor processor code for Semantic) in the fcn semantic-lex-spp-table-write-slot-value, you see it is trying to catch errors printing out structures, and in identifying long macros. The (untested) diff below wraps the only other bit that might throw an error in your case. Give it a try and let me know how it goes. Eric >>> bread <bre...@gm...> seems to think that: >Hi, > >I'm now using the latest semantic from CVS and found the error below: > >Save Error: "Apparently circular structure being printed": >/home/bread/.emacs.d/semantic_cache/!home!bread!jeda!RSG_ITG!include!boost!preprocessor!seq!semantic.cache >[2 times] > >It seems that an error occur when semantic analyzes boost library. Actually >this error showed up to me every several seconds, so the *Message* buffer is >filled with it now. > >I grepep this sentence and found it was not related to semantic itself, it >is related to Emacs (maybe edebug.elc or cust-print.elc?). So i just want to >know that is this is semantic's bug or Semantic's bug. And can this be >fixed? > >Thank you very much. ------------------ *** semantic-lex-spp.el.~1.25.~ 2008-10-13 09:50:50.000000000 -0400 --- semantic-lex-spp.el 2008-11-12 07:19:43.000000000 -0500 *************** *** 683,689 **** (princ " . ") (let ((len (length (cdr rest)))) (cond ((< len 2) ! (prin1 rest)) ((< len semantic-lex-spp-macro-max-length-to-save) (princ "\n ") (condition-case nil --- 683,692 ---- (princ " . ") (let ((len (length (cdr rest)))) (cond ((< len 2) ! (condition-case nil ! (prin1 rest) ! (error ! (princ "nil ;; Error writing macro\n")))) ((< len semantic-lex-spp-macro-max-length-to-save) (princ "\n ") (condition-case nil -- Eric Ludlam: er...@si... Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |