v2.7 PATCH LEVEL 30

Fix crash which can occur when attempt is made to write to a file with adverse permissions.

v2.7 PATCH LEVEL 29

Improve the evaluation of shell variables. Quite elaborate expressions like


	MacSpice 2 -> set foo = ( $&@vin[coeffs] )
	MacSpice 3 -> set bar = $&@vin[coeffs][3]

now seem to work as one would expect.

Clarify wording of error messages for cases when one tries to read input-only, or set output-only, variables.

Try to prevent devices returning garbage for sensitivity values if 'show all : all' is used before performing a sensitivity analysis.

Modify handling of AppleEvents so a file of unknown type is treated as a source file. This makes using Textedit as the helper for the 'edit' command a bit less painful under OS/X. I might restrict this behaviour to files with specific (e.g. '.cir') extensions in the future.

v2.7 PATCH LEVEL 28

OS/X: The edit command will now launch the appropriate editor helper-application if it is not already running.

Make some minor changes to the breakpoints code. This should reduce memory churning and turnover.

v2.7 PATCH LEVEL 27

Improve evaluation of model equations in MOS1 and MOS2, MOS3, MOS6 devices. This should prevent lockup problems that arise due to underflow and result in improved accuracy.

Add code to recognise when a node has a bad (i.e. fp-exception) value and treat it as non-converged. This should never happen, but when it does MacSpice now behaves better.

Improve clarity of some error/warning messages.

v2.7 PATCH LEVEL 25-26

Fix a problem with the console. It no longer breaks when it contains many short lines.

Repair evaluation mechanism for frontend list variables so $plots[3] now works. Incidentally, expressions like


    MacSpice 29 -> set bar = $&v(4)[500]

are evaluated by creating a list of all the elements of v(4) and then counting along to get the 500th.


    MacSpice 30 -> let bar = v(4)[499]
    MacSpice 29 -> set foo = $&bar

is a much much faster way.

v2.7 PATCH LEVEL 24

Improve the label positions on Smith grids.

Fix some leaks associated with 'set foo = expression' and evaluation of 'shell' variables such as $&foo.

Add a warning when .tran analysis has no TMAX parameter specified.

v2.7 PATCH LEVEL 23

Implement the 'altermod' command and fix some bugs in the code used to lookup models by name. If bc107 is a bjt model 'print @bc107[bf]' now works as it should do. The error messages for 'alter' and 'altermod' are not tricky to interpret because the usage syntax is vague. I may subsume 'altermod' into 'alter' in the future, if I can think of an elegant way to do it.

v2.7 PATCH LEVEL 22

Upgrade the PostScript driver to use Werner Hoch's colour version. Use 'set hcopypscolor=true'. The variables 'hcopyheight' and 'hcopywidth' set the image height and width in points. For more info see the example file pscolor.

Improve the speed of drawing graphs with many points.

Increase the number of colours available to the Quickdraw driver and all these to be redefined by setting the colorN variables.

Fix a bug in the 'compose' command.

(OS X only) Fix a crash in polytrans(). Another null pointer being dereferenced.

v2.7 PATCH LEVEL 21

Fix frontend bug when a vector is multiplied by a complex scalar.

(OS X only) Fix crash that occurs when <tab> is used to expand a non-existent history event.

v2.7 PATCH LEVEL 20

Fix crash when using 'method=trap maxord=1' and add a synonym 'method=euler' as a 'compatibility' option.

Replace vulnerable strncat() usage with a strlcat().

Inhibit unnecessary "interpolate() needed to extrapolate." warnings.

v2.7 PATCH LEVEL 19

Improve behaviour and error messages when translating spice2 polys which have syntax errors.

v2.7 PATCH LEVEL 18

Fix crash when mutual inductors refer to non-existent devices/nodes.

Fix crash in spcLinkRows when a nonexistent device/node creates an empty row.

Eliminate some redundant buffering associated with printnum().

Fix problem with the way command interpreter parses arguments.

Make ':lib:scripts:ExampleScripts:spec' work independent of whether units are set to degrees or radians

v2.7 PATCH LEVEL 17

Update models to BSIM4.4.0 and BSIMSOI3.2

Fix buffer overflow during creation of vectors with long names.

Fix problem taking log() of imaginary numbers.

Fix rare frontend leak when evaluating vector functions.

v2.7 PATCH LEVEL 16

Fix problem arising when a command is 'quoted' but contains no characters that actually need quoting.

Fix crash when an invalid rawfile is opened with 'load'.

v2.7 PATCH LEVEL 15

Fix problem that arises when the library path contains spaces.

Cure the fly-back lines that appeared when the graph of a two variable sweep, such as '.dc vds 0 10 .5 vgs 0 5 1' is redrawn.

Correct the way default saves work in files with batch commands.

Change printing of console so that it truncates, instead of wrapping, lines. Wrapping the lines caused more trouble than it was worth.

Revise some advisory messages to reflect the case sensitive nature of the command interpreter.

v2.7 PATCH LEVEL 14

Fix (OS/X 10.3) crash when mouse moves during print spooling.

Fix OS/X crash when 'show' is used without arguments.

Change some of the standard paths so they are absolute. This prevents the 'help' getting broken if 'cd' is used.

Overhaul the use of 'backslash quoting' so that history and command completion now work consistently. This will help people who have files with punctuation in the names.

Various fixes to the history expansion code: '!?foo?' now works; fix crash in ^foo^bar^;

v2.7 PATCH LEVEL 13

Redraw icons to look better for OS X.

Make y-axis label use rotated text.

Prevent commands like 'alter r1=10' causing 'no assignment found' error by making the tokeniser treat '=' like ';'.

Change sweep names from 'x-sweep' to 'x_sweep' because the former notation causes trouble when used in vector expressions.

R6 PATCH LEVEL 12 (beta)

Lines of text wider than the page margins are now wrapped instead of being truncated.

Fix problem with code that eliminates duplicate saves.

R6 PATCH LEVEL 11 (beta)

Correct one of Example files so it uses lower case interactive commands.

Improve general behaviour of 'linearize' to suppress spurious warnings and an infinite loop in an error condition.

Add TSTART to the tran analysis breakpoint list.

Correct and improve labelling of tickmarks on graphs.

Fix problem with sweep variable text introduced at PATCHEVEL 9

R6 PATCH LEVEL 10 (beta)

Fix intermittent crash caused by cp_wstrip(). This seems to have been due to an optimiser bug in the compiler.

Improve handling of frontend variables so that expressions like $&foo, $foo[-3], etc. now work better. However there is work to be done as useful expressions like $plots[3] which should work, don't. In fact, the whole 'set' framework not very elegant.

R6 PATCH LEVEL 9 (beta)

Tweak layout of graphs, and improve precision of drawings, give graph windows more informative titles. Hi-Res copy and printing issues addressed.

Make last point of NOISE analysis exactly equal to the specified upper frequency to avoid empty cycle on log graphs.

Add temperature and resistance to types of sweep available in DC analyses.

R6 PATCH LEVEL 8 (beta)

Fix problem with About Window caused by problems with string constants not being constant and CFSTR() getting muddled.

R6 PATCH LEVEL 7 (alpha)

Carbon version. Runs native on OS X.

Multiple resizable plot windows, at last!

Upgrade printing of graphs and console.

Improve appearance of 'About Window'.

Fix leaks in subckt processing and distortion analysis.

Fix crash caused by malformed spice 2 poly statements.

Facility to export PICTs with nice 'grouped' arrangement.

Vectors with more than ca 10,000 points now plot correctly.

Improve calculation of 'rusage' memory values.

Multiple plot windows, behave in a mac-like manner.

Improve accuracy of line-numbers displayed by 'listing'.

Fix bug in handling of commands like 'foo ;; bar'

Make last point of AC analysis exactly equal to the specified upper frequency to avoid empty cycle on log graphs.

Circuits with transmission lines resume tran analyses correctly.

PTparse() et al tweaked to prevent crashes with random text source file.

Improve accuracy of line-numbers displayed by listing.