[eiffel-users] Eiffel-Loop version 1.4.5 available

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[eiffel-users] Eiffel-Loop version 1.4.5 available

Finnian Reilly

--
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 [hidden email].
Visit this group at https://groups.google.com/group/eiffel-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[eiffel-users] Re: Eiffel-Loop version 1.4.5 available

Larry Rix
The Vision2-x library is not void safe?

On Friday, May 12, 2017 at 5:06:24 AM UTC-4, Finnian Reilly wrote:

<a href="https://github.com/finnianr/Eiffel-Loop/releases/tag/1.4.5" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Ffinnianr%2FEiffel-Loop%2Freleases%2Ftag%2F1.4.5\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHJf3VV0VQ_kkPwgY8VHccKQlZg2Q&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Ffinnianr%2FEiffel-Loop%2Freleases%2Ftag%2F1.4.5\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHJf3VV0VQ_kkPwgY8VHccKQlZg2Q&#39;;return true;">https://github.com/finnianr/Eiffel-Loop/releases/tag/1.4.5

--
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 [hidden email].
Visit this group at https://groups.google.com/group/eiffel-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[eiffel-users] Re: Eiffel-Loop version 1.4.5 available

Larry Rix
In reply to this post by Finnian Reilly
Also--I get the following error at compile-time on the Vision2-x library

Error code: VTCT

Error: type is based on unknown class.
What to do: use an identifier that is the name of a class in the universe.

Class: EV_DYNAMIC_TREE_ITEM
Unknown class name: DATE_TIME
Line: 133
  
->  last_subtree_function_call_time: detachable DATE_TIME
        -- Time in milliseconds at which `subtree_function' was last called.


On Friday, May 12, 2017 at 5:06:24 AM UTC-4, Finnian Reilly wrote:

<a href="https://github.com/finnianr/Eiffel-Loop/releases/tag/1.4.5" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Ffinnianr%2FEiffel-Loop%2Freleases%2Ftag%2F1.4.5\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHJf3VV0VQ_kkPwgY8VHccKQlZg2Q&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Ffinnianr%2FEiffel-Loop%2Freleases%2Ftag%2F1.4.5\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHJf3VV0VQ_kkPwgY8VHccKQlZg2Q&#39;;return true;">https://github.com/finnianr/Eiffel-Loop/releases/tag/1.4.5

--
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 [hidden email].
Visit this group at https://groups.google.com/group/eiffel-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[eiffel-users] Re: Eiffel-Loop version 1.4.5 available

Finnian Reilly
Hi Larry
there are a number of things I neglected to mention about the Vision2-x library in the Readme.md and which I need to add. Armed with this information you might be able to work out what the problem is.

1. Vision2-x is based on an over-ride of the standard Vision2 library and contains some modified classes. Only the over-ride should be referenced in your ECF like this (Pyxis format) and not the standard library.
# Eiffel Loop overrides
library
:
   name
= vision2; location="$EIFFEL_LOOP/library/override/ES-vision2.ecf"
   
readonly = false
   option
:
      assertions
:
         precondition
= false; postcondition = false; check = false; invariant = false

library
:
   name
= docking; location = "$EIFFEL_LOOP/library/override/ES-docking.ecf"; readonly = false

There is also a precompile you can use generated by the scons build.
precompile:
   name
= precompile; location = "$EIFFEL_LOOP/precomp/$ISE_PLATFORM/GUI-application.ecf"

2. The most recent compiler tested with Vision2-x is EiffelStudio 16.05. It is possible that later versions might have some changes to the standard vision2 which need to be integrated into the override.

regards
Finnian

On Thursday, 18 May 2017 19:57:33 UTC+1, Larry Rix wrote:
Also--I get the following error at compile-time on the Vision2-x library

Error code: VTCT

Error: type is based on unknown class.
What to do: use an identifier that is the name of a class in the universe.

Class: EV_DYNAMIC_TREE_ITEM
Unknown class name: DATE_TIME
Line: 133
  
->  last_subtree_function_call_time: detachable DATE_TIME
        -- Time in milliseconds at which `subtree_function' was last called.


On Friday, May 12, 2017 at 5:06:24 AM UTC-4, Finnian Reilly wrote:

<a href="https://github.com/finnianr/Eiffel-Loop/releases/tag/1.4.5" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Ffinnianr%2FEiffel-Loop%2Freleases%2Ftag%2F1.4.5\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHJf3VV0VQ_kkPwgY8VHccKQlZg2Q&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Ffinnianr%2FEiffel-Loop%2Freleases%2Ftag%2F1.4.5\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHJf3VV0VQ_kkPwgY8VHccKQlZg2Q&#39;;return true;">https://github.com/finnianr/Eiffel-Loop/releases/tag/1.4.5

--
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 [hidden email].
Visit this group at https://groups.google.com/group/eiffel-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[eiffel-users] Re: Eiffel-Loop version 1.4.5 available

Finnian Reilly
In reply to this post by Larry Rix
VOID SAFETY
On Thursday, 18 May 2017 19:55:27 UTC+1, Larry Rix wrote:
The Vision2-x library is not void safe?
I am not yet sufficiently convinced about the advantages of compiler enforced void safe code to undertake the rather large task of making Eiffel-Loop void safe. (unless someone pays me of course)

However I am mindful of the principles of void safety when writing my code, so although not formally void safe, it might be considered as half-way there. To give an example, I avoid writing this kind of code
    do_something
       
local
            value
: INTEGER_REF
       
do
            value
:= table ["x"]
            do_with
(value)
       
end

preferring instead
    do_something
       
-- GOOD
       
local
            value
: INTEGER_REF
       
do
            table
.search ("x")
           
if table.found then
                do_with
(table.found_item)
           
end
       
end

Also I avoid having detached attributes in classes, and if I do I mark them as detached and write the kind of void safe code you would expect.

However some of my older code may not live up to this standard.

--
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 [hidden email].
Visit this group at https://groups.google.com/group/eiffel-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[eiffel-users] Re: Eiffel-Loop version 1.4.5 available

Finnian Reilly
In reply to this post by Larry Rix
Hi Larry 
->  last_subtree_function_call_time: detachable DATE_TIME
        -- Time in milliseconds at which `subtree_function' was last called.
Ok, I see whats happened now. In the 16.05 version this line is

last_subtree_function_call_time: INTEGER

so there have been some changes in the more recent version you are using.

It's just a matter of editing  $EIFFEL_LOOP/library/override/ES-vision2.ecf and including the date time library

However it's possible there might be some other changes which need integrating into the Eiffel-Loop over-ride. So it's not guaranteed to work. But give it a try.

--
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 [hidden email].
Visit this group at https://groups.google.com/group/eiffel-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[eiffel-users] Re: Eiffel-Loop version 1.4.5 available

Larry Rix
Hi Finnian!

I will circle back to this. I went ahead and just used EV2 in the meantime.

On Friday, May 19, 2017 at 5:45:53 AM UTC-4, Finnian Reilly wrote:
Hi Larry 
->  last_subtree_function_call_time: detachable DATE_TIME
        -- Time in milliseconds at which `subtree_function' was last called.
Ok, I see whats happened now. In the 16.05 version this line is

last_subtree_function_call_time: INTEGER

so there have been some changes in the more recent version you are using.

It's just a matter of editing  $EIFFEL_LOOP/library/override/ES-vision2.ecf and including the date time library

However it's possible there might be some other changes which need integrating into the Eiffel-Loop over-ride. So it's not guaranteed to work. But give it a try.

--
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 [hidden email].
Visit this group at https://groups.google.com/group/eiffel-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[eiffel-users] Re: Eiffel-Loop version 1.4.5 available

Larry Rix
In reply to this post by Finnian Reilly
Having used void safe code now for about 7 years, I am very convinced in the patterns. Following them has become second nature. I can clearly see that without the compiler-enforced VS and the patterns (which are easily turned into mental-muscle-memory), my coding tasks would be much more involved. With VS, I simply do not think about void target calls any longer. They are not on my radar—at all. In this way, I am free to focus on just writing code about the task and not about managing voids along with it. :-)

On Friday, May 19, 2017 at 5:26:40 AM UTC-4, Finnian Reilly wrote:
VOID SAFETY
On Thursday, 18 May 2017 19:55:27 UTC+1, Larry Rix wrote:
The Vision2-x library is not void safe?
I am not yet sufficiently convinced about the advantages of compiler enforced void safe code to undertake the rather large task of making Eiffel-Loop void safe. (unless someone pays me of course)

However I am mindful of the principles of void safety when writing my code, so although not formally void safe, it might be considered as half-way there. To give an example, I avoid writing this kind of code
    do_something
       
local
            value
: INTEGER_REF
       
do
            value
:= table ["x"]
            do_with
(value)
       
end

preferring instead
    do_something
       
-- GOOD
       
local
            value
: INTEGER_REF
       
do
            table
.search ("x")
           
if table.found then
                do_with
(table.found_item)
           
end
       
end

Also I avoid having detached attributes in classes, and if I do I mark them as detached and write the kind of void safe code you would expect.

However some of my older code may not live up to this standard.

--
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 [hidden email].
Visit this group at https://groups.google.com/group/eiffel-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[eiffel-users] Re: Eiffel-Loop version 1.4.5 available

Finnian Reilly
It's great that you have got so used to using  VS. I guess I should give it a try for a smaller library. The other factor is I am afraid I might break a lot of things while converting code, or be tempted to change things that are best left alone. I spend enough time as it is paying the price for making nicer code. Also I so rarely encounter the bug bear everyone is so afraid of, void calls, and my code is not being used in a nuclear power station.

Sometimes I think EiffelSoftware should make a separate void safe product with a hefty price tag and market it at the nuclear and aviation industry, and perhaps call it EiffelStudio Nuclear Edition. I am happy with the standard edition.

On Friday, 19 May 2017 16:39:02 UTC+1, Larry Rix wrote:
Having used void safe code now for about 7 years, I am very convinced in the patterns. Following them has become second nature. I can clearly see that without the compiler-enforced VS and the patterns (which are easily turned into mental-muscle-memory), my coding tasks would be much more involved. With VS, I simply do not think about void target calls any longer. They are not on my radar—at all. In this way, I am free to focus on just writing code about the task and not about managing voids along with it. :-)

--
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 [hidden email].
Visit this group at https://groups.google.com/group/eiffel-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[eiffel-users] Re: Eiffel-Loop version 1.4.5 available

Finnian Reilly
In reply to this post by Larry Rix

Once of the more interesting goodies in Vision2-x are descendants** of class EL_INPUT_WIDGET

EL_INPUT_WIDGET* [G]
   EL_DROP_DOWN_BOX
[G]
      EL_ZSTRING_DROP_DOWN_BOX
         EL_LOCALE_STRING_DROP_DOWN_BOX
      THEME_DROP_DOWN_BOX
      EL_ENGLISH_MONTH_DROP_DOWN_BOX
         EL_LOCALE_MONTH_DROP_DOWN_BOX
      ZOOM_FACTOR_DROP_DOWN_BOX
   EL_RADIO_BUTTON_GROUP
* [G]
      EL_THUMBNAIL_RADIO_BUTTON_GROUP
      EL_INTEGER_ITEM_RADIO_BUTTON_GROUP
      EL_BOOLEAN_ITEM_RADIO_BUTTON_GROUP

It lets you map a type to a display with a convenient way to  set and get in the make routine. Also there is a way of defining a display value from the associated type. Some Examples

new_search_result_count_options: EL_INTEGER_ITEM_RADIO_BUTTON_GROUP
   
do
      create
Result.make (
         dialog
.preferences.search_result_page_count, << 20, 30, 60, 100 >>,
         
Locale * "search results per page", agent dialog.on_select_page_count
     
)
   
end

new_browser_options
: EL_BOOLEAN_ITEM_RADIO_BUTTON_GROUP
   
do
      create
Result.make (
         dialog
.preferences.is_default_browser_enabled,
         
Locale * "{open-in-myching}", Locale * "{open-in-default-browser}",
         agent dialog
.on_change_browser
     
)
   
end

With class EL_LOCALE_STRING_DROP_DOWN_BOX, the get/set value is always in English but the display value is a localized string. There are various make routines as well to sort the display values

** Ones that don't start with EL_ are proprietary.

--
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 [hidden email].
Visit this group at https://groups.google.com/group/eiffel-users.
For more options, visit https://groups.google.com/d/optout.
Loading...