//--- FablesIME_2010_05_05 ---------------------------------------------- - Minor enhancements to make native library support available for imported Java functions. //--- FablesIME_2010_02_13 ---------------------------------------------- - Minor bugfixes. //--- FablesIME_2010_01_06 ---------------------------------------------- - Minor bugfixes. //--- FablesIME_2009_12_05 ---------------------------------------------- - Charting Package: - Constant color values may be used for random filling Grid2D charts. - Fables-Java Bridge: - Enhancement: the descriptor is matched with ignoring case sensitivity (e.g. "set(REAL)" and "set(real)" have the same meaning). - Improved error messages, minor bugfixes. - Datasource Editor: - Re-designed the requirements of the statistics. //--- FablesIME_2009_11_02 ---------------------------------------------- - StdLib: - New function: EOF( String ) Checks if data can be read from a file. The parameter gives the name of the file. - Modified function: createReadOnlyFile(String, [ separator (String) ] ) Opens a file for reading. The optional separator parameter specifies the separator string between the records of the file (by default the records are separated by whitespaces). - PET file generation: - Minor bugfixes. - Charting Package: - Chart generation was updated - legacy custom scripts may require an update. Please change the "F_" prefixes to "f_". - Circle Graph layout was fixed when created from agent adjacency matrix. - Function editor function in the Datasource editor. //--- FablesIME_2009_09_07 ---------------------------------------------- - Compiler: - New 'onStop' structures are available (documentation draft available). - New 'while' structures are available (documentation draft available). - MassGUI: - Fixed chart position saving issue in MassGUI. - StdLib: - New function: sentence( collection, [separator] ) Concatenates the elements of the collection into a string. If the separator string is specified, the function uses it to separate the elements of the collection. - IME: - Enhanced Outline and Context Assistant. - A new "Report Bug." button is available. //--- FablesIME_2009_07_27 ---------------------------------------------- - Compiler: - New 'enum' structures are available (documentation draft available). - MassGUI: - Fixed chart position saving issue in MassGUI. - StdLib: - New function: readIntegerFromFile(String) Reads the next integer read from the specified file and returns it. The parameter specifies the name of the file. - New function: norm(numerical collection) Returns the normalized version of the given numeric collection. //--- FablesIME_2009_05_29 ---------------------------------------------- - Compiler: - New, enhanced support to access native Java code (and Fables code from Java). //--- FablesIME_2009_05_13 ---------------------------------------------- - Compiler: -Double comparison bugfixes //--- FablesIME_2009_04_06 ---------------------------------------------- - Compiler: - Minor bugfixes, performance enhancements //--- FablesIME_2009_03_30 ---------------------------------------------- - Datasource Editor: - %agent.xxx%, %model.xxx% variables can be used in the Datasource Editor to refer to specified members (variables or constants) of the model ro an agent instance. - These references are validated during datasource creation. - Fables IME: - Verbose mode for Type Errors can be separately set for compilations. - Several minor bugfixes. //--- FablesIME_2009_03_06 ---------------------------------------------- - Improved support for string: - Operator <, <=, >, >= can be used to compare strings lexicographily. e.g. "a" < "b" == true "a" <= "ab" == true "aaa" >= "a" == true etc. - Function discreteUniform() has been extended and now can be used to return a simple character (as a string) from a string. e.g. discreteUniform( "abc" ) // result may be "a", "b" or "c" - Function weightedSelection() has been extended and now can be used to return a simple character (as a string) from a string. e.g. weightedSelection( "ab", [ 0.8, 0.2 ] ) // returns "a" with the probability of 80%, "b" otherwise - Function contains() has been extended and now can be used on strings or string collections to determine if the specified first parameter string contains the second one. e.g. contains( "aaaXaaa", "aXa" ) == true contains( [ "aaa", "bbb", "ccc" ], "ccc" ) == true - Local constants are no longer final definitions (their values can be modified within the scope of the function). e.g. f() = [ set( a, 0, "x" ), printLn( a ) ] // prints out "x" where ( a = "a" ) ; - MassGUI: - The default layout of the charts can be reseted with the "Charts --> Reset Chart Layout" menu item. - Several bugfixes (including the OutOfMemoryError caused by reaching the capacity of the Repast Console). - Compiler: - Several bugfixes (including the Type System). //--- FablesIME_2008_12_12 ---------------------------------------------- - StdLib: - readDoubleFromFile() is now capable of reading whitespace-separated values from the input file (this modification doesn't breaks reverse compatibility). - Compiler: - Some minor bugs were fixed related to equality checking. This influences only the <> operator. - Additional minor enhancements were performed regarding to optimizations. - Assignment and constructor generations might have ambiguous effects on the simulation run. These issues have been solved. - Major improvements have been performed on the Type System of the compiler. These improvements are still under testing but can be used in the current build of the software. - PET: - Minor issues has been solved since the last build. //--- FablesIME_2008_12_01 ---------------------------------------------- - MassGUI: - The positions of the displayed charts are now stored for each simulation, so it won't require any more layouting by hand at every startup. - A new menu item in the 'Charts' menu, that can be used to reset the perspective to the default layout (** experimental feature **). - Compiler: - Minor bugs were solved regarding to the multi dimensional lists, sequences and integer to double upcasts. The compiler should resolve these variables without problems. These issues regarded both to the set() function and the := operator. - There was a bug in the compiler that assigned a default value to a created agent's variables even if it had an initial value. This bug was related to some optimization issues. - Minor optimization improvements regarding to multiple boolean inverse relations. //--- FablesIME_2008_11_21 ---------------------------------------------- - Compiler: - Multidimensional sequences are now working properly. - Minor arithmetic problems were solved with the basic operators. - Fixed some minor bugs with duplicate identifier lookups. - Fixed generation of statement sets. - Documents: - Minor updates were performed in the Fables Tutorial. //--- FablesIME_2008_10_27 ---------------------------------------------- - Charting Package: - Minor bugs of the Datasource Editor script editor were fixed. - IME: - The total CPU usage of the IME was greatly reduced. There was a bug that made the environment always busy at the background, but the bug has been identified and eliminated. - StdLib: - Fixed minor type miscalculations with the '^' operator. //--- FablesIME_2008_10_21 ---------------------------------------------- - Charting Package: - Custom datasources created by the Datasource Editor can be edited and deleted. //--- FablesIME_2008_10_15 ---------------------------------------------- - Compiler: - A minor bug was fixed that prevented the correct type evaluation of self recursive functions. - Improved duplicate identifier checking for classes. - A bug was fixed that prevented using composite member selections, like: var agent; ... ... a.func1( a.var, a.func2(a.const, a.func3())) //--- FablesIME_2008_10_06 ---------------------------------------------- - IME: - Automatic save for all of the edited source files before every compilation is performed. - PET: - New wizard for creating visualizations (applets) for PET simulations is added. - PET actions now automatically creates and packs the required 'applet.jar' file into the PET archive. - Compiler: - From now on, variables don't have to be declared before their first reference. PoC: startUp { printLn(a) ; printLn(b) ; printLn(c) ; }; var a = 10, b = false ; var c = "S" ; - StdLib: - New function: exit(). Terminates the currently running simulation. //--- FablesIME_2008_09_29 ---------------------------------------------- - Compiler: - Some minor bugs/feature requests have been implemented for the set() function. - From now on, multiple parameters can be declared at once. PoC: param a = 10, b = false; // New notation param c = "S"; // Old notation startUp { printLn(a); printLn(b); printLn(c); }; - IME: - New wizard to import older Fables projects into the workspace. - Fixed the console flushing problem that sometimes noted non-error results as errors. - PET: - Fables created visualizations are now enabled by default for the uploaded simulations. - Every agent field is now have a generated setter by default. Java coding and descriptor editing is not necessary any more. - Charting Package: - User created statistic plugins can be integrated into the Datasource editor. //--- FablesIME_2008_09_22 ---------------------------------------------- - IME: - New actions in the Fables Editor's popup menu to comment and uncomment blocks of selected code. - Decreased the required JRE version to 1.5. - Compiler: - Clarified empty definition lists: PoC: model EmptyDefinitions { startUp() {} ; class EmptyClass {}; // At least one event definition is necessary [but it could be empty] schedule { 1 : ; }; } ; - Charting Package: - Histogram range setting bug fixed - Multiple Histogram outliers bug fixed - Simple values can be used in the Datasource Editor to create categories - Node size in both Network Charts can be adjusted - Chart data can be saved into CSV format in the context menu - The Markers used for charts can be customized //=== Release 2008 ====================================================== //--- FablesIME_2008_08_29 ---------------------------------------------- //--- FablesIME_2008_08_27 ---------------------------------------------- - PET improvements (continued). //--- FablesIME_2008_08_26 ---------------------------------------------- - The local definitions now has a simpler form. The () parenthesis could be omitted and it is possible to use the ';' character as a separator instead of the ',' character. PoC: a = A where ( A = 5, A2 = 2; A3 = "a" ); b = B where B = "B"; - Improved the option of importing projects. It is no longer necessary to copy them to the current workspace. //--- FablesIME_2008_08_15 ---------------------------------------------- - PET improvements //--- FablesIME_2008_07_22 ---------------------------------------------- - IME: Context Assistant enhancements. - Context Assistant is now supports HTML formatted texts, making it possible to display more informative descriptions; - Updated help for the StdLib functions and for the keywords. The list is now complete; - Context Assistant contains local definitions, parameters for complete expressions and/or functions; - Proposals are now in alphabetical order. - IME: Sample models have screenshots. - Compiler: String indexing is now permitted. PoC: printLn( "aaBaa"(2) ) ; Result: B - Compiler: set() can be replaced with an assignment. PoC: var seq := [ 0 : i is [1..5] ] ; startUp() { seq(2) := 10 ; printLn( seq ); }; Result: [0, 0, 10, 0, 0] - Compiler: improved error message for wrong multi-dimensional collection indexing, i.e. world(x,y) instead of world(x)(y). - Compiler: improved error message for assignments. - Compiler: improved error message for binary logical operators. - Compiler: inverse relation bug was fixed. - Compiler: inverse relation bug for initiated variables was fixed. - Compiler: fixed grammar to make it possible to use a conditional statement for variable assignments without bracketing. PoC: var myvar := (false) => 0 otherwise 1; - StdLib, new function: count( ) Returns the number of elements that fulfills the given condition. PoC: printLn( count( [ a.age > 0 : a is Agent ] ) ); - StdLib: Collection modifier functions cannot be used on constants. Modified functions: clean(), remove(), removeAll(), retainAll(), set(), randomSort() NOT restricted functions: setMinus(), union() - StdLib: fixed a bug of delete() function that didn't remove the deleted Agent's schedules from the action queue. //--- FablesIME_2008_07_14 ---------------------------------------------- - Optimization: minor bugs were eliminated with inverse relation code generation. - Compiler: Resolved bug that made impossible to refer to agent functions outside from the class definition. - StdLib: printLn() for sets containing numbers are working well. - StdLib, new function: exec(, ) Accepts 2 parameters. The first parameter has to be a statement (or a sequence of statements), and the second parameter can be an arbitrary expression. The function executes the statements, and after that it returns with the evaluated value of the of second expression. - Charting Wizard: RadViz is accessible now - Charting Wizard: BoxPlot improvements for dynamic content - Charting Wizard: PieChart improvements for dynamic content - Datasource Editor: Fixed minor datasource generation bugs (in some cases identifiers were incorrectly resolved; or wrong prefix was generated into the user defined scripts) - Datasource Editor: Categories can be created from any collection with or without duplicate elements. //--- FablesIME_2008_07_09 ---------------------------------------------- - StdLib: maxPlace() implementation review, added semantical verifications. - StdLib: stop() function corrected. - StdLib, new function: addEvent(,