Release notes for EiffelStudio 21.11

Graphical environment

  • On non Windows platforms (linux, macosx, ...), EiffelStudio is now using GTK3 (instead of the older GTK2).
  • The new Source Control tool provides basic GIT and subversion operations (status, diff, commit, ...). The related tools have to be installed on your machine, as the Source Control tool relies on the executable git and svn commands.

Compiler

  • Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol @:

∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive. -- Print all elements of a table prefixed with their keys. across table as y loop print (@ y.key) print (": ") print (y) io.put_new_line end

  The existing code can be updated with syntax_updater invoked with option -i.
  • Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code. (Note: the semantics of non-conforming inheritance is changed by removing automatic replication of inherited features.)

Libraries

  • The vision2 library is now using GTK3 by default on non Windows platforms (linux, macosx, ...). To compile using GTK2, set the variable vision_implementation=gtk2.
  • The JSON library was improved with a new date time serializer, and the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.
  • Various bug fixes and improvements on the EiffelWeb library, and the Eiffel CMS solution.
  • Marked make_from_iterable and added {HASH_TABLE}.make_from_iterable_tuples as conversion procedures from ARRAY for some container classes to enable initialization from manifest arrays:

x: LINKED_LIST [INTEGER] y: HASH_TABLE [INTEGER, STRING] ... x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8. y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Indexed by name.


See change log for more details.