Menu

example compile craters on ISE_5.7

Help
2006-11-11
2013-05-08
  • Robert E. Marcum

    I have downloaded and am attempting to install ECLI on my Fedora Core 5, x86, linux machine.  The build of SAFE_KERNEL and ECLI went smoothly!  When I try to compile the examples - first 'test1', then 'test_procedures' - I get this fatal error on the build:

    === Begin Error message =======================

    Warning code: Obsolete call
    Warning: call uses obsolete feature.
    What to do: update to new feature at your earliest convenience. The
      feature is still available but may be removed in the future.

    [ several obsolete feature warnings]

    Class: TEST_PROCEDURES
    Feature: create_and_connect_session
    Obsolete feature: make (a_data_source, a_user_name, a_password: STRING_8) (class ECLI_SESSION)
    Obsolete message: [2005-01-04] Use `make_default' followed by `set_login_strategy' instead.

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

    Warning code: Obsolete call
    Warning: call uses obsolete feature.
    What to do: update to new feature at your earliest convenience. The
      feature is still available but may be removed in the future.

    Class: KL_INTEGER_ROUTINES
    Feature: to_character
    Obsolete feature: to_character: CHARACTER_8 (class INTEGER_32)
    Obsolete message: Use `to_character_8' instead.

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

    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: UC_STRING
    Source class: STRING_GENERAL
    Feature: remove
    Feature: to_string_32 Class: UC_STRING Version from: STRING_GENERAL
    Not exported to class UC_STRING
    Line: 328
            removed: elks_checking implies
    ->        to_string_32.is_equal (old substring (1, i - 1).to_string_32 + old substring (i + 1, count).to_string_32)
          end

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

    BUILD FAILED!

    ==== End Error message =====================================

    What shall I do?

     
    • Paul G. Crismer

      Paul G. Crismer - 2006-11-12

      Hello Robert,

      Would you mind checking which version of GOBO you are using? Check the value of the
      GOBO environment variable.
      You need either the CVS version of GOBO, or the one shipped with ISE 5.7.
      The original GOBO 3.4 does not work with 5.7.

      Hope this helps,

      Paul

       
      • Robert E. Marcum

        Paul,

        >Would you mind checking which version of GOBO you are using?
        Not at all.  I am using GOBO3.5, pulled down from CVS and built locally.

        >Check the value of the GOBO environment variable.
        Points to where my GOBO is.  In this case I am not using the one included in the ISE 5.7 distribution.

        >You need either the CVS version of GOBO, or the one shipped with ISE 5.7.
        >The original GOBO 3.4 does not work with 5.7.
        Understood.

        However, after I check everything again, I used estudio to rebuild the test1 example.  I get the same error that way (of course!).  Then I executed 'geant clean' in the test1 example directory, then ran 'geant compile'.  I get the same error, again.

        I have explored the classes and features specified in the error message.  As best I can tell, the error occurs when running the reature 'remove' in UC_STRING.  It seems UC_STRING has a problem the way it has set the exports of class STRING (I think ??).  The post condition of the parent (deferred) feature 'remove' uses to_string_32 which, by the time 'remove' runs in UC_STRING, has been set (in UC_STRING) as export {NONE} all.

        Would it be practical to attempt to use ecli without having proved test1?  Or do I need to make sure test1 can work before doing so?  That is, will ecli always use 'UC_STRING.remove'?

        Thanks for your time and help.

         
    • Paul G. Crismer

      Paul G. Crismer - 2006-11-12

      Robert,

      This is very disappointing.

      With this configuration, everything compiles and runs OK :
      - ISE 5.7.64493 GPL Edition
      - GOBO 3.5 from CVS

      UC_STRING.remove and UC_STRING.to_string_32 are exported... in the
      UC_STRING class header I read Revision 1.61.

      STRING_GENERAL is Revision: 63744

      Do you have the same revisions?

      Paul

       
      • Paul G. Crismer

        Paul G. Crismer - 2006-11-12

        Hello Robert,

        I've installed 5.7 GPL on my Debian Linux box;
        A fresh GOBO has been installed from CVS;

        It just needs a patch for ECLI_DECIMAL
        and for ECLI_STRING_VALUE.

        Then everything runs out of the box.

        Would you mind giving me some feedback ?

        Best regards,

        Paul G. Crismer

        ------------
        PATCH:

        ECLI_DECIMAL (old,new)
        34c34,41
        <    
        ---
        >
        >
        >     MA_DECIMAL_CONTEXT_CONSTANTS
        >         undefine
        >             is_equal, copy, out
        >         end
        >
        >

        ECLI_STRING_VALUE (old,new)
        145c145
        <             create parser
        ---
        >             create parser.make

         
        • Robert E. Marcum

          Paul, I just don't know what to do next!

          ISE studion5.7 64493 GPL ... same as yours.
          UC_STRING 1.61 ... same as yours.

          Yet I continue to get this error message, which I really must get by before I even think about any patches ... unless they are by some remote possibility related to the problem I am having.

          Everything points to some kind of a configuration issue, but I can't image what.

          I am willing to hang in on this as long as you are willing to work with me.

          Any ideas?

          The error I get:

          Class: UC_STRING
          Source class: STRING_GENERAL
          Feature: remove
          Feature: to_string_32 Class: UC_STRING Version from: STRING_GENERAL
          Not exported to class UC_STRING
          Line: 328
                  removed: elks_checking implies
          ->        to_string_32.is_equal (old substring (1, i - 1).to_string_32 + old substring (i + 1, count).to_string_32)
                end

           
          • Paul G. Crismer

            Paul G. Crismer - 2006-11-13

            Hello Robert,

            Please, note that this is NOT a problem with ECLI.  This is a configuration problem with GOBO and ISE classes.

            Would you mind sending me the following
            1. classes :
            * UC_STRING (GOBO)
            * STRING_GENERAL (ISE)

            2. Environment variables
            everything.

            On your side, would you mind checking how many gobo's or ise environments are installed on your system?

            Best regards,

            Paul G. Crismer

            Please send to pgcrism at users dot sourceforge dot net

             
            • Paul G. Crismer

              Paul G. Crismer - 2006-11-13

              Hello Bob,

              Thank you for your configuration information.

              I've compared my version and your version of UC_STRING.

              It seems that, according to $GOBO/library/kernel/unicode/uc_string.ge, lines 85,86,87, your version
              of UC_STRING has been generated for... ISE 5.6 (yes five point six) according to line 85 #ifdef.
              Lines 86 and 87 should not be present in UC_STRING for 5.7.

              In .bashrc, you'll see that ISE_5_7=true, *BUT*
              that the export is about ISE_5_*6* ...

              Would you mind checking it, and bootstrap GOBO again?

              Best regards,

              Paul G. Crismer

               
              • Robert E. Marcum

                >It seems that, according to $GOBO/library/kernel/unicode/uc_string.ge, lines 85,86,87, your version
                >of UC_STRING has been generated for... ISE 5.6 (yes five point six) according to line 85 #ifdef.
                >Lines 86 and 87 should not be present in UC_STRING for 5.7.
                >
                >In .bashrc, you'll see that ISE_5_7=true, *BUT*
                >that the export is about ISE_5_*6* ...

                aaaaaaaaahhhhhhh!  Careless error!  I didn't change the export when I upgraded to 5.7

                >Would you mind checking it, and bootstrap GOBO again?

                Well!  That was an experience ... a multi-hour experience extending over two days!  But, I got that done.

                And, I thought surely that would solve my problem ... Well, it did ... sort of ...

                I no longer get the same error.  I get a new error when attempting to build test1 with estudio ...  get the same error using 'geant compile_ise'.

                I get this error:

                ================================
                Error code: VEEN
                Error: unknown identifier.
                What to do: make sure that identifier, if needed, is final name of
                  feature of class, or local entity or formal argument of routine.

                Class: ECLI_DECIMAL
                Feature: make
                Identifier: default_rounding_mode
                Taking no argument
                Line: 47
                      do

                ->      make_with_rounding (new_precision, new_decimal_digits, Default_rounding_mode)

                      ensure

                ==============================

                Amazing!  What to do now, chief?  Hang in with me, please.  Let's keep trying.

                 
                • Paul G. Crismer

                  Paul G. Crismer - 2006-11-15

                  Hello Bob,

                  Waowww. One step beyond!

                  Since ECLI 2.2 has been developed for GOBO 3.4, now it must be fixed for GOBO3.5 needed by ise 5.7.

                  2fixes are needed.  I'll send the classes ECLI_DECIMAL and ECLI_STRING_VALUE in a direct email post.
                  CVS archive will be updated within 2-4 days.

                  Best regards,

                  Paul G. Crismer

                   
                  • Robert E. Marcum

                    Paul,

                    I received the two classes ... droped them into place ... rebuilt the libraries.

                    [Wonder of all wonders!]
                    Both test1 and test_procedures compile cleanly!!!!

                    Whahoo!

                    I ran test1 wihout arguments.  It responded with the useage message.  Now, I guess, I can use test1 to confirm my odbc setup.  Excellent!

                    Then I will build ecli into my application.  I have a singleton facade to the database, from which I make every access to the database ... for the searches, updates, adds, and deletes.  It will be interesting to see how ecli works in this context.

                    Paul, I am very grateful for your competent response to my call for help.  It is a pleasure to work with someone so skilled in the use of Eiffel.  I am trying to pull myself up to full speed as fast as I can.  It has been a revelation to see you respond to the problems I have had.

                    My sincerest thanks.  If I can ever be of help to you, I hope you will let me do so.

                    Best regards.

                     

Log in to post a comment.