From: Simon C. <sim...@ip...> - 2013-10-04 09:48:35
|
Hello Holger, Robert and other NGSpice developers I have found the minimum spice that triggers the last reported bug - it should be attached to this email. Essentially the problem seems to be in how NGSpice handles end of line comments (i.e. using a '$') and where there are multiple parameters declared together. In particular if you leave a trailing single quote on your parameter it will break NGSpice. The trailing quotes can occur easily if you're de-bugging parameters and want to comment out some of the formula. For example you might start with: .param a='b+0.3' + c='a*2' And then decide that you don't want to add the 0.3 for now, but might want to put it back in later - so you comment it out to: .param a='b' $+0.3' + c='a*2' And this kills NGSpice by confusing the code that adds any missing brace characters... See attached test bench. When run I get: [stc@stcVirtual ngspice-dbg]$ ngspicedev test2.cir ****** ** ngspice-25 : Circuit level simulation program ** The U. C. Berkeley CAD Group ** Copyright 1985-1994, Regents of the University of California. ** Please get your ngspice manual from http://ngspice.sourceforge.net/docs.html ** Please file your bug-reports at http://ngspice.sourceforge.net/bugrep.html ** Creation Date: Thu Sep 26 14:41:23 BST 2013 ****** Circuit: Original line no.: 0, new internal line no.: 4: Expression err: Original line no.: 0, new internal line no.: 4: Formula() error. .param c={}b} Original line no.: 0, new internal line no.: 4: ; sign expected. Copies=10 Evals=10 Placeholders=1 Symbols=3 Errors=3 Numparam expansion errors: Run Spice anyway? y/n ? n ERROR: fatal error in ngspice, exit(1) Simon By the way On 04/10/2013 09:28, "Simon Chang" <sim...@ip...> wrote: >Hello Robert, > >Thank you for your answer. > >I'm sorry if my question seemed impolite - I certainly didn't mean to be >rude. > >I was seeking to understand the meaning of the previous email so as to >know whether or not there wold be enough time for me to experiment a bit >with an improved parser. > >Simon > >On 3 Oct 2013, at 19:00, Robert Larice <Rob...@t-...> wrote: > >> Simon, >> >> as a matter of course one should have used a >> lexer plus parser for the front-end. >> >> the issues are different ones. >> >> how to write a parser if the syntax is not exactly known ? >> >> how to inject such a change into a living organism, >> which ngspice is, without breaking it ? >> >> we have already more than one parser in ngspice, >> at places where the syntax was clear enough. >> >> due to said difficulties, we have so far >> *not* used a parser in the inpcom.c front-end, >> but chosen to attack the problem with loads >> and loads of tiny rewrites which have >> been and will be thrown at inpcom.c >> >> at least *my* hope so far is, inpcom.c might >> one day be rewritten into such a simple >> and easy understandable thing, that one >> could at least in theory really risk to >> replace it with a parser. >> >> ---- >> >> concerning your somewhat impolite messages, >> and `request' for a `time line': >> >> this is open source, maintained by volunteers. >> >> things develop and improve if >> 1) maintainers offer spare time >> 2) users offer precious bug reports and >> test cases. >> >> ---- >> >> remembering 2) >> Thank you very much for your test cases ! >> keep them coming, >> >> Robert >> >> Simon Chang <sim...@ip...> writes: >> >>> Hi Holger, >>> >>> By the way, are you familiar with lex and yacc? >>> >>> I've been looking into these - it might be a more reliable way of >>> pre-processing. >>> >>> Hopefully I'll get a chance to look into this and write back. >>> >>> Simon >>> >>> On 03/10/2013 14:20, "Holger Vogt" <hol...@un...> wrote: >>> >>>> Simon, >>>> >>>> there is a new inpcom.c in git. >>>> Attached you will find the test cases working, and the intermediate >>>> output generated. >>>> >>>> Holger >>>> >>>>----------------------------------------------------------------------- >>>>--- >>>> ---- >>>> October Webinars: Code for Performance >>>> Free Intel webinars can help you accelerate application performance. >>>> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the >>>>most >>>> from >>>> the latest Intel processors and coprocessors. See abstracts and >>>>register > >>>> >>>>http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.cl >>>>ktr >>>> k_______________________________________________ >>>> Ngspice-devel mailing list >>>> Ngs...@li... >>>> https://lists.sourceforge.net/lists/listinfo/ngspice-devel >>> >>> >>> >>> >>>------------------------------------------------------------------------ >>>------ >>> October Webinars: Code for Performance >>> Free Intel webinars can help you accelerate application performance. >>> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the >>>most from >>> the latest Intel processors and coprocessors. See abstracts and >>>register > >>> >>>http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clk >>>trk >>> _______________________________________________ >>> Ngspice-devel mailing list >>> Ngs...@li... >>> https://lists.sourceforge.net/lists/listinfo/ngspice-devel >> >> >>------------------------------------------------------------------------- >>----- >> October Webinars: Code for Performance >> Free Intel webinars can help you accelerate application performance. >> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the >>most from >> the latest Intel processors and coprocessors. See abstracts and >>register > >> >>http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clkt >>rk >> _______________________________________________ >> Ngspice-devel mailing list >> Ngs...@li... >> https://lists.sourceforge.net/lists/listinfo/ngspice-devel > |