Re: [Oorexx-devel] New Feature Questions
OK, thanks, I'll see about working that info into my pitch. Mark Miesfeld wrote: > On Sat, May 9, 2009 at 9:09 AM, Gil Barmwater wrote: > > >>Where is the sockets.cls, in the samples? > > > Oh, and for your original question, how do you make use of them. You > would use a ::requires 'socket.cls' > > I think, but didn't check, that the scclient.rex, scserver.rex, etc., > samples use the class. > > -- > Mark Miesfeld > > -- > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your > production scanning environment may not be a perfect world - but thanks to > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 > Series Scanner you'll get full speed at 300 dpi even with all image > processing features enabled. http://p.sf.net/sfu/kodak-com > ___ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > -- Gil Barmwater -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] Anyone using a shared source tree between Linux and Windows ?
I tried doing that once, but the attempt lasted for maybe 15 minutesI ran into the same linend issues you have and abandoned the attempt. Rick On Sat, May 9, 2009 at 12:52 PM, Jean-Louis Faucher wrote: > Hello, > My main environment is WinXP, and I run occasionally PuppyLinux in > VirtualBox when I want to compile under Linux. > For now, I have two separate source trees. > I can mount the WinXP source tree under Linux, but can't build because the > CR-LF brings troubles (starting with bootstrap :-). > Maybe it would work better if the source tree was managed by Linux and made > visible from WinXP. > So, I'm just curious to know if anyone is successful in sharing the source > tree... > > Jean-Louis > > > -- > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your > production scanning environment may not be a perfect world - but thanks to > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK > i700 > Series Scanner you'll get full speed at 300 dpi even with all image > processing features enabled. http://p.sf.net/sfu/kodak-com > ___ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > > -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
[Oorexx-devel] Anyone using a shared source tree between Linux and Windows ?
Hello, My main environment is WinXP, and I run occasionally PuppyLinux in VirtualBox when I want to compile under Linux. For now, I have two separate source trees. I can mount the WinXP source tree under Linux, but can't build because the CR-LF brings troubles (starting with bootstrap :-). Maybe it would work better if the source tree was managed by Linux and made visible from WinXP. So, I'm just curious to know if anyone is successful in sharing the source tree... Jean-Louis -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] New Feature Questions
On Sat, May 9, 2009 at 9:09 AM, Gil Barmwater wrote: > Where is the sockets.cls, in the samples? Oh, and for your original question, how do you make use of them. You would use a ::requires 'socket.cls' I think, but didn't check, that the scclient.rex, scserver.rex, etc., samples use the class. -- Mark Miesfeld -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] New Feature Questions
On Sat, May 9, 2009 at 9:09 AM, Gil Barmwater wrote: > Where is the sockets.cls, in the samples? In the distribution, it is in the root of the install directory. Alongside ooDialog.cls, rxftp.cls, etc.. In the source tree itself it is in extensions/rxsock. -- Mark Miesfeld -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] New Feature Questions
Gil, Mark, You're right, I made a copy of the sentence from http://www.oorexx.org/oorexx4.0.html without checking my sources :-) Jean-Louis -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] New Feature Questions
Where is the sockets.cls, in the samples? Mark Miesfeld wrote: > On Sat, May 9, 2009 at 7:47 AM, Gil Barmwater wrote: > > >>Should I open a doc. bug tracker item for the ReadMe or is the intent to >>actually include them somewhere? > > > Gil, as far as I can see the two classes, MIME and SMTP, are just > mentioned in one sentence. Along with the sockets.cls. The > sockets.cls is in the distribution. I'll just edit that sentence. At > this point in the cycle, I don't think David intends to include them, > but if he does, we can just edit the sentence again. > > -- > Mark Miesfeld > > -- > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your > production scanning environment may not be a perfect world - but thanks to > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 > Series Scanner you'll get full speed at 300 dpi even with all image > processing features enabled. http://p.sf.net/sfu/kodak-com > ___ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > -- Gil Barmwater -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] New Feature Questions
On Sat, May 9, 2009 at 7:47 AM, Gil Barmwater wrote: > Should I open a doc. bug tracker item for the ReadMe or is the intent to > actually include them somewhere? Gil, as far as I can see the two classes, MIME and SMTP, are just mentioned in one sentence. Along with the sockets.cls. The sockets.cls is in the distribution. I'll just edit that sentence. At this point in the cycle, I don't think David intends to include them, but if he does, we can just edit the sentence again. -- Mark Miesfeld -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] New Feature Questions
Ok, I'll concede you that one! That's definitely a doc bug. "There are three kinds of people in the world...those who can count and those who can't" :-) I'll just go ahead and fix this one nowdon't bother with a doc bug. Rick On Sat, May 9, 2009 at 10:54 AM, Gil Barmwater wrote: > OK, now I think I understand what the length applies to - the substr of > the target that is being replaced, not the length of the replacing > substr. (That doesn't read too well does it?) But the 3 chars of > 'abcdef' starting at 3 is 'abcdef'~substr(3,3) or 'cde', right? So, if > we replace that with ' ' then the result is 'ab f', no? > > Rick McGuire wrote: >> replaceAt() does a replacement of one substring with another string. Thus >> >> "abcdef"~replaceAt(" ",3, 3) -> "ab ef" >> >> is correct. It replaces the 3 characters beginning at postion 3 with >> the string " ". The resulting string is shorter than the original >> string. >> >> In the second example, the replacement position is beyond the original >> string. This version is essentially the same as using overlay, >> because there are no characters snipped out from the original. >> >> Rick >> >> >> On Sat, May 9, 2009 at 10:24 AM, Gil Barmwater >> wrote: >> >>>OK, thanks. Still not clear about these examples for replaceAt: >>> >>>"abcdef"~replaceAt(" ",3, 3) -> "ab ef" >>>"abc"~replaceAt("123",5,6,"+") -> "abc+123" >>> >>>I would think that the first would give "ab f", i.e. 'cde' replaced >>>with 3 blanks. And the second I don't get at all :-( >>> >>>Rick McGuire wrote: >>> On Sat, May 9, 2009 at 7:36 AM, Gil Barmwater wrote: >Having almost completed my presntation on the new stuff in 4.0.0, I just >have four more questions. > >1) The ReadMe says "The MutableBuffer class has been enhanced so that it >has most, if not all, of the methods of the String class." Do we know >of any methods that are NOT in both or should it say "...has all..."? There are quite a few that were not implemented becaus they really did not make much sense for a mutablebuffer. For example, the arithmetic functions (min, max, sign, abs), the various conversion functions (d2c(), etc.), datatype(). There might be others, but those are the ones the spring immediately to mind. I believe the set of "string" functions is fairly complete, but even here there are exceptions (abbrev(), the base64 encode/decode). >2) Can you explain when one would use the String Class replaceAt() >method rather than overlay() or changeStr()? Ok, here's a souce string" "a" Use chagestr to replace the characters starting at position 6 for 5 characters with "123" Now try this with overlay() Now do you see the benefit of replaceAt() :-) To do this operation without replaceAt requests two substrings (or a parse operation, which is the equivalent) + two concatenate operations. This requires the creation of 4 objects to get one result. This can also be done with a delstr()/insert() combo, which only creates one extra object, but replaceAt() does it in one shot. replaceAt() is particularly useful with mutableBuffer if you're using it to make editing-type operations. >3) While I believe I understand the difference between a Table and an >IdentityTable, can you give me an example of when I would need to use an >IdentityTable rather than a Table? IdentityTable is used mostly for situations you need to keep track of actual object instances rather than relying on "equality", which may not be the same. The interpreter uses this internally, for example, to keep track of the objects that have a pending uninit() operation. In this situation, it is important that the table be able to use the object as an index even if the "==" method of the object claims that this object is "equal" to another object. At lot of the uses of this are pretty esotericbut when you need it, you need it! >4) How are the new utility classes for sockets, MIME and SMTP provided, >i.e. where are they in the distribution, and what does one need to do to >make use of them? David will need to ansewr that one. >Once I make the updates based on the answers, I could send an outline >form of my presetation to anyone interested for review if you'd have >time. Want to make sure I got it right! Yes, please send me a copy. >-- >Gil Barmwater > >-- >The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your >production scanning environment may not be a perfect world - but thanks to >Kodak, there's a perfect scanner to get the job done! With the NEW KODA
Re: [Oorexx-devel] New Feature Questions
OK, now I think I understand what the length applies to - the substr of the target that is being replaced, not the length of the replacing substr. (That doesn't read too well does it?) But the 3 chars of 'abcdef' starting at 3 is 'abcdef'~substr(3,3) or 'cde', right? So, if we replace that with ' ' then the result is 'ab f', no? Rick McGuire wrote: > replaceAt() does a replacement of one substring with another string. Thus > > "abcdef"~replaceAt(" ",3, 3) -> "ab ef" > > is correct. It replaces the 3 characters beginning at postion 3 with > the string " ". The resulting string is shorter than the original > string. > > In the second example, the replacement position is beyond the original > string. This version is essentially the same as using overlay, > because there are no characters snipped out from the original. > > Rick > > > On Sat, May 9, 2009 at 10:24 AM, Gil Barmwater > wrote: > >>OK, thanks. Still not clear about these examples for replaceAt: >> >>"abcdef"~replaceAt(" ",3, 3) -> "ab ef" >>"abc"~replaceAt("123",5,6,"+") -> "abc+123" >> >>I would think that the first would give "ab f", i.e. 'cde' replaced >>with 3 blanks. And the second I don't get at all :-( >> >>Rick McGuire wrote: >> >>>On Sat, May 9, 2009 at 7:36 AM, Gil Barmwater >>>wrote: >>> >>> Having almost completed my presntation on the new stuff in 4.0.0, I just have four more questions. 1) The ReadMe says "The MutableBuffer class has been enhanced so that it has most, if not all, of the methods of the String class." Do we know of any methods that are NOT in both or should it say "...has all..."? >>> >>> >>>There are quite a few that were not implemented becaus they really did >>>not make much sense for a mutablebuffer. For example, the arithmetic >>>functions (min, max, sign, abs), the various conversion functions >>>(d2c(), etc.), datatype(). There might be others, but those are the >>>ones the spring immediately to mind. I believe the set of "string" >>>functions is fairly complete, but even here there are exceptions >>>(abbrev(), the base64 encode/decode). >>> >>> >>> 2) Can you explain when one would use the String Class replaceAt() method rather than overlay() or changeStr()? >>> >>> >>>Ok, here's a souce string" "a" >>> >>>Use chagestr to replace the characters starting at position 6 for 5 >>>characters with "123" >>> >>>Now try this with overlay() >>> >>>Now do you see the benefit of replaceAt() :-) >>> >>>To do this operation without replaceAt requests two substrings (or a >>>parse operation, which is the equivalent) + two concatenate >>>operations. This requires the creation of 4 objects to get one >>>result. This can also be done with a delstr()/insert() combo, which >>>only creates one extra object, but replaceAt() does it in one shot. >>>replaceAt() is particularly useful with mutableBuffer if you're using >>>it to make editing-type operations. >>> >>> >>> >>> 3) While I believe I understand the difference between a Table and an IdentityTable, can you give me an example of when I would need to use an IdentityTable rather than a Table? >>> >>> >>>IdentityTable is used mostly for situations you need to keep track of >>>actual object instances rather than relying on "equality", which may >>>not be the same. The interpreter uses this internally, for example, >>>to keep track of the objects that have a pending uninit() operation. >>>In this situation, it is important that the table be able to use the >>>object as an index even if the "==" method of the object claims that >>>this object is "equal" to another object. >>> >>>At lot of the uses of this are pretty esotericbut when you need >>>it, you need it! >>> >>> >>> 4) How are the new utility classes for sockets, MIME and SMTP provided, i.e. where are they in the distribution, and what does one need to do to make use of them? >>> >>> >>>David will need to ansewr that one. >>> >>> >>> Once I make the updates based on the answers, I could send an outline form of my presetation to anyone interested for review if you'd have time. Want to make sure I got it right! >>> >>> >>>Yes, please send me a copy. >>> >>> >>> -- Gil Barmwater -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel >>> >>> >>>-
Re: [Oorexx-devel] New Feature Questions
Should I open a doc. bug tracker item for the ReadMe or is the intent to actually include them somewhere? I'll send you and Rick what I have shortly and thanks! Mark Miesfeld wrote: > On Sat, May 9, 2009 at 5:11 AM, Rick McGuire wrote: > >>On Sat, May 9, 2009 at 7:36 AM, Gil Barmwater wrote: > > >>>4) How are the new utility classes for sockets, MIME and SMTP provided, >>>i.e. where are they in the distribution, and what does one need to do to >>>make use of them? >> >>David will need to ansewr that one. > > > Hmm, that entry comes from what Jean-Louis originally sent me. It > doesn't look accurate now that I look closer. I think the classes are > still in the incubator, not the distribution. > > >>>Once I make the updates based on the answers, I could send an outline >>>form of my presetation to anyone interested for review if you'd have >>>time. Want to make sure I got it right! > > > Be sure and send me a copy also. > > -- > Mark Miesfeld > > -- > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your > production scanning environment may not be a perfect world - but thanks to > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 > Series Scanner you'll get full speed at 300 dpi even with all image > processing features enabled. http://p.sf.net/sfu/kodak-com > ___ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > -- Gil Barmwater -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] New Feature Questions
replaceAt() does a replacement of one substring with another string. Thus "abcdef"~replaceAt(" ",3, 3) -> "ab ef" is correct. It replaces the 3 characters beginning at postion 3 with the string " ". The resulting string is shorter than the original string. In the second example, the replacement position is beyond the original string. This version is essentially the same as using overlay, because there are no characters snipped out from the original. Rick On Sat, May 9, 2009 at 10:24 AM, Gil Barmwater wrote: > OK, thanks. Still not clear about these examples for replaceAt: > > "abcdef"~replaceAt(" ",3, 3) -> "ab ef" > "abc"~replaceAt("123",5,6,"+") -> "abc+123" > > I would think that the first would give "ab f", i.e. 'cde' replaced > with 3 blanks. And the second I don't get at all :-( > > Rick McGuire wrote: >> On Sat, May 9, 2009 at 7:36 AM, Gil Barmwater >> wrote: >> >>>Having almost completed my presntation on the new stuff in 4.0.0, I just >>>have four more questions. >>> >>>1) The ReadMe says "The MutableBuffer class has been enhanced so that it >>>has most, if not all, of the methods of the String class." Do we know >>>of any methods that are NOT in both or should it say "...has all..."? >> >> >> There are quite a few that were not implemented becaus they really did >> not make much sense for a mutablebuffer. For example, the arithmetic >> functions (min, max, sign, abs), the various conversion functions >> (d2c(), etc.), datatype(). There might be others, but those are the >> ones the spring immediately to mind. I believe the set of "string" >> functions is fairly complete, but even here there are exceptions >> (abbrev(), the base64 encode/decode). >> >> >>>2) Can you explain when one would use the String Class replaceAt() >>>method rather than overlay() or changeStr()? >> >> >> Ok, here's a souce string" "a" >> >> Use chagestr to replace the characters starting at position 6 for 5 >> characters with "123" >> >> Now try this with overlay() >> >> Now do you see the benefit of replaceAt() :-) >> >> To do this operation without replaceAt requests two substrings (or a >> parse operation, which is the equivalent) + two concatenate >> operations. This requires the creation of 4 objects to get one >> result. This can also be done with a delstr()/insert() combo, which >> only creates one extra object, but replaceAt() does it in one shot. >> replaceAt() is particularly useful with mutableBuffer if you're using >> it to make editing-type operations. >> >> >> >>>3) While I believe I understand the difference between a Table and an >>>IdentityTable, can you give me an example of when I would need to use an >>>IdentityTable rather than a Table? >> >> >> IdentityTable is used mostly for situations you need to keep track of >> actual object instances rather than relying on "equality", which may >> not be the same. The interpreter uses this internally, for example, >> to keep track of the objects that have a pending uninit() operation. >> In this situation, it is important that the table be able to use the >> object as an index even if the "==" method of the object claims that >> this object is "equal" to another object. >> >> At lot of the uses of this are pretty esotericbut when you need >> it, you need it! >> >> >>>4) How are the new utility classes for sockets, MIME and SMTP provided, >>>i.e. where are they in the distribution, and what does one need to do to >>>make use of them? >> >> >> David will need to ansewr that one. >> >> >>>Once I make the updates based on the answers, I could send an outline >>>form of my presetation to anyone interested for review if you'd have >>>time. Want to make sure I got it right! >> >> >> Yes, please send me a copy. >> >> >>>-- >>>Gil Barmwater >>> >>>-- >>>The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your >>>production scanning environment may not be a perfect world - but thanks to >>>Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 >>>Series Scanner you'll get full speed at 300 dpi even with all image >>>processing features enabled. http://p.sf.net/sfu/kodak-com >>>___ >>>Oorexx-devel mailing list >>>Oorexx-devel@lists.sourceforge.net >>>https://lists.sourceforge.net/lists/listinfo/oorexx-devel >>> >> >> >> -- >> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your >> production scanning environment may not be a perfect world - but thanks to >> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 >> Series Scanner you'll get full speed at 300 dpi even with all image >> processing features enabled. http://p.sf.net/sfu/kodak-com >> ___ >> Oorexx-devel mailing list >> Oorexx-devel@lists.sourcef
Re: [Oorexx-devel] New Feature Questions
On Sat, May 9, 2009 at 5:11 AM, Rick McGuire wrote: > On Sat, May 9, 2009 at 7:36 AM, Gil Barmwater wrote: >> 4) How are the new utility classes for sockets, MIME and SMTP provided, >> i.e. where are they in the distribution, and what does one need to do to >> make use of them? > > David will need to ansewr that one. Hmm, that entry comes from what Jean-Louis originally sent me. It doesn't look accurate now that I look closer. I think the classes are still in the incubator, not the distribution. >> Once I make the updates based on the answers, I could send an outline >> form of my presetation to anyone interested for review if you'd have >> time. Want to make sure I got it right! Be sure and send me a copy also. -- Mark Miesfeld -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] New Feature Questions
OK, thanks. Still not clear about these examples for replaceAt: "abcdef"~replaceAt(" ",3, 3) -> "ab ef" "abc"~replaceAt("123",5,6,"+") -> "abc+123" I would think that the first would give "ab f", i.e. 'cde' replaced with 3 blanks. And the second I don't get at all :-( Rick McGuire wrote: > On Sat, May 9, 2009 at 7:36 AM, Gil Barmwater wrote: > >>Having almost completed my presntation on the new stuff in 4.0.0, I just >>have four more questions. >> >>1) The ReadMe says "The MutableBuffer class has been enhanced so that it >>has most, if not all, of the methods of the String class." Do we know >>of any methods that are NOT in both or should it say "...has all..."? > > > There are quite a few that were not implemented becaus they really did > not make much sense for a mutablebuffer. For example, the arithmetic > functions (min, max, sign, abs), the various conversion functions > (d2c(), etc.), datatype(). There might be others, but those are the > ones the spring immediately to mind. I believe the set of "string" > functions is fairly complete, but even here there are exceptions > (abbrev(), the base64 encode/decode). > > >>2) Can you explain when one would use the String Class replaceAt() >>method rather than overlay() or changeStr()? > > > Ok, here's a souce string" "a" > > Use chagestr to replace the characters starting at position 6 for 5 > characters with "123" > > Now try this with overlay() > > Now do you see the benefit of replaceAt() :-) > > To do this operation without replaceAt requests two substrings (or a > parse operation, which is the equivalent) + two concatenate > operations. This requires the creation of 4 objects to get one > result. This can also be done with a delstr()/insert() combo, which > only creates one extra object, but replaceAt() does it in one shot. > replaceAt() is particularly useful with mutableBuffer if you're using > it to make editing-type operations. > > > >>3) While I believe I understand the difference between a Table and an >>IdentityTable, can you give me an example of when I would need to use an >>IdentityTable rather than a Table? > > > IdentityTable is used mostly for situations you need to keep track of > actual object instances rather than relying on "equality", which may > not be the same. The interpreter uses this internally, for example, > to keep track of the objects that have a pending uninit() operation. > In this situation, it is important that the table be able to use the > object as an index even if the "==" method of the object claims that > this object is "equal" to another object. > > At lot of the uses of this are pretty esotericbut when you need > it, you need it! > > >>4) How are the new utility classes for sockets, MIME and SMTP provided, >>i.e. where are they in the distribution, and what does one need to do to >>make use of them? > > > David will need to ansewr that one. > > >>Once I make the updates based on the answers, I could send an outline >>form of my presetation to anyone interested for review if you'd have >>time. Want to make sure I got it right! > > > Yes, please send me a copy. > > >>-- >>Gil Barmwater >> >>-- >>The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your >>production scanning environment may not be a perfect world - but thanks to >>Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 >>Series Scanner you'll get full speed at 300 dpi even with all image >>processing features enabled. http://p.sf.net/sfu/kodak-com >>___ >>Oorexx-devel mailing list >>Oorexx-devel@lists.sourceforge.net >>https://lists.sourceforge.net/lists/listinfo/oorexx-devel >> > > > -- > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your > production scanning environment may not be a perfect world - but thanks to > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 > Series Scanner you'll get full speed at 300 dpi even with all image > processing features enabled. http://p.sf.net/sfu/kodak-com > ___ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > -- Gil Barmwater -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@l
Re: [Oorexx-devel] Question ad callback (Re: A few questions ad ...
There is no such concept of "packages avaiable to a rexx object". Package visibility refers to code instances, not the objecs to which code happens to be attached in the form of methos. An individual object may have methods that are defined with many different levels of visibility. Again, this is a question that can't be answered because it does not map to any concepts in the language. Rick On Sat, May 9, 2009 at 9:04 AM, Rony G. Flatscher wrote: > Thanks for clarifiying. > > In my current state of the code for BSF4Rexx for the new APIs it becomes > possible to refer to ooRexx objects from Java. To do that a RexxProxy is > defined at the Java side referring to a ooRexx object, which is > registered (and locked) at the native layer. > > There are two fundamentally different modes of operation in BSF4Rexx: > one is using external functions only, the other one (the preferred one, > because it makes things much easier for the ooRexx coder) requires a > package named "BSF.CLS" (this will also change a fundamental setting at > the Java side of the respective BSF4Rexx engine and expects data from > thereon to be encoded in a special way). > > Now, if the public routines and public classes of "BSF.CLS" were > available at the time the ooRexx proxy was created, I would need to > execute a public routine from that package before sending the Rexx > object the message received from the Java side. > > So the question would be: how can I figure out for an ooRexx object what > package definitions are available for it, if the call does not come from > Rexx, but from JNI ? In this scenario neither GetMessagePackage() nor > GetRoutinePackage() are available [in principle it should be possible > that a RexxProxy on the Java side can be used for another > RexxInterpreter instance spun off via a different engine instance there]. > > ---rony > > > > > -- > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your > production scanning environment may not be a perfect world - but thanks to > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 > Series Scanner you'll get full speed at 300 dpi even with all image > processing features enabled. http://p.sf.net/sfu/kodak-com > ___ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
[Oorexx-devel] Question ad callback (Re: A few questions ad ...
Thanks for clarifiying. In my current state of the code for BSF4Rexx for the new APIs it becomes possible to refer to ooRexx objects from Java. To do that a RexxProxy is defined at the Java side referring to a ooRexx object, which is registered (and locked) at the native layer. There are two fundamentally different modes of operation in BSF4Rexx: one is using external functions only, the other one (the preferred one, because it makes things much easier for the ooRexx coder) requires a package named "BSF.CLS" (this will also change a fundamental setting at the Java side of the respective BSF4Rexx engine and expects data from thereon to be encoded in a special way). Now, if the public routines and public classes of "BSF.CLS" were available at the time the ooRexx proxy was created, I would need to execute a public routine from that package before sending the Rexx object the message received from the Java side. So the question would be: how can I figure out for an ooRexx object what package definitions are available for it, if the call does not come from Rexx, but from JNI ? In this scenario neither GetMessagePackage() nor GetRoutinePackage() are available [in principle it should be possible that a RexxProxy on the Java side can be used for another RexxInterpreter instance spun off via a different engine instance there]. ---rony -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] A few questions ad ...
On Sat, May 9, 2009 at 8:47 AM, Rony G. Flatscher wrote: > > Rick McGuire wrote: > ... cut ... > > Libraries are NOT the same as ooRexx files loaded via ::requires. > They don't have the concept of > "public_routines" and "public_classes" Libraries don't even define > "classes", only the code backing methods > that can be used in class definitions. A ::requires LIBRARY merely > ensures that an external > library is a vailable and is loaded befere the program starts > executing. The routines in the library > are GLOBAL, not PUBLIC, which is a concept that only applies to > routines created using > ::ROUTINE in another Rexx source package. > > > O.K. so for using the same terms and to not mixing-up concepts I would use > the term "library" for (global) routines loaded from native code, and > "package" for "Rexx source package" for routines and classes defined in a > Rexx program that gets called or required and which public routines and > public classes are accessible thereafter. > > So there are two different sets of questions then. > > Questions ad libraries: > > is it possible to learn which global routines are present (loaded) ? No, other than to try to call them. > is it possible to learn which libraries are present (loaded) ? No. > > Questions ad packages: > > using one interpreter instance to execute one Rexx program "D.rex" that > requires a package (e.g. named "DEF.rex"), that defines public routines and > public classes, > after the program "D.rex" ended and using the same interpreter instance to > execute another Rexx program "G.rex": are the public routines and classes > from the previously required "DEF.rex" visible available to "G.rex", Only if G.rex requires the same DEF.rex package. Visibility is defined by the requirements of an individual package, not on what activity may have occured previously. > although the package "DEF.rex" was required by a different program "D.rex" > that ran before invoking "G.rex"? > > If "package" would not be the right term for "Rexx source package", what > term should be used instead? package is the correct term. > > ---rony > > > -- > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your > production scanning environment may not be a perfect world - but thanks to > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK > i700 > Series Scanner you'll get full speed at 300 dpi even with all image > processing features enabled. http://p.sf.net/sfu/kodak-com > ___ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > > -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] A few questions ad ...
Rick McGuire wrote: ... cut ... > Libraries are NOT the same as ooRexx files loaded via ::requires. > They don't have the concept of > "public_routines" and "public_classes" Libraries don't even define > "classes", only the code backing methods > that can be used in class definitions. A ::requires LIBRARY merely > ensures that an external > library is a vailable and is loaded befere the program starts > executing. The routines in the library > are GLOBAL, not PUBLIC, which is a concept that only applies to > routines created using > ::ROUTINE in another Rexx source package. > O.K. so for using the same terms and to not mixing-up concepts I would use the term "library" for (global) routines loaded from native code, and "package" for "Rexx source package" for routines and classes defined in a Rexx program that gets called or required and which public routines and public classes are accessible thereafter. So there are two different sets of questions then. Questions ad libraries: * is it possible to learn which global routines are present (loaded) ? * is it possible to learn which libraries are present (loaded) ? Questions ad packages: * using one interpreter instance to execute one Rexx program "D.rex" that requires a package (e.g. named "DEF.rex"), that defines public routines and public classes, * after the program "D.rex" ended and using the same interpreter instance to execute another Rexx program "G.rex": are the public routines and classes from the previously required "DEF.rex" visible available to "G.rex", although the package "DEF.rex" was required by a different program "D.rex" that ran before invoking "G.rex"? If "package" would not be the right term for "Rexx source package", what term should be used instead? ---rony -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] New Feature Questions
On Sat, May 9, 2009 at 7:36 AM, Gil Barmwater wrote: > Having almost completed my presntation on the new stuff in 4.0.0, I just > have four more questions. > > 1) The ReadMe says "The MutableBuffer class has been enhanced so that it > has most, if not all, of the methods of the String class." Do we know > of any methods that are NOT in both or should it say "...has all..."? There are quite a few that were not implemented becaus they really did not make much sense for a mutablebuffer. For example, the arithmetic functions (min, max, sign, abs), the various conversion functions (d2c(), etc.), datatype(). There might be others, but those are the ones the spring immediately to mind. I believe the set of "string" functions is fairly complete, but even here there are exceptions (abbrev(), the base64 encode/decode). > > 2) Can you explain when one would use the String Class replaceAt() > method rather than overlay() or changeStr()? Ok, here's a souce string" "a" Use chagestr to replace the characters starting at position 6 for 5 characters with "123" Now try this with overlay() Now do you see the benefit of replaceAt() :-) To do this operation without replaceAt requests two substrings (or a parse operation, which is the equivalent) + two concatenate operations. This requires the creation of 4 objects to get one result. This can also be done with a delstr()/insert() combo, which only creates one extra object, but replaceAt() does it in one shot. replaceAt() is particularly useful with mutableBuffer if you're using it to make editing-type operations. > > 3) While I believe I understand the difference between a Table and an > IdentityTable, can you give me an example of when I would need to use an > IdentityTable rather than a Table? IdentityTable is used mostly for situations you need to keep track of actual object instances rather than relying on "equality", which may not be the same. The interpreter uses this internally, for example, to keep track of the objects that have a pending uninit() operation. In this situation, it is important that the table be able to use the object as an index even if the "==" method of the object claims that this object is "equal" to another object. At lot of the uses of this are pretty esotericbut when you need it, you need it! > > 4) How are the new utility classes for sockets, MIME and SMTP provided, > i.e. where are they in the distribution, and what does one need to do to > make use of them? David will need to ansewr that one. > > Once I make the updates based on the answers, I could send an outline > form of my presetation to anyone interested for review if you'd have > time. Want to make sure I got it right! Yes, please send me a copy. > -- > Gil Barmwater > > -- > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your > production scanning environment may not be a perfect world - but thanks to > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 > Series Scanner you'll get full speed at 300 dpi even with all image > processing features enabled. http://p.sf.net/sfu/kodak-com > ___ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
Re: [Oorexx-devel] A few questions ad libraries
On Sat, May 9, 2009 at 5:44 AM, Rony G. Flatscher wrote: > Given the following scenario: > > an interpreter instance is created with RexxCreateInterpreter(), loading a > native library "ABC" via the options argument, all loaded routines will be > visible from thereon to every program that gets called > using CallProgram() for some program "d.rex" which loads a library "DEF", > then ends > using CallProgram() for some program "g.rex" which loads a library "GHI", > then ends > using CallProgram() for some program "j.rex" which loads a library "JKL", > then continues to run and via native code there will be callbacks to ooRexx > that occur via another CallProgram() from native code > > Questions: > > in 3. above: would all public routines and public classes that got loaded in > 2. (e.g. via a "::requires DEF") be visible in 3. ? Libraries are NOT the same as ooRexx files loaded via ::requires. They don't have the concept of "public_routines" and "public_classes" Libraries don't even define "classes", only the code backing methods that can be used in class definitions. A ::requires LIBRARY merely ensures that an external library is a vailable and is loaded befere the program starts executing. The routines in the library are GLOBAL, not PUBLIC, which is a concept that only applies to routines created using ::ROUTINE in another Rexx source package. > would the program in 4. see all public routines and public classes of the > previously loaded libraries DEF and GHI ? Same answer. This question has no meaning for libraries. > for a callback from native code to Rexx in 4. above, which public > routines/classes would be available to the callback, how would one be able > to use (actually to fetch a reference to) those available public > routines/classes? Guess what, same ansewr. > > Scenario: the only thing available to native code currently is a reference > to an ooRexx object that got stored in the native interface layer in an > earlier call from a running Rexx program. > It would be possible to fetch a reference to routine's package object and > store that with the ooRexx object and then on callbacks use that. Is this > advisable? Routine objects are just ooRexx objects, so the question of storing a reference of that object with another object is no different just because it happens to be a Routine object. If you can obtain the routine object instance, there are mechanisms that allow you to store it. The big question is what are you really trying to do here? This does not sound like an something that would make much sense. > > if this is possible at all: how could one determine from native code whether > a given library is loaded and if so, how could one get access to its > routines and classes? Again, this question has no meaning. There is no library object you can query, Libraries do not define classes. The routines are part of the global environmemt. If you need the library, just ensure the bloody thing is loaded and make the calls. If you wish to make the load dynamic, there are many mechanisms available to do this. If the library is already loaded, it will not be loaded as second time. > > ---rony > > > > -- > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your > production scanning environment may not be a perfect world - but thanks to > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK > i700 > Series Scanner you'll get full speed at 300 dpi even with all image > processing features enabled. http://p.sf.net/sfu/kodak-com > ___ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > > -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
[Oorexx-devel] New Feature Questions
Having almost completed my presntation on the new stuff in 4.0.0, I just have four more questions. 1) The ReadMe says "The MutableBuffer class has been enhanced so that it has most, if not all, of the methods of the String class." Do we know of any methods that are NOT in both or should it say "...has all..."? 2) Can you explain when one would use the String Class replaceAt() method rather than overlay() or changeStr()? 3) While I believe I understand the difference between a Table and an IdentityTable, can you give me an example of when I would need to use an IdentityTable rather than a Table? 4) How are the new utility classes for sockets, MIME and SMTP provided, i.e. where are they in the distribution, and what does one need to do to make use of them? Once I make the updates based on the answers, I could send an outline form of my presetation to anyone interested for review if you'd have time. Want to make sure I got it right! -- Gil Barmwater -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com ___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel
[Oorexx-devel] A few questions ad libraries
Given the following scenario: 1. an interpreter instance is created with RexxCreateInterpreter(), loading a native library "ABC" via the options argument, all loaded routines will be visible from thereon to every program that gets called 2. using CallProgram() for some program "d.rex" which loads a library "DEF", then ends 3. using CallProgram() for some program "g.rex" which loads a library "GHI", then ends 4. using CallProgram() for some program "j.rex" which loads a library "JKL", then continues to run and via native code there will be callbacks to ooRexx that occur via another CallProgram() from native code Questions: 1. in 3. above: would all public routines and public classes that got loaded in 2. (e.g. via a "::requires DEF") be visible in 3. ? 2. would the program in 4. see all public routines and public classes of the previously loaded libraries DEF and GHI ? 3. for a callback from native code to Rexx in 4. above, which public routines/classes would be available to the callback, how would one be able to use (actually to fetch a reference to) those available public routines/classes? 1. Scenario: the only thing available to native code currently is a reference to an ooRexx object that got stored in the native interface layer in an earlier call from a running Rexx program. 2. It would be possible to fetch a reference to routine's package object and store that with the ooRexx object and then on callbacks use that. Is this advisable? 4. if this is possible at all: how could one determine from native code whether a given library is loaded and if so, how could one get access to its routines and classes? ---rony -- The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com___ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel