Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation Error #11

Open
pnasimi opened this issue Apr 25, 2019 · 33 comments
Open

Installation Error #11

pnasimi opened this issue Apr 25, 2019 · 33 comments

Comments

@pnasimi
Copy link

pnasimi commented Apr 25, 2019

when i try to build i get this error:
Apples-MBP:adl-tools root# scons downloads/mac_osx/adl_workbench
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
Setting revision 3039 ...
adl_workbench
/Applications/MacPorts/Eiffel_18.11/studio/spec/macosx-x86-64/bin/ec -batch -config apps/adl_workbench/app/adl_workbench.ecf -finalize -clean -c_compile -target adl_workbench
... ch/app/adl_workbench.ecf -finalize -clean -c_compile -target adl_workbench
Eiffel Compilation Manager
Version 18.11.10.2592 GPL Edition - macosx-x86-64

Degree 6: Examining System
Degree 5: Parsing Classes
Degree 6: Examining System
Degree 5: Parsing Classes

Warning code: VD80

Configuration warning

Class: AGENT_
File name: ~/openEHR/adl-tools/libraries/openehr/src/rm/demographic/agent.e
Expected file name: ~/openEHR/adl-tools/libraries/openehr/src/rm/demographic/agent_.e


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_TREE_IMP
Unknown class name: EV_TREE_ACTION_SEQUENCES_IMP
Line: 52

-> EV_TREE_ACTION_SEQUENCES_IMP


scons: *** [EIFGENs/adl_workbench/F_code/adl_workbench] Error 1
scons: building terminated because of errors.
Apples-MBP:adl-tools root#

what should I do?

@wolandscat
Copy link
Member

You are on build 18.11 of Eiffel, which is a little bit a head of me, so maybe something changed. I'll download 18.11 and see if everything builds (I am on Windows, but this kind of thing should be identical across platforms).

@pnasimi
Copy link
Author

pnasimi commented Apr 25, 2019

I Also try installing from eiffel studio, when open project i get this error:

Error code: VD00
General configuration parsing error.
What to do: fix the configuration file.

Could not open file: /library/app_support/eomf_app_support.ecf
$EOMF\library\app_support\eomf_app_support.ecf
Configuration: ~/openEHR/adl-tools/apps/adl_workbench/app/adl_workbench.ecf

@wolandscat
Copy link
Member

This is probably because you do not have $EOMF set - it needs to point to where you install the EOMF library. As per the wiki page.

@pnasimi
Copy link
Author

pnasimi commented Apr 25, 2019

this is what I set:
Apples-MBP:adl-tools root# ISE_PLATFORM=macosx-x86-64
Apples-MBP:adl-tools root# ISE_EIFFEL=/Applications/MacPorts/Eiffel_18.11
Apples-MBP:adl-tools root# PATH=$PATH:$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
Apples-MBP:adl-tools root# export EOMF=.../openEHR/EOMF
Apples-MBP:adl-tools root# export EIFFEL_HUB=.../openEHR/EiffelHub
Apples-MBP:adl-tools root# scons downloads/mac_osx/adl_workbench

but still get same error!

@pnasimi
Copy link
Author

pnasimi commented Apr 25, 2019

This is probably because you do not have $EOMF set - it needs to point to where you install the EOMF library. As per the wiki page.

Dear Thomas, you are right! I finally locate the EOMF and compile the project but there is 6501 new errors! all said "change void safety options so that ancestor or supplier provides higher or equal void safety."
a complete example is:
Error code: VD88

Configuration error: a class relies on another class with less strict void safety settings.
What to do: change void safety options so that ancestor or supplier provides higher or equal void safety.

Class: C_DV_QUANTITY
Void safety: Complete
Configuration: /...../openEHR/adl-tools/apps/adl_workbench/app/adl_workbench.ecf
Provider class: INTEGER_32
Provider option: Void safety: No
Provider configuration: /usr/local/Eiffel_15.12/library/base/base.ecf
Line: 94
new_mag: INTERVAL[REAL]
-> new_prec: INTERVAL[INTEGER]

what should I do to fix this?

@pnasimi
Copy link
Author

pnasimi commented Apr 25, 2019

I also try installing by package method and get this error:
Apples-MacBook-Pro:adl-tools root# scons downloads/mac_osx/adl_workbench
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
Setting revision 3039 ...
adl_workbench
/Applications/MacPorts/Eiffel_18.11/studio/spec/macosx-x86-64/bin/ec -batch -config apps/adl_workbench/app/adl_workbench.ecf -finalize -clean -c_compile -target adl_workbench
... stem: adl_workbench
File: /......./openEHR/adl-tools/apps/adl_workbench/app/adl_workbench.ecf
Dependent target
Name: process
System: process
File: /Applications/MacPorts/Eiffel_18.11/library/process/process.ecf


Error code: VD01

Error: A library used by the current project or a parent target used by the current target cannot be used under the selected settings.
What to do: Lower your requirements or update the library or the parent target to match them.

Capability "Void safety" of dependent target has value "Transitional" insufficient for current target setting "Complete".
Current target
Name: adl_workbench
System: adl_workbench
File: /......./openEHR/adl-tools/apps/adl_workbench/app/adl_workbench.ecf
Dependent target
Name: eomf_gui
System: eomf_gui
File: /......../EOMF/library/gui/eomf_gui.ecf


scons: *** [EIFGENs/adl_workbench/F_code/adl_workbench] Error 1
scons: building terminated because of errors.

how can i fix this?
thank you

@wolandscat
Copy link
Member

Sadly the latest version of the compiler breaks some of my own code so it will take me a bit of time to fix that. I'll post here when things are fixed.

@pnasimi
Copy link
Author

pnasimi commented Apr 26, 2019

Hi,
Today I Installed eiffel 15.12 on windows 10 and do all instructions for windows source installation. https://github.com/openEHR/adl-tools/wiki/Building-from-source
but when compiling i get approximately 7000 errors like the below:

Error code: VD88

Configuration error: a class relies on another class with less strict void safety settings.
What to do: change void safety options so that ancestor or supplier provides higher or equal void safety.

Class: EQA_EVALUATOR
Void safety: Complete
Configuration: c:\program files (x86)\eiffel software\eiffelstudio 15.12 gpl\library\testing\testing-safe.ecf
Provider class: STRING_8
Provider option: Void safety: No
Provider configuration: c:\program files (x86)\eiffel software\eiffelstudio 15.12 gpl\library\base\base.ecf
Line: 136

-> execute_test (a_name: STRING; a_rout_id: INTEGER): EQA_PARTIAL_RESULT
-- Execute test routine in test class.

@wolandscat
Copy link
Member

Ok, what I have discovered is that 18.11 version of EiffelStudio is indeed problematic, and the problem does not occur with 18.07. I suggest to remove the 18.11 version and download and install the 18.07 one.

@pnasimi
Copy link
Author

pnasimi commented May 6, 2019

Thank you, I'll install 18.07 and comment the result here.

@hank-lenzi
Copy link

Is it possible to install 18.07 and keep 18.11? I already have some projects going with the newer version.

@hank-lenzi
Copy link

I cloned the repository today 2019-05-18.
Got a bunch of errors, then applied auto fix and got these 2 remaining errors on 18.11:

Error code: VUEX(2)

Error: feature of qualified call is not available to client class.
What to do: make sure feature after dot is exported to caller.

Class: DT_OBJECT_CONVERTER
Feature: populate_eif_container_from_dt
Feature: make Class: HASH_TABLE Version from: HASH_TABLE
Not exported to class DT_OBJECT_CONVERTER
Line: 1069
if attached {HASH_TABLE [ANY, HASHABLE]} eif_container_obj as a_hash_table then -- eif static type is a HASH_TABLE
-> a_hash_table.make (0)
across a_dt_attr as a_dt_attr_csr loop

Error code: VUEX(2)

Error: feature of qualified call is not available to client class.
What to do: make sure feature after dot is exported to caller.

Class: DT_OBJECT_CONVERTER
Feature: create_object_from_dt
Feature: make Class: HASH_TABLE Version from: HASH_TABLE
Not exported to class DT_OBJECT_CONVERTER
Line: 499
if attached {HASH_TABLE [ANY, HASHABLE]} Result as a_hash_table then
-> a_hash_table.make (0)
elseif attached {ARRAYED_LIST [ANY]} Result as an_arrayed_list then

@hank-lenzi
Copy link

To be clear:
First error:
Fails because of "make" in a_hash_table.make (0)
Class: DT_OBJECT_CONVERTER

Second error:
Fails because "make" in a_hash_table.make (0)
Class: DT_OBJECT_CONVERTER

And then 3 Warnings:

	Warning code: VWMA

Type error: non-conforming manifest array.
What to do: make sure that the explicit manifest array type (if specified)
is an array type (ARRAY [...]) and every element type conforms or
converts to the specified type of items.

Class: DT_OBJECT_CONVERTER
Feature: populate_eif_container_from_dt
Explicit array type ARRAY [STRING_8] has to be specified.
Computed type of array elements ANY does not conform to the type STRING_8 of target array elements.
Line: 1097
errors.add_error (ec_dt_container_gen_param_type_mismatch,
-> <<(1).out, a_hash_table.generating_type.name, type_name_of_type (att_static_cont_item_tid),
val.generating_type.name>>, "populate_eif_container_from_dt")

	Warning code: VWMA

Type error: non-conforming manifest array.
What to do: make sure that the explicit manifest array type (if specified)
is an array type (ARRAY [...]) and every element type conforms or
converts to the specified type of items.

Class: DT_OBJECT_CONVERTER
Feature: populate_eif_container_from_dt
Explicit array type ARRAY [STRING_8] has to be specified.
Computed type of array elements ANY does not conform to the type STRING_8 of target array elements.
Line: 1140
errors.add_error (ec_dt_container_gen_param_type_mismatch,
-> <<(1).out, eif_seq.generating_type.name, type_name_of_type (att_static_cont_item_tid),
val.generating_type.name>>, "populate_eif_container_from_dt")

	Warning code: VWMA

Type error: non-conforming manifest array.
What to do: make sure that the explicit manifest array type (if specified)
is an array type (ARRAY [...]) and every element type conforms or
converts to the specified type of items.

Class: DT_OBJECT_CONVERTER
Feature: create_object_from_dt
Explicit array type ARRAY [STRING_8] has to be specified.
Computed type of array elements ANY does not conform to the type STRING_8 of target array elements.
Line: 490
-- nested generic, but that the corresponding object types are not
-> errors.add_error (ec_dt_nested_type_mismatch, <<Result.generating_type.name, a_dt_attr.im_attr_name>>, "create_object_from_dt")
end

@hank-lenzi
Copy link

Sorry, forgot to mention OS is Windows 10. Environment variables OK, apparently.

Installation information:
Version = EiffelStudio 18.11 (18.11.10.2592 GPL Edition - win64)
$ISE_EIFFEL = C:\EiffelStudio18.11GPL
$ISE_LIBRARY = C:\EiffelStudio18.11GPL
$ISE_PLATFORM = win64
$ISE_C_COMPILER = msc_vc140

@hank-lenzi
Copy link

The ARRAY [STRING_8] was after applying automatically suggested fixes. I don't think it was in the code originally.

@petergummer
Copy link
Contributor

petergummer commented May 18, 2019 via email

@wolandscat
Copy link
Member

Right - see Peter's comment above. When you have a compile working on either 18.07 or 19.05, let's check any further problems. The Git repos for adl-tools and EOMF are currently up to date and will compile completely on 18.07, and we expect on 19.05.

@hank-lenzi
Copy link

Good news!
Bad luck for me though, I'm smack in the middle of an online course on OpenEHR :-( Oh, well. It is what it is.
Great stuff, guys! I kind of always wanted to have a reason to learn Eiffel and here it is!

@hank-lenzi
Copy link

hank-lenzi commented May 19, 2019

BTW, if this quirk is fixable with a trivial fork, would you guys push a fork with the fix?
I am just learning Eiffel and I'm kind of afraid of breaking things up on my current set up. I had a hell of a time getting the new Traffic library to work (you know, from Meyer's book "Touch of Class"). You guys at OpenEHR are the inspiration for this humble doctor to decide to tackle Eiffel. I confess being kind of afraid that 18.07 will mess up with some library setup and whatnot. Perhaps I'm worrying needlessly, but it would suck magnitudes if this were to happen.
So, if you would, if it's easy, I'd much appreciate it, because I'm right in the middle of an OpenEHR online course (and the teachers didn't see this coming either) like I said.
Thanks a lot for the speedy response and update, and keep up the good work!
Hank

@hank-lenzi
Copy link

Not trivial. Just read the thread. Forget about it.

@wolandscat
Copy link
Member

Hank, version 18.07 is pretty bullet-proof. I suggest to uninstall 18.11 (I did), because it is broken anyway. If you still have problems with 18.07, let us know. When 19.05 comes out, install that - it should work fine.

@petergummer
Copy link
Contributor

Alternatively, Hank, since you don't want to uninstall 18.11, you could edit your copy of HASH_TABLE. It's a simple change on line 63: delete "{NONE}". Line 63 will be this:

feature -- Initialization

Then recompile. You may need to recompile from scratch.

Doing this is a safe change that won't break any of your projects.

@hank-lenzi
Copy link

Hello -

Installed the new Eiffel 19.05.
I get the following error now:

	Error code: VD00

General configuration parsing error.
What to do: fix the configuration file.

UUID mismatched in configuration file redirection:

  • "c:\program files\eiffel software\eiffelstudio 19.05 gpl\library\gobo\gobo_kernel-safe.ecf"
    uuid=9DC10612-E326-4FB8-B773-92E0BDC2AD44
  • "c:\program files\eiffel software\eiffelstudio 19.05 gpl\contrib\library\gobo\library\kernel\src\library.ecf"
    uuid=E1FFE100-60B0-0001-0002-001000000001

Is it me, or is it Eiffel? Upon installation, I chose to "Import settings" from the older install.
Any help is appreciated.

TIA,
Hank

@wolandscat
Copy link
Member

I will try 19.05, and see what I can reproduce. Seems they are messing with a lot of things that used to work fine...

@petergummer
Copy link
Contributor

petergummer commented Jun 1, 2019 via email

@hank-lenzi
Copy link

Hi Peter - What should I do? Any compiler flags I should set?

@petergummer
Copy link
Contributor

petergummer commented Jun 2, 2019 via email

@hank-lenzi
Copy link

hank-lenzi commented Jun 2, 2019

Hello --

The configuration file doesn't have gobo*-safe

	<library name="gobo_kernel" location="$ISE_LIBRARY\library\gobo\gobo_kernel.ecf"/>
	<library name="gobo_lexical" location="$ISE_LIBRARY\library\gobo\gobo_lexical.ecf"/>
	<library name="gobo_parse" location="$ISE_LIBRARY\library\gobo\gobo_parse.ecf"/>
	<library name="gobo_regexp" location="$ISE_LIBRARY\library\gobo\gobo_regexp.ecf"/>
	<library name="gobo_utility" location="$ISE_LIBRARY\library\gobo\gobo_utility.ecf"/>

Maybe it's because I chose to import setting from the previous Eiffel Studio?
-- Hank

@hank-lenzi
Copy link

The Project Settings dialog does not seem to indicate a problem either:

image

@petergummer
Copy link
Contributor

petergummer commented Jun 2, 2019 via email

@toniiiik
Copy link

Hi all,

compiling on estudio 19.5.... there are lots off references to *-safe.ecf not only in EOMF but in EiffelHub repository as well. After replacing references of *-safe.ecf the compilation starts with no errors of missing references.

But there was an error during scons command

scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
Setting revision 3040 ...
adl_workbench
  /usr/local/bin/ec -batch -config apps/adl_workbench/app/adl_workbench.ecf -finalize -clean -c_compile -target adl_workbench
... n identifier that is the name of a class in the universe.

Class: OG_PATH_TOKENS
Unknown class name: YY_PARSER_TOKENS
Line: 10
  
->  YY_PARSER_TOKENS
  

-------------------------------------------------------------------------------

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: OG_PATH_VALIDATOR
Unknown class name: YY_FILE_BUFFER
Line: 679
        create Result.make_empty
->      if attached {YY_FILE_BUFFER} input_buffer as f_buffer then
          Result.append (f_buffer.file.name + ", ")

-------------------------------------------------------------------------------

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: PARSER_VALIDATOR
Unknown class name: YY_PARSER_SKELETON
Line: 15
  
->  YY_PARSER_SKELETON
      redefine

-------------------------------------------------------------------------------

scons: *** [EIFGENs/adl_workbench/F_code/adl_workbench] Error 1
scons: building terminated because of errors.

PS: I don't know eiffel studio or tools behind. I have just follow the install instruction and tried to resolve issue with references of gobo libraries like @petergummer wrote

is there any progress on compiling with eiffel 19.5?

@wolandscat
Copy link
Member

Hi @toniiiik , give me a couple of days - I am in the middle of a fairly major upgrade of the tool due to addition of new semantics to the openEHR BMM spec. I will also try upgrading the compiler to the latest, and making the changes to get rid of the problems you are seeing.

@toniiiik
Copy link

Hi @wolandscat is there any progress on the issue with compiling/instalation adl tools with eiffel 19.5?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants