Changes between v2.10 and v3.1
- Hardware: Intel CPU.
- Software: OS X 10.6.8 or later.
- Refinements to choice of linear grid tickmark positions by plot command.
- Handles invalid values of 'xdelta' and 'ydelta' argument for plot command.
- Add ':' to the list of characters that may appear in variable names so that expressions such as '$&v(vss:10:2)' work as expected.
- B-source identifies token responsible in syntax-error message.
- Parsing of B-source expressions involving constants 'e' and 'pi'.
- Re-enable 'nodesets' command.
- Improvements to tickmark choices for graphs with linear scales.
- Printing word lists now uses 'moremode'.
conj(x)command line interpreter function to calculate the complex conjugate of its argument.
optimisecommand detects and reports more error conditions.
- Refactor modulo '%' operator to use fmod().
- Quartz_SetLinestyle() now traps errors.
- Change text window scrolling code to work better on MacOS 10.14+
- Formatting of 'tabbed' rawfiles when vectors have mismatched lengths.
- Crash in
gathercommand when 'map' has more elements than 'dst'.
- Crash in
scattercommand when 'src' is complex.
- Helpbook behaviour in MacOS 10.14+.
- Some invalid arguments cause rnd() to freeze.
- Crash using plot with Quartz viewport when executable is invoked directly from a shell.
- Add 'multiplot' option to 'plot' command to allow pointplots and lineplots on the same graph.
- Modify FFT-based routines to use vDSP where possible.
- Improve error-reporting for some types of syntax error and the specificity of certain error messages.
- Enable use of '/dev/null' as output file.
- Fix dependence of dp in rusage values on numdgt.
- Plot style 'combplot' draws vertical lines to the x-axis instead.
- Implement Spice 2 compatibility described in §4.4.2 of User Guide.
- Paging of lines output from 'echo'.
- Intermittent console redraw-lag.
- Console window should be either behind all or infront of graph windows.
- Stop allowing ']' to close '(' without when evaluating command line expressions.
- Prevent 'compose' clobbering an existing vector.
- Error trapping in fopenResolvingAliases()
- Memory leak in FFT functions invoking vDSP.
- displayWriteBuffer() now traps nil values for str.
- 32-bit binary removed from application bundle.
- Upgrade random number generator used throughout to SFMT19937 (SIMD oriented Fast Mersenne Twister).
Increase range of valid arguments for
rnd()function to [0, 253].
- Double speed and halve peak memory used for FFTs (and IFFTs) of real vectors.
- Masked multiplier suffix in graph cursor label for some negative values.
- Memory leak due to redundant console '-init' invocation.
- Behaviour of
repeatloops nested inside blocks exited with '
- Startup crash on macOS versions prior to 10.10.
composecommand options to realise a random vector with elements drawn from user-specified cumulative distribution function (CDF).
cumsum()function. Calculates cumulative sums with extended precision.
fftconv()function to convert between packed and complex format for
fft()/ifft()of a real vector.
gathermodified so that values are now added, instead of copied, to the destination vector elements.
.includedirective now allows quoted filenames.
constplot physical constants have been updated to their CODATA 2017 recommended values.
- MacOS file aliases are now resolved when opened by commands and directives. (OS versions macOS 10.10 and later only.)
Speed and accuracy of the
- Detection and reporting of inconsistent scales by interpolate() and other functions that share the interpolation code has been improved.
dpolygreecan now be set to '
Redundant information 'dims=' removed from
displaycommand output for one-dimensional vectors.
- Help Book updated to include link to tutorials.
ylimitmodifiers to the
plotcommand now define the clipping box without adding an extra pixel 'for luck' all round.
- Formatting of
- Various minor issues associated with the
- Off-by-one error in
rnd()function maximum warning message.
- Vector v_link2 issue in
- Low probability data-races and potential thread-safety issues.
- Memory leak associated with using
- Lack of error message when assignments have no RHS, e.g. '
let x ='.
- Inconsistency between sign of
imag()part of real
ifft()functions and the documented conventions.
- Activate invokes 'Bring All to Front'.
- Issues with
- Crash when update unarchiving failed.
- Lock-up when launching Help Viewer from the Help menu. (High Sierra issue.)
- Update to BSIM4.4.0.
- Crash in -updatePenSizeMenu reported with OS X 10.13.1
- Crash when executing 'cd #' reported with OS X 10.13.2
- The 'File > New' template now lives in the 'Application Support' folder and can be customised.
- Improved handling of, and warnings for, closely separated breakpoints.
- Improved performance when constructing symbol tables for large netlists.
- Improved reporting of errors and their location.
- Uninitialised values in
- Inappropriate dash-substitution and spelling-correction by the console CLI.
- Crash in error message code. [Build 328]
- New command
srandomto control seed used for random number generation.
- Improvements to code that associates error messages with line numbers and filenames.
- Window activation behaviour when there are multiple graphs open.
- TRA model sometimes set breakpoints earlier than the current time.
- Cmd-. did not work like ctl-C under Sierra.
- Calculation of output impedance tf analysis.
- Sign conventions: for 'p' for Vsource instances and 'v' for Isource instances.
- Memory leak when a graph window is closed.
- Not applicable.
- Sweep iteration limit (itl2) default value.
- Crash when fft()/ifft() operates on a real vector.
- Crash when 'plot v(1,2,3)' is used as a command.
- Crash when 'unset numdgt' is used as a command.
- Not applicable.
- Sign of power dissipated by PNP transistors.
- User-defined function definitions can sometimes be deleted inappropriately when a new function is defined.
- Sierra bug that caused a crash when invalid scale values are entered into a print dialog panel.
- Support UTF8 characters in the title bar of graph windows.
- The 'unset simvar' command now restores the simulator variable for the current task simvar to the default value specified in the User's Guide, instead of zero.
- Premature deletion of circuit state affecting information available with 'show' command. (Introduced in v3.1.11)
- Improve behaviour when executable is used as command line tool.
- Modify parsing of .options, etc. to be more tolerant of numerical values with trailing garbage, e.g. 'CJ=.2MF/M^2'.
- Modify back-quote evaluation to use posix_spawn(2) instead of vfork(2).
- Improve error reporting for 'alter', 'altermod' and various other commands.
- Include error messages for continuation and .include lines in 'listing' display.
- Add HiSIM2 mosfet device (version 2.8.0) as level 61.
- Update BSIM4 device to version 4.8.0 of model.
- Update BSIM4 SOI device to version 4.3.1 of model.
- Update HiSIM-HV device model to version 2.2.0 of model.
- Improve parsing of expressions involving the comma operator, e.g. 'let z = 1,2'.
- Improve naming of temporary files to ensure uniqueness.
- Add warning when 'tran' analysis does not specify a TMAX value larger than (TSTOP - TSTART)
- Crash when subcircuit definition is empty.
- Crash when 'alter' is invoked with complex arguments.
- Crash when 'tran' analysis TMAX value is smaller than (TSTOP - TSTART)
- Crash when 'rspice' command is invoked.
- Incorrect line-break character used in the 'news' file.
- Back-quote evaluation could not be interrupted with Command-., etc.
- Unreliable detection of duplicate subcircuit instances.
- Some small memory leaks.
- Behaviour of 'aspice' command.
- Error in LTRA/RLC model. [Build 317]
- Improve the way interpolation handles NaN values.
- Crash when redirection has more than one argument.
- Behaviour of 'noprintscale' setting.
- Warning when subcircuit has empty definition.
- Crash when subcircuit has empty definition.
- Self-update mechanism MITM vulnerability.
- Compatibility with Bug-reporter-v04.
- Crash when using 'compose' command create linear vectors.
- Improves appearance of plots of saw-tooth waveforms by limiting the mitre extent at joins.
- Text layout for 'About..' window.'.
- Behaviour of 'xcompress' modifier for the 'plot' command.
- Command 'gather' command copied all mapped values when the map vector is shorter than the source.
- Command 'applescript' ignored the '-r' argument.
- Intermittent crash when creating new graph windows, only seemed to affect El Capitan.
- Smoothing for graphs of vectors with many points.
- Distortion analysis scales incorrectly assigned log/lin scale types.
- Distortion analysis evaluation of some partial derivatives.
- Parsing of paths containing multibyte characters.
- Update const values to CODATA (2014) values.
- Issue error message when '.ends' argument does not match open sub circuit definition.
- Improved diagnostic messages when creating/populating application support directory fails.
- Add m2wx85.cn to NSExceptionDomains to override ATS defaults for OS X 10.11.
- Minor improvements to the crash reporter facility.
- Imprecise symbol positioning for 'pointplot' style graphs.
- Colour PostScript hardcopy 'pointplot' style graphs did not have coloured points.
- Crash when invalid i/o redirection was appended to commands.
- Error message for invalid 'reshape' dimensions.
- Crash reports include last front-end command.
- Process receives 'do script' AppleEvents without waiting for extra carriage returns.
- An expression involving semicolons and multiple syntax errors no longer causes crashes.
- Comparison for inequality with complex values is made correctly.
- Improved behaviour when errors are detected during subcircuit expansion. [Build 303]
- Corrected text positions for default hardcopy device (plot5).
- Cured crash when a solitary '#' is used as a command.
- The 'hardcopy' command now has an option to emit SVG.
- Quartz driver now uses linestyle2 correctly when a single curve is being plotted.
- Icon for help book updated.
- Fixed leak in 'hardcopy' demand, which also now displays the final curve.
- Traditional 'scalar' pole-zero analysis now creates scalars, not single-element vectors.
- Universal binary gives choice of 64- or 32-bit mode execution.
- Refactored using Cocoa framework with separate threads for GUI and Spice engine.
Updated interface, including:
- 'New' and 'Open Recent..' File menu items.
- 'Format' menu for setting font and line-width properties.
Preferences panel with settings that include:
- default directory;
- 'Repeat' or 'Accent Menu' behaviour when keys are held down;
- console text and background colours;
- graph background and anti-background colours;
- external editor helper-application;
- default folder;
- enabling/controlling opening of HFS+ file-paths to assist with backwards compatibility with MacSpice 2 scripts;
- automatic checks for updates;
- rendered with Quartz instead of QuickDraw;
- simplified cursor modifiers;
- new legend layout algorithm;
- units displayed with axis labels;
- line thickness factors and dash patterns used for various parts of graphs can be modified by setting the 'linestyleN' variables.
- unicode symbols (even those represented by composed character sequences) for the $pointchars variable used by 'pointplot' plots;
- high-precision placement of symbols on pointplot style graphs.
- Cocoa-style command-completion. (Type the ESC or F5 keys to use this.)
- Console text and graphs now act as sources for drag-and-drop actions.
- Added Reverse Graphs item to Window menu. This reverses the order of non-miniaturised graph windows, this is useful when the default most-recent-on-top order is inappropriate, e.g. when reviewing the results of scripts that produce several graphs.
- Confirmation dialog to prevent accidental loss of work if MacSpice is asked to quit while a script is running or when there is unsaved data.
- Add a "Don't sleep while processing" checkbox to the Preference Panel also define 'nosleep' variable. These allow control of whether OS X 'idle sleep' is deferred while scripts are running.
- Improved AppleScript support.
- Dragging files and folders to the console pastes their path.
- Improved text systems, including
- Unix-style file-paths instead of HFS+ paths.
- Compatibility with the Unicode character-set and utf-8 encoding.
Improved simulation engine and command line interpreter, e.g.:
- Improve handling of low- and no-memory error conditions.
- Improve accuracy of rusage memory report.