Page 1 of 3

REXX assign issue

Posted: Mon Mar 23, 2020 3:10 pm
by Amigo1
Nice revamp of the website. This blue theme looks good. :)

I noticed something when starting an ARexx script using "RX". Apparently the REXX: assign is not searched throughly in all subpaths for a AREXX script but only SYS:S/ARexx.

I created and saved an example script named "Amiga.rexx" to RAM:ARexx.
Added the path to REXX:

assign REXX: ram:arexx ADD

and tried

"RX amiga" and "RX amiga.rexx" in a shell

Command returned 5/1: Program not found

I also added added ram:arexx to the path

path ram:arexx add

and verified that the REXX: Assign and the shell path contain the new path with

Assign LIST
and
Path

and both Additions are added to the Path and REXX: assign correctly.

But the program is still not found.

This is on AmigaOne X1000 4.1FE Update 1
I tested the same when booting from the AmigaOS 4.1 Final Edition DVD with the same result.

After this unsuccessful test, I tried again on AmigaOS 3.1 and 3.1.4.
Both classic OSs do find the ARexx script after I added ram:arexx to the REXX: assign.

I tried:

1.OS3.1:>RX amiga

and the program is launched.

Can someone confirm this?

Re: REXX assign issue

Posted: Mon Mar 23, 2020 6:39 pm
by Raziel
REXX: is set to System:S/AREXX for me and all the prgrams in there start up fine, regardless from where i start them.
Seems to be something else that interferes for you?

e.g.
PullDown Menu from Workbench
Execute command
rx OpenDrawer

brings up an ASL requester just fine

Re: REXX assign issue

Posted: Mon Mar 23, 2020 7:20 pm
by Amigo1
hi,

yes, everything in SYS:S/ARexx starts just well.

The Amiga ARexx manual states that the "RX" command searches the directory "REXX:" for executables. (https://wiki.amigaos.net/wiki/AmigaOS_M ... ed#Running ARexx Programs)
but apparently it does not work if a Path is added to that assign.

Try this:
- create a new dir RAM:C
- type "Assign C: ram:C ADD" in a shell
- copy an executable from C: to to ram:C and temporarely rename the original in c: by appending .off to the name
- run the executable from a shell while your current directory is not c: or ram:c
- you will notice the command will execute

This in not the case for "RX" and the "REXX:" assingn..
At least not on AmigaOS4.1FEu1.

So the fastest fix for this, is to change the passage on the Amiga Wiki from

"ARexx programs are usually stored in the REXX: directory (which is generally assigned to the SYS:S/ARexx directory)."

to

"ARexx programs are usually stored in the SYS:S/ARexx directory."
and then change the behaviour on AmigaOS 3.2 too for consistency.

But I prefer they way it currently works on Amiga OS 3.1.4 and 3.1 and the very example with the C: directory.

Re: REXX assign issue

Posted: Tue Mar 24, 2020 7:09 pm
by Raziel
Ah, i see what you mean, yes, confirmed.

It doesn't look (respectively find) programs/scripts in any of the "+" added REXX: pathes.

Re: REXX assign issue

Posted: Wed Mar 25, 2020 5:28 pm
by Amigo1
Ah, i see what you mean, yes, confirmed.

It doesn't look (respectively find) programs/scripts in any of the "+" added REXX: pathes.
Thanks for verifying!

I wonder if this is a general "assign" issue or just related to RX..

Does it work on a 68k Amiga OS for you?

Re: REXX assign issue

Posted: Wed Mar 25, 2020 5:39 pm
by Raziel
I fear it might be a sole RX problem and i further fear that it might never get fixed.

I don't have a classic anymore, so no way to check

Re: REXX assign issue

Posted: Wed Mar 25, 2020 7:01 pm
by nbache
If I remember correctly, it's not a general problem as such, i.e. assigns with ADD do what they are supposed to, but some programs are not prepared for the existance of more than one component of an assign target. So it looks like Rx is one such program, not surprising, since it is part of the ARexx package which was written long ago, and hasn't seen much development in recent years.

I would personally guess that it is one of those things that will only get looked at when/if that program has to be touched for some other reason.

To verify if this is the problem here, try cancelling the REXX: assign and set it up again in the opposite order, so the RAM:ARexx component comes first.

BTW, adding the dir to Path will not help, that is only for searching commands etc. for direct execution (i.e. without Rx, Execute, etc.).

Best regards,

Niels

Re: REXX assign issue

Posted: Wed Mar 25, 2020 7:26 pm
by Raziel
@nbache

I've done exactly that, tried to find a workaround or solution, but to no avail.
"RX" only accesses the very first assign entry and disregards all the others.

Is the source code for AREXX available?
My memory is making me believe someone told me that AREXX is a lost cause, because there are no sources...

Re: REXX assign issue

Posted: Wed Mar 25, 2020 9:27 pm
by nbache
Raziel wrote: Wed Mar 25, 2020 7:26 pm @nbache

I've done exactly that, tried to find a workaround or solution, but to no avail.
"RX" only accesses the very first assign entry and disregards all the others.
Well, that's why I suggested putting the RAM:ARexx component first and SYS:S/ARexx second, just for the sake of the test. That was in order to check whether it could then access the RAM:-based path (but not the SYS:S/ARexx one)..

If it can, it's the same problem that I described, if not, it's another problem, probably specific to Rx.

Best regards,

Niels

Re: REXX assign issue

Posted: Wed Mar 25, 2020 10:28 pm
by Raziel
Like i said, i did that "test" and it turns out that rx cannot access the first ADDed path (and all others further down the line)