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
event
s.
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
tostring
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
anddownload
- Adding some verification on the format and types for the
parameters
option of theload
andreload
commands of gama-server - Renaming the
memorize
type intorecord
- Introducing
compress
facet to indicate if amemorize
/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
andbinary
(both faster and more memory efficient) and can be set with theformat
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 onshape
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 bydriving
, the skillskill_road
is replaced byroad_skill
andskill_road_node
is replaced byintersection_skill
-
The
loop
statements using astep
facet are not casting thestep
value into anint
anymore which means that if you had loops that usedfloat
variables as a step, they may behave differently. -
casting colors (
rgb
type) into different types changed in some cases:- casting an
rgb
into afloat
now returns the same result as casting to anint
instead of returning0
- casting an
rgb
into apoint
now returns a point formed like this{red, green, blue}
instead of{0,0,0}
- casting an
rgb
into alist
now returns a list of its four components: red, green, blue and alpha instead of just red, green and blue
- casting an
-
casting a
string
into alist
now returns a list of string composed of all the letters of the originalstring
. 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 apair
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 apair
into apair
which will result in no change, and casting amap
into apair
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
anddownload
and cannot be used anymore. See here the documentation on how to use those commands. -
The type of experiment
memorize
should be renamedrecord
. In addition there's now two additional facets you can set formemorize
/record
experiments:format
andcompress
. Theformat
facet indicates the internal format used to save each step, and can be"xml"
,"binary"
or"json"
. Thecompress
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:
- A model to showcase the use of SVG files: ummisco.gaml.extensions.image/models/Images/models/SVG Manipulation.gaml
- An example model to test the new
mouse_drag
event: msi.gama.models/models/Visualization and User Interaction/User Interaction/models/Mouse Drag.gaml - Pedestrian movement following Mehdi Moussaid's model: msi.gama.models/models/Toy Models/Pedestrian/models/Moussaid model.gaml
- A new example of data importation to get a mapbox image as a background of the simulation: msi.gama.models/models/Data/Data Importation/models/MapBox Image Import As Background Image.gaml