ngspice/notes/Linux.changes

165 lines
7.7 KiB
Plaintext
Raw Normal View History

2000-04-27 22:03:57 +02:00
So, this is third version of Spice3f5 for RedHat Linux 2.6. I took re-ported
version of spice3f5 and made changes to fix some bugs. If someone want to help,
please send me "newer" versions wtih more bugs fixed.
I hope that those who wnat to have good spice under Linux (no more Win95)
will find this port useful and maybe help each other to improve it.
There was a lot of bugs in previus versions, generally in command parsiong routines.
I copy all original files to *.orig and marked all my changes with /* MW. ... */
I changed cp/bquote.c and cp/var2.c to handle some special situations
and commands like $foo, `foo`. Also problems with 'gets()' (in sconvert and
inp.c) function are fixed. I chnaget it to fgets(buf, BSIZE_SP, stdin) for
safe use.
Globing ('[]{}?*') didn't work at all. Now it is removed (form cp/glob.c).
We don't need this features in spice.
Initial command parsing (cp_lexer() from cp/lexical.c) strip all commas from
strings. This was in conflict with aritchetic expressions.
com_let() in fte/postcoms.c caused core dump in some situations - fixed.
Editor problems. Com_edit() in fte/inp.c failed occasionally, when it
tryies to fclose() fp second time. Now inp_spsource() always closes fp, and
other calling functions do not. It seems to work right now.
vec_get() (fte/vectors.c) has some problems with devices parameters and
memory leaks. I hope that my changes fixed it at all.
I have to add INPinsertNofree() in inp/inpsymt.c. This is special case for
routines from fte/spiceif.c and fte/outitf.c - It does not do free() for
any pointers that it gets. This may cause small memory leaks, but I don't
know how to make it better.
com_alter_common() (fte/device.c) caused segmentation faults ocassionally,
due to double free the same pointers. It works right now.
cp_lexer() corretly gets ^V, ^D, and ESC. I have to #include ioctl.h file in
cp/lexical.c and cp/complete.c
There were problem with com_iplot() if it was called when X11 does not run.
I have to add additonal check to gr_pmsg() (from fte/graph.c) and now it
works fine.
Trace failed to display comlex data due to segmentation fault. Someone wants
to plot realdata even if given vector was complex. I changed gr_iplot()
(in fte/graf.c) and now it is fine.
There are some changes in os_linux.h and os_unix.h, but they are not mandatory,
I think. Also I have to add PI, and some other const. declarations in spice.h
They were needed somewhere. (why someone didn't used M_PI and so on instead ?)
In file fte/x11.c, was a prloblem with background color for plot windows. I
changed init_colors() and now we can use color0 variable.
Spice3f5 has a few memory leaks. I suppose that some vectors and maybe other
things are simple 'lost' somewhere. If you (just like me) trying to make this
program better, take care about this also.
Generally I didn't do much with graphisc interface, because it seems to work
quite good. Only problem is core dump, when cliking mouse on help screen.
Manuals are sometimes in error. Vector creation by [ el. el. ...] is not
supported I think. For indexing we must use [low , hi]. For setting 'list'
variables - ( el. el. ... ). Indexing also doesn't work with let xx[...] = yy.
Someone should change these f... manuals.
And now for those who think about makeing this program better. There is a big
problem with memory, when you run a few simulations. Destroy commad does not
free much memory, and after some time you can see that spice uses 3MB, when
you just clean all vectros. Also I don't know how to unload a circuit -
spice hold all sourced files in the "deck" list and there is no way to free
it from command line (or maybe I didn't find any).
Unfortunatelly I am sure that these are not all off the problems
with this program, but now I can use it quite effectively. If anyone will
know anything about bugs-free, good, commannd driven simulator for Linux
__PLEASE__ let me know.
For easer use I made special debug file (conf/debug). I used it for makeing
"debug" version of spice with efence library and -g option. Executable files
from this are located in spice3f5/objdbg/bin, when you do 'util/build linux debug'.
I am an electronic designer, so I really need a good working simulator...
Original readme file is given below.
Michael Widlok (widlok@uci.agh.edu.pl)
Uniersity of Mining and Metallurgy
Krakow, Poland.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is my (re-)port of Spice3f4 to Linux version 2 (I am not the same
person who ported it before). It also wraps in the latest official
pre-3f5 patches from Berkeley I could find (found in
sp3f4.patch.tar.Z). Support for the MFB interface using the Linux
termcap library and some various Linux features have been ported.
This was not done for the hell of it, but it seemed that something
broke due to some Linux/system/library changes, so I decided to try
porting it from scratch. In fact, if you don't have any problems with
the previous port, your probably fine then. However, if you do have
problems (e.g. exiting Spice leaves you in uppercase mode), or want
MFB for some reason, then try this. It seems to work here.
Basically, I started out with sp3f4.kit.tar.Z. Then, I applied the
most recent patches contained in sp3f4.patch.tar.Z and wrote new Linux
build files: "linux" and "os_linux.h" (some minor mods to the source
were also necessary, protected with linux conditionals).
Since the previous spice3f4.tar.gz port file was generally available,
there was no point in duplicating source, so I just diffed from the
spice3f4.tar.gz tree to freshly ported tree and edited or removed a
few of the diffs. A few of the changes made in spice3f4.tar.gz have
been reverted to the distribution defaults, but one notable change is
that performing the install step will install the necessary files into
/usr/local/spice. You'll need to add /usr/local/spice/bin to your
shell path. See the file conf/linux to change the installation
location (this location gets hard-coded in the spice binaries).
This is a patched file of the original readme.Linux from
spice3f4.tar.gz, and the previous contents by Jeff@EE.Ryerson.Ca is
given below. Just follow the below instructions, so you should be
able to safely do:
./util/build linux
./util/build linux install
You should then find the spice binaries and library files
in e.g. /usr/local/spice. Example files and the man pages
are not installed, so you might want to copy them by hand.
Andrew Veliath (veliaa@rpi.edu)
January 25, 1997
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is my port of Spice3f4 to Linux. It required a few more changes
than the porting document indicated would be necessary, mostly to do
with supported/unsupported functions in Linux libc & libm.
I've tried to make these changes in as as portable a way as possible,
so it should build cleanly on other Unicies, however I've removed the
MS-DOS support so the tarred and gziped source fits on one disk.
To build spice3, first have a look in the file readme, but you should
be able to just do...
./util/build linux
./util/build install linux
Note that there is a modifyer "gcc" you can try if you have trouble, but
it claims to work around some obscure bug in gcc that I'm positive got
fixed eons ago. To use it anyway, do ./util/build linux gcc.
I found this source through archie, (look for spice3f3.tar.Z, and then
patched it to 3f4 with patches from ic.berkeley.edu), I assume that the
ftp site I got it from has read thier license from Berkeley, which if
it's the same as the 3e2 license states that the holder can distribute
copies free of charge provided it does not fall into hands unfriendly
to the U.S. So... I guess if that's you, please destroy all copies of this
you might have!
Jeff@EE.Ryerson.Ca