Changes 6.0.0

From emergent
Jump to: navigation, search

Back to ChangeLog -- Svn Checkin Log for 6.0.0

This documents changes since 5.3.0 -- see Changes 5.3.0 for info on that release.

Known Bugs and Workarounds

On the mac with Qt 4.8.x libraries, text fields may sometimes become unresponsive to input, and just beep when you try to type into them. The solution when this happens is to just click on the background of the window right next to where the text entry line is, then click back into the field. A better solution is currently being sought. Qt 4.8.x does have the advantage of fixing the slow scrolling behavior (evident when using trackpad or mouse wheel scrolling in large dialogs like Network).

Major New Features

  • Added in 5.3.3: powerful css list comprehension functionality, including significant Matrix css functionality for manipulating Matrix objects in css, using Slicing and other syntax as used in MATLAB and Python, including the convenient foreach loop. The semantics and syntax are quite similar to those of Python overall. See the previous links for more details.
  • Fully functional BrainView display which projects layer variables into an anatomical "glass brain" viewer, by assigning layers to associated brain areas. Currently only supports the human brain with a couple of reasonable brain atlases of brain areas. Provides an important visualization tool for mapping model data onto fMRI or other anatomically-based data. Plus it looks extremely cool.
  • can now specify an arbitrary suffix to a build (e.g., in configure script or args to CMake), and it will carry that through for the install, so you can have multiple different versions of emergent installed -- each different suffix now has separate preferences and plugins, so it is now possible to really keep things separate.
  • plugins now detect when they are out of date and prompt for remaking at startup if so.
  • Windows platform now can use the gui css console -- go to Options and select Gui type -- much better than the prior console (which remains for error messages from other components of emergent that can't write directly to the console). Required massive replacement of stream-based output with String-based, which is much more flexible and general-purpose.
  • Much improved Diff Compare dialog -- shows entire diff with all the context (and less clutter), so you can better tell where the diffs are, and the dialog is now non-blocking so you can also use the normal gui to investigate differences, etc (View button will take you directly to any given item in the diff list).
  • Significantly improved version (version 3) of the Leabra PBWM algorithm for simulating Prefrontal Cortex and Basal Ganglia Working Memory -- much more robust and powerful learning.

Minor New Features


  • Added Global Trace and Local Trace buttons to Programs (see Program Debugging) -- provides a back trace of the flow of programs up to the point where they were last stopped (by user Stop or an Error or Step). Helpful for debugging.
  • debug_level and my_mask variable pointers on PrintExpr and PrintVar Program elements, allowing for more finely-tuned control over what is printed when.
  • end any expression with a semicolon (;) in the ProgCode entry for programming in Programs, and it will convert that into a free-form CssExpr that allows any kind of valid css expression -- this is useful for things like declaring temporary variables outside the scope of program control, and certain Matrix css expressions that are otherwise not handled by other kinds of Program Elements.
  • Revert To Code button on Program Elements -- where possible, return a program element back into the ProgCode that originally created it -- allows you to easily fix bad conversions.
  • improved mouse-over in css Script panel for viewing curent state of variables -- now shows full state of object (e.g., matrix contents etc).
  • can drag and drop an object onto a Program and it will prompt to add a variable to that object to either args or vars -- often easier than doing the same thing within a program.
  • LeabraFlexProgs -- new cur_config enum chooser using function that can generate DynEnum dynamic enumerated values from a column in a DataTable.
  • The LeabraEpoch standard program now has a step_on_err flag which, when set, causes the Step: Epoch button to stop after any trials where there was an error -- very handy for sorting through trials to find the ones where it is failing. You can then use the NetView history browsing function to replay the last trial (cycle by cycle if you have that update set) and see what went wrong..


  • NETIN_PER_PRJN flag in Network -- can compute net input on a per-projection basis, which is important for various specialized cases. Inhibitory vs. excitatory input is now computed using this mechanism.
  • New gelin activation function in Leabra -- has better temporal integration dynamics and improves learning generally.
  • learn flag on LeabraConSpec -- can toggle learning on and off.
  • error dialog "cancel for next minute" function now improved to use interval between errors and time in the waitproc instead of the minute timeout -- works well at detecting beaks between errors.
  • blue select color now always in effect even if not in focus -- helps to see what is selected everywhere, esp useful during Find ops..
  • Find has match case option
  • There is now a "find" box at the bottom of every browser for quick find behavior without the Find dialog -- each kind has various tradeoffs so you can choose your favorite.
  • Projects now have an auto_name flag, set on by default, which updates the name based on what is called when saved -- useful for choosing items when multiple projects are active (often they have the same name if derived from a similar history)
  • moving of network layers and groups can now be undone -- handy because sometimes it doesn't turn out well and you need to try again..
  • can drag-n-drop to move tabs in the right 3D view
  • Buttons for adding "netmax" and "netrel" monitors for Leabra networks -- very handy for tuning the Leabra Netin Scaling parameters.

Bugs Fixed

  • Program buttons were not getting updated if you switched away from them and then back.
  • fixed potential crashing in Undo system, and fixed some long latency issues in Undo -- also added a preferences undo_debug flag that can be turned on to debug any undo-related issues (sends messages to console and project log file)
  • fixed some css-related crashes.
  • eliminated duplicate paste on middle-mouse-button paste on linux
  • numerous other small bug fixes