EiffelStudio 19.12 Releases

Below are not the release notes of EiffelStudio. It is the change log of EiffelStudio intermediate releases and the most important changes are highlighted in green or in red (for breaking changes). The release notes of EiffelStudio can be found at the following URL. You can also download the latest revision here. Information about other version can be found under Category:Releases.


EiffelStudio 19.12.x Releases

Beta download: https://ftp.eiffel.com/pub/beta/

19.12.10.3842 (December 30th 2019, beta 19.12)

New features

  • compiler: Supported multiple aliases of the same feature.
  • compiler: Added a new validity rule for duplicate alias names specified for the same feature.
  • compiler: Added a command-line option to set a preference value: -preference name value.
  • compiler: Added a preference to control processing of new lines when pretty printing:
    • keep — keep line breaks unchanged;
    • wrap — wrap long constructs (such as expressions) if they do not fit a given line length limit (not supported yet);
    • inline — format long expressions on a single line
  • compiler: Added a preference to control processing of loops when pretty printing:
    • keep — keep loop style unchanged;
    • keyword — use keyword-based notation;
    • symbolic — use symbolic notation if possible.

Improvements

  • library (base): Added features TUPLE.real_32* and TUPLE.real_64*.
  • EiffelStudio: Supported auto completion for aliases by providing a list of suitable Unicode operators.
  • EiffelStudio: Added a new dialog to insert (Unicode) symbols with activation by Ctrl+Alt+Space.
  • tool (eiffel): Added an option (short version: -o, long version: --executable-output) to control how output of the executable is processed.
  • library (preferences): Supported selection of a single value in a choice preference.

Bug fixes

  • EiffelBuild: Fixed regressions (various exceptions) occurring related to value changes and pick-and-drop behavior.
  • library (Vision2 demo): Avoided crashing during execution (caused by removal of dead code reachable through reflection).
  • tool (eiffel): Prevented compilation of a system with multiple targets unless the required one is specified.
  • EiffelStudio: Corrected import of the settings from .ini files.
  • library (net): Ensured {SOCKET}.last_string.count has the expected value when using {SOCKET}.read_stream.
  • tool (finish_freezing/espawn): Made the detection of C compiler on Windows more robust.
  • library (eiffelweb/wsf): Corrected default value of SERVER_PORT for HTTPS connection to be 443.
  • EiffelStudio: Fixed display of the hidden toolbar items.
  • compiler: test#valid082, test#valid083 — Fixed validity checks for export status of operators by using current class rather than target one.
  • compiler: test#term218 — Fixed computation of a common ancestor type to avoid an infinite loop when one of element types is a mark-free formal generic type.
  • library (base): Removed redefinitions in implementations of CURSOR_TREE that violated VDRS(4) because a feature was effected rather than redefined.
  • compiler: bug#19596 (test#scoop083) — Fixed a bug that might cause a SCOOP program to crash when a separate call is passed an address of a variable.

Features removed

User changes

  • EiffelStudio: reorganized and simplified the breakpoint context menu
  • EiffelStudio: the version update checker is using the new notification system.

Developer changes

  • compiler: Removed support for infix and prefix features.
  • library(eiffelweb/wsf): Improved WSF_FILE_SYSTEM_HANDLER to redirect "/subdir" on directory to "/subdir/" so that relative URLs are correctly handled.
  • library(eiffelweb/wsf): Improved the CGI handler from wsf_extension.
  • compiler: Reordered VFAV rules to match most recent version of the standard.

19.09.10.3472 (September 10th 2019, beta 19.08)

Bug fixes

  • EiffelStudio: Fixed a bug causing an exception when showing a context menu.

19.08.10.3451 (September 2nd 2019, beta 19.08)

New features

  • EiffelStudio: Added a first version of a dialog to insert a Unicode symbol.

Improvements

  • EiffelStudio: Recorded acceptance of a GPL license immediately, so that the next instance of EiffelStudio does not repeat the licensing question even when the first one is still running.
  • library (base): Changed signature of {IO_MEDIUM}.put_string and associated features to accept READABLE_STRING_8 instead of STRING_8.
  • library (api_wrapper): Supported non-ASCII library names.

Bug fixes

  • EiffelBuild: Fixed a bug that caused an exception when editing text value of a field.
  • EiffelBuild: Fixed a bug that caused an exception when loading a project that was moved from its original folder.

Features removed

User changes

  • library (base): Marked {READABLE_STRING_GENERAL}.as_string_8 as obsolete to avoid hidden conversion from 32-bit strings to 8-bit ones and from immutable 8-bit strings to mutable ones.
  • library (base): Marked {INTERNAL}.type_name as obsolete with a suggestion to use type_name_32 instead.

Developer changes

19.07.10.3368 (July 31st 2019, beta 19.07)

New features

  • compiler: Added support for manifest immutable strings, once manifest immutable strings, and immutable string constants. Examples: {IMMUTABLE_STRING_32} "Unicode string...", once {IMMUTABLE_STRING_8} "once value", id: IMMUTABLE_STRING_8 = "abc".

Improvements

  • compiler: test#valid297, test#valid298 — Changed rules how export status of features is computed to follow the standard to avoid CAT calls: a feature could be made available only to more classes, not fewer.

Bug fixes

  • editor: bug#19527 — Fixed issue with verbatim strings followed by a character.
  • editor: bug#19527 — Fixed editor issue with manifest strings ending with %% such as "foo%%".

19.06.10.3318 (July 1st 2019, beta 19.06)

New features

  • compiler: bug#17597 (test#syntax065) — Supported non-decimal character codes in manifest strings, so that decimal %/8704/, hexadecimal %/0x2200/, octal %/0c21000/ and binary %/0b0010001000000000/ can be used in a manifest string, e.g. {STRING_32} "for all %/0x2200/".
  • library (base): Added a class DYNAMIC_TABLE with a feature remove that is implemented by descendants supporting removal of table items. In particular, ARRAYED_LIST redeclares it as remove_i_th that is more efficient than a sequence of calls to features goto_i_th, remove.
  • library (base): Added Unicode aliases , and to features has, is_subset and is_superset respectively in descendants of classes SET and SUBSET.

Developer changes

  • library (preferences): Removed previous duplication with preferences_xml.ecf and preferences_reg.ecf that was causing conflicts. Now the default preferences storage is XML, except on Windows where it is Registry keys. And it is possible to override that default for Windows, using the custom variable <custom name="pref_default_storage" value="xml"/>.
  • library (EiffelWeb): Improved the simple WSF proxy component with support for X-Forwarded-For ..., and Forwarded header.