Activity for Rick McGuire

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #1974

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #1971

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #1971

    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]...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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....

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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....

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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,...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire modified ticket #1952

    ::RESOURCE delimiter not free-form or case-insensitive

  • Rick McGuire Rick McGuire posted a comment on ticket #1952

    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.

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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,...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #836

    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)...

  • Rick McGuire Rick McGuire posted a comment on ticket #836

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #836

    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!...

  • Rick McGuire Rick McGuire posted a comment on ticket #1949

    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.

  • Rick McGuire Rick McGuire posted a comment on ticket #1949

    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.

  • Rick McGuire Rick McGuire modified ticket #1949

    Strip Vs Subst

  • Rick McGuire Rick McGuire posted a comment on ticket #1949

    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".

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #1948

    Ugh, long day. That is the correct value, the first version is the incorrect one.

  • Rick McGuire Rick McGuire posted a comment on ticket #1948

    The exponent is a bit of red herring. The much simpler -1..234*1000 is also producing the incorrect value.

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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:...

  • Rick McGuire Rick McGuire posted a comment on ticket #1923

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #1923

    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):...

  • Rick McGuire Rick McGuire posted a comment on ticket #1923

    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.

  • Rick McGuire Rick McGuire posted a comment on ticket #1923

    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.

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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)....

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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") --...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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,

  • Rick McGuire Rick McGuire posted a comment on ticket #1920

    https://www.mathopenref.com/positive-number.html

  • Rick McGuire Rick McGuire modified ticket #1920

    argument 1 must be positive; found "0"

  • Rick McGuire Rick McGuire posted a comment on ticket #1920

    Positive means greater than zero. The message is correct. If zero or positive was accepted, it would have said it needed to be nonnegative.

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire modified ticket #1918

    Class ID wrong for subclasses of .Stem

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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,...

  • Rick McGuire Rick McGuire committed [r12710] on Code SVN Repository

    Replace remove() with delete() to remove the METHOD line.

  • Rick McGuire Rick McGuire committed [r12709] on Code SVN Repository

    Fix REPLY test failure.

  • Rick McGuire Rick McGuire modified ticket #1913

    Incorrect flow of code

  • Rick McGuire Rick McGuire posted a comment on ticket #1913

    you are running on multiple threads and what you are seeing is trace output from the two threads intermingled.

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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....

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    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.

  • Rick McGuire Rick McGuire committed [r12700] on Code SVN Repository

    [#1911] The interpreter is using too small of a stacksize.

  • Rick McGuire Rick McGuire committed [r12699] on Code SVN Repository

    [#1911] The interpreter is using too small of a stacksize.

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    Additional fix [r12698]

  • Rick McGuire Rick McGuire committed [r12698] on Code SVN Repository

    [#1911] The interpreter is using too small of a stacksize.

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    Linux build break fixed [r12697]

  • Rick McGuire Rick McGuire committed [r12697] on Code SVN Repository

    [#1911] The interpreter is using too small of a stacksize.

  • Rick McGuire Rick McGuire modified ticket #1911

    The interpreter is using too small of a stacksize.

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    Fix committed [12696]

  • Rick McGuire Rick McGuire committed [r12696] on Code SVN Repository

    [#1911] The interpreter is using too small of a stacksize.

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    Hopefully this is the final version.

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    Here is a modified version that performs the extra test.

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    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.

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    Duh, my editor file search filter was just searching the testgroup files. No wonder I didn't find anything!

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    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.

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    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

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    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.

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    Can someone try this patch on the Mac? I'd like to confirm this works on that platform before I commit it.

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    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.

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    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.

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #1911

    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...

  • Rick McGuire Rick McGuire created ticket #1911

    The interpreter is using too small of a stacksize.

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire modified ticket #1904

    Problem with Do ... Over

  • Rick McGuire Rick McGuire posted a comment on ticket #1904

    5.0.1 fix commite [r12692]

  • Rick McGuire Rick McGuire committed [r12692] on Code SVN Repository

    [#1904] Problem with Do ... Over

  • Rick McGuire Rick McGuire modified ticket #1904

    Problem with Do ... Over

  • Rick McGuire Rick McGuire posted a comment on ticket #1904

    Trunk code committed 12691

  • Rick McGuire Rick McGuire committed [r12691] on Code SVN Repository

    [#1904] Problem with Do ... Over

  • Rick McGuire Rick McGuire posted a comment on ticket #1904

    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.

  • Rick McGuire Rick McGuire modified ticket #1900

    Label before directive does not have implied semicolon added

  • Rick McGuire Rick McGuire posted a comment on ticket #1900

    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.

  • Rick McGuire Rick McGuire posted a comment on ticket #1842

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #1889

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #1889

    Required packages are NOT loaded and maintained on an instance bases, they are managed globally and the prologs are only ever executed once.

  • Rick McGuire Rick McGuire posted a comment on ticket #1888

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #1888

    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.

  • Rick McGuire Rick McGuire posted a comment on discussion Help

    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...

  • Rick McGuire Rick McGuire posted a comment on ticket #1883

    Those two test groups are not even in SVN.

  • Rick McGuire Rick McGuire created ticket #220

    Adding higher precision TIME() support on Windows.

1 >