[Oorexx-devel] External function file search in Ubuntu
There's been a long thread in comp.lang.rexx in the last few days from someone trying to get external functions to work on an Ubuntu system. This was ooREXX 4.1.2 The user's problem turned out to be due to him making function calls with unquoted function names, which were folded to uppercase by oorexx and then didn't match the actual file mixed-case leafnames - no surprise there. But in the Ref manual section 7.2.1 about file search orders it says Unix-based systems have a case sensitive file system, so files much be exact case matches in order to be located. For these systems, each time a file name probe is attempted, the name will be tried in the case specified and also as a lower case name. The user did also, he says, try with the external function files named in lower case. You can check that if you want in his news post: Date: Thu, 20 Sep 2012 22:08:30 -0400 From: Cruz, Jaime spamm...@bite.me Subject: Re: FINALLY got OOREXX working under Ubuntu!! Message-ID: x7wdncqls5acucbnnz2dnuvz_t6dn...@giganews.com ... Okay, I rebooted, edited out all the SysAddRexxMacro calls, then renamed all of the external functions in the directory to lower case. That didn't work. Next, I renamed them to all upper case. BINGO! That worked! I am unable to check this, not having any linux systems. Can someone-else tell if this is a search-order bug, or a documentation error? The same user also has been questioning where the .deb-based install he did put the oorexx documentation. Anyone here know? -- Jeremy Nicoll - my opinions are my own -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] External function file search in Ubuntu
This is working correctly. The function name uses normal Rexx rules for name resolution. If the call name is coded as a symbol, then the name being called is ALWAYS the uppercase version, since all symbols have as an eventual value the uppercase value of the symbol. So calls to foo, Foo, and FOO are all calls to a function named FOO. This all happens before the search for an external function ever begins, so that code is not even aware of the original case. The instruction itself has already folded the name to uppercase by execution time, so the original case is no longer available. If a quoted string is used, then the original case is maintained. Rick On Fri, Sep 21, 2012 at 7:03 AM, Jeremy Nicoll - ml sourceforge jn.ml.sfrg...@letterboxes.org wrote: There's been a long thread in comp.lang.rexx in the last few days from someone trying to get external functions to work on an Ubuntu system. This was ooREXX 4.1.2 The user's problem turned out to be due to him making function calls with unquoted function names, which were folded to uppercase by oorexx and then didn't match the actual file mixed-case leafnames - no surprise there. But in the Ref manual section 7.2.1 about file search orders it says Unix-based systems have a case sensitive file system, so files much be exact case matches in order to be located. For these systems, each time a file name probe is attempted, the name will be tried in the case specified and also as a lower case name. The user did also, he says, try with the external function files named in lower case. You can check that if you want in his news post: Date: Thu, 20 Sep 2012 22:08:30 -0400 From: Cruz, Jaime spamm...@bite.me Subject: Re: FINALLY got OOREXX working under Ubuntu!! Message-ID: x7wdncqls5acucbnnz2dnuvz_t6dn...@giganews.com ... Okay, I rebooted, edited out all the SysAddRexxMacro calls, then renamed all of the external functions in the directory to lower case. That didn't work. Next, I renamed them to all upper case. BINGO! That worked! I am unable to check this, not having any linux systems. Can someone-else tell if this is a search-order bug, or a documentation error? The same user also has been questioning where the .deb-based install he did put the oorexx documentation. Anyone here know? -- Jeremy Nicoll - my opinions are my own -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] External function file search in Ubuntu
Rick McGuire object.r...@gmail.com wrote: This is working correctly. The function name uses normal Rexx rules for name resolution. If the call name is coded as a symbol, then the name being called is ALWAYS the uppercase version, since all symbols have as an eventual value the uppercase value of the symbol. So calls to foo, Foo, and FOO are all calls to a function named FOO. This all happens before the search for an external function ever begins, so that code is not even aware of the original case. The instruction itself has already folded the name to uppercase by execution time, so the original case is no longer available. If a quoted string is used, then the original case is maintained. Sure; I wasn't asking that. Why does the ref manual say that a lower-case name search will be tried? -- Jeremy Nicoll - my opinions are my own -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] External function file search in Ubuntu
On Fri, Sep 21, 2012 at 7:30 AM, Jeremy Nicoll - ml sourceforge jn.ml.sfrg...@letterboxes.org wrote: Rick McGuire object.r...@gmail.com wrote: This is working correctly. The function name uses normal Rexx rules for name resolution. If the call name is coded as a symbol, then the name being called is ALWAYS the uppercase version, since all symbols have as an eventual value the uppercase value of the symbol. So calls to foo, Foo, and FOO are all calls to a function named FOO. This all happens before the search for an external function ever begins, so that code is not even aware of the original case. The instruction itself has already folded the name to uppercase by execution time, so the original case is no longer available. If a quoted string is used, then the original case is maintained. Sure; I wasn't asking that. Why does the ref manual say that a lower-case name search will be tried? Because it IS part of the search order. But that really only applies to the searches using file extensions. This is not done with the raw name because it resulted in too many false positives with non-rexx programs (this was actually added at one point, but it had to be backed out). In the poster's situation, he's created his files without extensions, so only the matching case is used. If he renamed them to have a .rex extension, then there is much less case insensitivity involved. Rick -- Jeremy Nicoll - my opinions are my own -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] External function file search in Ubuntu
Rick McGuire object.r...@gmail.com wrote: Because it IS part of the search order. But that really only applies to the searches using file extensions. This is not done with the raw name because it resulted in too many false positives with non-rexx programs (this was actually added at one point, but it had to be backed out). In the poster's situation, he's created his files without extensions, so only the matching case is used. If he renamed them to have a .rex extension, then there is much less case insensitivity involved. Ok, that makes sense. I've raised a Documentation bug (hopefully correctly, I don't understand te new ticketing software), so maybe someone can clarify this in future manuals. Separately from the doc issue, is there any point in making a feature request that in some way - maybe a trace option? - one could have oorexx tell you in succession all the places it looked for a specific-named file? The whole process strikes me as being mind-bogglingly complicated and although descriptions go some way to describe what's being taken into account, actually having a clear understanding of precisely which name of something is being looked for and in what location is ... hard. I'd like to see output something like: trace Search Call NoSuchFunction() 3 *-* Call NoSuchFunction() 'NOSUCHFUNCTION' not found in REXX_PATH 'NOSUCHFUNCTION' not found in PATH 'NOSUCHFUNCTION' not found in ... 'NOSUCHFUNCTION.XYZ' not found ... etc with whatever details are appropriate, preferably showing the exact case and file extensions looked for in the order they are tested in. For things like search in REXX_PATH or PATH, if the oorexx code itself identifies the separate directories involved then I'd rather see those enumerated in the trace output, but if it just uses some system function to search for file x on path y then the environment var name would be enough detail. For a function call where the search is successful I think the trace output shouls also show the location where the item was found. -- Jeremy Nicoll - my opinions are my own -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
[Oorexx-devel] Missing tracker notifications
I just discovered there have been multiple tracker items created over the last couple of days, but I never got tracker notifications for these. Are others seeing these notifications? I tried unsubscribing and resubscribing, so we'll see if that made a difference. Before I open a sourceforge ticket, I'd like to establish whether this is a global or local problem. On the plus side, it looks like the navigation bar is finally working! Rick -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] Missing tracker notifications
Did ou see my doc ticket for rexxref? Walter Von: Rick McGuire [mailto:object.r...@gmail.com] Gesendet: Freitag, 21. September 2012 14:46 An: Open Object Rexx Developer Mailing List Betreff: [Oorexx-devel] Missing tracker notifications I just discovered there have been multiple tracker items created over the last couple of days, but I never got tracker notifications for these. Are others seeing these notifications? I tried unsubscribing and resubscribing, so we'll see if that made a difference. Before I open a sourceforge ticket, I'd like to establish whether this is a global or local problem. On the plus side, it looks like the navigation bar is finally working! Rick -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] Missing tracker notifications
On Fri, Sep 21, 2012 at 9:12 AM, Walter Pachl christel.u.w.pa...@chello.atwrote: Did ou see my doc ticket for rexxref? No, that was one of the recent ones I discovered had gone missing. Walter ** ** *Von:* Rick McGuire [mailto:object.r...@gmail.com] *Gesendet:* Freitag, 21. September 2012 14:46 *An:* Open Object Rexx Developer Mailing List *Betreff:* [Oorexx-devel] Missing tracker notifications ** ** I just discovered there have been multiple tracker items created over the last couple of days, but I never got tracker notifications for these. Are others seeing these notifications? I tried unsubscribing and resubscribing, so we'll see if that made a difference. Before I open a sourceforge ticket, I'd like to establish whether this is a global or local problem. ** ** On the plus side, it looks like the navigation bar is finally working! ** ** Rick -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] Missing tracker notifications
On Fri, Sep 21, 2012 at 5:45 AM, Rick McGuire object.r...@gmail.com wrote: I just discovered there have been multiple tracker items created over the last couple of days, but I never got tracker notifications for these. Are others seeing these notifications? I tried unsubscribing and resubscribing, so we'll see if that made a difference. Before I open a sourceforge ticket, I'd like to establish whether this is a global or local problem. I discovered that exact same thing this morning when I saw the post from Staffan on the user's list. Have to wonder if other tracker items are not showing up. Feature requests for example. Let me know if you open a ticket so I can vote it up. -- Mark Miesfeld -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] Missing tracker notifications
Ok, new sourceforge ticket opened: https://sourceforge.net/p/forge/site-support/690/ Rick On Fri, Sep 21, 2012 at 9:39 AM, Mark Miesfeld miesf...@gmail.com wrote: On Fri, Sep 21, 2012 at 5:45 AM, Rick McGuire object.r...@gmail.comwrote: I just discovered there have been multiple tracker items created over the last couple of days, but I never got tracker notifications for these. Are others seeing these notifications? I tried unsubscribing and resubscribing, so we'll see if that made a difference. Before I open a sourceforge ticket, I'd like to establish whether this is a global or local problem. I discovered that exact same thing this morning when I saw the post from Staffan on the user's list. Have to wonder if other tracker items are not showing up. Feature requests for example. Let me know if you open a ticket so I can vote it up. -- Mark Miesfeld -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] Missing tracker notifications
Rick McGuire object.r...@gmail.com wrote: I just discovered there have been multiple tracker items created over the last couple of days, but I never got tracker notifications for these. Are others seeing these notifications? No; I think I've seen one commit msg in the last two days and nothing else at all. -- Jeremy Nicoll - my opinions are my own -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] table vs. identitytable
You aren't seeing a difference because you're using the same set of objects. for your indexes. Here is a simple example that will show the difference. i1 = abc i2 = ab||c table = .table~new itable = .identitytable~new table[i1] = Walter table[i2] = Pachl say table~items -- 1 item say table[i1] table[i2] -- Pachl Pachl itable[i1] = Walter itable[i2] = Pachl say itable~items -- 2 items say itable[i1] itable[i2] -- Walter Pachl With a table, both i1 and i2 are the same index because the two objects compare equal. With an identitytable, i1 and i2 are NOT the same index because they are different objects. For most purposes, a table is sufficient for the job. There are some advanced uses, however, where the distinction is important. You really need to have a better understanding of what objects are before I attempt to explain those uses. Rick On Fri, Sep 21, 2012 at 2:10 PM, Walter Pachl christel.u.w.pa...@chello.atwrote: Can someone tell me why I cannot find a difference? I read and compared carefully sections 5.3.16 and 17. Pls find my observations (and change suggestions) at the end ot this. Would it be better to report that as a doc bug (?) Thanks for your understanding Walter /* REXX *** * Trying to demonstrate the difference between table and identitytable * 21.09.2012 Walter Pachl **/ Select When arg(1)='?' Then Do Say 'rexx testtab I tests table vs. identitytable' Say 'What must be changed to see a difference?' Say 'I expected the indexes c and cc to make a difference' Say 'what''s the difference between == and object identity??' Exit End When arg(1)='I' Then Do Say 'Test with identitytable' tab=.identitytable~new /* create a new identity */ End Otherwise Do Say 'Test with identitytable' tab=.table~new/* create a new table */ End End Call create_objects tab[1]=a /* fill first table entry */ tab[two]=b /* index can be any object */ tab~put(e,c) /* put method is synonymous with []= */ cc=c~copy Say 'c: ' c~identityHash Say 'cc:' cc~identityHash tab[four]=d /* four = FOUR */ Call show_tab 1 tab~put(e,cc) /* put method is synonymous with []= */ If cc==c Then Say 'cc and c are ==' If cc\==c Then Say 'cc and c are \==' Call show_tab 2 Exit show_tab: Say 'show_tab' arg(1) Say tab~items 'items' xlist=tab~allindexes /* puts all indexes into array xlist */ Do item over xlist/* loop over array and show elements */ Say item/* - 1 */ End ilist=tab~allitems/* puts all items into array ilist */ i=0 Do item over ilist/* loop over array and show elements */ Say item~show /* - 1 Adam Ants 1000 */ End Return create_objects: /* - */ a=.payroll~new(1,'Adam Ants',1000) /* create a payroll entry */ b=.payroll~new(2,'Barry Bee',2000) /* create a payroll entry */ c=.payroll~new(3,'Charly Ce',3000) /* create a payroll entry */ d=.payroll~new(4,'Donald Duck',4000) /* create a payroll entry */ e=.payroll~new(5,'Eva Ericson',5000) /* create a payroll entry */ f=.payroll~new(6,'Fred Feuerstein',6000) /* create a payroll entry */ Return ::class payroll public ::attribute persnr /* variables of payroll's objects */ ::attribute name ::attribute salary ::method init /* initialize the object */ expose persnr name salary/* get access to payroll's objects*/ parse arg persnr, name, salary /* assign parameters to variables */ ::method show /* show the payroll data */ expose persnr name salary Return right(persnr,5) left(name,15) salary rexxref.pdf observations (Output of my 'famous' COMPAT program (after massaging the texts) table.txt identitytable.txt OLD- 5.3.16. The Table Class OLD- A table is a collection with indexes that can be any object. OLD- In a table, each item is associated with a single index, OLD- and there can be only one item for each index OLD- (unlike a relation, which can contain more than one item with the same index). OLD- Index equality is determined by using the == method. add ... and item equality ??? OLD- Note: The Table class also has available class methods that its metaclass, NEW- 5.3.17. The IdentityTable Class NEW- An identity table is a collection with indexes that can be any object. NEW- In an identity table, each item is associated with a single index, NEW- and there
Re: [Oorexx-devel] table vs. identitytable
Thanks Rick, You really need to have a better understanding of what objects are Trying ;:-( Is my delta (16 vs. 17) of any use? Walter -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] table vs. identitytable
Hmm I tried what you've shown me by using c and cc (differering hash identities) i1 = abc and i2=i1~copy works as expected sigh have a nice weekend Walter -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] table vs. identitytable
On Fri, Sep 21, 2012 at 11:48 AM, Walter Pachl christel.u.w.pa...@chello.at wrote: Is my delta (16 vs. 17) of any use? Walter, I don't have the time to go through your delta line by line. But I thought I'd clarify a few things that caught my eye: NEW- Returns an array of all indices contained in the table Both indexes and indices are correct spellings. We talked about this some years ago and decided to always go with indexes. OLD- -hasItem(value)-- OLD- Returns 1 (true) if the collection contains the value at any index position NEW- -hasItem(item)--- NEW- Returns 1 (true) if the collection contains the item at any index position why different (item vs. value)??? Item and value are synonymous here. You can say I want to get the value at index 'x' or you can say I want to get the item at index 'x' The both mean the same thing. The text within the () is a variable name. value is just as good a variable name as item is. There is therefore no *compelling* reason to change the text. In general, I'm not even sure what your delta means. It would seem that you are saying that section 5.3.16 should be changed to 5.3.17?? There are 2 different things being documented. In 5.3.16 the Table class is being documented. In 5.3.17, the IndentityTable is being documented. They should have different text. Now there could be copy and paste errors in section 5.3.17, but when I look at the reference doc, I don't see any. -- Mark Miesfeld -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel