Changelog192 - PaulBreugnot/gama.old GitHub Wiki

Major changes from 1.9.1 to 1.9.2

The GAMA development team is pleased to announce the release of GAMA 1.9.2. This is a maintenance release, aiming at fixing bugs observed in 1.9.1 and clarifying some of its concepts. No new features have been added, except the possibility to define #mouse_drag events.

Detailed changes.

This release of GAMA contains new features and fixes, including:

  • 2D displays can now also be locked (only from the user interface currently)
  • A new event has been introduced: mouse_drag, an example is available in the model library: msi.gama.models/models/Visualization and User Interaction/User Interaction/models/Mouse Drag.gaml
  • Fixes potential issues with user_location on touch screens
  • Fixes many issues on keyboard events (see issue #3770, and this commit)
  • Fixes control buttons not updating while in fullscreen (#3769)
  • Fixes the saving of matrices using the save statement that was faulty for non-square matrices
  • Fixes the casting from matrix to string that was faulty for non-square matrices
  • Adds the operator exp_rnd to generate a random number following an exponential distribution (example in msi.gama.models/models/Visualization and User Interaction/Visualization/Charts/models/Distribution.gaml)
  • Various fixes and improvements for the reading/writing of csv files (see this commit, this one, this one and this issue)
  • Fixes bugs in the gaml editor when a display didn't contain any code
  • Improves the display of fields/mesh (#3796)
  • Fixes runtime error happening in torus models in certain cases (#3783)
  • Improvement of the type inference system for matrices (#3792)
  • Fixes hpc flag being ignored in some cases in headless mode (#3687)
  • Fixes a bug in save_simulation where simulations with variables of type font couldn't be saved (#3815)
  • Fixes default camera in 3d displays not being applied unless explicitly written (#3811)
  • Enables steps in loop statement to be of float type instead of silently casting it to int (#3810)
  • Type casting has been made more consistent (see #3809 for colors, #3803 for lists and #3806 for pairs )
  • Improves memory management when drawing images (see this commit)
  • Fixes rendering issues in documentation navigation within gama on windows (#3804)
  • Better handling of HTTP responses (see this commit)
  • Fixes runtime errors happening in some models with dynamic cameras (#3821)
  • Fixes issues related to search dialog in the help menu for macOS (#3829 and #3828)
  • Fixes some issues leading Morris exploration not being run (see this commit)
  • Makes gama-server able to execute multiple commands at the same time in parallel for each client (see this commit)
  • Adds an optional keepalive function to gama-server (see this commit)
  • Fixes exception raising sometimes when clients disconnect from gama-server (see this commit)
  • Splitting the gama-server command fetch into two commands: upload and download
  • Adding some verification on the format and types for the parameters option of the load and reload commands of gama-server
  • Renaming the memorize type into record
  • Introducing compress facet to indicate if a memorize/record experiment should use compression (reduces memory usage but increase computation time)
  • Introducing different formats used internally for memorize/record experiments that can be: xml, the legacy one, or two new ones: json and binary (both faster and more memory efficient) and can be set with the format facet of the experiment.
  • Fixing issues in the script gama-headless.sh used in macOS (#3766 and this commit)
  • Multiple fixes on the moran operator (see this issue, this commit and this one)
  • Fixing the shortcut for code suggestion in macOS (#3852)
  • ASC file using dx/dy format can now be read too
  • Big memory leaks have been fixed for operations on images
  • Miscellaneous internal/architecture improvements
  • Fixes exceptions raised in tabu searches in some cases
  • Fixes the copy operator on shape variables
  • New splash screen
  • Improves the navigation in the parameter by not refreshing it completely when one parameter changes (for example in batch mode)
  • Fixes the initialisation order for experiment parameters
  • Various general fixes in the display of svg
  • All the geometries defined in an svg file are now accessible separately (allowing to draw only some of them, or to have different color for each for example)
  • Adds a parameter to set an automatic z increment in between layers in opengl


Changes that can impact models

🔴 Errors 🔴: concepts that cannot be used anymore

🔴 Errors 🔴: concepts that need to be written differently

  • All skills belonging to the "driving" skill have been renamed for more intuitive names, the skill advanced_driving has been replaced by driving, the skill skill_road is replaced by road_skill and skill_road_node is replaced by intersection_skill

  • The loop statements using a step facet are not casting the step value into an int anymore which means that if you had loops that used float variables as a step, they may behave differently.

  • casting colors (rgb type) into different types changed in some cases:

    • casting an rgb into a float now returns the same result as casting to an int instead of returning 0
    • casting an rgb into a point now returns a point formed like this {red, green, blue} instead of {0,0,0}
    • casting an rgb into a list now returns a list of its four components: red, green, blue and alpha instead of just red, green and blue
  • casting a string into a list now returns a list of string composed of all the letters of the original string. For example: list("some string") will return this list: ["s", "o", "m", "e", " ", "s", "t", "r", "i", "n", "g"]

  • casting into a pair has been homogenized, overall most cases are kept unchanged but some fringe cases are eliminated. The general rule is that casting anything into a pair will now result in a pair where the first and the second elements are the same initial object. For example: pair([1,2,3]) will return this pair: [1,2,3]::[1,2,3]. The only exceptions are casting a pair into a pair which will result in no change, and casting a map into a pair that will result in a pair where the first element is the list of keys of the map and the second is the list of values of the map.

  • The gama-server command fetch has been split into two different commands: upload and download and cannot be used anymore. See here the documentation on how to use those commands.

  • The type of experiment memorize should be renamed record. In addition there's now two additional facets you can set for memorize/record experiments: format and compress. The format facet indicates the internal format used to save each step, and can be "xml", "binary" or "json". The compress facet indicates whether or not the saved step should be compressed or not. Compressed ones will take less memory in the long run, but will take more time to save/load.

🟠 Warnings 🟠:


Preferences

The description of all preferences can be found at this page. A number of new preferences have been added to cover existing or new aspects of the platform. They are summarised below.

New preferences


Bug fixes

You can also check the complete list of the closed issues on the github repository. Keep in mind that this list is incomplete as a lot of problems where solved without being linked to any issue on github (via the mailing list or internally for example).


Added models

The library of models has undergone some changes. Besides making sure all the models compile and run fine under the new version of GAMA, it also brings some new models, which are listed below:

---