Menu

THE on openSUSE 11.1 (32-bit) with ooRexx

Help
2009-08-27
2018-03-07
  • Weyland Yutani

    Weyland Yutani - 2009-08-27

    I just installed SUSE, and then ooRexx 4.0, followed by THE 3.2 for X11.

    Rexx and THE work fine separately on this Linux distribution, but THE is not recognising that ooRexx is installed. At least that's what it seems like.

    When I try to use a .rex macro (or .the) THE says something about using NOREXX with non-Rex macros -- I don't have any non-Rexx macros.

    Can't find any mention of this in the documentation. What am I doing wrong?

    This is what I installed, on a working SUSE system with working ooRexx:

    PDCurses-2.8-1.i386.rpm
    RexxTrans-1.8-1.i386.rpm
    THE-X11-3.2-1.i386.rpm

    "xthe" works fine, except for any ooRexx macros I try to run.

     
    • Mark Hessling

      Mark Hessling - 2009-08-28

      I downloaded openSUSE 11.1 and installed the same packages as you. Apart from the fact that the ooRexx  install hangs on "Starting rxapi:", I simply ran xthe and ooRexx was available.

      When you run xthe do you get "CT" displayed at the right of the bottom line?  The "T" indicates that RexxTrans is supplying the interface to the Rexx interpreter and that a Rexx interpreter is available.

      Try the following:

      In a shell:
      % export REXXTRANS_TRACEFILE=./log.log
      % xthe
      % less log.log

      Send me the contents of log.log. It should show the status of Rexx/Trans as it finds the Rexx interpreter and loads the Rexx API functions.

       
    • Weyland Yutani

      Weyland Yutani - 2009-08-28

      Thanks, Mark. Here's the log -- it seems to be looking for Regina . . .

      Starting Rexx/Trans Version 1.8 15 Apr 2006
      GenerateLibraryName(): Generated library name of "libregina.so".
      FindInterpreter(): Attempting to load "libregina.so" using dlopen()...not found: No such file or directory
      GenerateLibraryName(): Generated library name of "librexx.so".
      FindInterpreter(): Attempting to load "librexx.so" using dlopen()...found oorexx
      GenerateLibraryName(): Generated library name of "librexxapi.so".
      found
      rexx RexxStart: Address b7b13320
      rexxapi RexxRegisterExitExe: Address b793c050
      rexxapi RexxRegisterExitDll: Address b793c2d0
      rexxapi RexxDeregisterExit: Address b793be00
      rexxapi RexxQueryExit: Address b793bb70
      rexxapi RexxRegisterSubcomExe: Address b793c120
      rexxapi RexxDeregisterSubcom: Address b793bec0
      rexxapi RexxRegisterSubcomDll: Address b793c3b0
      rexxapi RexxQuerySubcom: Address b793bc50
      rexxapi RexxRegisterFunctionExe: Address b793bf80
      rexxapi RexxRegisterFunctionDll: Address b793c1f0
      rexxapi RexxDeregisterFunction: Address b793bd30
      rexxapi RexxQueryFunction: Address b793baa0
      rexx RexxVariablePool: Address b7b12bd0
      rexxapi RexxAllocateMemory: Address b793b730
      rexxapi RexxFreeMemory: Address b793b700
      rexxapi RexxCreateQueue: Address b793b5b0
      rexxapi RexxDeleteQueue: Address b793b370
      rexxapi RexxQueryQueue: Address b793b180
      rexxapi RexxAddQueue: Address b793b050
      rexxapi RexxPullQueue: Address b793c490
      rexxapi RexxAddMacro: Address b793adb0
      rexxapi RexxDropMacro: Address b793acf0
      rexxapi RexxSaveMacroSpace: Address b793ab60
      rexxapi RexxLoadMacroSpace: Address b793aa80
      rexxapi RexxQueryMacro: Address b793a9b0
      rexxapi RexxReorderMacro: Address b793a8f0
      rexxapi RexxClearMacroSpace: Address b793ac40
      rexx RexxSetHalt: Address b7b12dd0
      rexx RexxWaitForTermination: Address b7b12b20
      rexx RexxDidRexxTerminate: Address b7b12b30
      rexxapi RexxCallBack: Address 0
      rexx RexxSetTrace: Address b7b12d50
      rexx RexxResetTrace: Address b7b12cd0
      ----------- Initialisation Complete - Program Execution Begins -----------
      rexx RexxRegisterSubcomExe(): EnvName "THE" EntryPoint 80a2800 UserArea 0 <=> Result: 1002

       
      • Mark Hessling

        Mark Hessling - 2009-08-29

        Yes, Rexx/Trans first looks for Regina, then ooRexx. And according to the log it found ooRexx and successfully loaded all of the SAA API functions.
        However according to the log, ooRexx cannot run RexxRegisterSubcomExe() and returns error 1002.
        According to the ooRexx documentation this means that ooRexx cannot run RexxRegisterSubcomExe() due to lack of memory.
        Based on what I've seen in the log this is an ooRexx problem, not a THE error.
        How much memory do you have on this openSUSE system?

         
    • Weyland Yutani

      Weyland Yutani - 2009-08-28

      I forget to say -- the only character on the right of the bottom line is a C.

       
    • Weyland Yutani

      Weyland Yutani - 2009-08-29

      > Based on what I've seen in the log this is an ooRexx problem, not a THE error.
      > How much memory do you have on this openSUSE system?

      It has 512 MB. ooRexx seems to run fine as a stand-alone interpreter outside of THE.

      But we know there's been at least one problem with ooRexx on openSUSE 11.1 (rxapi), so maybe this is another one. I'll take it over to the ooREXX forums. There's a guy over there apparently working on SUSE. Maybe he can help.

      Thanks again.

      [By the way, I have THE working on another SUSE 11.1 machine, with Regina instead of ooRexx. That one has a 64-bit AMD processor, and 64-bit SUSE. I'm setting both of these machines up at the same time, and I thought I'd give Regina a try on one of them. To be honest, I rarely use any oo features in any case. Would I miss anything much if I switched to Regina completely?]

       
      • Mark Hessling

        Mark Hessling - 2009-08-29

        Apart from the ooRexx features then no I don't believe you would miss anything. If anything its probably a better long term investment using Regina.  ooRexx 4.0.0 broke the SAA API sucj that you cannot build THE against ooRexx 4.0.0.  ooRexx 4.0.0 also introduced a new API which may replace the SAA API in future versions. This would mean that THE and all my other function packages would need to be rewritten to support ooRexx; something I do not have time to do.
        So basically it is likely that in future only Regina would be a supported Rexx interpreter for THE and my other function packages.

         
    • Weyland Yutani

      Weyland Yutani - 2009-08-29

      OK. I installed Regina on this 32-bit machine, and it seems to work with THE.

      But I got some dependency messages and overrode them (same on the 64-bit machine). Will this cause me any problems?

      [11:05:39 ~/download/THE]> sudo rpm -ivh Regina-REXX-3.4-1.i386.rpm
      root's password:
      error: Failed dependencies:
              libregina.so is needed by Regina-3.4-1.i386
              libregina.so(REXXSAA_API) is needed by Regina-3.4-1.i386
              libregina.so(regina_2.0) is needed by Regina-3.4-1.i386
      [11:06:05 ~/download/THE]> sudo rpm -ivh --nodeps Regina-REXX-3.4-1.i386.rpm
      Preparing...                ########################################### [100%]
         1:Regina                 ########################################### [100%]
      [11:06:25 ~/download/THE]>
      ...
      [11:17:18 ~]> rexx oortry.rex
      09/08/29 11:17:39
      09/08/29 11:17:39 REXX-Regina_3.4 5.00 30 Dec 2007 UNIX COMMAND /home/weyland/oortry.rex
      [11:17:38 ~]>

       
      • Mark Hessling

        Mark Hessling - 2009-08-29

        No, the dependency problems are just with the Regina RPM that indicates that Regina is dependent on itself. Won't cause any problem at all.

         
  • Shmuel (Seymour J.) Metz

    I tried tracing Rexx/Trans to see what was keeping THE from using OOREXX (see the attached ther.rex.) THE did not create a Rexx/Trans trace file. I used the attached which.the to verify that THE was using Regina.

     

Log in to post a comment.