INFO-VAX Sat, 05 Jul 2008 Volume 2008 : Issue 373 Contents: HELP text error for ANALYZE/MEDIA Re: LMF and abandonned products Re: Symbol Substitution Mystery Re: Symbol Substitution Mystery Re: Tru64 file system source code now open source Re: VMS SAN Primer Re: VMS SAN Primer ---------------------------------------------------------------------- Date: Sat, 05 Jul 2008 11:49:00 GMT From: gerry77@no.spam.mail.com Subject: HELP text error for ANALYZE/MEDIA Message-ID: <4olu64t8ltko6q1diial2j1dgu451k6io7@4ax.com> Hello everyone, I've just discovered an error in the help text for the ANALYZE/MEDIA command (the bad block locator utility) on both Alpha and Itanium V8.3 releases. There are two almost identical copies of the same text, except for some slight changes: different case for the BAD acronym and the sentence "This manual is posted with other archived manuals on the OpenVMS Documentation website" added to the second copy. I think it's not a serious error, but it makes difficult to search for command subtopics because ANALYZE/MEDIA is considered ambiguous. I'm a Hobbyist, so I do not have any support contract. How can I signal this problem to HP Engineering to have it corrected? Thanks, G. (not english native, sorry for any errors) ------------------------------ Date: Sat, 5 Jul 2008 06:04:25 -0700 (PDT) From: Ed Wilts Subject: Re: LMF and abandonned products Message-ID: <4d0f16d1-238c-4d0d-abe0-6e8ae40c7024@a1g2000hsb.googlegroups.com> On Jun 24, 2:57=A0pm, JF Mezei wrote: > Ok, silly question here: > > It is clear that IBM couldn't steal VMS code and integrate it into MVS. > > However, if a licence is forged and someone uses the software without > paying for it, isn't this just theft instead of copyright infringement ? > > If this is theft, isn't the test whether you are depriving someone of > revenue or a possession ? You're right - it is a silly question. Theft applies to property. If IBM did this, and they obviously wouldn't, they would have committed at least crimes. First, it is copyright infringement since they have used the software without a license. Whether they have forced their own personal license does not get them around the copyright issue - a license is a legal right, not a technical restriction. Secondly, they have violated the DMCA since they forged the license - in other words, they've bypassed the copy protection in the code. Ditto if you bypass the license check - you've just added another crime to the list. If the copyright owner won't sell you the code, no matter whether the company is in business or not, your best bet is to find another product. Somebody does own the copyright since even if the company dissolves, the assets probably went to somebody else - a bank, one of the owners, etc. No matter how badly you want that product, if you can't legally buy a license, give up. .../Ed ------------------------------ Date: Sat, 5 Jul 2008 03:49:19 -0700 (PDT) From: AEF Subject: Re: Symbol Substitution Mystery Message-ID: <94b58aa3-b27e-43a3-aa68-7fcf3e43a0db@k13g2000hse.googlegroups.com> On Jul 4, 11:15 am, David J Dachtera wrote: > AEF wrote: > > [snip] > > > > $ WSO F$STRING('ZERO') > > > I meant the expression F$STRING('ZERO') > > > > is still illegal per se. > > How so? I intentionally use that technique, though more typically with > F$TYPE(), for example: where I need two iterations of substitution to > occur to see if a pseudo-array element exists: What I meant was that if the lexical function had to evaluate 'ZERO' it would choke. That's what I meant by "per se". For this problem we need a way to have the lexical function evaluate 'ZERO' instead of the apostrophe operator. I have found a way to do this using the ampersand operator which I present in Example 1. [Recall that WC runs the FORTRAN program I wrote which grabs the command line using LIB$GET_FOREIGN and that phase 1 of DCL command processing occurs before the program gets it. The program echoes the result to the terminal and also writes it to the file WC.TMP.] ================================================================================ Example 1: DCL> TEST = "ZERO" DCL> SHOW SYMBOL TEST TEST = "ZERO" DCL> WC WSO F$STRING(&TEST) WSO F$STRING(&TEST) 19 1 FORTRAN STOP DCL> @WC.TMP $ WSO F$STRING(&TEST) ONE DCL> OK, so this means that &-subst. -- which happens in phase 2, occurs before lexical evaluation -- which happens in phase 3. OK, this is just to use a "normal" example to show that this works. Now... DCL> TESTAPOS = "'ZERO'" DCL> SHOW SYMBOL TESTAPOS TESTAPOS = "'ZERO'" DCL> WC WSO F$STRING(&TESTAPOS) WSO F$STRING(&TESTAPOS) 23 1 FORTRAN STOP DCL> @WC.TMP $ WSO F$STRING(&TESTAPOS) %DCL-W-UNDSYM, undefined symbol - check validity and spelling \'ZERO'\ DCL> DCL> WC WSO 'F$STRING(&TESTAPOS)' %DCL-W-UNDSYM, undefined symbol - check validity and spelling \'ZERO'\ DCL> This is what I meant by 'ZERO' being an illegal argument for F $STRING(). In your example, F$STRING() never sees 'ZERO' because the apostrophe operator changes it before the lexical function gets a crack at. Here the lexical function *does* get to evaluate it, and it turns out to be illegal. ================================================================================ > $ SYMB := PNTR_'CNTR' ! If CNTR = 12, then SYMB = "PNTR_12" > $ IF F$TYPE( 'SYMB' ) .NES. "" THEN - > $ mumble... > > > The only reason it works in this case is that > > > apostrophe substitution ignores F$xxx > > ...as it should... Well, yes and no. *Yes* as it ignores it when the apostrophes are within the lexical function's argument. But it is *no* in the next example. ================================================================================ Example 2: FORTRAN STOP DCL> WC WSO 'F$GAETDVI( %DCL-W-IVFNAM, invalid lexical function name - check validity and spelling \F$GAETDVI(\ DCL> WC WSO 'F$GAETDVI(' %DCL-W-IVFNAM, invalid lexical function name - check validity and spelling \F$GAETDVI(\ DCL> WC WSO 'F$G(' %DCL-W-ABFNAM, ambiguous lexical function name - supply more characters \F$G(\ DCL> WC WSO 'F$GETP(' %DCL-W-IVFNAM, invalid lexical function name - check validity and spelling \F$GETP(\ Clearly, in these commands, the apostrophe operator recognizes lexical functions. ================================================================================ Example 3: DCL> WC WSO 'F$GETDVI(' %DCL-W-EXPSYN, invalid expression syntax - check operators and operands DCL> WC WSO 'F$GETDVB(' %DCL-W-EXPSYN, invalid expression syntax - check operators and operands DCL> WC WSO 'F$GETD(' %DCL-W-EXPSYN, invalid expression syntax - check operators and operands These are all valid lexical function names (because only the first four characters after the $ need be correct) and we get the "invalid expression ..." messages. So is it recognizing the lexical function here? Let's put a valid symbol name between ' and ( and see what happens. ================================================================================ Example 4: DCL> WC WSO 'ZERO(' WSO ONE( 8 1 FORTRAN STOP DCL> @WC.TMP $ WSO ONE( %DCL-W-EXPSYN, invalid expression syntax - check operators and operands \(\ DCL> (A similar thing happens when you use an undefined symbol.) This shows that the parenthesis acts as a symbol terminator, in part because it can't be part of a symbol name. So I think what's happening is that the apostrophe operator is checking to see if its argument is a lexical function by applying some particular test (or set of tests). If the argument passes, it proceeds to force lexical function evaluation. If it fails, it assumes its argument is a symbol terminated by the parenthesis and proceeds accordingly. Regardless, it doesn't work. ================================================================================ [...] The following examples from your post can all be explained by using the following facts: (1) If lexical function evaluation is not being forced by the apostrophe operator, symbol substitution occurs as if the function were just ordinary text. (2) No symbol substitution occurs during lexical function evaluation. (3) When lexical function evaluation is forced to occur in phase 1 of command processing by the apostrophe operator, the result is evaluated by all three phases of command processing. ================================================================================ > The one that REALLY knocked me off-center was this one: > > ($ SAY := WRITE SYS$OUTPUT) > > DJAS02::DDACHTERA$ zero := one > DJAS02::DDACHTERA$ say F$STRING("''ZERO'") > ONE ''ZERO' goes to ONE because the apostrophe substitution is happening in phase 1, before the lexical function evaluates its argument, so you get say F$STRING("ONE") as the intermediate step. ================================================================================ > DJAS02::DDACHTERA$ say 'F$STRING("''ZERO'")' > ONE Lexical function evaluation is forced to occur before phase 1 scanning reaches "''ZERO'". And no symbol substitution occurs during lexical function evaluation, so what you get is the following: (The lines without your prompt are the steps I'm filling in to show what I think DCL is doing.) > DJAS02::DDACHTERA$ say 'F$STRING("''ZERO'")' say ''ZERO' ! lexical fn. evaluated say ZERO ! because we're still in phase 1 > DJAS02::DDACHTERA$ ONE The key is to pay careful attention at each step to what's performing the evaluation and what phase it's performing it in. It is also important to keep in mind that no symbol substitution occurs during lexical function evaluation. ================================================================================ > DJAS02::DDACHTERA$ a :='F$STRING("''ZERO'")' a :=''ZERO' ! lexical fn. evaluated a :=ZERO ! last step in phase 1 > DJAS02::DDACHTERA$ sh sym a > A = "ZERO" > DJAS02::DDACHTERA$ say "''ZERO'" > ONE > DJAS02::DDACHTERA$ > > Not what I expected, and - apparently - not what you expected, either in > your code. Right, except that I think I've got it figured out now. No symbol substitution occurs during lexical function evaluation, but when the lexical function is forced to be evaluated in phase 1 by the apostrophe operator, the result of the lexical function evaluation then proceeds through the three phases of command processing. ================================================================================ OK, here is a summary: ================================================================================ DCL> WC WSO F$STRING("ZERO 'ZERO' ''ZERO' ") WSO F$STRING("ZERO 'ZERO' ONE ") 32 1 FORTRAN STOP Here only the ''ZERO' gets translated, as we are in phase 1 and the symbols are between quotation marks. ================================================================================ DCL> WC WSO 'F$STRING("ZERO 'ZERO' ''ZERO' ")' WSO ZERO ONE ZERO 17 1 FORTRAN STOP Here we are forcing the lexical function to be evaluated during phase 1. The intermediate steps are WC WSO ZERO 'ZERO' ''ZERO' ! result of F$STRING() WC WSO ZERO ONE ZERO ! because we're still in phase 1 ================================================================================ DCL> WC WSO "''F$STRING("ZERO 'ZERO' ''ZERO' ")'" WSO "ZERO 'ZERO' ONE " 22 1 FORTRAN STOP The intermediate steps are WC WSO "ZERO 'ZERO' ''ZERO' " ! result of F$STRING() WC WSO "ZERO 'ZERO' ONE" ! because we're still in phase 1 and for some reason you need to NOT double-up the leading and trailing quotation marks in the argument of the lexical function as I showed in a previous post (which I referenced earlier in this thread). ================================================================================ DCL> WC WSO F$STRING(ZERO 'ZERO' ''ZERO') WSO F$STRING(ZERO ONE ZERO) 27 1 FORTRAN STOP This is normal phase 1 apostrophe processing. ================================================================================ DCL> WC WSO 'F$STRING('ZERO')' %DCL-W-EXPSYN, invalid expression syntax - check operators and operands This doesn't work because 'ZERO' is an illegal argument for lexical functions. ================================================================================ And now some fun with quotation marks: ================================================================================ DCL> WC WSO "The weather is ""hot"" today." WSO "The weather is ""hot"" today." 35 1 FORTRAN STOP DCL> @WC.TMP $ WSO "The weather is ""hot"" today." The weather is "hot" today. DCL> ================================================================================ DCL> WC WSO "''F$STRING("The weather is ""hot"" today.")'" WSO "The weather is "HOT" today." 33 1 FORTRAN STOP DCL> @WC.TMP $ WSO "The weather is "HOT" today." The weather is HOT today. DCL> ================================================================================ DCL> WC WSO "''F$STRING("The weather is """"hot"""" today.")'" WSO "The weather is ""hot"" today." 35 1 FORTRAN STOP DCL> @WC.TMP $ WSO "The weather is ""hot"" today." The weather is "hot" today. DCL> ================================================================================ You need an extra doubling of the inner quotation marks because the result of lexical function evaluation is processed again as we're still in phase 1. > D.J.D. > > P.S.: > Just for fun... > > $ STRING = "Unauthorized Access Only - Prosecutors will be violated" > $ DEFINE/SYSTEM/EXEC SYS$ANNOUNCE &STRING What, these examples aren't fun enough already?! :-) AEF ------------------------------ Date: Sat, 5 Jul 2008 03:59:01 -0700 (PDT) From: AEF Subject: Re: Symbol Substitution Mystery Message-ID: <7611a65f-f66d-4743-bc0a-e1bc8f5c478d@d45g2000hsc.googlegroups.com> On Jul 4, 11:28 am, Jan-Erik S=F6derholm wrote: > David J Dachtera wrote: [...examples by David Dachtera omitted...] > Also note the following slight variations on this variant : Again, the following examples can be explained by using the following facts: (1) If lexical function evaluation is not being forced by the apostrophe operator, symbol substitution occurs as if the function were just ordinary text. (2) No symbol substitution occurs during lexical function evaluation. (3) When lexical function evaluation is forced to occur in phase 1 of command processing by the apostrophe operator, the result is evaluated by all three phases of command processing. (The lines without your prompt are the steps I'm filling in to show what I think DCL is doing.) > $ a :=3D 'F$STRING("''ZERO'")' !! Same as above. a :=3D ''ZERO' !! Result of lexical fn. evaluation a :=3D ZERO !! More phase 1 processing > $ sh sym a > A =3D "ZERO" > > $ a =3D 'F$STRING("''ZERO'")' !! Note "=3D" a =3D ''ZERO' !! Result of lexical fn. evaluation a =3D ZERO !! More phase 1 processing > $ sh sym a > A =3D "ONE" > > or: > > $ a :=3D "''F$STRING("''ZERO'")'" a :=3D "''ZERO'" a :=3D "ONE" > $ sh sym a > A =3D "ONE" > > $ a =3D "''F$STRING("''ZERO'")'" a =3D "''ZERO'" a =3D "ONE" > $ sh sym a > A =3D "ONE" > $ AEF ------------------------------ Date: Sat, 5 Jul 2008 03:10:32 -0700 (PDT) From: johnwallace4@yahoo.co.uk Subject: Re: Tru64 file system source code now open source Message-ID: <6c382996-ffb2-47f2-b2cc-30c57761e0ae@f63g2000hsf.googlegroups.com> On Jul 5, 3:45 am, Michael Kraemer wrote: > ChrisQ schrieb: > > > A quality ansi standard C compiler is very usefull, especially if you > > need to (for example) build all the gnu tools. Though binaries might > > have been available, I always find it good practice to build everything > > from scratch, to find your way around the system and to impose youir own > > structure on it all. I do mainly embedded work here and Tru64 and > > Alpha was never a supported platfrom by the gnu tools in a cross > > environment, so you had to roll your own. > > I don't think this is generally true. > When DEC Unix was in better shape than today, > binaries of the usual Gnu stuff were available, > no need to build them from scratch. > Even nowadays one can find some of them eg at "thewrittenword". > > > Trying to do that with the > > usually broken cc that comes with many unices was a nonstarter. > > As said, from the mid-90s (latest) onwards > most Unices came w/o cc. It wasn't necessary if one > just wanted to run apps rather than doing development. > And I don't find the cc (bundled or ordered) > of "most Unices" any more broken than DEC's one. > In fact cc in DEC Unix Versions 3.2/4.0 had quite some bugs > which surfaced already with relatively simple apps. > > > You > > might ask, why do embedded development on Alpha ?, but the > > sheer interactive speed and compile performance of alpha was just so > > seductive compared to Pc's and Sparc offerings at the time, just > > didn't want to use anything else. > > I might ask why doing development on a platform with > supposedly rather limited offer in cross development tools, > compared to PCs and Sun boxes. > > > That + a long history working with dec > > kit etc. > > This might be the real reason rather than technical merits. > > > You can't expect the suits to understand all that, but if > > technical excellence, design flair and sound engineering doesn't drive > > progress, what does ?. > > Money ? > > >>> Tru64 was written from the start to be a modern, secure, 3nd > >>> generation unix, > > >> But it came way too late, just as Alpha. > > > Here we must disagree - Alpha wasn't too late in the early to mid > > nineties. > > It was. Two or three years after Power, the other late comer > in game. > > > It was doing very well > > Hardly. Otherwise it (and probably DEC) would still > be alive. > > > thanks and world class, but I > > musn't get started on that thread again :-). > > We had that before, yes :-) > > > What's dead is dead and the > > world moves on... > > Well, speculating about the past and what > could have been costs nothing, except your > leisure time, of course. > > > Regards, > > > Chris Just one brief comment: anyone who seriously believes the neglect and subsequent death of Alpha was anything other than a politically/ commercially motivated decision resulting from dodgy backroom deals, involving Palmer at DEC, Bill at MS, and whoever at Intel, probably hasn't been paying proper attention to the news, starting from about ten years ago when the Digital/Intel patent disputes were "resolved". ------------------------------ Date: Sat, 05 Jul 2008 05:00:21 -0400 From: JF Mezei Subject: Re: VMS SAN Primer Message-ID: <486f3828$0$19884$c3e8da3@news.astraweb.com> David J Dachtera wrote: > ...however, it is just storage. A LUN. It's still up to the host > operating environment to manage that storage. Such management is NOT the > array's job in a FCSF/SAN anymore than it would be in an HSJ on a > CI-based storage array. A CI would only support VMS (or I guess Ultrix/DEC Unix). Consider the case where you have some SAN that supports VMS, Unix, *EVIL WINDOWS* , OS-X and Linux. You must dig into the SAN configutation to ensure that Windows doesn't see the VMS disk and that it cannot possibly ever even think about writing its "signature" on your VMS drives. And I suspect there are a lot of management issues when you need to grow a disk (aka: change partitioning, or add an extra physical disk to some volume set etc etc.). From what I have seem, the arrays have sophisticated management capabilities to manmage the storage, even though they present simple SCSI disks to the operating systems. So it would seem there is a lot to learn about it. So, like the OP, I too would be interested in some introduction document. ------------------------------ Date: Sat, 5 Jul 2008 05:52:21 -0700 (PDT) From: Ed Wilts Subject: Re: VMS SAN Primer Message-ID: On Jul 5, 4:00=A0am, JF Mezei wrote: > David J Dachtera wrote: > > ...however, it is just storage. A LUN. It's still up to the host > > operating environment to manage that storage. Such management is NOT th= e > > array's job in a FCSF/SAN anymore than it would be in an HSJ on a > > CI-based storage array. > > A CI would only support VMS (or I guess Ultrix/DEC Unix). CI is only for VMS. Ultrix never supported CI. > Consider the case where you have some SAN that supports VMS, Unix, *EVIL > WINDOWS* , OS-X and Linux. > > You must dig into the SAN configutation to ensure that Windows doesn't > see the VMS disk and that it cannot possibly ever even think about > writing its "signature" on your VMS drives. This is the same as for CI configurations and is why you could only have 1 VMScluster per CI - there is no locking done by the HSJs. All modern SANs support some sort of zoning (at the fabric layer) and lun masking (in the storage array) to prevent you from accessing a lun you're not supposed to. It's not just Windows you need to worry about, and in fact, Windows plays very nicely these days in SANs (assuming you have an admin with half a brain). You also have to be concerned about storage security - 2 different VMS clusters better not be able to see the same lun or you'll leak data you shouldn't (and you'll corrupt it if you write to it). > And I suspect there are a lot of management issues when you need to grow > a disk (aka: change partitioning, or add an extra physical disk to some > volume set etc etc.). It depends on the frame and firmware. For some, adding a disk was/is hard (e.g. Symmetrix five years ago). For some, it's trivial (HP EVA). However, growing a volume has OS implications too that the SAN administrator needs to think about. Not all operating systems support growing a volume and even fewer support shrinking a volume. Even VMS has its limitations on growing - you need to have configured the volume to allow growing it before you try to grow it and there are maximum sizes involved. > So it would seem there is a lot to learn about it. So, like the OP, I > too would be interested in some introduction document. There really 3 parts to becoming a SAN expert. First, you have to understand the technologies behind the SANs - fibre channel, iSCSI, etc. Secondly, you have to have expertise in managing the SANs from the particular vendor you want to become an expert on. Managing an HP EVA is very different from managing an EMC Symmetrix and they're both very different from managing an iSCSI SAN on a NetApp. Lastly, a true expert has familiarity with the nuances of operating systems that are in the SAN - what works, what doesn't, which systems can boot from SAN and which can't, etc. SANs are also evolving rapidly - a few years, there wasn't much iSCSI out there and now there's a ton of it. In another few years, we'll see Fibre Channel over Ethernet. SAN security is starting to heat up now. And then there's backing up the SAN and that's a whole topic by itself with a different set of technologies. SNIA is a good place to start because it's vendor neutral - http://www.snia= .org. I have a pair of SNIA certifications (and they're not easy to earn). I also have a pair Brocade certifications - these focus on the fibre channel fabrics and don't cover the storage arrays at all. There are some decent SAN books out there too. HP has no end-user focused certifications for its storage - their preference seems to be to certify their resellers. Just saying you want to be a "SAN expert" isn't very specific. It's not something you do or learn on the side unless you're in a really small environment. Once you start introducing multiple operating systems and lots of clients, it's definitely a full-time job. .../Ed -- Ed Wilts, Mounds View, MN, USA RHCE, BCFP, BCSD, SCSP, SCSE mailto:ewilts@ewilts.org ------------------------------ End of INFO-VAX 2008.373 ************************