On Sun, 20 Apr 2008 18:11:45 -0700, Skip Robinson wrote:

>I remember back when a very fundamental utility changed to SDB by default.
>I believe it was IEBGENER itself. If we had HOLDDATA back then, I'm not
>sure how big a deal we made of it. In any case, one major application had
>an 'outage' because a particular job step had been counting on the historic
>default where output blocksize was equal to input blocksize. Their master
>file was required to be a certain blocksize. For years the offending
>utility step copied the file without specifying blocksize. Suddenly with
>SDB the output changed, and subsequent steps failed.
>
Silly application designer.  A well designed application should not
be sensitive to blocksize, simply because it should be designed to
accommodate future changes in device geometries.

IEBGENER changed to SDB by default and subsequently (or immediately)
grew a PARM to override the behavior.  I believe later the design
changed to make the historic behavior the default.

I'm torn on this one.  Much as I admire SDB, I respect the intent
of a copy program to replicate all attributes of the input data.
OTOH, it ought to support optimal copying to a different device
type.

The final solution should be FBA, where block size becomes irrelevant.
Or something like PDSE's protean treatment of BLKSIZE: on input it
can be anything the programmer codes in the DCB.

>I once had to explain to the author of a very silly CLIST why it suddenly
>failed to enter an expected (!) ERROR routine because underscore was no
>longer invalid in labels. I didn't feel very guilty about that one. What a
>dope.
>
Every well-designed language, application, programming system should
have a way to force an error.  IDCAMS has such; HLASM has MNOTE;
zSeries has x'00'.  Rexx lacks such; I resort to dividing by zero
or accessing an uninitialized variable to force an error.

Also, every well-designed language should have:

o Comments

o A no-op.

>I remember reading about a new OP code being introduced on a processor.
>There was a note of caution that I found almost funny:  the new OP code
>would not cause a problem for any program *unless* that program were
>depending on the OP code *not* to be valid. Where's my S0C1? I need my
>S0C1! After all these years in the business, I would not bet the farm on
>there being no such program.
>
This more likely happens with new OP codes overloading user-defined
macro names.

As a courtesy, the vendor should partition the name space and commit
to leaving some fraction available for user-defined macros and promising
that no new OP code or macro will intrude on the space ceded to users.

The component prefix registry could be used for this, and also to
mitigate contention between ISVs.  The statement should be that
no new OP code or macro name will ever overlap a registered
component prefix.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to