release-notes-v0.9.97.txt 4.67 KB
After a long and at times arduous period here's v0.9.97 of gSpiceUI. This is a
substanctial update from the previous release. With hindsight it would have
been better to have released version 1.0 and have made this version 2.0. Many
of the changes are architectual and wont be apparent to the user. Hopefully
this release will just work better overall.


The main changes are in the design of the simulation classes. There are two
implications to this. Firstly, the simulation parameters are more effectively
transferred between the simulator engine types ie. NG-Spice and GNU-Cap. If you
swap simultaions engines, as far as possible the new simulator is automatically
setup ready to go. Secondly, the improved design will allow inhancement. It was
getting to the point where the code was so complicated that it was becoming
overly difficult to maintain it let alone enhance it.


The main reason for this release is that I've been using it in anger for the
past week or so and it seemed to work OK. So, before breaking it again I
thought I'd release a version. It's not perfect but hopefully it's an
improvement on the previous releases (it's so long since I used any of them I'm
no longer in a position to judge). If not, the interval between new releases
should be back to months and not years. Use it for good and not evil.


What follows is a sub-set of the changes, in reality this list is all that I
recorded/remembered doing :

 * Data is now transferred from a NG-Spice simulation object to a GNU-Cap
   object (and visa-versa) by design rather than happenstance.
 * DlgPrefs is no longer an attribute of FrmMain but is created when needed.
 * Tidy up PrcGNetList class source files.
 * Some changes to the installation instructions for wxWidgets (ie. Install).
 * Remove the restriction that the transient analyse must have a signal source.
 * Modified the class DlgGcpCfgGEN so that it is derived from wxDialog only and
   not CmdGnuCapGEN as well.
 * Modified the class DlgGcpCfgOPT so that it is derived from wxDialog only and
   not CmdGnuCapOPT as well.
 * Modified the class DlgNgsCfgSrc so that it is derived from wxDialog only and
   not CpntNgsIndSrc as well.
 * Modified the class DlgNgsCfgOPT so that it is derived from wxDialog only and
   not CmdNgSpiceOPT as well.
 * Bug Fix : The temporary file management strategy indicator wasn't being
             stored in the configuration file. Changes to FileTasks class and
             DlgPrefs class.
 * Modified the Component class to handle TABs as field separators in component
   definitions.
 * Updates to the About dialog.
 * Updates to the command line usage message.
 * Update the tar target in the root Makefile.
 * Modified DlgNgsCfgOPT so that it inherits CmdNgSpiceOPT instead of having an
   instance as an attribute.
 * Modified DlgNgsCfgSrc so that it inherits CpntNgsIndSrc instead of having an
   instance as an attribute.
 * Updates to the class ConvertType. Can now specify a resolution for
   conversions from floats to strings.
 * Updates to the About dialogue contents particularly the licence details.
 * Major re-think and overhaul of the Simulation class to make it easier to
   understand and maintain. It's been replaced with the structures SimnBase,
   SimnNgSpice and SimnGnuCap.
 * Many classes have been re-defined as structures so that most of they're
   attributes have public access. This increases they're easy of use since
   attributes can be accessed directly rather than via inline function calls.
   (It would be nice if C++ had a mechanism for defining attributes as
   read-only to the outside world.)
 * Created a new simulation structure SimnBase from which the new structures
   SimnNgSpice and SimnGnuCap inherit. These structure replace the single
   Simulation class which had become far too complicated.
 * Simplify NetList class.
 * Updated Component class, changed type to structure, it now permits public
   access to most attributes.
 * Added units of pico-seconds (psec) to the units of time in class ChoUnits.
 * Transient analyses may now be run without having to specify a sweep source.
 * Integrated the command classes into the simulation engine process classes.
 * Created new command classes CmdGnuCapOP, CmdGnuCapTR and CmdGnuCapFO for
   parsing and formatting GNU-Cap OP, Transient and Fourier commands.
 * Created new command classes CmdGnuCapPR and CmdGnuCapGEN for parsing and
   formatting GNU-Cap Print and Generator commands.
 * Created new command classes CmdNgSpicePR for parsing and formatting NG-Spice
   Print commands.
 * Created a new structure CpntNgsIndSrc which inherits from the Component
   structure. It processes NG-Spice independent voltage or current source
   definition commands.
 * And others things that I've forgotten.