幸运飞艇超稳计划群

MacSpice > Release Notes (Carbon)

Release Notes (Obsolete Pre-Cocoa Versions)

Changes between v2.9 and v2.10

system requirements:

Version 2.10.47

幸运飞艇超稳计划群enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.46

enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.45

enhancements:

bugs fixed:

Version 2.10.44

幸运飞艇超稳计划群enhancements:

bugs fixed:

Version 2.10.43

幸运飞艇超稳计划群enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.42

enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.41

enhancements:

bugs fixed:

Version 2.10.40

enhancements:

bugs fixed:

Version 2.10.39

enhancements:

bugs fixed:

Version 2.10.38

幸运飞艇超稳计划群enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.37

enhancements:

bugs fixed:

Version 2.10.36

幸运飞艇超稳计划群enhancements:

bugs fixed:

Version 2.10.35

enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.34

幸运飞艇超稳计划群enhancements:

bugs fixed:

Version 2.10.33

enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.32

enhancements:

bugs fixed:

Version 2.10.31

enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.30

enhancements:

bugs fixed:

Version 2.10.29

enhancements:

bugs fixed:

Version 2.10.28

notice:

enhancements:

bugs fixed:

Version 2.10.27

幸运飞艇超稳计划群enhancements:

bugs fixed:

Version 2.10.26

enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.25

bugs fixed:

Version 2.10.24

enhancements:

bugs fixed:

Version 2.10.23

enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.22

enhancements:

bugs fixed:

Version 2.10.21

幸运飞艇超稳计划群enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.20

enhancements:

bugs fixed:

Version 2.10.19

enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.18

幸运飞艇超稳计划群enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.17

幸运飞艇超稳计划群enhancements:

bugs fixed:

Version 2.10.16

enhancements:

bugs fixed:

Version 2.10.15

幸运飞艇超稳计划群enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.14

幸运飞艇超稳计划群enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.13

bugs fixed:

Version 2.10.12

幸运飞艇超稳计划群not released.

Version 2.10.11

enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.10

幸运飞艇超稳计划群bugs fixed:

Version 2.10.09

幸运飞艇超稳计划群bugs fixed:

Version 2.10.08

enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.07

enhancements:

bugs fixed:

Version 2.10.06

enhancements:

幸运飞艇超稳计划群bugs fixed:

Version 2.10.05

幸运飞艇超稳计划群enhancements:

bugs fixed:

Version 2.10.04

幸运飞艇超稳计划群enhancements:

bugs fixed:

Version 2.10.03

Enhancements:

Bugs fixed:

Version 2.10.02

Enhancements:

Bugs fixed:

Other changes:

Version 2.10.01

New 'Optimize' command which implements the Nelder-Mead Simplex method as described in:

The following frontend vector functions, which are often useful in optimization problems, have been installed:

integral():interpolates its argument onto the current scale and integrates the interpolating polynomial. The order is set by the variable 'ipolydegree'. Code is shared with deriv(), and both functions now require that their argument and its scale are real.
maximum():For a real argument, returns the maximum element in its argument. For a complex argument, returns the element with the greatest magnitude.
minimum():For a real argument, returns the minimum element in its argument. For a complex argument, returns the element with the smallest magnitude.
sortorder():Returns a vector whose elements are the positions of the elements in the argument after they have been sorted into increasing order using a stable method (mergesort).

backquoted text is now passed to /bin/sh for evaluation.

new 'applescript' command which compiles and executes applescripts.

Improved handling of Apple Events, e.g.

User interrupts (i.e. typing Command-'.') now set the variable 'interrupt'. This allows scripts that repeatedly execute analyses to behave politely. For example:


    unset interrupt
    while 1
        tran 1u 500u 0 4u
        if ($?interrupt)
            goto escape
        endif
    end
    label escape
    ...

New special variables:

Improved 'listing' command. This now displays text either as it will be interpreted (logical) or as it is in the file (physical/deck).

Command line expression parser now indicates the position where syntax errors arise.

Enhancements:

Fixed minor memory leaks associated with:

Bugs fixed:

Other changes:

Changes between v2.8 and v2.9

v2.9 PATCH LEVEL 33

Fix bug that prevented 'set nomoremode' having the desired effect, i.e. disabling the console pager.

Update BSIM4 model to version 4.6.0.

Enhance commands and functions so they handle (IEEE754) values like 'inf' (infinity, e.g. 12/0.0) and 'nan' (not a number, e.g. 0.0/0.0) appropriately.

Complex frontend interpreter functions have been overhauled in order to fix bugs, and improve accuracy and consistency:

sqrt():change the principle branches;
ln()/log():ln/log(0) now returns -inf, not -38;
ln()/log():accuracy with complex arguments improved;
tan():repaired - it was giving wrong values for complex arguments;
atan():repaired - it now works for complex arguments;
comma:repaired - (a,b) = a + j*b for complex arguments;
multiplication:accuracy improved for complex arguments;
division: accuracy improved for complex arguments;
acos():added the inverse cosine;
asin():added the inverse sine.

Improve formatting and behaviour of error and warning messages. Messages now try to indicate where in the netlist files they occur.

Changes to vectors that are owned by interrupted simulations are now prevented if the changes would cause a crash.

The behaviour of plot prefix matching has been tweaked so that 'setplot' and 'let' behave more intuitively in unusual cases.

Breakpoints created by 'iplots' with invalid arguments are now deleted.

Improve algorithms used for subcircuit expansion.

Prevent some types of syntax errors provoking attempts to over-free pnodes.

Fix some minor memory leaks associated with extracting parameters from the 'plot' command.

v2.9 PATCH LEVEL 32

Improve accuracy of graphs when non-default values of xdelta and ydelta are used.

Correct handling of .include statements when ~: is used to refer to home directories with space characters in the path. Add helpful warning if unquoted spaces are found a .include statement's filename.

v2.9 PATCH LEVEL 30/31

Messages now try to indicate where in the hierarchy of '.include' statements the line being referred to is located.

Improve console performance when displaying long lines of text.

Cure intermittent display of stale error/information messages.

Remove 'continuation lines' size limit, and replace O(N2) algorithms for assembling continuation lines with O(N) versions.

Enforce validity of time parameters for PWL sources at start of analysis. Improve performance of complicated PWL sources during tran analysis.

v2.9 PATCH LEVEL 29

Files referred to in .include statements may now have spaces in their names protected by backslash quoting. For example,


    .include foo bar
    .include argle\ bargle

would include the files 'foo' and 'argle bargle', but not 'bar' or 'foo bar'.

Font encoding has been added to the hardcopy PostScript driver. The only noticeable effect is that the degrees symbol is now displayed correctly.

The way the console handles full-buffer conditions has been improved; this cures some rare console lock-up/crash modes.

v2.9 PATCH LEVEL 28

Reword the warnings given when a source has no DC value specified to make their meaning clearer.

Re-scale the hardcopy PostScript co-ordinates to cure quantisation problems.

Correct bug in multi-variable dc sweeps introduced by the V2.9.23 code clean-up.

Replace the letter "o" with proper a "°" (degrees) symbol in labels on polar plots.

v2.9 PATCH LEVEL 24 - 27

Tackle endian problem that prevented 'edit' launching the helper application on MacIntel machines. Add some text error messages for common problems preventing applications from launching. With OS X 10.2 and later, 'edit' now only jerks forward the frontmost editor window.

extra error checking in dc analysis to stop attempts to sweep resistors or (absolute) temperatures through zero.

Command-. can now interrupt empty label/goto infinite loops.

Minor tweaks to the PostScript driver.

Fix a hypothetical problem in spGetElement().

Correct an obscure divide by zero error in the MOS2 and MOS3 devices.

v2.9 PATCH LEVEL 23 / 22

幸运飞艇超稳计划群install checks for 'command-.' interrupts during gmin- and source-stepping.

幸运飞艇超稳计划群improved error reporting when a node or branch current has an invalid value such as 'inf' or 'nan'. these may signal a bug in the code for a particular model, but unrealistic models used in a non-convergent circuit are the usual cause.

Vectors starting with '@' (e.g. @x1[gm]) now default to 'unknown' type instead of 'voltage'.

Code clean-up for DC sweep analysis.

bug fix for another problem introduced at patchlevel 17. this interfered with evaluation of expressions like '@c1[i]'.

Bug fix for spice2 compatibility mode which cures a crash when printing .op analysis summaries for non-converged analysis.

Bug fix in the MOS2 model curing negative gm values in the cut-off region.

v2.9 PATCH LEVEL 21

Error messages generated by noise analysis are now more informative.

bug fix for problem introduced at patchlevel 17. this prevented noise analyses finding source references.

v2.9 PATCH LEVEL 20

The 'dump' command has been implemented. This prints a diagnostic list of node voltages, and flags any which have not converged.

Improved Gmin- and source-stepping methods for better convergence performance in extreme cases.

Improved performance of text plotting to fix an issue with 'plot pointplot ...' when there are a large number points.

Behaviour of 'listing' command corrected so that 'listing deck expand' handles multi-line devices properly.

Improved output pager behaviour. E.g., it no longer pauses after a 'q' (quit) character has been given.

Overhauled 'show -v' command: memory leaks fixed and more informative messages.

Memory leak in BSIM4.5 code repaired.

Reorganised 'DEVask.c' files to improve resilience.

v2.9 PATCH LEVEL 19

Improve the way the starting value for adaptive gmin-stepping is calculated.

Convert release notes to html.

Fix the 'help' command so that it uses case-insensitive searches for words. Commands like 'help echo' and 'help ac' now work as expected.

Fix the 'help' command code to deal with endian issues. The .idx file is now always interpreted as having big-endian fields.

v2.9 PATCH LEVEL 18

Fix build problem with p17.

v2.9 PATCH LEVEL 17

Speed up the way 'source' builds large circuits. The Chip2 benchmark (ca 10,000 equations) now loads in 7s instead of 90s.

Cure a minor leak in the subcircuit expansion code.

Modify the way gmin is added to negative matrix diagonals.

v2.9 PATCH LEVEL 16

If the variable 'pensize' is unset (or 0), the base pen-thickness used to draw is selected automatically and depends on the fontsize used for the graphs. 'set pensize = N' where 0<N≤10 is measured in points, overrides this behaviour.

Redevelop the 'compose' code so its faster and more features work. Fix an intermittent fence post error.

Improve the way the number of significant figures displayed by the mouse cursor is calculated when dragging very small distances.

v2.9 PATCH LEVEL 15

MacSpice now adds a 'Default Folder' field to its preferences plist (CDHW.MacSpice.plist). Like the 'cd' command, it uses HFS names and expands an initial '~'.

Cursor measurements. The values corresponding to the cursor position in a graph are now displayed in a cursor window. Dragging allows measurements of changes. Double-clicking transfers the displayed value to the console command.

Implement a Font menu for graph windows, and modify various aspects of their behaviour to accommodate the range of font sizes.

Make the position and font of the console window persist between runs.

Minor adjustments to the layout of the 'key' which gets added to graphs.

Correct treatment of collapsed (minimised) windows in the dock so that they are ignored properly.

Repair the 16×16 pixel document icons.

The Postscript driver now creates files with application type 'prvw' so they display in Preview when double-clicked.

v2.9 PATCH LEVEL 14

Universal binary trial.

Correct reporting of 'gatetype' by 'showmod' for mos2 model.

Correct calculation of the diode model critical voltage when the area is not unity.

Add to the 'mouse position' code so it returns values with text suffixes, i.e. '40n' and '23Meg' instead of '4.0e-8' and '2.3e6' respectively.

Minor changes to headers and include files to fix problems building for i386.

v2.9 PATCH LEVEL 13

Stop structures like empty repeat loops locking up the command line interface.

Install experimental code to report positions of mouse clicks and drags in plot windows.

Correct mathematical expressions used to produce Smith plots.

Fix crash provoked by 'plot ((1,2);(3,4);(5;6))'.

Prevent 'pointplot' from missing first point in a vector.

Improve automatic calculation of limits for polar plots.

Cure memory leaks associated with 'samep' mechanism.

v2.9 PATCH LEVEL 12

Add support for scroll-wheel and smooth scrolling. I can't find a 'mighty mouse' to test the smooth-scrolling, so let me know if it doesn't work okay.

v2.9 PATCH LEVEL 11

Interrogating device instance parameters before running an analysis now returns 'NaN' instead of crashing.

Correct displayed values for mos1, mos2, mos3, mos6 device capacitances.

v2.9 PATCH LEVEL 10

Fix crash caused by '.print dc I(V1) V(1, 0)'

v2.9 PATCH LEVEL 9

Install BSIMSOI v4.0 as level 11. Fix problems, affecting repeated runs, caused by uninitialised variables and creation of internal nodes.

Fix problems in BSIMSOI v3, affecting repeated runs, caused by uninitialised variables and creation of internal nodes.

Cure buffer overflow which could occur if a multi-line statement had an error.

Fix several devices so that they identify themselves when they cause non-convergence.

Set 'possibly' uninitialised variables to zero passim.

v2.9 PATCH LEVEL 8

Upgrade to BSIM3.3.0 and BSIM4.5.0 device models.

User breaks are now handled during long dc sweeps.

L-U decomposition time is now shown in rusage report.

Restore compatibility with system 10.1 and 10.2.

v2.9 PATCH LEVEL 7

Fix a strange problem affecting a repeat run of a netlist containing a .ic line.

v2.9 PATCH LEVEL 6

Improve handling of filepaths and make it compatible with FileVault home directories.

Improve filename completion code.

New feature: Menu and preferences plist to handle font used by console window.

Improve calculation of text size and initial window size.

Fix memory leak in glob code.

Repair broken Finder info for files in the examples folder.

v2.9 PATCH LEVEL 4

Various enhancements to the console; it now has a proportional scroller and performs live scrolling and resizing. Improve console performance so that the test script


    let j = 0
    repeat 10000
        let j = j + 1
        echo "$&j"
    end

runs roughly ten times as fast as previous patchlevels.

Various enhancements to the graphical windows. Plots now update live in response to resizing and update roughly four times as fast as in previous patchlevels.

Postscript driver now adds a y-axis title and produces small output files.

Change the output of 'rusage' to make it clear that it reports CPU times.

v2.9 PATCH LEVEL 3

The correct directory is now used, instead of its parent, when '#' is used to choose an output file.

Make sourcepath default entries use trailing colons consistently.

Improve the behaviour when ';' is used to combine commands that contain parentheses in strange combinations. Modify the self-precedence of ';' so expressions like '1;2;3;...;N' require 3 stack elements instead of 2N.

Generate warnings when 'foo = bar' defaults to 'let foo = bar' in the command interpreter. Defaulting to let is bad practice (it is very slow and relies on the non-existence of a file 'foo') but it is common in scripts so the warning is only displayed the 1st, 10th, 100th, etc. time the condition occurs.

Cure minor memory leak when parsing malformed lists of vectors.

v2.9 PATCH LEVEL 2

Fix a fence-post error in the quote-encoding code which caused problems decoding '\_'.

v2.9 PATCH LEVEL 1

Refactor code to use XCode development system. This means that MacOS versions prior to OS X are no longer supported, but MacSpice should be able to run natively on MacIntel machines.

Adopt OS X file system conventions, as follows:

the traditional 'lib', 'man', and 'examples' folders live in library/macspice/ macspice uses the carbon findfolder function to search for these in the following order at startup:

1User Domain~:Library:MacSpice:
2Local DomainLibrary:MacSpice:
3Network DomainNetwork:Library:MacSpice:

and sets the appropriate nutmeg variables.

At startup, the current directory ':' is set to ~:Documents:MacSpice: which is created if it doesn't exist. If this can't be created, or used, for some reason ':' defaults to ~:Documents:

If folders/files aren't found they are created in the current user domain. Admin users may wish to move them to the Local or Network domain in order to define institutional defaults.

Make some subtle refinements to the MacSpice icon and design a new set of icons for documents. Rationalise mapping of file extensions to types.

Create a basic Applehelp book - content is simply links to the MacSpice website at the moment.

Add ',' to the 'bad character' list so that files with names like "1,2,3" can be opened by double-clicking.

Changes between v2.7 and v2.8

v2.8 PATCH LEVEL 17 - 19

Make 'bad index' error messages more informative.

Fix 'version' command so 'version -l' prints the current version and 'version verid' checks that verid matches the current version.

The scale vectors produced by dc sweeps are now all called 'sweep', but with appropriate types and units set. Previously they had names like 'i_sweep' which caused incompatibility with Spice 3 scripts.

Fix crash when attempting to plot/print expressions containing syntax errors.

v2.8 PATCH LEVEL 16

Miscellaneous minor code tweaks which yield a ca 10% speed up of long transient simulations.

Revisit the behaviour of 'let' (see v2.8p14) so that it is backwards-compatible with Spice3 in complicated cases and issues a warning for 'let foo.bar = ..' when 'foo' is not the current plot, or 'bar' is not already defined in plot 'foo'.

Reduce the overhead associated with globbing and brace-expansion.

v2.8 PATCH LEVEL 15

Fix error in translation of current-controlled POLY's introduced at PATHCLEVEL 14 by the single-character function fix.

v2.8 PATCH LEVEL 14

Update HiSim model by applying published patches

Prevent a single unmatched '{' generating duplicate error messages during globbing.

Overhaul the way the frontend expands lists {1,2,3}

Fix bug introduced at patchlevel 10 affecting the 'ylabel' parameter for 'plot'.

Fix behaviour when an attempt is made to evaluate a non-existent single character function.

Prevent 'deftype' leaking memory under error conditions.

Cure memory leak caused when parser bails out with a syntax error.

Change the details of the way plot numbers increment so that if a plot is deleted its name is not reused. This ensures that each analysis has a unique default plot name.

Improve the method 'let' uses to decide what the lhs of the '=' refers to.

v2.8 PATCH LEVEL 13 - 12

Fix potential buffer overflow in front end.

v2.8 PATCH LEVEL 11

Fix an obscure bug in subcircuit expansion code. This caused arbitrary sources in subcircuits expand incorrectly.

Fix pole-zero code in bjt device.

v2.8 PATCH LEVEL 10

Improve the handling of vector types. This only works properly for simple examples, not general SI units. However, useful common cases are recognised. For example v(5)*i(vsrc) is a vector of type 'power' and the dB() function acts appropriately so that dB(v(5)) + dB(i(vsrc)) == dB(v(5)*i(vsrc)).

Noise density plots now display units as 'X/Hz' where 'X' represents V^2 or A^2 as appropriate.

Improve method of guessing a default ylabel to use on graphs. Tweak the positioning of the xlabel on a graph.

The 'plot' command will now plot the results of pole-zero analysis on an argand diagram.

v2.8 PATCH LEVEL 9

Change the order of processing in inp_dodeck() to prevent orphan decks being created if the user interrupts deck, e.g. because there are too many errors being printed.

Fix an error in '.tf' analysis introduced by some overzealous memory conservation.

Improve numerical accuracy of the mod operator (%) and prevent 'print 0%5' generating an error message.

Improve subcircuit expansion to make scope rules for model definitions work in a way that is consistent with the userguide. Unfortunately the useguide description of scope is ambiguous so use 'listing p e' and 'show all' to check MacSpice is doing what you expect.

v2.8 PATCH LEVEL 8

Define new rawfile formats 'tabbed' and 'mac_tabbed'. To make 'write' to create files in a tab-separated column format with '\n' end of line characters. Use 'set filetype = tabbed'. The mac_tabbed variant has '\r' end of line characters. These formats are suitable for import into spreadsheet applications. The MacSpice 'load' command understands these formats too.

Make the 'copy' and 'close' menu items dynamic. Option-Copy puts a hi-res pict onto the clipboard, Option-Close closes all open graph windows.

Install check for a bad scale in deriv() and fix bug which could create vectors which had inconsistent real/complex flags and types.

Fix null dereference that occurs when evaluating $&*

v2.8 PATCH LEVEL 7

Fix (OS/X only) crash that occurs when a node is misnamed.

v2.8 PATCH LEVEL 6

Prevent 'plot foo vs 3*bar' creating a vector 3*bar in the current plot.

Correct typo in title of plots created by the dc transfer analysis.

Enhance the processing of history events so that more modifiers work correctly.

v2.8 PATCH LEVEL 4-5

Fix frontend parser again so it interprets v(3a) correctly.

Teach the subcircuit expansion that (1,2) expands as (foo:1,foo:2) not foo:(1,2) when it occurs in node name fields.

v2.8 PATCH LEVEL 3

Correct a fence post error in the interpretation of the history size.

Fix frontend parser so it interprets v(3a) correctly.

Install error message when '.end' is not at the end of the file.

v2.8 PATCH LEVEL 2

Fix (OS/X only) crash in 'write'.

v2.8 PATCH LEVEL 1

Make 'cd #' use the latest API calls, so it now works with OS/X and is nicer under Classic.

Changes between DR5 and v2.7

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.

Changes between DR4 and DR5

DR5 PATCH LEVEL 29

Correct bug in resources.c affecting times returned by rusage.

DR5 PATCH LEVEL 28

Implement HiSim 1.2 model.

Update BSim4 to 4.3.0 and enhance the BSIM4.

Update BSimsoi3 to version 3.1.1

Inhibit irritating "Warning: Pd/s = 0 is less than W." messages from BSIM3 and BSIMSOI3 when Pd/s were not specified.

Make 'show all' display 'n/a' (instead of junk) for parameters that return errors.

Fix quote-encoding so "\ " works, e.g. for filenames.

Improve 'save alli' behaviour (again!).

MacSpice now tolerates files where the last line is terminated by EOF instead of \r or \n.

The routine that checks model parameters no skips the values of unrecognised parameters instead of reporting them as errors in their own right.

DR5 PATCH LEVEL 27

Fix way 'save all' decides whether to save a node or not.

DR5 PATCH LEVEL 26

Fix evaluation of variables surrounded by brackets, e.g. 'echo ($foo)'.

Disable non-functional Edit/Undo item.

Eliminate 'miniedit' in favour of external editor as helper application. Setting the editor variable to the editor's 4-byte creator code specifies which one to use. The default is SimpleText ("ttxt"), but BBedit ("R*ch")is recommended because the features of the ODBeditor suite are available.

Make high-level events and menu items clear any text from the command line before inserting their own typing.

DR5 PATCH LEVEL 25

Upgrade semiconductor model from UFSOI-7.0 to UFSOI-7.5

Add dpi element to graph struct so that the choice of ticks on log axes is independent of device resolution. Inhibit '20' ticks per decade option for log-axes (it works, but it puzzles too many people).

Improve way 'save all' decides whether to save a node or not.

Correct problem in lexer() that prevented 'print @c2[p]' being tokenised correctly.

Fix bug in pole-zero calculation introduced by new sparse matrix code.

DR5 PATCH LEVEL 24

Insert code to prevent 'edit' opening a file larger than the 32KB TextEdit buffer. Add a File/Close menu item so one can exit 'edit' using Close instead of Quit.

Fix a problem with initialising the more/pager. This was evident when the output of 'show' was redirected to a file, e.g. 'show all > foo'.

DR5 PATCH LEVEL 23

Upgrade sparse matrix code, with subtle improvements in speed and accuracy.

Make 'echo -n' fflush().

Stomp another bug in deriv().

Make the interactive tf and sens commands case insensitive.

Improve the accuracy of the sub-divisions drawn on plots with log scales.

DR5 PATCH LEVEL 22

Improve the end-of-range behaviour of interpolate() and install a warning that is issued when it is used to extrapolate outside the old range.

Fix various bugs in deriv() that cause wrong answers and crashes.

Fix frontend command interpreter so it recognises that the brackets protect the semicolons in expressions like 'foo = ( 1 ; 2 ; 3 )'. Also correct the lexer() so that 'foo[bar]' works as well as 'foo[ bar ]' when referring to vector elements.

DR5 PATCH LEVEL 21

Enhance tokeniser, etc. to allow node names with 'funny' characters. e.g. '-5V' is now accepted as a valid nodename.

Reduce time wasted in poly() translation by skipping tokenisation of lines that can't possibly be poly's.

Cure parser leaks that occurred when B sources contained syntax errors.

Fix some memory leaks associated with subcircuit expansion. Repair subcircuit expansion so devices with variable numbers of nodes don't cause trouble.

More memory management improvements. Malloc(), etc., now releases fixed length pools and behaves in way that should result in less heap fragmentation. 'Rusage' no longer treats unallocated memory in pools as in use, because it is available to malloc(). The Rusage report includes application heap memory used by the console display.

Tidy up libraries to prevent spurious link-warnings.

DR5 PATCH LEVEL 20

Improve memory management in the front-end control structures.

Improve precision of memory usage statistics ('rusage', etc). The value of current dynamic memory usage now excludes memory that has been reserved by MacSpice but not yet allocated by malloc() et al..

Cure the memory leaks associated with graphical plots.

Fix parsing of commands like 'foo = foo + 1' where 'let' has been omitted.

DR5 PATCH LEVEL 19

Improve matrix re-ordering algorithm to speed up processing of large matrices.

The 'status' command now indicates if a condition is tied to a particular analysis.

Fix crash which occurred in unusual circumstances, due to plotEnd() not checking for a null pointer.

DR5 PATCH LEVEL 18

Interrupting a .tran simulation now prints useful info about current timepoint and timestep.

New 'nodesets' command to save the state of the current analysis as a file of nodeset commands suitable for inclusion in a netlist. The syntax is 'nodesets filename'.

Improve speed of loading phase of circuits with large numbers of nodeset/ic statements.

Make a few tweaks to the way the 'save' command behaves.

Make batch emulation mode create saves from the dotcards in the deck in a more authentic manner.

Install adaptive timers in the event-loop handling; no more long periods of locking up the Mac when processing large netlists.

Install additional memory management diagnostics and instrumentation.

Fix memory leak related to error messages.

DR5 PATCH LEVEL 17

Improve the consistency of the line numbers given by the 'listing' command.

Fix problem with sourcing a large circuit caused by an inefficient tree constructed by smartfree().

Add mac_ascii as a recognised value for the frontend variable 'filetype'. This will cause ascii files created by write to have mac style endline termination. Tweak the routine that reads in rawfiles so it can handle any of the three possible formats.

Source files can now be either mac or unix types.

Alter the behaviour of the save statement qualifiers. 'allv' is now the default and saves only external nodes. 'all' saves both internal and external nodes.

Improve the event-loop polling so that large circuits don't lock up the machine.

Make some modifications to the sparse matrix structures to lay the foundations for future improvements.

DR5 PATCH LEVEL 16

Modify the tokeniser to allow / * ^ in node names. This is needed for compatibility with ext2spice and some benchmark files, it doesn't make using these in nodenames a good idea.

Fix bug in .include code which ignored first line in some cases.

Fix problems with BSIM3 (caused by one of my experiments).

DR5 PATCH LEVEL 15

Fix the 'show' command so it works with devices in subcircuits in the way the manual says it should.

Improve the coding of the BJT model to eliminate various discontinuities that were preventing difficult benchmarks running.

Improve the coding of the D model to eliminate some discontinuities and calculate derivatives correctly. Also fix the behaviour of the IBV and BV parameters when the emission coefficient is not unity.

Improve the step limiting of pn-junctions

Add transient analysis check that the maxorder option is compatible with the integration method.

Fix various bugs in the MOS3 device.

Make the 'debug' variable behave in a more intuitive (i.e. less sticky) manner.

Improve recovery from interactive commands with missing terminating quote.

Fix various problems that arise with 'listing' when source files contain long lines. Also improve the handling of things when continuation cards create excessively long lines.

Fix bug associated with dragging a file onto the application.

DR5 PATCH LEVEL 14

Fix 'where' command so it now gives useful information.

Improve layout of messages generating when source/gmin stepping to make it a bit clearer what is going on. Add 'where' message in case of failure.

Implement a new multistep-multiorder algorithm. The Berkeley version never actually used any order higher above 2.

Correct the "Transient iters per point" message to say "... cur point"

Inhibit redundant recalculation of the integration coefficients during transient analysis.

Improvements to com_load so it handles ascii files properly. Limit the 'Bad rawfile' message to being issued once. A bad rawfile will cause memory leaks at the moment.

Further tweaks to the handling of ccom structures for plots.

Reorder the ccom structure so all (?) commands are registered.

Fix BSIM1 and BSIM2 so that vbs, vgs and vds parameters return actual values, not initial values.

Correct mishandling of internal nodes which resulted in internal nodes not being created in some instances. This seems to be a very common bug in many spice derivatives

Fix rare problem with node lookups by making hash() insensitive to case.

Fix log(0) problem in BJT noise analysis.

Fix crash caused by freeing the command line wordlist twice in some circumstances.

DR5 PATCH LEVEL 13

Fix the local truncation error code. Something was clearly not right with the Spice original so I reworked the math through from scratch. With hindsight, the original code contained two fundamental bugs, plus what seem to be a couple of empirical 'hacks' (e.g. TRTOL) that roughly compensate for them, in some cases.

Reduce event loop handling overhead. Compared with LEVEL 12, speeds up the Ring11 bench mark by a factor of about 1.5 and my frontend benchmark script by a factor of about 5.

Improve the way memory is managed when analysis vectors are saved. Speeds up analyses that create long vectors significantly. Ring11 now factor 2.0 faster than LEVEL 12 version.

Fix 'save all' so that it omits internal node voltages. Add new wildcards so 'save alli' saves the internal currents of devices and 'save allv' is a synonym for 'save all'

Fix more memory leaks mainly affecting subcircuit and model expansion.

DR5 PATCH LEVEL 12

Add timestep to the debug options. This should identify nodes and devices that responsible for cutting (i.e. reducing by a factor eight or more) the timestep.

Prevent the "Do you want to save?" dialogue from appearing at Quit time. It should still appear if you run out of memory to give you a chance to see what was going on at the time.

Fix problem with the BSIM3 MOSFET where if tnom was specified for a transistor model, it increased by 273.15 degrees each time a simulation was run.

Smooth out some discontinuities in the BJT model.

Fix a crash that occurred when creating large vectors using the (1;2;3;...) syntax.

DR5 PATCH LEVEL 11

Fix problems introduced into 'print' and 'write' commands by previous patch.

Fix intermittent crash that occurred in rare circumstances when destroying a plot.

DR5 PATCH LEVEL 10

Install and validate:

M - level 44:

More leaks fixed.

DR5 PATCH LEVEL 9

Change the '*' pseudo-filename to '#' to fix incompatibility with the glob code.

Define files of type 'BDAT' which are opened with 'load' when double-clicked. Files of type 'TEXT' are opened with 'source' when double-clicked). Modify icons appropriately, although you won't see this until you rebuild your desktop.

Make inpfindlnew() print errors to cp_err and handle 'missing level' error message correctly.

Fix various problems with 'write'. This now creates files of type 'BDAT' and uses unix-style line breaks ('\n'). This will enhance compatibility with Mark . Also, fix a mistake I made a couple of patches ago that broke the vector names in the rawfile output and deal with the memory leaks associated with 'write'.

Fix more bugs in 'alter' so that commands like


    MacSpice 1 -> alter @vin[sin] = (0.123;45;6.78)

work appropriately.

Add check to PWL voltage/current sources that prints a warning if the list is not in increasing order of time.

More leaks fixed.

DR5 PATCH LEVEL 8

Install UFS01-7.0 model and correct a couple of minor bugs.

Add ^U (clear line) to the command line editing operations.

DR5 PATCH LEVEL 7

Fix bug that made AC analysis of lossless ltra transmission line give incorrect results.

Fix command line editor to display history entries containing quote protected characters

Fix b source parser bug that caused things like 'i=v(1,2)*v(3)' to leave the tokeniser in an active state.

Make the "foobar: No error" message more informative, it meant there was an error opening foobar.

Fix a couple of instances where string constants were freed. It wasn't doing harm, but lets face it, it's not a good thing to do.

DR5 PATCH LEVEL 6

Improve 'batch emulation' mode.

Minor tweaks to the way more-style paging works. It's still rather primitive.

Improve behaviour of 'show' command.

Get 'show -v' command working correctly.

Fix intermittent crash that occurred when 'destroy all' was used.

DR5 PATCH LEVEL 4

Install new, and update existing models. The current list is

A - level 3: STAG SOI v2.6 http://www.micro.ecs.soton.ac.uk/stag/

M - level 8: BSIM3v3.2.4 http://www-device.EECS.Berkeley.EDU/~bsim3/

M - level 9: BSIMSOIv3.0 http://www-device.eecs.berkeley.edu/~bsimsoi/

M - level 10: UFSOI-6.0 http://www.soi.tec.ufl.edu/

M - level 14: BSIMS4v4.2.1 http://www-device.eecs.berkeley.edu/~bsim3/bsim4.html

J - level 2: Parker-Skellern mesfet jfet model http://www.elec.mq.edu.au/cnerf/models/psmodel/

Z - level 5: HFET

Swap effect of up- and down-arrow keys so they work as advertised below.

Extend command/file completion so that it performs history replacement.

Install Anthony Parker's 'spec' command

DR5 PATCH LEVEL 3

Make '*' into a pseudo-filename signalling that the file is to be chosen using a dialogue box. There are some rough edges, e.g. if file foo.txt exists and you want to append some text to it:


    echo "hello" >> *

requires you to type foo.txt into a dialogue box and then warns that foo.txt will be messed with, which you know already.

Implement 'cd' command which prints and selects the default directory.

implement command and file completion, and command-line editing keystrokes:

CTL-A move cursor to start of line
CTL-B or left-arrowmove cursor back one char
CTL-D delete forward from insertion point
CTL-D at end of lineprints a list of possible completions
CTL-F or right-arrowmove cursor forward one character
CTL-H delete back from insertion point
CTL-K delete from cursor to end of line
CTL-N or down-arrow scroll down through history stack
CTL-P or up-arrow scroll up through history stack
ESC or TAB automatically types the completion as far as possible.

Text outside the editable region can be selected, but the cursor won't stay there. 'ignoreeof' is now set by default because it is rather too easy to type CTL-D at the command prompt and lose everything otherwise. To get a list of all commands type a space followed by CTL-D at the prompt.

Add feature that converts spice 2 'poly' sources to spice 3 'b' sources. This was not as easy to do as you probably imagine, so please check the results carefully.

Improve several commands' general awareness of the console size so that 'more', etc. work in a more elegant manner.

Add new 'delcirc' interactive command to delete circuits and free their memory. Its syntax is like that of setcirc.

Enhance the DC convergence performance by implementing adaptive step-size selection for source stepping. Adaptive gmin-step sizes can be invoked by setting the option 'gminstepsize = 1'

Improve the arbitrary source ('b' devices) code in various ways which roughly double their evaluation speed, halve their memory consumption, and fix problems with the x^y function and parser bugs that prevented it working with node names that start with a number (e.g. 23b). Deal with the bug that broke expressions containing no sources (e.g v=1.234 ).

Make the switch device work better by getting it to update the breakpoint table.

Alter the way source files with non-unixy names that are dragged onto the application are converted into 'source' statements. In really bad cases (non-ascii characters) they are turned into 'source *' so you get presented with a navigation dialogue and you can drag the thing into that. It is better to stick to ascii filenames really...

Overhaul frontend to eliminate unnecessary copying of wordlists which was wasting memory and slowing things down.

Fix more memory leaks.

DR5 PATCHLEVEL 2

Fix a nest of bugs that affect 'save' statements and debugging. Most noticeable will be the fact that duplicates of the same saved vector are now recognised.

The implementation of the various DOING_something flags never seems to have been completed in the 3f4 original source. A lot of things read these flags, but they were left unset most of the time when they were needed. A preliminary attempt to sort this out has cured several old problems (e.g. @c1[i]). Let's hope it doesn't cause new ones.

DR5 PATCHLEVEL 1

Fix bugs that resulted in miscalculation of truncation error for trapezoidal and Euler integration, and hence timestep. Reset default TRTOL which was a Berkeley hack to cure the symptoms from 7.0 to 1.0.

Fix bug that prevented interactive analyses from using any options other than the hardcoded application defaults. Interactive analyses are now given a copy of the options for the 'current circuit', which is what one would expect.

Changes between DR3 and DR4

DR4 PATCHLEVEL 8

Make the front end error message that appears if i(foo) can't be evaluated more informative.

Fix segmentation violation in sensitivity analysis

DR4 PATCHLEVEL 7

Cure 'alter' of its habit of misbehaving when given incorrect arguments.

Modify SIOUX so that the whole line is entered, even if the cursor is left in the middle of a command (after editing).

Add more character filtering mini-edit to try and prevent invisible junk characters being a problem. I feel to that mini-edit could be beneficially replaced by a scriptable editor, sometime...

DR4 PATCHLEVEL 6

Fix bug anti-leak measures introduced at PATCHLEVEL 4. The comma operator was unreliable, e.g. 'print v(1,2)' caused errors. This was because mkfunc() wasn't using ud_count to register the copies it was making of its argument.

DR4 PATCHLEVEL 5

Fix various bugs in 'let' which prevented expressions like 'let foo[2] = 99' working and incorporate index range checking.

Define a semicolon operator to facilitate construction of vectors and n-dimensional matrices. e.g. the commands


    MacSpice 1 -> let foo = ((11;12);(21;22))
    MacSpice 2 -> let bar = (foo;(31;32))
    MacSpice 3 -> let baz = (1;(3,4);5)

create a 2×2 matrix 'foo', a 3×2 matrix 'bar', and a complex vector with 3 elements 'baz'. It is necessary to protect the ; with ()'s to prevent it being treated as a command separator.

Rewrite tmalloc() so it is based on calloc().

Fix bug in checking code that could cause rejection of a valid tran parameter.

More memory leaks fixed!

DR4 PATCHLEVEL 4

Fix more frontend leaks. Overhaul the commands related to define in order to fix more leaks. After some false starts, concluded that a reference counter field is needed in the pnode struct in order to indicate that its dvect has been added to a plot. free_node() can exploit this information when destroying parse trees. Educate prtree1() about when brackets are needed when pretty-printing user function definitions (okay, but they were starting to really irritated me!)

After a lot of careful leak fixing the command loop


    repeat 10000
        define f(a,b) 100*b+321*a
        let k = f(j,j+4)
       undefine f
    end

seems to execute without leaks.

DR4 PATCHLEVEL 3

Many improvements and fixes to the command processor in front.c, it may even work well enough to be usable now!

Fix some memory leaks. Prior to fixing the loop


    let j = 0
    while j < 1000
        let j = j +1
    end

leaked 320 bytes per loop.

Fixing free_pnode to free the pn_name, saved ~70 bytes/loop.

Preventing cp_istrue() from creating a copy of the word list wl which is never used.

Com_let() needed a lot of patches which brought the leak rate down to 68 bytes per cycle.

Fixing mksnode() cured the rest.

DR4 PATCHLEVEL 2

Make setting the 'echo' variable do something useful. It now prints the parsed command and the fully expanded version.

Fix the bizarre buffer problems that used to occur after an interrupt (ctrl-c, etc) by replacing a call to getc().

Setting the cpdebug variable no longer complains pointlessly that its messages aren't available, because they are.

DR4 PATCHLEVEL 1

Add checks to the 'where' command to stop it causing crashes if it is invoked when there is no unconverged node to report.

Replace perror() calls following file-open activity with macro PERROR which replaces a confusing "No Error" message (because errno is not set in the Metroworks ANSI libraries) with "Error: Can't open file:"

DR3:

Fix crash when resume typed and no file loaded.

Various patches applied.

幸运飞艇pk10彩票 免费幸运飞艇计划手机 pk10微信群或者飞艇群 全天幸运飞艇精准计划 助赢幸运飞艇软件 天天幸运飞艇计划软件 北京pk10幸运飞艇直播 幸运飞艇 开奖b678甸vip 北京幸运飞艇开奖直播 幸运飞艇app下载 幸运飞艇【上恒达集团~HD161。COM~平台】 幸运飞艇【上恒达集团~HD161。COM~平台】 幸运飞艇【上恒达集团~HD161。COM~平台】 澳门百家乐【上恒达集团~HD161。COM~平台】 澳门百家乐【上恒达集团~HD161。COM~平台】 澳门百家乐【上恒达集团~HD161。COM~平台】 六合彩公司【上恒达集团~HD161。COM~平台】