Fri, 10/04/2009 - 14:10 — jaspert
What's new in Simile v5.4?
Simile v5.4 represents around eight months' worth of enhancements and bug fixes since the previous release.
Enhancements:
- The model now executes in a separate thread from all the graphical tools, giving up to twice the performance on twin-core machines
- A new standard form for user queries has been introduced, allowing more control of the amount of information displayed and eliminating long sequences of queries during any operation
- Mac users no longer need to install a c++ compiler themselves from XCode Tools; the relevant modules of the GNU c++ compiler (Copyright Free Software Foundation) are now included in the Mac version of Simile itself, just as they are in the Windows version.
- You can now install the evaluation edition for Windows without it removing the licence code for another older edition you may have on the same machine.
- Quite a lot of the documentation has been rewritten
- New equation dialogue layout, with adjustable panes
- New functions with_colin() and dies_of() added to the equation language
- The polygon diagram now automatically scales to fit the map to the screen during setup, and sets the range up so a variety of colours are displayed
- The 3-D viewer tool now works in the single window model-run environment and its state can be saved and restored
- The slider tool can now be used to adjust a fixed parameter value, which changes taking place at the next model reset
- Loading data from a .csv grid or image is more flexible -- the data can be transposed or reversed, and the grid can include different length rows or columns for per-record submodels. You no longer need to set a value for clear pixels if there aren't any.
- You can find a component in the model diagram whose caption contains a newline, by replacing it with a space when you type it into the find dialogue. Also, invoking this dialogue from the context menu in a submodel restricts the search to components within that submodel.
- The preferences dialogue now allows you to set the pitch (on each axis) and darkness of the placement grid
- The saved c++ representation of a model is now re-used if it is loaded on a different platform, saving valuable milliseconds
- When printing a model diagram it will be scaled to fit the page.
Bug fixes
- The result of the element() function failed to change each time step if the array (1st argument) stayed the same throughout a run but the index (2nd argument) changed
- A problem that stopped Simile running on Intel Macs with OSX earlier than 10.5 has been fixed
- Several problems with the recently-added with_greatest() and with_least() functions have been fixed, including:
- Sometimes they did not produce a new result at each time step when they should have done so
- Using the abs() function as the first argument could produce a compilation error
- They would sometimes cause a parser error if used as a term within a more complex equation
- at_init(), and hence rand_const(), would not keep returning the same result if the argument contained an input parameter that itself varied over time. This has been fixed, but rand_const()'s behaviour cannot be made consistent with that of rand_var(), so it has been deprecated. Use at_init(rand_var()) instead.
- A parameter from a satellite submodel inside a separate multi-instance submodel was given the wrong dimensions in its base model. Now it is a list, unless the satellite is in an excluive role, in which case it is a scalar.
- Some cases of circular inferences involving the existence conditions of association submodels were not picked up, resulting in compiler errors instead.
- Calling a component 'next', 'instance_id' or 'new_instance' caused problems if it was inside a population submodel
- Selecting "abort execution" from the model menu should terminate execution safely whatever it was doing, but it could crash Simile -- now, thanks to the separate execution thread, it always aborts cleanly
- If a data file's name contained spaces, it could not be included in a parameterization setup to be saved and reloaded in a parameter metafile.
- Using the view/edit feature in the table dialogue could replace the original data values with the limited-precision ones displayed in the table helper if you closed it with the 'OK' button; it now always keeps the original values where appropriate
- When first running a model, any values in time series for time 0 should be loaded during initialization, but this failed to happen until the first reset if building in debug mode
- The equation bar now prompts to save changes as soon as it loses focus, reducing opportunities for confusion
- Clearing a desktop now removes all file parameter data associated with the old model; however, it keeps enumerated type data as this may be useful in the new model
- Simile will now remind you to save the helper configuration before removing it, if it has been changed.
- A flow can now have the dimensions of an enumerated type
- A flow gets the same physical units as the compartment it connects (divided by time) as a default, if the compartment has physical units. The flow's units are now included in its popup message on the diagram.
- enumerated type parameters were wrongly given a slider to set their values in the slider tool; now they get a menubutton with the type's members listed to choose from.
- Reproduction and loss channels now display the actual results of evaluating their equations in helpers, snapshots and popups
- The grid display sliders now work properly before it has been zoomed, and saving the image also works
- If the initial model window was within a certain range of sizes, there would be a 'dead area' round the edge, in which trying to place a component would cause an 'overlap' warning. This is fixed.
- Inserting a model into a diagram could occasionally cause parts of the model already there to lose their display. This is fixed.
- The 'Cancel' button in the preferences dialogue now works properly, so you can bring up the dialogue, make changes, check their effect while it is still up, and then hit 'Cancel' to go back to the old settings.
- 'snap to grid' used to make components jump to the grid when clicked on, leaving their links offset from their new position. The links now follow when this happens.
- No more 'snap to grid' when dragging a flow's kink or bowtie
- More problems with plug-and-play modularity found and fixed
- Models saved in a directory whose name included an apostrophe could not be reopened. Now at last you can reopen them!