diff --git a/ChangeLog b/ChangeLog index c188f5f07..2d7e72b76 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,109 +1,135 @@ -2003-07-18 Vera Albrecht +2003-07-25 Paolo Nenzi - * src/{main.c,tclspice.c} - src/frontend/{Makefile.am,control.c,control.h,display.c,dotcards.c, - hcomp.c,hpgl.c,outitf.c,parse.c,postcoms.c,postsc.c,runcoms.c, - spiceif.c,variable.c,variable.h,parser/complete.c,plotting/pvec.c} - src/include/{cktdefs.h,ngspice.h} - src/misc/{ivars.c,string.c,stringutil.h} - src/spicelib/analysis/{acan.c,ckt.h,dcop.c} - src/spicelib/devices/bsim3/b3temp.c - src/spicelib/parser/{ifnewuid.c,inp2dot.c,inperror.c} : - Memory leaks and some WINDOWS compile fixes. + * src/main.c: Studied Vera's main.d and introduced changes + following her advices. + + * src/frontend/vectors.c: Applied Vera patch. + +2003-07-23 Paolo Nenzi + + * A lot of changes that touched too many files to mention each one. + I have introduced the xspice code into ngspice. I take xspice code + from tclspice (0.2.12). Since tclspice started as a branch of + ngspice, I have applied the patches developed for it that correcting + some bugs common to tclspice and ngspice. What follows is the + extract of tclspice Changelog file that describes the changes: + + 2003-07-18 Vera Albrecht -2003-07-17 Stefan Jones + * src/{main.c,tclspice.c} + src/frontend/{Makefile.am,control.c,control.h,display.c, + dotcards.c, hcomp.c,hpgl.c,outitf.c,parse.c,postcoms.c, + postsc.c,runcoms.c, spiceif.c,variable.c,variable.h, + parser/complete.c,plotting/pvec.c} + src/include/{cktdefs.h,ngspice.h} + src/misc/{ivars.c,string.c,stringutil.h} + src/spicelib/analysis/{acan.c,ckt.h,dcop.c} + src/spicelib/devices/bsim3/b3temp.c + src/spicelib/parser/{ifnewuid.c,inp2dot.c,inperror.c} : + Memory leaks and some WINDOWS compile fixes. - * src/frontend/{subckt.c,vectors.c} - src/spicelib/analysis/dctran.c - src/spicelib/parser/inperror.c - src/xspice/idn/idndig.c src/xspice/mif/mif_inp2.c : - More memory leak fixes + 2003-07-17 Stefan Jones - * configure.in src/xspice/xspice.c : - Fix compile problems with garbage collector + * src/frontend/{subckt.c,vectors.c} + src/spicelib/analysis/dctran.c + src/spicelib/parser/inperror.c + src/xspice/idn/idndig.c src/xspice/mif/mif_inp2.c : + More memory leak fixes - * configure.in : - Change --enable-tcl to --with-tcl[=dir] for non-std - install setup. + * configure.in src/xspice/xspice.c : + Fix compile problems with garbage collector -2003-07-17 Steven Borley - * src/frontend/resource.c src/frontend/parser/complete.c - src/spicelib/devices/txl/txlload.c : - #ifdef fixes to get ngspice to compile on Mac OSX + 2003-07-17 Steven Borley -2003-07-16 Vera Albrecht + src/spicelib/devices/txl/txlload.c : + Fixed duplicate declaration of pool_vi_txl - * frontend/{device.c,parse.c,vectors.c,com_compose.c} : - More memory leaks closed in utility commands and functions. + 2003-07-16 Vera Albrecht -2003-07-16 Stefan Jones + * frontend/{device.c,parse.c,vectors.c,com_compose.c} : + More memory leaks closed in utility commands and functions. - * src/frontend/{com_compose.c,cpitf.c,device.c,subckt.c,vectors.c} - src/frontend/plotting/plotit.c src/include/ngspice.h - src/spicelib/parser/{inp2dot.c,inp2r.c,inpdomod.c,inpdpar.c,inpgmod.c,inppas3.c} : - Rest of the serious deck reader leaks, plus fixes for the last batch. + 2003-07-16 Stefan Jones -2003-07-15 Stefan Jones + * src/frontend/{com_compose.c,cpitf.c,device.c,subckt.c, + vectors.c} + src/frontend/plotting/plotit.c src/include/ngspice.h + src/spicelib/parser/{inp2dot.c,inp2r.c,inpdomod.c,inpdpar.c, + inpgmod.c,inppas3.c} : + Rest of the serious deck reader leaks, plus fixes for the + last batch. - * /src/frontend/{com_let.c,com_set.c,evaluate.c,parse.c,variable.c} - src/frontend/parser/complete.c : - Memory leaks plugged + 2003-07-15 Stefan Jones -2003-04-14 Stefan Jones + * /src/frontend/{com_let.c,com_set.c,evaluate.c,parse.c, + variable.c} + src/frontend/parser/complete.c : + Memory leaks plugged - * Make all the devices in src/spicelib/devices be built as - archives not shared libraries, and don't install them + 2003-04-14 Stefan Jones -2003-06-22 Stuart Brorson + * Make all the devices in src/spicelib/devices be built + as archives not shared libraries, and don't install them + + 2003-06-22 Stuart Brorson - * Finally got SPICE2 POLY stuff working. This involved lots of changes - in src/xspice/mif and src/xspice/enh. Particular changes were made in: - -- MIF_INP2A: re-arranged logic to fix parsing problems. - -- two2three_translate: fixed some stupid pointer problems. - -- etc. + * Finally got SPICE2 POLY stuff working. This involved + lots of changes in src/xspice/mif and src/xspice/enh. + Particular changes were made in: + -- MIF_INP2A: re-arranged logic to fix parsing problems. + -- two2three_translate: fixed some stupid pointer problems. + -- etc. - * Revamped src/xspice/icm/ and src/xspice/icm/icm_spice2poly - directories to enable build of POLY codemodel. Makefiles were - fixed, and some stuff was added to enable cmpp (from SPICE Opus) - to build the codemodel precursors correctly. (Note that you need - to download and install SPICE Opus to rebuild the codemodel - stuff. See src/xspice/icm/README for more details.) + * Revamped src/xspice/icm/ and src/xspice/icm/icm_spice2poly + directories to enable build of POLY codemodel. + Makefiles were fixed, and some stuff was added to enable + cmpp (from SPICE Opus) to build the codemodel precursors + correctly. (Note that you need to download and install + SPICE Opus to rebuild the codemodel stuff. See + src/xspice/icm/README for more details.) - * Hacked Makefile.am's for much of the directory hierarchy, particularly - for src/xspice/icm and src/xspice/icm/icm_spice2poly to build the POLY - codemodel correctly. Note that top level make still doesn't detect - changes in the xspice hierarchy; read the NOTES file for a workaround. + * Hacked Makefile.am's for much of the directory hierarchy, + particularly for src/xspice/icm and + src/xspice/icm/icm_spice2poly to build the POLY codemodel + correctly. Note that top level make still doesn't detect + changes in the xspice hierarchy; read the NOTES file for + a workaround. - * Added a SPICE netlist incorporating vendor models with SPICE2 - POLYs in tests/TransImpedanceAmp/. Running this model - successfully demonstrates that you have built the XSpice POLY - codemodel correctly and that life is good . . . . + * Added a SPICE netlist incorporating vendor models with + SPICE2 POLYs in tests/TransImpedanceAmp/. Running this + model successfully demonstrates that you have built the + XSpice POLY codemodel correctly and that life is good + . . . . - * Moved #define TRACE out of src/ngspice.h and made it a compiler - option (-DTRACE) invoked in src/Makefile when making spice.o. + * Moved #define TRACE out of src/ngspice.h and made it + a compiler option (-DTRACE) invoked in src/Makefile when + making spice.o. -2003-05-02 Stuart Brorson + 2003-05-02 Stuart Brorson - * Added #define TRACE to main.c for use in debugging. Added lots - of printf's in the code which are turned on by defining TRACE. - This is used to help figure out what the program is doing at each - step . . . . . + * Added #define TRACE to main.c for use in debugging. + Added lots of printf's in the code which are turned on + by defining TRACE. This is used to help figure out what + the program is doing at each step . . . . . - * Added lots of comments all over the source tree. This should - help explain what the prog is doing for future hackers. + * Added lots of comments all over the source tree. + This should help explain what the prog is doing for + future hackers. - * Fixed parser to allow POLY attributes in dependent sources - (major changes in src/frontend/subckt.c, as well as move location - of call to ENHtranslate_poly in src/frontend/inp.c) + * Fixed parser to allow POLY attributes in dependent + sources (major changes in src/frontend/subckt.c, as + well as move location of call to ENHtranslate_poly in + src/frontend/inp.c) - * Fixed bug in device init files (src/spicelib/devices/*init.c) - so that Deviceinfo structures operated with XSPICE. + * Fixed bug in device init files + (src/spicelib/devices/*init.c) + so that Deviceinfo structures operated with XSPICE. - * Fixed nasty malloc problem in src/xspice/mif/mifgetmod.c which - casuedfrequent segfaults (when compiled with XSPICE). - + * Fixed nasty malloc problem in src/xspice/mif/mifgetmod.c + which casued frequent segfaults (when compiled with XSPICE). + 2002-01-03 Paolo Nenzi * acconfig.h: added define needed for Windows and some aesthetic diff --git a/src/frontend/vectors.c b/src/frontend/vectors.c index 37dd4db53..110e0801b 100644 --- a/src/frontend/vectors.c +++ b/src/frontend/vectors.c @@ -7,7 +7,7 @@ Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group * Routines for dealing with the vector database. */ -#include +#include #include #include #include @@ -601,33 +601,28 @@ vec_free(struct dvec *v) /* Now we have to take this dvec out of the plot list. */ if (pl != NULL) { - if (pl->pl_dvecs == v) - pl->pl_dvecs = v->v_next; - else { - for (lv = pl->pl_dvecs; lv->v_next; lv = lv->v_next) - if (lv->v_next == v) - break; - if (lv->v_next == NULL) - fprintf(cp_err, - "vec_free: Internal Error: %s not in plot\n", - v->v_name); - lv->v_next = v->v_next; - } - if (pl->pl_scale == v) { - if (pl->pl_dvecs) - pl->pl_scale = pl->pl_dvecs; /* Random one... */ - else - pl->pl_scale = NULL; - } + if (pl->pl_dvecs == v) + pl->pl_dvecs = v->v_next; + else { + for (lv = pl->pl_dvecs; lv->v_next; lv = lv->v_next) + if (lv->v_next == v) + break; + if (lv->v_next == NULL) + fprintf(cp_err, + "vec_free: Internal Error: %s not in plot\n", + v->v_name); + lv->v_next = v->v_next; + } + if (pl->pl_scale == v) { + if (pl->pl_dvecs) + pl->pl_scale = pl->pl_dvecs; /* Random one... */ + else + pl->pl_scale = NULL; + } } tfree(v->v_name); - if(v->v_length) { - if (isreal(v)) { - tfree(v->v_realdata); - } else { - tfree(v->v_compdata); - } - } + if (v->v_realdata) tfree(v->v_realdata); + if (v->v_compdata) tfree(v->v_compdata); tfree(v); return; } @@ -652,10 +647,10 @@ vec_eq(struct dvec *v1, struct dvec *v2) rtn = TRUE; else rtn = FALSE; - + tfree(s1); tfree(s2); - return rtn; + return rtn; } /* Return the name of the vector with the plot prefix stripped off. This diff --git a/src/main.c b/src/main.c index 9ee4a72b2..fddd37606 100644 --- a/src/main.c +++ b/src/main.c @@ -5,6 +5,7 @@ Author: 1985 Wayne A. Christopher The main routine for ngspice */ + #include #include @@ -167,9 +168,12 @@ void com_loadsnap(wordlist *wl) { return; } void com_savesnap(wordlist *wl) { return; } #endif +#endif /* SIMULATOR */ + +#ifndef SIMULATOR #ifdef XSPICE -/* saj to get nutmeg to compile, not nice but necessary */ +/* saj,dw to get nutmeg to compile, not nice but necessary */ Ipc_Tiein_t g_ipc; Ipc_Status_t ipc_send_errchk(void ) { Ipc_Status_t x=0; @@ -291,6 +295,12 @@ append_to_stream(FILE *dest, FILE *source) fwrite(buf, i, 1, dest); } +#ifdef SIMULATOR +extern int OUTpBeginPlot(), OUTpData(), OUTwBeginPlot(), OUTwReference(); +extern int OUTwData(), OUTwEnd(), OUTendPlot(), OUTbeginDomain(); +extern int OUTendDomain(), OUTstopnow(), OUTerror(), OUTattributes(); +#endif /* SIMULATOR */ + int #ifdef HAS_WINDOWS xmain(int argc, char **argv) @@ -305,9 +315,7 @@ main(int argc, char **argv) #ifdef SIMULATOR int error2; - extern int OUTpBeginPlot(), OUTpData(), OUTwBeginPlot(), OUTwReference(); - extern int OUTwData(), OUTwEnd(), OUTendPlot(), OUTbeginDomain(); - extern int OUTendDomain(), OUTstopnow(), OUTerror(), OUTattributes(); + static IFfrontEnd nutmeginfo = { IFnewUid, IFdelUid,