Difference between revisions of "Analytica Release Notes/Changes in Patch Build 4.4.3"

Line 140: Line 140:
  
 
* Some buttons were not selected when using the TAB key to tab through the Object Finder dialog.
 
* Some buttons were not selected when using the TAB key to tab through the Object Finder dialog.
 +
 +
* The term ''obfuscate'' has been uniformly replaced by the term ''encrypt''.  For example, in Analytica Enterprise on the '''Save a Copy In...''' dialog, the checkbox now reads '''Lock and encrypt the copy'''.
  
 
= Example Models and Libraries =
 
= Example Models and Libraries =

Revision as of 21:02, 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).
  • We have removed numerous archaic legacy attributes and commands. These are attributes and commands from the days of DEMOS (i.e., the 1980s), many of which were never functional in Analytica for Windows. If you are using a model from that era, or possibly from the Analytica 1.0 days, there is very a small chance it might use on of these and complain when the model is loaded, or certain buttons controls are run. Even in those cases, other than the error message, you are unlikely to notice any difference in computations. (to do: list them here)

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 when I 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.
  • The typescript command Save has been revived.

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 configuring the email address in the Publish to Cloud... account tab.
  • 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

  • A new NumberToText funtion has been added. This provides an alternative to ""&x (number-to-text coercion).
  • The result of Floor(date) should be a date-time number, but a integer number was being returned instead.
  • Eliminated an inefficiency in Subscript in a certain case involving the subscripting of a local variable that is computed with If-Then-Else.
  • Eliminated an inefficiency in the evaluation of DetermTable. The inefficiency was triggered only with a particular combination of indexes, but when it did happen, it took much longer than If-Then-Else and consumed excessive memory.
  • Added a «default» parameter to JoinText to specify the result when all value are null, and hence there are no items to join. For example, JoinText(A,I,',',default:null) returns null if A contains only null values along I. This is particularly useful when joining along 2 dimensions, so you don't get extra commas. However, in other cases it is useful to rely on this being the empty string, "", since JoinText is a text function, so this default behavior has been left in place.
  • Added an option to JoinText to not ignore Null values. This is useful when you need to maintain column-correspondence.
    JoinText([1,Null,2],separator:",") → "1,2"
    JoinText([1,Null,2],separator:",",textForNull:"") → "1,,2"
  • A complex interaction between the evaluation of a Choice, a computed index and table splicing resulted in a certain Choice control displaying the option "Platform" but evaluated to a different value, "Choice". The choice index was computed, and depended on an unspliced Table, which had a table index that was also computed and unspliced.
  • When you define an index as [1,«null»,2], the second index element should be the value «null», but was incorrectly evaluating to be a handle to the system variable Null.
  • 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.
  • The SpreadsheetSetRange function returned a cryptic error, "Unknown error x800A03EC", when one of the cell values being supplied was a handle.
  • When you imported a 1-D array using SpreadsheetRange(...,howToIndex:8), the row index labels imported ok, but the cells didn't -- they had the row labels instead.
  • The function Concat was returning the wrong result for the following: Concat( A[I=[3,4] ], B, ,J). The result had an implicit index, whereas it should have been indexed by .K.
  • When GetFract is applied to a sample containing NaNs, there were several odd and inconsistent treatments with the ordering of values, and did not always match the ordering of Sort.
  • The ReadFromURL function now supports HTTPS and proxy server settings automatically.
  • The functions Elasticity(y,x) and WhatIf(y,x) inherently produce nonsense results when a distribution function or random number is downstream of x and used in the computation of y. The nonsense is inherent to the use of finite differencing, but these functions will now detect this situation and issue a warning (provided, of course, that the Show Result Warnings preference is on).

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

  • The object window, attribute pane, outliner, and table windows, have been updated to support larger fonts gracefully, so that things align, don't wrap poorly, fit the data being displayed, etc. A preference setting, Enlarge attribute & table fonts, has been explored on the Preference Dialog.
  • Some buttons were not selected when using the TAB key to tab through the Object Finder dialog.
  • The term obfuscate has been uniformly replaced by the term encrypt. For example, in Analytica Enterprise on the Save a Copy In... dialog, the checkbox now reads Lock and encrypt the copy.

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.
Comments


You are not allowed to post comments.