BG - Ben Armstrong wrote:
I'm interested in the work John and others are doing on VMSish issues, particularly the recent work on pipes, because I will likely need this for the VMS port of Ruby I seem to have inherited when the former maintainer dropped off the scene. Is any portion of this packagable in a way that can easily be reused in other projects, or do I need to continue to do as I have done in the past, which is to copy and adapt code from VMS Perl, as it appears John is doing right now with bash?
Everything in Perl is covered under the Perl Artistic License which is not quite the same as GPL, so mixing some code may take getting permissions from the various authors.
GNV ships with GPL source so if Ruby is GPL, then there is no problem with the interchange.
Usually I am finding that it is more useful to learn from the example than to snip the code. My pipe change to bash looks nothing like the code in Perl, even though it was what gave me the idea.
And there are some unique Perlism in the routines in VMS.C. unixify() needs to tolerate and preserve a trailing newline, so it can not just use a standard conversion routine, and must return the original specification if it can not translate it. Interestingly enough, the failures caused by changing these behaviors may not be obvious to most programs. The newline is used by the glob handling only, and MakeMaker depends on the other behavior.
What I generally try to do is make replacement routines work just like either the X/Open documentation http://www.theopengroup.org/ so that they can be used anywhere. Access is free, but a registration and accepting a cookie is required.
The X/Open organization is the official owners of the specification of what is UNIX.
And if a specification is not in X/Open, then I go by what a current LINUX does.
And it can be important to test the behavior of the routine on LINUX/UNIX or verify it against the LINUX source. Some of the behaviors expected by LINUX/UNIX are not explicitly documented in the X/Open documentation.
The config.guess file from the current coreutils (5.2.1) now knows about current OpenVMS. And that is one of the key things to for getting Configure. scripts to run on bash.
For some packages, just using that is enough to get Configure. to run the first time. The RWMBX hang comes from the second Configure. run because it passes the results of the first run through "sed", and it is too big to fit in a mailbox. Delete the stuff left over from a previous configure, and then it works again.
I have not had the time to see what the Perl Configure. script would do under my modified bash.
I am also trying to get more of the routines into the OpenVMS CRTL, but there is usually a long lead time so that all the testing can be complete when the Operating System version ships.
-John [EMAIL PROTECTED] Personal Opinion Only