Thanks for the quick reply! I don't really need the exact version of Windows running (other than error reporting) because the behavior of our programs seems consistent on all versions since Windows 8. I mostly wanted to make sure the DLL was the latest and the WIN8 report was not indicating some mismatch between the Regina EXE and DLL. Since you are aware of exactly what the cause of this issue is, that's not the case!
Thanks for the quick reply! I don't really need the exact version of Windows running because the behavior of our programs seems consistent on all versions since Windows 8. I mostly wanted to make sure the DLL was the latest and the WIN8 report was not indicating some mismatch between the Regina EXE and DLL. Since you are aware of exactly what the cause of this issue is, that's not the case!
regina.dll reports WIN8 for Windows 11 systems
Inconsistent trailing slash between hosts
The trailing backslash issue has been fixed for Windows. However, handling for tilde as replacement for $HOME on Linux is still open as of v3.9.4. I hoped the fix for #511 would also have fixed this, but the issue is still present. Linux stream(file, 'c', 'executable') matches test -x results, so I consider it fixed. (But I disagree with apparent Unix community acceptance that "permission to execute" is the same as "when I type a filename into a prompt, something other than 'command not found' is...
INPUT FIFO appends 0A to string
Typos and friends (error and help output, documentation)
unary operator in IF or WHEN statement isn't handled correctly
b2x ignores embedded spaces
Parsing errors not trapped by system exit
Qualify for dataset beginning with ~ returns invalid name
Regina documentation for DATATYPE 'W'
Documentation errors for Time() BIF
lineout on file without write permission causes segmentaion fault
Errata for manual, chapter 9.
Incorrect data queued from ls command
2 functions in function_type struct miss order
Probably a DOC error in DATATYPE bif
Lower() BIF crashes Rexx
Upper() BIF crashes Rexx
ARexx file I/O BIFs not working as supposed
sysstemcopy causes memory violation
NUMERIC FUZZ, missing documentation regarding default
NUMERIC FORM, missing documentation regarding default
not abutting properly
Regina crashes under Windows 8.1 when repeated "signal on syntax" triggered
Regina crashes under Windows 8.1 when repeated "signal on syntax" triggered
Two STREAM QUERY EXISTS generate wrong result Rexx >= 3.7
Hi, I am using v3.9.1 and it seems to be present in Windows but not in Linux. Here is what I'm running in Rexx in the Eastern timezone and the results on Windows 10: say time() say time('n', time('t'), 't') 22:28:13 23:28:13 The same two lines on CentOS7, also v3.9.1 - as you can see the results match: 22:29:22 22:29:22
OK, I get it. The C version of sleep() returns nothing, so I was using it in Rexx the same way. I never put 2 and 2 together, that Rexx sleep() is a BIF and an unhandled return gets passed to the OS. Sorry for my confusion; you can mark this closed.
On Windows, you can't say sleep(1): C:\Windows\System32>sleep(1) 'sleep' is not recognized as an internal or external command, operable program or batch file. However, I note the behavior is as expected if I use either method you provided: RC =1 call sleep(1) say RC RC =1 x = sleep(1) say RC So what is getting called if I just use sleep() and I'm on Windows? Because it definitely sleeps the requested period...
Sorry, 1. I meant c2x, not x2c in 2nd example. 2. "slash says 0 slash" was supposed to be a Rexx comment, the stars were stripped out as I guess the editor interprets stars as italicize. 3. Apparently there is no option to edit an entry, and there is no preview, so this additional post.
sleep() sets RC to zero
After reading condition handling in more detail and with some experimentation, I believe I've answered my own question: Create a string that is the error handler, and then INTERPRET that. Here is a code sample: errhand = "call on error name err" interpret errhand i = 1 say foo(i) address system 'heiaes 2>NUL' say bye return foo: signal off error address system 'heiaes 2>NUL' interpret errhand return 100*i err: say "error @"SIGL return and the results: 100 error @5 BYE Better suggestions would be...
Hi, I'm creating reusable blocks of code, and in one block I'd like to turn the error handler off (because I'm running 'address system' calls and handle the return codes myself), but at the end would like to restore the error handler. There are two issues that I would appreciate suggestions on: Is it possible to determine if the caller used "call on error" or "signal on error" so I could correctly use "call on error" or "signal on error" at the end of my code block? (Testing shows that "signal off...
Hi, I'm creating reusable blocks of code, and in one block I'd like to turn the error handler off (because I'm running 'address system' calls and handle the return codes myself), but at the end would like to restore the error handler. There are two issues that I would appreciate suggestions on: Is it possible to determine if the caller used "call on error" or "signal on error" so I could correctly use "call off error" or "signal off error" in my code block? If there is a handler name (e.g., "signal...
For anyone that has this problem and google or whatever directed them here, I posted a workaround at https://sourceforge.net/p/regina-rexx/bugs/232/#090a
Thanks for testing with the latest version!
I can also report the same abort occurs with a different target: character(len=:), target, allocatable :: name6 the difference being allocatable length vs. fixed length.
gfortran internal compiler error
I have recently encountered this issue as well in Rexx 3.91. Running on Win 7 Pro. A WORKAROUND is described below. Like Eric, I use stems for both output and error, and like Eric, I run shell commands repeatedly - in this recent case, hundreds of iterations. Slight difference: I use "address command" rather than "address system" to avoid issues with escaped characters that occur with 'system' but not with 'command'. Anyway, running the entire command in a cmd.exe for loop 200 times, which took about...
I am having the same issue. For lack of a better approach, I change between two different "signal on syntax" to force Regina to tell me if a particular string can be resolved into a number. It looks like this: signal on error name err signal on syntax name err ovars = '' o2unit = "2+2" /* Is extracted from file data in actual code */ call isnum say "Ovars:"ovars o2unit = "bar1" call isnum say "Ovars:"ovars o2unit = "bar2" call isnum say "Ovars:"ovars o2unit = "bar3" call isnum say "Ovars:"ovars o2unit...
I am having the same issue. For lack of a better approach, I change between two different "signal on syntax" to force Regina to tell me if a particular string can be resolved into a number. It looks like this: signal on error name err signal on syntax name err ovars = '' o2unit = "2+2" /* Is extracted from file data in actual code */ call isnum say "Ovars:"ovars o2unit = "bar1" call isnum say "Ovars:"ovars o2unit = "bar2" call isnum say "Ovars:"ovars o2unit = "bar3" call isnum say "Ovars:"ovars o2unit...
I am having the same issue. For lack of a better approach, I change between two different "signal on syntax" to force Regina to tell me if a particular string can be resolved into a number. It looks like this: signal on error name err signal on syntax name err ovars = '' o2unit = "2+2" /* Is extracted from file data in actual code */ call isnum say "Ovars:"ovars o2unit = "bar1" call isnum say "Ovars:"ovars o2unit = "bar2" call isnum say "Ovars:"ovars o2unit = "bar3" call isnum say "Ovars:"ovars o2unit...
Actually, I see this is working in 3.9.1, but the Status on this one is Open so I thought it was still "on the list". So it looks like it should be closed? And thanks!
FYI, this goes back to at least Rexx 3.3
Hi, what version did you encounter this on? Was it stable in the prior release? Thanks!
Hi, on Windows, gathering data into a Rexx array, and then run, address system 'sort' with input stem foo. output stem foo. (This is gnu utils' sort) This causes spurious failures related to accessing this array. It appears to be because the sort command is not completing. I tried various levels of sleep() which helped some, but what worked 100% of the time so far is this: address system 'start /b /wait sort' with input stem foo. output stem foo. This has the advantage of waiting just long enough...
Hi, I am on Windows, gathering data into a Rexx array, and then I run, address system 'sort' with input stem foo. output stem foo. This causes spurious failures related to accessing this array. It appears to be because the sort command is not completing. I tried various levels of sleep() which helped some, but what worked 100% of the time so far is this: address system 'start /b /wait sort' with input stem foo. output stem foo. This has the advantage of waiting just long enough for the sort operation...
Hi, I am gathering data into a Rexx array and then I run, address system 'sort' with input stem foo. output stem foo. And I get spurious failures related to accessing this array and suspected it was because the sort command was not completing. I tried various levels of sleep() which helped some, but what has helped 100% of the time is this: address system 'start /b /wait sort' with input stem foo. output stem foo. This has the advantage of waiting just long enough for the sort operation to complete,...
OK, sorry to post again. But this is not working: str = "do" say left(str, 3) == "do " results in a '1' The Regina manual says, "For two strings to be considered equal when using the strict equal comparative operator, both strings must be the same length." However, the manual also informs me the LEFT function pads automatically. Is there an elegant way for me to do this? - all I see is to write something like str = "do" if length(strip(str)) <3 then say "No match" else if left(str, 3) == "do " then...
OK, sorry to post again. But this is not working: str = "do" say left(str, 3) == "do " results in a '1' The Regina manual says, "For two strings to be considered equal when using the strict equal comparative operator, both strings must be the same length." However, the manual also informs me the LEFT function pads automatically. Is there an elegant way for me to do this? - all I see is to write something like str = "do" if length(strip(str)) <3 then say "No match" else if left(str, 3) == "do " then...
OK, sorry to post again. But this is not working: str = "do" say left(str, 3) == "do " results in a '1' The Regina manual says, "For two strings to be considered equal when using the strict equal comparative operator, both strings must be the same length." So between Gerard's answer and the Rexx manual, I guess I assumed strictly equal would be, well, strict? Is there a way to prevent Rexx from automatically padding values, or do I need to write something like str = "do" if length(str) <3 then say...
Thank you! This can be closed as not a bug.
Owing to the HTML processing on this site, the first "do" after "results in" should be <space>do. You will see for yourself if run at a command prompt. Also, am using Rexx-Regina 3.5 on Windows. This seems to produce a correct result: str = " doabc" say c2x(left(str, 3)) say c2x("do ") say c2x(left(str, 3)) = c2x("do ") results in 20646F 646F20 0
Owing to the HTML processing on this site, the first "do" after "results in" should be <space>do. You will see for yourself if run at a command prompt. Also, am using Rexx-Regina 3.5 on Windows. Thanks
Owing to the HTML processing on this site, the first "do" after "results in" should be <space>do. You will see for yourself if run at a command prompt. Thanks
String literal comparison with trailing space