On Sun, Sep 15, 2024 at 11:15 AM m-stgt m-stgt@users.sourceforge.net wrote: Hello Rick! You requested to use trace 'I' ~~~ 4 - say a.9.z >C> A.9.Z => "A.9.1"? >V> A.9.Z => "XYZ"? >>> "XYZ" XYZ -- as Z=1 say returns a.9.1 5 - say a.~remove(9.z) >V> A. => "A." >L> "9.Z" >A> "9.Z" >M> "REMOVE" => "The NIL object" >>> "The NIL object" The NIL object -- Z in 9.z is not substituted, but why? You are calling remove with one argument, the value of the token "9.z". This is a constant literal token, so it...
I suggest you use Trace I to see what is actually going on. This is definitely not a bug. Notes below. On Sun, Sep 15, 2024 at 5:07 AM m-stgt m-stgt@users.sourceforge.net wrote: Before I open a ticket I ask if I'm wrong regarding following as a flaw of remove ~~~ a.9.1 = pqr z = 1 say a.9.z PQR say a.~remove(9.z) -- you are asking it to remove tail "9.Z". There is no substitution for Z in the symbol 9.z. The NIL object -- WOOT! say a.~remove('9.'z) This time you are actually requesting the removal...
I think I have to agree with Josep in this case. Consider the following: do i = a~to to 6; say hi; end Oooops ! ... try again. String or symbol expected. String or symbol expected after tilde (~). The TO is recognized as being a reserved word and thus an expression terminator even though it is part of a message term just like >to would be. I actually prefer the way ">to" is working currently, but both cases should be working the same way. On Mon, Sep 2, 2024 at 12:42 PM Josep Maria Blasco jmblasc2@users.sourceforge.net...
Except that there are a number of overlaps between a trace object and a string. []. ==. hashCode, etc. Also that approach would still fail things like isA(.String), isA(.Comparable). The number of breakages are smaller, but it is still incompatible in some fairly significant ways. On Tue, Aug 27, 2024 at 5:45 AM Rony G. Flatscher orexx@users.sourceforge.net wrote: Hmm, in that case, one could enhance TraceObject to work on the traceline string if the unknown method is a string method. (The string-related...
to~substr(1.2) will give an error message because it is a direct target of a string message. makestring is not involved in that case. Rick On Mon, Aug 26, 2024 at 9:24 AM Rony G. Flatscher orexx@users.sourceforge.net wrote: Sorry, the suggested behavior for Array's makeString should be: ~~~ ... cut ... str=item~request("string") -- request a string, i.e., use makeString first if str~isNil then str=item~string -- no makeString, hence fall back to use the "string" method instead ... cut .... ~~~ [bugs:#1971]...
On Tue, Aug 6, 2024 at 7:48 PM m-stgt m-stgt@users.sourceforge.net wrote: Hi Rick, first: thank you for your time and your effort to explain the idiosyncrasy of ooRexx. I know I do have some problems with it, since my approach still is strongly biased by REXX as I know it from VM/CMS. When you enter help rexx menu on CMS you get a list of functions and commands on one single screen, looking in the ooRexx Ref. Mnl. the table of contents from 2 Keyword Instructions up to 8 Rexx Utilities is about six...
On Mon, Aug 5, 2024 at 8:20 PM m-stgt m-stgt@users.sourceforge.net wrote: After I achieved (with lots of kind help) to couple stems in different scopes First of all, you are NOT coupling variables. I have explained this to you multiple times. What you have are different variables referencing a mutable object. The different variables can see the changes because the object is mutable. I tried to do the same with simple variables. "The same" means one single assignment to the .constDir only and only...
hist. = 0 is an assignment to a stem variable. hist.5 = 0 is an assignment to a compound variable, which must adds/alters a an entry of the stem object reference by the stem variable. Stem assignment is documented in Section 1.13.4 Stem in the oorexx reference. Rick On Sun, Aug 4, 2024 at 7:58 PM m-stgt m-stgt@users.sourceforge.net wrote: Then, please, could you explain the fundamental difference between hlst. = 0 and hlst.5 = 0. And where it is documented. VM/CMS GLOBALV in ooRexx Sent from sourceforge.net...
On Sun, Aug 4, 2024 at 7:38 PM m-stgt m-stgt@users.sourceforge.net wrote: Once again, using stem in ooRexx like I would on VM/CMS, fails. Because I'm not fluent with the correct terms of those oo-ish components I can't report this error directly as a ticket, I may just show what happens. As suggested in this thread, I share variable's content within a scope by expose and for "trans-scope interchange" something like e.g. .constDir[GLV_PRSTAT] = hlst. in the leading program and corresponding hlst....
I mentioned that using attributes was slower that directly assigning to exposed variables but I had honestly never measured the difference. I wrote a quick and dirty benchmark program and the difference is that using attributes is roughly 2.5 times slower than doing a direct assignment. This probably won't make a noticeable difference for most programs, but it can add up if you do enough of them. Rick test = .test~new test~testit ::class test ::attribute att1 ::method testIt expose att1 t1 = .datetime~new...
On Sat, Jul 20, 2024 at 9:01 AM Robert Bridges bobbridges@users.sourceforge.net wrote: I have ATTRIBUTE SET working when I do it from the main routine. But when I try to do it between attributes, nothing seems to happen. Specifically: ~~~ ox=.myclass~new ox~att1="string" exit ::class myclass ::attribute att1 get ::attribute att1 set expose att1 att2 use arg att1 att2=att1 ::attribute att2 get ::attribute att2 set expose att2 use arg att2 say att2 ~~~ When I set ox~att1 from the main routine, the...
On Sat, Jul 20, 2024 at 8:53 AM Robert Bridges bobbridges@users.sourceforge.net wrote: I've been playing with ATTRIBUTE GET/SET. In a very simple program, this doesn't work correctly: ~~~ ox=.myclass~new ox~att="string" say 'main' ox~att exit ::class myclass ::attribute att get ::attribute att set use arg att say 'class' att ~~~ I would expect it to display first "class string" and then "main string", but the second line comes out "main ATT" instead. I can fix it by inserting "EXPOSE att" in the...
I think I'm starting to understand your confusion. I believe you are confusing the class methods of the .String class with the instance methods of strings. The POSIX methods are class methods of the .String class and just return a string object containing the set of characters in that category. For example, upper, lower, alpha, etc. Note that these are the same strings you can obtain from XRANGE('upper'), etc. String objects have instance methods that perform functions on individual string instances....
On Thu, Jul 18, 2024 at 10:45 PM m-stgt m-stgt@users.sourceforge.net wrote: Sorry, I'm puzzled. ~~~ say .string~upper ABCDEFGHIJKLMNOPQRSTUVWXYZ ~~~ just as you showed, but w/o ~upper ... ~~~ say .string The String class Just as would happen with any other class object, for example, say .array say .directory ~~~ why not A..Z in lower case? Why would you expect that to happen? The class object just displays its string identity. If you want the set of characters that oorexx recognizes as lower case,...
str = .string~upper Those are just methods of the string class that return the different character sets. Rick On Thu, Jul 18, 2024 at 6:00 PM Robert Bridges bobbridges@users.sourceforge.net wrote: While hunting up something else I ran across something the reference manual calls "POSIX character classes", representing particular sets of characters that a programmer might have a use for, such as UPPER or BLANK. I want to experiment with them, but for the life of me I can't figure out how. Ok, it's...
On Sun, Jul 14, 2024 at 9:25 AM Robert Bridges bobbridges@users.sourceforge.net wrote: Wait, you're saying my (second) program wouldn't work as I thought? I haven't tested it, I just assumed that if I use EXPOSE in a method and name a variable in the main routine, it would work the same as it does in a subroutine. The old joke about what happens when you "assume" comes to mind. EXPOSE just accesses the pool of variables that belong to the object instance. For any variables named on EXPOSE, those...
On Sun, Jul 14, 2024 at 8:54 AM Robert Bridges bobbridges@users.sourceforge.net wrote: Ah, yes, that would work. Thanks. In reality I wouldn't do that—that is, if I wanted to expose a variable in the main routine to a method, it seems to me it's bad programming practice to use the same name for the main-routine variable and an attribute in the class. I'd do it like this: You are not "exposing" a variable in the main routine to a method, so there's nothing at all wrong with using meaningful variable...
::RESOURCE delimiter not free-form or case-insensitive
From the documentation: The terminating resource end delimiter must start in the first column and is case-sensitive. Any text following on the same line as the terminating delimiter is ignored. This is working as designed and documented, so this is not a bug. These rules are specifically to reduce the chances that text in the resource block does not get recognized as being the terminator.
On Mon, Jul 8, 2024 at 9:06 AM m-stgt m-stgt@users.sourceforge.net wrote: Hello Erich! Just few further questions: To establish a "trans-scope" reference it would be fully sufficient to execute once in method M1 of class A .constDir[GLV_PRSTAT] = hlst. and once in method initDialog of class B hlst. = .constDir[GLV_PRSTAT] no matter in which sequence? No, the sequence must be first the assignment to the .constDir, then the assignment to the stem variable. All you are doing is passing references around,...
On Wed, Jul 3, 2024 at 7:56 AM Jeremy Nicoll jeremynicoll@users.sourceforge.net wrote: On Tue, 2 Jul 2024, at 01:07, Robert Bridges wrote: The ref says I can make two ATTRIBUTE statements using ATTRIBUTE GET and ATTRIBUTE SET, giving this as an example: ::attribute size get ::attribute size set expose size use arg value / retrieve argument / if datatype(value, "Whole") = .false | value < 0 then raise syntax 93.906 array ("size", value) size=value In my view, the example has poor coding in it (not...
Your code looks good to me. I suspect the problem is the variable omy has been assigned to the string "MY", which of course, does not have a val method. Rick On Mon, Jul 1, 2024 at 8:08 PM Robert Bridges bobbridges@users.sourceforge.net wrote: I'm playing with a new program, and want to set up two attributes, call them VAL and LVAL. Whenever I assign a string to VAL, I want it automatically to put LENGTH(VAL) into LVAL. The ref says I can make two ATTRIBUTE statements using ATTRIBUTE GET and ATTRIBUTE...
On Sat, Jun 29, 2024 at 8:40 PM Dom Wise melcaspazar@users.sourceforge.net wrote: One thing to add. Method attributes such as "unguarded" are not part of the source of a method so if a method is to be fully rebuilt from source these need to be added with an appropriate call (e.g. setUnguarded) to the newly created method object. For the the example I gave earlier, if the original method is unguarded the method replacement code changes to: .MyClass~define("mymethod", .method~new("mymethod", .MyClass~method("mymethod")~source)~~setUnguarded)...
On Fri, Jun 28, 2024 at 5:48 PM Gil Barmwater orange-e@users.sourceforge.net wrote: OK, fair enough. But I still find it "surprising" that the determination of the routine and method objects to be traced under "::options trace" is made when the directive is processed and not at run time. All directives are processed at translate time, none have a runtime component. One piece of information contained within a package object is the Initial trace settings. All executable units use that value when they...
On Thu, Jun 27, 2024 at 1:56 PM Gil Barmwater orange-e@users.sourceforge.net wrote: I found it interesting that you found that no code changes were required, just creating a new method object from the same source would do the trick. I'm guessing the processing of the ::options trace directive must build a "list" of method objects to be traced and when one replaces or adds one (or more) of them with new objects, they will not be on the already created "list" and therefore not get traced. Good to know!...
You are not listening to what I am saying. The argument "" does not say strip all leading "", it says to strip all leading occurrences of the characters "<", "I", and ">". That defintion includes the "i" in the word "i". This is still working as defined, so this is an invalid bug report.
The third argumet, if specitied, specifies the characters that should be stripped. Your argument is "" which specifies that all leading "<", "i", and ">" should be stripped. The "i" character in position 3 meets this criterion.
Strip Vs Subst
The third argument is the list of characters to strip. This will strip all leading occurrences of these characters, which in this case, includes the "i" in "in".
On Sun, May 12, 2024 at 6:51 PM Robert Bridges bobbridges@users.sourceforge.net wrote: Jeremy, I'll check out the sample code you named, but now that I've looked up initDialog I'm skeptical because the documentation says this: "The initDialog method is invoked automatically by the ooDialog framework....The ooDialog framework invokes the initDialog at the proper point in time, immediately after the underlying Windows dialog is created. The programmer should never invoke the method himself." Despite...
Ugh, long day. That is the correct value, the first version is the incorrect one.
The exponent is a bit of red herring. The much simpler -1..234*1000 is also producing the incorrect value.
That's interesting, and probably not surprising, since a lot of the time is probably spent not locating a tail in the compound variable. It might be interesting to rework this example to use an ooRexx set object, particularly with 5.0 where it's possible to specify the initial capacity of the set. That will avoid a lot of the overhead caused to having to continually expand the capacity of the set object. Rick On Sun, Apr 7, 2024 at 10:05 AM Rene Vincent Jansen rvjansen@users.sourceforge.net wrote:...
I think 96K is the minimum stack size, not the default. That's not enough headroom to do anything, particularly after you subtract out the 64K reserved to make sure error handling doesn't crash after the error is raised. Rick On Wed, Nov 1, 2023 at 12:34 PM Erich erich_st@users.sourceforge.net wrote: Hi Jeffrey, Looking for pthread_attr_getstack - found It says "found" but I wonder why the AIX docs don't document pthread_attr_getstack On z/OS yes, but nothing for AIX: https://www.ibm.com/docs/en/search/pthread_attr_getstack...
I disagree. This is just using the values for the stack size set by SysActivity. The size is obviously not correct. On Sun, Oct 29, 2023 at 7:30 PM Jeffrey H. Johnson trn@users.sourceforge.net wrote: It is checkStackSpace that is the problem. I've added some debugging output: ``` *** Activity.cpp(Activity:390): stackLimit: 1152921504606912208 *** Activity.cpp(Activity:391): errorRecoveryStack: 65536 *** Activity.cpp(checkStackSpace:2210): stackLimit: 1152921504606912208 *** Activity.cpp(checkStackSpace:2211):...
The code that determines the stack base is in SysActivity.cpp, and has a lot of conditional paths based on what's available for the different platforms. Something expected is probbly getting returned for whatever ended up getting used on AIX.
That's not a real fix, as it will cause things to crash rather than give an error message for a stack full situation. That suggests there's a problem with the new code that tries to determine the size of the stack.
If you're looking to keep unique records of something, I recommend using the .Set class. That does all of the heavy lifting for you. Rick On Wed, Oct 4, 2023 at 9:23 PM m-stgt m-stgt@users.sourceforge.net wrote: TY for the explanation in lenght, obviously I overlooked the object-oriented "enhancements" of ooRexx. a. = b. -- both a. and b. are now pointing to the same stem object This is one of the discrepancies that I once saw some time ago but did forget again, sorry. Probably no need to show you...
Some further clarification On Wed, Oct 4, 2023 at 7:36 PM m-stgt m-stgt@users.sourceforge.net wrote: I'm not conviced. If I set a "default value" for a stem, for example fx. = .Nil then all unchanged indexes of this stem will return this value. Thus subsequent say fx.0 shows The NIL object -- nothing concatenated with a tail value. In contrast, after Drop fx. as you suggest, there is no stem object any more, thus say fx.0 shows FX.0 what is the variable name uppercased, REXX standard since ever (AFAIK)....
On Wed, Oct 4, 2023 at 7:36 PM m-stgt m-stgt@users.sourceforge.net wrote: I'm not conviced. But still wrong. The default value of a stem is a different value from a stem that does not have a default value. In the first, the default value is returned for all unassigned values. Without a defined default value, the value is composed from the stem name and the tail. Consider the following: fx. = .stem~new -- no name specified, so the stem name is "" say fx.0 -- displays "0" fx. = stem~new("foobar") --...
On Wed, Oct 4, 2023 at 5:43 PM m-stgt m-stgt@users.sourceforge.net wrote: After creating an empty stem by fx. = .Stem~new it shows unexpected values (in interactive trace): Not a particularly good way to do this. Drop fx. would be much better. say fx.0 returns 0 say fx.00 returns 00 .Stem~new creates a stem object with a stem name of "", so fx.0 returns the value of the stem name (""), concatenated with the tail value, hence you just get "0". You would need to create the new stem by specifying a...
First of all, what are you trying to return? That value needs to be specified on the return instruction in other_prog. Once you've done that, the value will be availble in the variable RESULT after the CALL completes. However, a better method would be call other_prog as a function: res = other_prog(stuff) so the value gets assigned to a variable of your choice,
https://www.mathopenref.com/positive-number.html
argument 1 must be positive; found "0"
Positive means greater than zero. The message is correct. If zero or positive was accepted, it would have said it needed to be nonnegative.
On Sat, Sep 23, 2023 at 7:48 PM Jeremy Nicoll jeremynicoll@users.sourceforge.net wrote: On Thu, 21 Sep 2023, at 23:46, m-stgt wrote: BTW, I found the cause of the slowdown, to log what was sent by UDP I collected all data in a variable, byte by byte in hex. But in case the log was not reqested this variable was never reset after an CRLF. No problem if it's only a short session with few kBytes sent out. But for "heavy duty" with more than 100 kBytes this variable was a growing problem. If one appends...
Well, step 1), delete what you've already done. step 2), download the Windows installer file: https://sourceforge.net/projects/oorexx/files/oorexx/5.0.0/ooRexx-5.0.0-12583.windows.x86_64.exe/download step 3) run the installer to install the package. Rick On Sat, Sep 9, 2023 at 5:45 PM IAN T GILL iangill@users.sourceforge.net wrote: Hi, I've used ooRexx for many years now, and I'm now trying to install it on Windows 11. I have downloaded the .tar file & extracted the contents, so I now have a directory...
Class ID wrong for subclasses of .Stem
On Tue, Aug 22, 2023 at 4:32 PM m-stgt m-stgt@users.sourceforge.net wrote: Sorry, I have to confess, as a mainframe dinosaur I still do not fully grasp ooRexx. There are few dark corners left I postponed for later. For forward this 'later' is now. With the help of Mark Miesfeld and others I migrated my firmware interpreter from VM/ESA to ooRexx, with too many questions at once, so I took for example forward as a condition sine qua non, kind of "object oriented oddity." Even I do not know its necessity,...
Replace remove() with delete() to remove the METHOD line.
Fix REPLY test failure.
Incorrect flow of code
you are running on multiple threads and what you are seeing is trace output from the two threads intermingled.
The environment symbol .syscargs contains an array of the individual arguments passed to oorexx by the command shell. your null string argument will be detectable there. Rick On Mon, Jul 10, 2023 at 3:06 PM CyberSimian cybersimian@users.sourceforge.net wrote: I am using Windows 10 with ooRexx 5.0.0 32-bit. Consider the following test program. The first three invocations of "nullparm.rex" produce the expected output, but the fourth invocation does not: ~~~ D:\tools\oorexx\test>type nullparm.rex parse...
Just to clarify, the parenthesis in question are not part of the call statement, but are part of the expression for the first argument. Thus call foo(a) Will work, even on TSO. The parens are not the trigger that this is a call instruction, but rather part of the evaluation of the first argument. If you change it to a call foo(a,b) then this become an error on TSO (an invalid expression), but in ooRexx 5.0, this is the short hand syntax for creating an array, which then becomes the first argument....
On Wed, Jul 5, 2023 at 1:37 PM Erich erich_st@users.sourceforge.net wrote: Hi Rick, the compile issues are with these two functions in the non-Apple (ie. Linux) code path pthread_get_stacksize_np() pthread_get_stackaddr_np() Yes, but that's only a symptom of the problem. The conditional compile should be triggering off of the HAVE_PTHREAD_GETATTR_NP define, which should be getting set in config.h. I'm trying to figure out why that isn't working. I suspect it's not getting set for some reason, but...
Yes, that section of the code should only be used for the Mac. For some reason, the define HAVE_PTHREAD_GETATTR_NP does not seem to be getting set, which was why I was asking about the contents of config.h. The log does not show the details of that part of the build, unfortunately, so I want to know if the Cmake configuration is detecting if pthread_getattr_np() is available or not. I do not want to access any of these machines directly.
[#1911] The interpreter is using too small of a stacksize.
[#1911] The interpreter is using too small of a stacksize.
Additional fix [r12698]
[#1911] The interpreter is using too small of a stacksize.
Linux build break fixed [r12697]
[#1911] The interpreter is using too small of a stacksize.
The interpreter is using too small of a stacksize.
Fix committed [12696]
[#1911] The interpreter is using too small of a stacksize.
Hopefully this is the final version.
Here is a modified version that performs the extra test.
Because of the special check for the primary thread, could you run a version of Erich's program where you create a new thread, then that thread creates a new thread that does the recursion check.
Duh, my editor file search filter was just searching the testgroup files. No wonder I didn't find anything!
I have a version I think should work for the Mac. There's a couple of lines of this that only really apply to the Mac, but probably not to platforms that don't support pthread_getattr_np(). Do we have a define for conditionalizing Mac-specific things? I wasn't able to find any.
Yet another one for DARWIN. It appears that the value returned for the main thread is too small. https://clickhouse.com/codebrowser/ClickHouse/src/Common/checkStackSize.cpp.html
I found this example function that appears to take into account all of the possibilities for determining this information: https://cpp.hotexamples.com/examples/-/-/pthread_get_stacksize_np/cpp-pthread_get_stacksize_np-function-examples.html I'm not sure we need all of this, but hopefully it will work out. I also found this for MacOS: https://stackoverflow.com/questions/3230815/how-do-i-find-the-base-address-and-size-of-the-stack-on-macos-x But I'm worried that the size might be the currently active...
Damn, I was afraid that would happen. Getting this to work absolutely depends on being able to determine the stack base and the stack size from the OS.
Can someone try this patch on the Mac? I'd like to confirm this works on that platform before I commit it.
I just ran some simple tests on this, including multithreading tests because I need to check that the additional threads were also picking up the larger stack size. I tried throwing the Rosetta Code man_or_dog program at it, but that still died at the same point. The Rosetta Code program used to die without being able to report the error, but it was able to handle the error correctly this time.
I have this working on Windows. but will need some assistance on the Unix variants to make sure it works. I've made the changes, but need someone to make sure they compile and work on the other platforms.
On Sat, Jul 1, 2023 at 1:47 AM Erich erich_st@users.sourceforge.net wrote: str = connList(1)~Name connList(1) is not a method invocation, but a simple function call - but we have no function called "connList". From the docs you'd think that connList[1] should work, but it doesn't (not sure why the docs show it like this). Erich, VB has a syntax that allows you to specify that a particular object is the target of an unqualified method call so you don't have to continually code for it. Rick To figure...
The class method returns the class object, but isA() is a better method, since it will apply to subclasses as well as the base class. Rick On Wed, Jun 28, 2023 at 1:44 PM Jeremy Nicoll jeremynicoll@users.sourceforge.net wrote: Is there a way to ask ooREXX what something is and get back eg ".array" (if that's the most precise one can be) or a list of the classes (if that's the right terminology) so eg that might include ".array" and also ".collection" and maybe something even more general? How to...
Some observations on this problem: 1) The stack limits the interpreter uses are set using compile-time constants. This value currently is assuming a 512Kb stack size and on Windows, the /STACK option is used to set an initial stack size a little larger than that. This value is actually smaller than the default stack size of 1Mb that Windows currently uses. 2) Basing the size of the stack using a static value used to link rexx.exe, etc. only works if one of those executables was used to create the...
The interpreter is using too small of a stacksize.
Here are two solutions using a custom .Set subclass. The first will always return the value as lowercase. The second is a little more complicated, but it will maintain the case of the first instance encountered. say "Version 1"say data = .array~of(1, 2, 3, "a", "B", "c", 2, 3, 4, "b", "C", "D") uniqueData = .caselessset1~new~union(data)~makearray~sortsay uniqueData saysay "Version 2"say uniqueData = .caselessset2~new~union(data)~makearray~sortsay uniqueData ::class CaselessSet1 subclass set ::method...
Problem with Do ... Over
5.0.1 fix commite [r12692]
[#1904] Problem with Do ... Over
Problem with Do ... Over
Trunk code committed 12691
[#1904] Problem with Do ... Over
I'm pretty sure I know the fix for this. I'm traveling right now and will take care of this later in the week.
Label before directive does not have implied semicolon added
By ooRexx parsing rules, blanks between operator characters are removed during the lexical scan (i.e., before attempting to interpret the meaning of the clause. This reduces the clause to this:::options because we now have a symbol followed by two ":" characters, this is interpreted as part of a message term using a scope qualifier and the third ":" is identifed as part of an invalid espression.
On Fri, May 12, 2023 at 2:56 PM Per Olov Jonsson perolovjonsson@users.sourceforge.net wrote: Group: 5.0.0 --> 5.1.0 In general, the Group is usually left as "none" until there is a fix available and it decided when it will be available. [bugs:#1842] linein performance issue Status: accepted Group: 5.1.0 Created: Sun Sep 11, 2022 03:56 PM UTC by Erich Last Updated: Tue Dec 20, 2022 12:09 PM UTC Owner: Erich On Windows reading the first line with linein has a runtime that goes up with the square of...
Prpbably a race condition in the loading process that results in it getting run twice. That's a bug, not the other way. Rick On Sun, Apr 9, 2023 at 10:12 AM Rony G. Flatscher orexx@users.sourceforge.net wrote: So, why is it then that the prolog code of P1 gets executed on R1 and R2, but the prolog code of P2 does not get executed on R2? [bugs:#1889] Required required package does not get prolog code run on additional Rexx instances Status: open Group: 5.1.0 Created: Sun Apr 09, 2023 02:07 PM UTC...
Required packages are NOT loaded and maintained on an instance bases, they are managed globally and the prologs are only ever executed once.
On Fri, Apr 7, 2023 at 12:13 PM Erich erich_st@users.sourceforge.net wrote: Ok, so if rxmath isn't old-style, do we have any old-style registered function still in 5.0? I'm trying to find working examples for the rexxref RXFUNCADD docs. I don’t believe there are, except maybe in the samples. [bugs:#1888] RXFUNCADD issue Status: open Group: 5.1.0 Created: Fri Apr 07, 2023 03:43 PM UTC by Erich Last Updated: Fri Apr 07, 2023 03:51 PM UTC Owner: nobody I think this should make sqrt available as an external...
rxfuncadd only works with old-style function packages, not with the new style ones. There's no entry point in the dll to resolve, and on top of that. the calling conventions between the two styles are completely different.
You're probably wasting your time on this. ooRexx is only going to be reporting the difference between timestamps obtained from the operating system. Rick On Wed, Apr 5, 2023 at 4:52 PM m-stgt m-stgt@users.sourceforge.net wrote: Today the strange behaviour is in about 20 retries not reproducible. Questionable Resolution of TIME("E") Sent from sourceforge.net because you indicated interest in < https://sourceforge.net/p/oorexx/discussion/408478/> To unsubscribe from further messages, please visit...
Those two test groups are not even in SVN.
Adding higher precision TIME() support on Windows.