EiffelStudio 20.11 is now available

194 views
Skip to first unread message

Eiffel Users

unread,
Dec 22, 2020, 8:33:50 AM12/22/20
to Eiffel Users

We are pleased to announce the availability of EiffelStudio 20.11.

Try it right now! All the download sites have been updated.

The highlights are:

  • Supported once classes.
  • A new WrapC wizard is available to assist the user wrapping C libraries.
  • Autotest has been updated and is now fully compatible with void safety.
  • And new wrappers for mpack, cairo, librsvg). They are available via https://iron.eiffel.com/.
  • Plus numerous improvements across the libraries (new graphs, b-trees, union-find in unstable/library/base_extension, reCaptcha v3 support, fixed known web vulnerabilities in the CMS component.

Let's remind the main highlights of previous EiffelStudio 20.05 :

  • The new support for multi-branch expressions that are similar to multi-branch instructions, but Then_parts and Else_part contain expressions instead of instruction sequences.
  • Improved support for Unicode: in the search tools, in code completion to insert Unicode symbols.

See the release notes for details.

Happy Eiffeling,

-- The Eiffel Software Team

Link: https://www.eiffel.org/blog/eiffelstudio_20_11

Larry Rix

unread,
Dec 23, 2020, 6:25:38 PM12/23/20
to Eiffel Users
YAY!!!

Bertrand Meyer

unread,
Dec 24, 2020, 6:44:47 AM12/24/20
to eiffel...@googlegroups.com, me...@inf.ethz.ch

The cited addition going back to 20.05

 

                >  Improved support for Unicode: in the search tools, in code completion to insert Unicode symbols

 

includes completion support in EiffelStudio making it easy to use Unicode quantifier expressions such as

 

                if  c: your_string ¦ c.is_upper then

 

A blog post I just wrote, https://bertrandmeyer.com/2020/12/24/right-forms-expression/, gives more details.

 

-- Bertrand Meyer

--
You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/f12176b3-8d8f-4bb5-9485-8c12d12ae240n%40googlegroups.com.

Volkan Arslan

unread,
Dec 24, 2020, 8:57:12 AM12/24/20
to eiffel...@googlegroups.com
I like this new Unicode quantifiers; in particular in in software code they really look quite impressive.

Just a comment, nothing earth-shattering but a (very) small detail:

I don't know if there are any technical or non-technical reasons, but it would be nice to support beside
        the "broken bar" ¦
also
        the "vertical line" | (Unicode Basic Latin, position: 0x007C, see https://unicode-table.com/en/007C/)
since most keyboards nowadays do have the "vertical line" | symbol too.

Regards
Volkan



On 24/12/2020 12:44, Bertrand Meyer wrote:

Bertrand Meyer

unread,
Dec 24, 2020, 9:18:14 AM12/24/20
to eiffel...@googlegroups.com, me...@inf.ethz.ch

Yes, it’s a broken bar, because the normal bar would create a syntactical conflict since it is allowed in free operators, where it is actually used fairly often in practice. We did look for a way to allow it anyway, through ad hoc techniques for syntactical disambiguation, but did not find an obvious solution. The expectation is that most of the time the broken bar will be generated automatically through completion, so this shouldn’t be too much of a burden.

 

The issue here is backward compatibility == we do not want to break existing code.

 

-- BM

--

You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.

Philippe Laré

unread,
Dec 25, 2020, 7:25:04 AM12/25/20
to eiffel...@googlegroups.com

« The issue here is backward compatibility == we do not want to break existing code. »

== ?
😊
Ph.

Bertrand Meyer

unread,
Dec 25, 2020, 7:30:36 AM12/25/20
to eiffel...@googlegroups.com, me...@inf.ethz.ch

Sorry, it was meant as two hyphens approximating an em-dash ““, my finger slipped to the right.

 

-- BM

Woland's Cat

unread,
Dec 26, 2020, 8:17:15 AM12/26/20
to eiffel...@googlegroups.com
I also laughed. I was sure Bertrand had misplaced his glasses, or possibly done in jest to see who was paying attention...

Richard

unread,
Dec 27, 2020, 12:51:12 PM12/27/20
to Eiffel Users
Help needed re licensing

How does the licensing work now?  I downloaded from Sourceforge what I expect to be the Open Source / Community Edition. When I fill out the registration form with my details (Support Login) it tells me "Issue with your Eiffel License", when I check the account page I see an expired entry for v20.05 (why was it a "trial" in the first place?).

Howard Thomson

unread,
Dec 27, 2020, 3:18:00 PM12/27/20
to eiffel...@googlegroups.com
There used to be downloads with 'gpl' in the name, but they seem to have gone AWOL for recent releases ...
Howard

--
You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.

Richard

unread,
Dec 28, 2020, 9:03:27 PM12/28/20
to Eiffel Users
So to get back to former normal I signed up for an alternate account. After activation I get to see choices of a trial and purchase of licenses. Signed up for trial version. Then had a look at the purchase option. Surprise surprise, I see a total revamped licensing scheme. I must have missed something while I was not really active this year.

What happened to the former Community Edition? Has it disappeared?  Am I stuck with the last really free version 19.05?

Richard

unread,
Dec 28, 2020, 9:16:48 PM12/28/20
to Eiffel Users
Curious as I am I started my way thru the purchase of a Personal license.  While the license comparison chart does not say anything about duration or expiration, suddenly on the checkout page it mentions a 1 year period.

Does the Personal copy suddenly stop working after 1 year?
Do I get updates / next version within that one year, or do I only get to use the version registered in this timeframe?

Richard

unread,
Dec 31, 2020, 10:26:46 PM12/31/20
to Eiffel Users
Seems I missed the text of " include a perpetual fallback license. " on the license description and comparison page. Answers my prior question: no expiration. 

Louis M

unread,
Jan 3, 2021, 7:13:44 PM1/3/21
to eiffel...@googlegroups.com

Good day,

By looking at the 20.11 release of EiffelStudio, I just notice that the GPL LICENCE files of the 19.05 has been replaced by a proprietary EULA. Being a free software advocate, using Free Software is extremely important for me. So is someone can confirm that Eiffel Studio still has an Open-source license (like it is still indicated there: https://www.eiffel.com/eiffelstudio/licensing/) or is Eiffel now only behind a proprietary EULA?

Thanks,

Louis M

--
You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.

Ulrich Windl

unread,
Jan 4, 2021, 7:25:48 AM1/4/21
to eiffel...@googlegroups.com
>>> Bertrand Meyer <Bertran...@inf.ethz.ch> schrieb am 24.12.2020 um 12:44
in
Nachricht <041f01d6d9ea$2c038090$840a81b0$@inf.ethz.ch>:
> The cited addition going back to 20.05
>
>
>
> > Improved support for Unicode: in the search tools, in
code
> completion to insert Unicode symbols
>
>
>
> includes completion support in EiffelStudio making it easy to use Unicode
> quantifier expressions such as
>
>
>
> if ∃ c: your_string | c.is_upper then …

Hi!

Wondering: What operators to implement, which not?: In the past Betrand was
against cryptic operators (even though being a mathemacican), but the
preference seems to have changed.
After browsing the Unicode tables a bit, I wonder about these operators:
Should they all be implemented in the appropriate classes?:
∃∀∄∈∉∋∌∌⊂⊃⊄⊅⊆⊇⊈⊉⊊⊋

(Apologies to those not having Unicode capabilities to read)

Regards,
Ulrich

>
>
>
> A blog post I just wrote,
> https://bertrandmeyer.com/2020/12/24/right-forms-expression/, gives more
> details.
>
>
>
> -- Bertrand Meyer
>
>
>
> From: eiffel...@googlegroups.com [mailto:eiffel...@googlegroups.com]
> On Behalf Of Larry Rix
> Sent: Thursday, December 24, 2020 00:26
> To: Eiffel Users <eiffel...@googlegroups.com>
> Subject: [eiffel-users] Re: EiffelStudio 20.11 is now available
>
>
>
> YAY!!!
>
> On Tuesday, December 22, 2020 at 8:33:50 AM UTC-5 Eiffel Users wrote:
>
> We are pleased to announce the availability of EiffelStudio 20.11.
>
> Try it right now <https://www.eiffel.org/downloads> ! All the download sites

> <https://www.eiffel.org/downloads> have been updated.
>
> The highlights are:
>
> * Supported once classes
> <https://www.eiffel.org/blog/Alexander%20Kogtenkov/2020/12/once-classes> .
> * A new WrapC wizard is available to assist the user wrapping C
libraries.
> * Autotest has been updated and is now fully compatible with void
safety.
> * And new wrappers for mpack, cairo, librsvg). They are available via
> https://iron.eiffel.com/.
> * Plus numerous improvements across the libraries (new graphs, b-trees,
> union-find in unstable/library/base_extension, reCaptcha v3 support, fixed
> known web vulnerabilities in the CMS component.
>
> Let's remind the main highlights of previous EiffelStudio 20.05 :
>
> * The new support for multi-branch expressions that are similar to
> multi-branch instructions, but Then_parts and Else_part contain expressions

> instead of instruction sequences.
> * Improved support for Unicode: in the search tools, in code completion
to
> insert Unicode symbols.
>
> See the release notes
>
<https://www.eiffel.org/doc/eiffelstudio/Release_notes_for_EiffelStudio_20.11>

> for details.
>
> Happy Eiffeling,
>
> -- The Eiffel Software Team
>
> Link: https://www.eiffel.org/blog/eiffelstudio_20_11
>
> --
> You received this message because you are subscribed to the Google Groups
> "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to eiffel-users...@googlegroups.com
> <mailto:eiffel-users...@googlegroups.com> .
<https://groups.google.com/d/msgid/eiffel-users/f12176b3-8d8f-4bb5-9485-8c12d

> 12ae240n%40googlegroups.com?utm_medium=email&utm_source=footer> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to eiffel-users...@googlegroups.com.
> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/eiffel-users/041f01d6d9ea%242c038090%24840a

> 81b0%24%40inf.ethz.ch.



Ulrich Windl

unread,
Jan 4, 2021, 7:30:42 AM1/4/21
to eiffel...@googlegroups.com
>>> Volkan Arslan <Volkan...@gmx.net> schrieb am 24.12.2020 um 14:57 in
Nachricht <c3f81d9d-a8fb-8504...@gmx.net>:
> I like this new Unicode quantifiers; in particular in in software code
> they really look quite impressive.
>
> Just a comment, nothing earth-shattering but a (very) small detail:
>
> I don't know if there are any technical or non-technical reasons, but it
> would be nice to support beside
> the "broken bar" |
> also
> the "vertical line" | (Unicode Basic Latin, position: 0x007C,
> see https://unicode-table.com/en/007C/)
> since most keyboards nowadays do have the "vertical line" | symbol too.

Are you missing glyph appearance with glyph code? "broken bar" is "&#xFFE4;",
"vertical line" is "&#xE007C;", which is not "vertical bar" (ASCII code). I
doubt a keyboard will have a key other than for the ASCII vertical bar.

Regards,
Ulrich

>
> Regards
> Volkan
>
>
> On 24/12/2020 12:44, Bertrand Meyer wrote:
>>
>> The cited addition going back to 20.05
>>
>> > Improved support for Unicode: in the search tools, in code
>> completion to insert Unicode symbols
>>
>> includes completion support in EiffelStudio making it easy to use
>> Unicode quantifier expressions such as
>>
>> *if*∃c: your_string | c.is_upper *then *…
>> <https://bertrandmeyer.com/2020/12/24/right-forms-expression/>, gives
>> more details.
>>
>> -- Bertrand Meyer
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to eiffel-users...@googlegroups.com.
> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/eiffel-users/c3f81d9d-a8fb-8504-92b4-a1c594

> 5b5633%40gmx.net.



Ulrich Windl

unread,
Jan 4, 2021, 7:34:44 AM1/4/21
to eiffel...@googlegroups.com
>>> Bertrand Meyer <Bertran...@inf.ethz.ch> schrieb am 25.12.2020 um 13:30
in
Nachricht <04b001d6dab9$bd727c50$385774f0$@inf.ethz.ch>:
> Sorry, it was meant as two hyphens approximating an em-dash “—“, my finger
> slipped to the right.

Actually one could read "==" as "meaning", and it would still make sense ;-)

>
>
>
> -- BM
>
>
>
> From: eiffel...@googlegroups.com [mailto:eiffel...@googlegroups.com]
> On Behalf Of Philippe Laré
> Sent: Friday, December 25, 2020 13:25
> To: eiffel...@googlegroups.com
> Subject: Re: [eiffel-users] Re: EiffelStudio 20.11 is now available
>
>
>
>
> « The issue here is backward compatibility == we do not want to break
> existing code. »
>
>
> == ?
>
> ��
>
> Ph.
>
>
>
> Le jeu. 24 déc. 2020 à 15:18, Bertrand Meyer <Bertran...@inf.ethz.ch
> <mailto:Bertran...@inf.ethz.ch> > a écrit :
>
> Yes, it’s a broken bar, because the normal bar would create a syntactical
> conflict since it is allowed in free operators, where it is actually used
> fairly often in practice. We did look for a way to allow it anyway, through

> ad hoc techniques for syntactical disambiguation, but did not find an
obvious
> solution. The expectation is that most of the time the broken bar will be
> generated automatically through completion, so this shouldn’t be too much of

> a burden.
>
>
>
> The issue here is backward compatibility == we do not want to break existing

> code.
>
>
>
> -- BM
>
>
>
> From: eiffel...@googlegroups.com <mailto:eiffel...@googlegroups.com>

> [mailto:eiffel...@googlegroups.com <mailto:eiffel...@googlegroups.com>
]
> On Behalf Of Volkan Arslan
> Sent: Thursday, December 24, 2020 14:57
> To: eiffel...@googlegroups.com <mailto:eiffel...@googlegroups.com>
> <mailto:eiffel-users...@googlegroups.com> .
> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/eiffel-users/c3f81d9d-a8fb-8504-92b4-a1c594

> 5b5633%40gmx.net
>
<https://groups.google.com/d/msgid/eiffel-users/c3f81d9d-a8fb-8504-92b4-a1c59

> 45b5633%40gmx.net?utm_medium=email&utm_source=footer> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to eiffel-users...@googlegroups.com
> <mailto:eiffel-users...@googlegroups.com> .
> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/eiffel-users/044701d6d9ff%249c679410%24d536

> bc30%24%40inf.ethz.ch
>
<https://groups.google.com/d/msgid/eiffel-users/044701d6d9ff%249c679410%24d53

> 6bc30%24%40inf.ethz.ch?utm_medium=email&utm_source=footer> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to eiffel-users...@googlegroups.com
> <mailto:eiffel-users...@googlegroups.com> .
> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/eiffel-users/CAN%3DG_amWC%3DEgRaoX1oT%2BhWb

> UdUhd7G0B%3Dtrg15%3DdLoaV%2BKbZ%3DQ%40mail.gmail.com
>
<https://groups.google.com/d/msgid/eiffel-users/CAN%3DG_amWC%3DEgRaoX1oT%2BhW

>
bUdUhd7G0B%3Dtrg15%3DdLoaV%2BKbZ%3DQ%40mail.gmail.com?utm_medium=email&utm_sou
> rce=footer> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to eiffel-users...@googlegroups.com.
> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/eiffel-users/04b001d6dab9%24bd727c50%243857

> 74f0%24%40inf.ethz.ch.



Bertrand Meyer

unread,
Jan 4, 2021, 7:54:28 AM1/4/21
to eiffel...@googlegroups.com, me...@inf.ethz.ch
Vertical bar would indeed be better, but it would create a syntactical conflict (since it can be used in free operators). Backward compatibility issue. Maybe we'll find a way around the problem, but in the meantime it is the broken bar, which should not be a problem under EiffelStudio since it is generated by the automatic completion mechanism.

-- BM
To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/5FF30A6B020000A10003DEF9%40gwsmtp.uni-regensburg.de.

Eiffel Users

unread,
Jan 4, 2021, 10:30:50 AM1/4/21
to Eiffel Users
The GPL-licensed source code is available at https://svn.eiffel.com/eiffelstudio-public/. 19.05 is currently the latest version there, with 19.12 to follow soon.

Louis M

unread,
Jan 4, 2021, 12:46:51 PM1/4/21
to Eiffel Users

Thanks. This is reassuring. I was wondering because in the past, both version was released at the same times.

Louis M

Bertrand Meyer

unread,
Jan 4, 2021, 6:33:32 PM1/4/21
to eiffel...@googlegroups.com, me...@inf.ethz.ch

Dear Ulrich,

 

> After browsing the Unicode tables a bit, I wonder about these operators:

> Should they all be implemented in the appropriate classes?:

∃∀∄∈∉∋∌∌⊂⊃⊄⊅⊆⊇⊈⊉⊊⊋

 

Indeed, class SUBSET of EiffelBase now has the basic membership and subset/superset operators as operator aliases. Not all of the above but the most common ones.

 

Also membership, in SET, but only , as an operator alias for `has'. At the moment is not possible (see a discussion started by Jonathan Ostroff some time ago).

 

(The problem with is that in the simplest approach it would have to be in ANY, but that class should not depend on non-kernel classes such as SET.)

 

Union and intersection symbols È and Ç  are not present because the corresponding features in SUBSET are procedures (used as e.g. a.merge (b), meaning a := a È b), I guess for performance reasons. Actually the function versions should be added (if only for purposes of writing contracts, but also for people preferring a functional style of programming), with the appropriate Unicode aliases.

 

∃ and ∀ are not operators (in the sense of denoting features of some class), but part of the syntax.

 

With best regards,

 

-- Bertrand Meyer

Ulrich Windl

unread,
Jan 5, 2021, 2:53:28 AM1/5/21
to eiffel...@googlegroups.com
>>> Bertrand Meyer <Bertran...@inf.ethz.ch> schrieb am 05.01.2021 um 00:33
in
Nachricht <098701d6e2f2$03292740$097b75c0$@inf.ethz.ch>:

Dear Bertrand,

> ∃ and ∀ are not operators (in the sense of denoting features of some class),

> but part of the syntax.

I don't quite understand: If you have a Boolean function accepting two
parameters, a list of items, and a function accepting one item and returning a
Boolean, why aren't those operators (Obviously the function is applied to the
list until the final result had been determined)? I mean you need some Boolean
property and an iterable collection.

In case it was confusing, here is a sample quck and dirty implementation (in
Perl, because I was lazy):
~> cat /tmp/forall.pl
#!/usr/bin/perl
my @list = (1, 2, 3);

sub forall($@)
{
my ($fn, @list) = @_;

foreach (@list) {
return undef
unless ($fn->($_));
}
return 1;
}

print forall(sub ($) { $_[0] > 1 }, @list) ? 'true' : 'false', "\n";
print forall(sub ($) { $_[0] >= 1 }, @list) ? 'true' : 'false', "\n";
~> perl /tmp/forall.pl
false
true

Regards,
Ulrich

Reply all
Reply to author
Forward
0 new messages