Difference between revisions of "Analytica Release Notes/Changes in Patch Build 4.4.3"
Line 34: | Line 34: | ||
* File saving is been made more robust to a wide variety of disk failures that might occur while saving a model file, reducing the changes of losing information as a result of disk or network failure/outage, disk full, media defects, etc. | * File saving is been made more robust to a wide variety of disk failures that might occur while saving a model file, reducing the changes of losing information as a result of disk or network failure/outage, disk full, media defects, etc. | ||
+ | |||
+ | * When using '''Add Module...''' or '''Add Library...''' without '''merge''', an error appears when an identifier collision occurs. We've added a '''Repeat for all''' checkbox, so you don't have keep answering the question for all identifier collisions. | ||
+ | |||
+ | * When using '''Add Library...''' to reload a library and change it from linked to embedded at the time, it would sometimes end up as linked. | ||
* Model loading has three stages: Reading, Checking (aka parsing), and Evaluating. The last stage evaluates anything that is marked for [[Proactive Evaluation]]. There were some errors that would occur while proactively evaluating an object that would cause the entire Evaluating stage to abort, thus some variables or indexes that should have been evaluated at load time were not evaluated. If this happens in your model (which is very unlikely -- we saw it in only one model), you might actually see an increase in load time in 4.4.3 if those remaining objects take a long time to evaluate. Of course, we recommend turning off the '''Proactively evaluate indexes''' preference setting, which will avoid this. | * Model loading has three stages: Reading, Checking (aka parsing), and Evaluating. The last stage evaluates anything that is marked for [[Proactive Evaluation]]. There were some errors that would occur while proactively evaluating an object that would cause the entire Evaluating stage to abort, thus some variables or indexes that should have been evaluated at load time were not evaluated. If this happens in your model (which is very unlikely -- we saw it in only one model), you might actually see an increase in load time in 4.4.3 if those remaining objects take a long time to evaluate. Of course, we recommend turning off the '''Proactively evaluate indexes''' preference setting, which will avoid this. |
Revision as of 20:06, 27 July 2012
<< What's new in Analytica 4.4
This page is under construction
This page lists changes that have been incorporated into the 4.4.3 patch release since the 4.4.2 patch release. In pages like What's new in Analytica 4.4?, we usually only list enhancements, not small bug fixes like the ones listed here. But because this is a patch release, and its only purpose is to provide fixes to lots of small bugs, we list them here.
Highlights
- Major internal refactorization of core code, related to file handling and streams.
- Improved robustness to avoid data loss when file system errors occur while saving models.
- Fundamental change to the way Tables are parsed. Increased stability and speed at load time.
- New Proactively evaluate indexes preference, and a chance to make this default to off for new models. Turning this off may dramatically reduce model load time.
- New Enlarge attribute & table fonts preference setting. Improved GUI layout and management when large fonts are used.
- Improvements to handling of zero-length indexes.
- Lots of bug fixes. See below.
Potential Backward Compatibility Considerations
- We recommend that you turn off the Proactively Evaluate Indexes preference setting when you start using 4.4.3, but there is a small chance this could alter the starting random number generator seed. This would simply mean that you'd see slightly different numbers for random samples. This only happens if your model has a computed index that uses a random number or a random sample during its computation (which is a rare).
File Saving and Loading
- When variables with table definitions (Table, DetermTable, ProbTable and IntraTable) are first parsed (during the Checking phase of the model load), the parser no longer has to evaluate the table indexes. This has several consequences:
- The parsing and evaluation phases are more distinct, rather than intertwined.
- Many models load much faster, especially if you have
ProactivelyEvaluate Index : 0
set. - Table indexes are evaluated later when you view or evaluate a table. Thus, evaluation time is shifted from load time to evaluation time (you can still force the evaluation of selected variables or indexes at load time by configuring Proactive Evaluation if you want).
- When you view an edit table for the first time, the table index might need to be evaluated (particularly if they are computed indexes). So you may experience delays or evaluation error messages when you attempt to view an edit table. These would have happened at an earlier point in 4.4.2, when you first parsed the definition.
- If a table index has an evaluation error, or is not a valid index (i.e., not a list), the variable with the table is now considered parsed, while formerly it would be cross-hatched, meaning it was considered unparsed.
- When a Dynamic with a non-Time dynamic index is parsed (such as
Dynamic[I](1,self[I-1]*1.2)
), the dynamic index is no longer evaluated at parse time. Consequences:- Better separation between parsing and evaluation.
- Faster load times, since the dynamic index isn't computed at parse time.
Dynamic[I](...)
variables are considered parsed even whenI
is undefined or has an evaluation error. Previously, these would appear hatched (unparsed).
- File saving is been made more robust to a wide variety of disk failures that might occur while saving a model file, reducing the changes of losing information as a result of disk or network failure/outage, disk full, media defects, etc.
- When using Add Module... or Add Library... without merge, an error appears when an identifier collision occurs. We've added a Repeat for all checkbox, so you don't have keep answering the question for all identifier collisions.
- When using Add Library... to reload a library and change it from linked to embedded at the time, it would sometimes end up as linked.
- Model loading has three stages: Reading, Checking (aka parsing), and Evaluating. The last stage evaluates anything that is marked for Proactive Evaluation. There were some errors that would occur while proactively evaluating an object that would cause the entire Evaluating stage to abort, thus some variables or indexes that should have been evaluated at load time were not evaluated. If this happens in your model (which is very unlikely -- we saw it in only one model), you might actually see an increase in load time in 4.4.3 if those remaining objects take a long time to evaluate. Of course, we recommend turning off the Proactively evaluate indexes preference setting, which will avoid this.
- A certain variable was cross-hatched after the model was loaded, but would parse without error when you pressed [!] or evaluated it. This was due to an interaction of table parsing, index evaluation, and a violated check condition that involved a dependency on an edit table not yet parsed.
Instabilities
Numerous bugs have been fixed that could result in an application crash.
- A crash when copying a certain module.
- A crash when opening a model with a file path exceeding 260 characters.
- A crash when copying from a discrete PDF result table.
- Graphics splotches and crash when an excessive number of windows are open simultaneously (e.g., on the order of 65 object windows or 150 diagrams).
- A memory leak, which in rare cases also caused a crash, related to the use of text values, with many possible manifestations.
- A crash when answering "yes" to a particular "out of domain bounds" range warning.
- Odd behavior, including a blank window, and potential loss of data in edit table when viewing a huge table in expr view containing more than 16383 lines.
- An internal bug that printed "unimplemented term type in print" to the typescript window when viewing a certain mid value.
- Crash that occurred when executing a "SpliceIndex All" command in a button script in a particular model.
- Crash that occurred when trying to save a particular model that had a TableCellDefault set to itself.
- A crash that occurred while trying to view an edit table when a computed index (I1) has changed length and depends on a table, which itself depends on a computed index (I2) that has changed length.
- A case where Analytica would hang (and would have to be terminated via task manager) when it ran out of memory while creating a graph.
- A crash or an incorrectly reported "insufficient memory" error when evaluating or displaying a smoothed PDF of a result where the first and last values in the sample are NaN.
- A crash after a node resize after hiding the hierarchy bar.
- The AdeTest program (examples that come with ADE) would crash when receiving a result of «null» from GetAttribute.
Evaluation and Built-in Functions
- When you have a meta-only index with a cell that contains
Domain of X
, the corresponding Mid and IndexValue should be a handle (i.e.,Handle(Domain of X)
), not a parsed expression.
Influence Diagrams
- Add Library... or Add Module... would sometimes position the new module node under existing nodes.
- Help balloon linger over other windows, e.g., number format dialog, or over an external window.
- Help balloon flickers when hovering over the node displaying the balloon.
- Help balloons containing the special characters ≥ or ≤ display the wrong character.
- Slight decrease in text margin for a text node so that a few additional pixels fit on each line before a line wrap.
- The scalar result value in an output node was a few pixels too low relative to the label.
- Diagram scroll bar is off after leaving maximized model
- Numerous glitches fixed that were observed in a an extremely wide diagram (typically > 20 to 30 screen widths).
- An Alias button is missing its bevel.
- A certain button was not executing its script when pressed.
- After a Select All, the reference node loses its solid handles, so you cannot distinguish it from the others.
- Text nodes not resizing by proper increment. Snap to grid was constraining a text node size to a 2*grid size, whereas a 1*grid size is fine for a text node.
- Text outside of node border disappears when moving nodes around on diagram (redraw issue).
- An "Undo resizing" menu command had no effect on an input node button.
- Change Image Format was not working for converting a particular EMF image to raster formats like PNG.
- Node handles were slightly asymmetrical, probably related to one-pixel width changes to nodes in the 4.4.2 release.
- A pulldown menu for a Choice input node is too narrow, with text outside of the menu and the form node, which looked bad.
- A checkbox input node became small after adding units.
- Node titles were not centered vertically after changing node font size.
- When using a smaller print page size, the diagram scroll bar would get off and the diagram would go blank.
- An arrow would disappear for no good reason, after entering a value into an edit table that violates a check attribute.
- After renaming node, input/output/alias nodes don't update their titles (repaint issue).
- Right click in input/output nodes doesn't work in browse mode.
- A broken input node involving Choice(domain of X)
- After an undo of a resize of a Table edit button, an input node is drawn in the wrong location.
- A node title was not vertically centered in a legacy model when ClearType fonts is turned off.
- A module node inherits its color from its parent, unless you've explicit set its color to something else. But there was no way outside of typescript to clear an explicit setting so that it would go back to inheriting from the parent. Now, it does this when you set it to the same color as the parent.
Tables
Graphing
User Interface
Example Models and Libraries
Typescript
ADE
- Increased the stack size in ADE to be the same as Analytica. Because of a smaller stack, some deeply nested computations that succeeded in Analytica experienced a stack overflow in ADE.
- Sped up CAObject::DefTable when retrieving SubTables.
Comments
Enable comment auto-refresher