VEVI errors in WEL code

7 messages Options
Embed this post
Permalink
peter7723

VEVI errors in WEL code

Reply Threaded More More options
Print post
Permalink
I am getting VEVI errors in library code.
I am using the experimental libraries.
I am compiling for a .NET target.
Sample error reports and .ecf file follow:
=========================================================
VEVI: Variable is not properly set. Attribute: toolbar: EV_TOOL_BAR_IMP from EV_INTERNAL_TOOL_BAR_IMP IDENTIFIED_ROUTINES.eif_object_id (ise) 42, 73
                Error code: VEVI

Error: variable is not properly set.
What to do: ensure the variable is properly set by the corresponding
  setter instruction.

Class: EV_INTERNAL_TOOL_BAR_IMP
Source class: IDENTIFIED_ROUTINES
Feature: eif_object_id
Creation procedure: make_with_toolbar (a_parent: WEL_COMPOSITE_WINDOW; a_toolbar_imp: EV_TOOL_BAR_IMP) declared in EV_INTERNAL_TOOL_BAR_IMP
Attribute: toolbar: EV_TOOL_BAR_IMP from EV_INTERNAL_TOOL_BAR_IMP
Line: 42
        l_success := xyz_mutex.wait_one
->      xyz_reference_list.extend (create {WEAK_REFERENCE}.make_from_target (Current))
        Result := xyz_reference_list.count
=========================================================
VEVI: Variable is not properly set. Attribute: toolbar: EV_TOOL_BAR_IMP from EV_INTERNAL_TOOL_BAR_IMP WEL_IDENTIFIED.eif_is_object_id_of_current (wel) 28, 38
                Error code: VEVI

Error: variable is not properly set.
What to do: ensure the variable is properly set by the corresponding
  setter instruction.

Class: EV_INTERNAL_TOOL_BAR_IMP
Source class: WEL_IDENTIFIED
Feature: eif_is_object_id_of_current
Creation procedure: make_with_toolbar (a_parent: WEL_COMPOSITE_WINDOW; a_toolbar_imp: EV_TOOL_BAR_IMP) declared in EV_INTERNAL_TOOL_BAR_IMP
Attribute: toolbar: EV_TOOL_BAR_IMP from EV_INTERNAL_TOOL_BAR_IMP
Line: 28
      do
->      Result := eif_id_object (an_id) = Current
      end
================================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<system xmlns="http://www.eiffel.com/developers/xml/configuration-1-5-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-5-0 http://www.eiffel.com/developers/xml/configuration-1-5-0.xsd" name="room_performance_animator_void_safe" uuid="8B63E353-29E8-48F6-920C-0367F5FF8D36">
        <target name="room_performance_animator">
                <root cluster="root_cluster" class="APPLICATION" feature="make_and_launch"/>
                <option warning="true" full_class_checking="true" is_attached_by_default="true" void_safety="all" syntax="standard">
                        <assertions precondition="true" postcondition="true" check="true" invariant="true" loop="true" supplier_precondition="true"/>
                </option>
                <library name="base-safe" location="$ISE_LIBRARY\library\base\base-safe.ecf"/>
                <library name="time-safe" location="$ISE_LIBRARY\library\time\time-safe.ecf"/>
                <library name="vision2" location="$ISE_LIBRARY\library\vision2\vision2-safe.ecf"/>
                <library name="vision2_extension" location="$ISE_LIBRARY\library\vision2_extension\vision2_extension-safe.ecf"/>
                <library name="wel" location="$ISE_LIBRARY\library\wel\wel-safe.ecf"/>
                <assembly name="microsoft.office.interop.excel" location="c:\Program Files\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11\Microsoft.Office.Interop.Excel.dll" prefix="EXCEL_"/>
                <assembly name="mscorlib" location="$ISE_DOTNET_FRAMEWORK\mscorlib.dll"/>
                <assembly name="presentationcore" location="c:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationCore.dll" prefix="WINDOWS_"/>
                <assembly name="system.drawing" location="$ISE_DOTNET_FRAMEWORK\System.Drawing.dll" prefix="SYSTEM_DRAWING_"/>
                <assembly name="system.windows.forms" location="$ISE_DOTNET_FRAMEWORK\System.Windows.Forms.dll" prefix="WINFORMS_"/>
                <cluster name="root_cluster" location=".\" recursive="true">
                        <file_rule>
                                <exclude>/EIFGENs$</exclude>
                                <exclude>/.svn$</exclude>
                                <exclude>/CVS$</exclude>
                        </file_rule>
                        <visible class="MAIN_WINDOW" feature="n_i"/>
                        <visible class="MAIN_WINDOW" feature="next_image"/>
                </cluster>
        </target>
        <target name="room_performance_animator_dotnet" extends="room_performance_animator">
                <setting name="dotnet_naming_convention" value="True"/>
                <setting name="msil_generation" value="true"/>
        </target>
</system>
==============================================
--
Peter Horan


Emmanuel Stapf

RE: VEVI errors in WEL code

Reply Threaded More More options
Print post
Permalink
> I am getting VEVI errors in library code.
> I am using the experimental libraries.
> I am compiling for a .NET target.

Under .NET, there are 2 places which prevents the EiffelVision2 library to be
compiled in void-safe mode: WEL_IDENTIFIED and IDENTIFIED_ROUTINES. If you comment
the lines in those classes in which Current appears then it will compile just
fine. This is something we are looking at fixing in 6.5.

Regards,
Manu



------------------------------------------------------------------------  
Eiffel Software
805-685-1006
http://www.eiffel.com       
Customer support: http://support.eiffel.com       
User group: http://groups.eiffel.com/join       
------------------------------------------------------------------------  
peter7723

Re: VEVI errors in WEL code

Reply Threaded More More options
Print post
Permalink
--- In [hidden email], "Emmanuel Stapf [ES]" <manus@...> wrote:
>
> > I am getting VEVI errors in library code.
> > I am using the experimental libraries.
> > I am compiling for a .NET target.
>
> Under .NET, there are 2 places which prevents the EiffelVision2 library to be
> compiled in void-safe mode: WEL_IDENTIFIED and IDENTIFIED_ROUTINES. If you comment
> the lines in those classes in which Current appears then it will compile just
> fine. This is something we are looking at fixing in 6.5.

Just to make sure I follow you:

For this error:
======================================
Error code: VEVI

Error: variable is not properly set.
What to do: ensure the variable is properly set by the corresponding
  setter instruction.

Class: EV_TABLE_IMP
Source class: IDENTIFIED_ROUTINES
Feature: eif_object_id
Creation procedure: make declared in EV_TABLE_IMP
Attribute: remove_item_actions: EV_LITE_ACTION_SEQUENCE [TUPLE [EV_WIDGET]] from EV_CONTAINER_IMP
Line: 42
        l_success := xyz_mutex.wait_one
->      xyz_reference_list.extend (create {WEAK_REFERENCE}.make_from_target (Current))
        Result := xyz_reference_list.count
======================================
Comment out line 42 in IDENTIFIED_ROUTINES as shown:
======================================
        eif_object_id (an_object: ANY): INTEGER
                        -- New identifier for `an_object'
                local
                        l_success: BOOLEAN
                do
                        l_success := xyz_mutex.wait_one
-- xyz_reference_list.extend (create {WEAK_REFERENCE}.make_from_target (Current))
                        Result := xyz_reference_list.count
                        xyz_mutex.release_mutex
                ensure
                        eif_object_id_positive: Result > 0
                        inserted: eif_id_object (Result) = an_object
                end
======================================
--
Peter Horan             Faculty of Science and Technology
[hidden email]     Deakin University
+61-3-5221 1234 (Voice) Geelong, Victoria 3217, AUSTRALIA
+61-4-0831 2116 (Mobile)

-- The Eiffel guarantee: From specification to implementation
-- (http://www.cetus-links.org/oo_eiffel.html)


peter7723

VJRV warnings [was Re: VEVI errors in WEL code]

Reply Threaded More More options
Print post
Permalink
I also have a number of warnings involving assignment attempts in the library classes.

I thought assignment attempt had disappeared.
==================================================
VJRV(1): Target of assignment attempt is expanded. TUPLE.boolean_item (ise) 89, 4
Warning code: VJRV(1)

Warning: target of assignment attempt is expanded.
What to do: make sure the target is of a reference type.

Class: TUPLE
Feature: boolean_item
Target name: Result
Target type: BOOLEAN
Line: 89
      do
->      Result ?= native_array.item (index)
      end
==================================================
VJRV(2): Type of assignment target (formal generic parameter) may represent an expanded type. EV_DYNAMIC_LIST_IMP.i_th (implementation_mswin) 27, 4
Warning code: VJRV(2)

Warning: type of assignment target (formal generic parameter)
    may represent an expanded type.
What to do: make sure the target is of a reference type.

Class: EV_DYNAMIC_LIST_IMP [G -> detachable EV_CONTAINABLE, G_IMP -> detachable EV_ANY_I]
Feature: i_th
Target name: Result
Target type: [detachable like item] detachable Generic #1
Line: 27
        check l_item /= Void end
->      Result ?= l_item.interface
      end

--
Peter Horan             Faculty of Science and Technology
[hidden email]     Deakin University
+61-3-5221 1234 (Voice) Geelong, Victoria 3217, AUSTRALIA
+61-4-0831 2116 (Mobile)

-- The Eiffel guarantee: From specification to implementation
-- (http://www.cetus-links.org/oo_eiffel.html)


Emmanuel Stapf

RE: Re: VEVI errors in WEL code

Reply Threaded More More options
Print post
Permalink
In reply to this post by peter7723
> Just to make sure I follow you:

That's correct. It will make your code compile, however your code won't run
properly without those lines. I was merely showing that those two lines are
causing all the errors reported by the compiler.

Regards,
Manu


------------------------------------------------------------------------  
Eiffel Software
805-685-1006
http://www.eiffel.com       
Customer support: http://support.eiffel.com       
User group: http://groups.eiffel.com/join       
------------------------------------------------------------------------  
peter7723

Re: VEVI errors in WEL code

Reply Threaded More More options
Print post
Permalink
--- In [hidden email], "Emmanuel Stapf [ES]" <manus@...> wrote:
> That's correct. It will make your code compile, however your code won't run
> properly without those lines. I was merely showing that those two lines are
> causing all the errors reported by the compiler.

Ah. So I need to wait for the solution.

Peter Horan

Emmanuel Stapf

RE: VJRV warnings [was Re: VEVI errors in WEL code]

Reply Threaded More More options
Print post
Permalink
In reply to this post by peter7723
> I also have a number of warnings involving assignment attempts in the
> library classes.

We are aware of those warnings. In the non-void-safe version, warnings are not
raised, but for the void-safe versions we have decided to have warnings enabled
for all our libraries and this is why you are seeing them now and not before. For
the time being you can safely ignore them.

Regards,
Manu


------------------------------------------------------------------------  
Eiffel Software
805-685-1006
http://www.eiffel.com       
Customer support: http://support.eiffel.com       
User group: http://groups.eiffel.com/join       
------------------------------------------------------------------------