Re: possible RFEs (was Re: Making ILMA=YES a default option)

2018-05-16 Thread Jonathan Scott
If anyone has a "possible RFE" I would suggest submitting it as
... an RFE.

Information on how to do this is at the following URL, which is
also shown as the "Requirements" link at the end of the HLASM
listing report generated by the INFO option.

  http://www.ibm.com/support/docview.wss?uid=swg21577670

But don't get your hopes up too much; HLASM already has a huge
list of suggested enhancements (mostly collected by the late and
greatly missed Dr John Ehrman) but most of the low-hanging fruit
has been picked long ago.

Jonathan Scott, HLASM
IBM Hursley, UK


Re: Making ILMA=YES a default option

2018-05-16 Thread Jonathan Scott
Ref:  Your note of Wed, 16 May 2018 10:30:18 -0400

Steve Smith writes:
> I certainly agree, and although I suppose it's virtually impossible, I'd
> get rid of the option altogether.  As you state, it's practically
> inconceivable anyone would exploit that hole.  I realize that protecting
> compatibility is important, but let's be reasonable.

Thanks for the feedback.

We definitely have to continue to accept the ILMA/NOILMA option
in order to avoid causing errors in existing assembly jobs or
source files that specify it. It's probably not so important
that NOILMA actually does anything, but as the option has been
implemented all we need to do is to change the default.

It should really also apply to SYSLIB macros. When a SYSLIB
macro is found, it is read into storage and an entry is added to
the current OPTABLE referring to that copy of the macro, so if
the same macro is used after changing OPTABLE, it is not found
in the OPTABLE and a new copy is loaded, which is generally
harmless apart from being inefficient.  This code is used for
inline macros too, but when the ILMA option was added the
programmer decided for some reason to add a specific check to
make it apply only to inline macros.  My guess is that the
culture of "if it ain't broke, don't fix it" led to an excess of
caution in this case.  So if we do ship an APAR to change the
default, I might well suggest that we also apply the same logic
to SYSLIB macros (which would merely involve deleting the check
for an inline macro).

Jonathan Scott, HLASM
IBM Hursley, UK


Re: Making ILMA=YES a default option

2018-05-16 Thread Steve Smith
I certainly agree, and although I suppose it's virtually impossible, I'd
get rid of the option altogether.  As you state, it's practically
inconceivable anyone would exploit that hole.  I realize that protecting
compatibility is important, but let's be reasonable.

sas


Re: possible RFEs (was Re: Making ILMA=YES a default option)

2018-05-16 Thread Thomas David Rivers
I sent a private note to John with more details...

But - Systems/ASM originally expanded  characters and
we found that broke some things; so we reverted to the HLASM
behavior (expanding  characters in comment fields caused
lines to grow past column 72.)

We do have a "-tc" option (tab column).  If you set it, we will
expand  characters to the given column multiple.

Regarding looking for macros/copy decks.  We originally did
specify a ".mac" extension... but users desired more flexibility.
So, now we have options that specify search templates
(the macro/copy name is expanded in the template to produce a file
name to attemp to open.)  This lets you have a lot of flexibility
in the search, to use whatever extension you'd like, whatever
path names you'd like, etc... it's very flexible across multiple
environments.

Consider too, the problem of "caseness".  The user can
have:

   copy mybook

Should you look for a file named "mybook" - or a file named
"MYBOOK".   Our templates allow you to indicate how that
search should proceed.  (This matters less on case-insensitive
file systems like Windows and Mac, but on z/Linux or USS it's
important.)

We also allow the name of the macro to be larger than 8; but
that's incompatible with HLASM.  Our users tend to move between
the two products and thus live with the HLASM restriction.

I kinda like the idea of using " to extend how copy might work,
to be more like how #include works in C.  Not sure what the
implications on macro names might be (you would need to allow
for a quoted opcode, I suppose.)

- Dave Rivers -

--
riv...@dignus.comWork: (919) 676-0847
Get your mainframe programming tools at http://www.dignus.com


possible RFEs (was Re: Making ILMA=YES a default option)

2018-05-16 Thread John McKown
On Wed, May 16, 2018 at 2:57 AM, Jonathan Scott  wrote:

> ​
>
>
> As the current HLASM team leader,
>
​

As an aside, since you are the team leader, I would like to ask a question.
I know that you cannot speak officially here, but I'm hoping you can give
your personal opinion. I like to maintain my source code in z/OS UNIX files
instead of PDS members. There are two things which I would really love to
have in HLASM. The first is to treat tab characters as special as in
"insert blanks here up to the next significant column as defined in the
ICTL". E.g. opcodeoperandsX  (where the X is in the
continuation column). In addition to this, I would love a "free format"
input which is not FB/80 dependant. This is basically what the FLOWASM exit
does for us. The problem with FLOWASM is that I cannot guarantee that it
can be installed by everyone who might want some of my code ( it could
happen!) . Some companies are very strict about installing "free" software.
I am not sure, but this might make HLASM more palatable to people who use
HLASM on z/Linux.

Going further afield, and like being too pushy, I really which that I could
easily keep my HLASM macros in UNIX files. Yes, I can do so now, but they
must be like the historical PDS member names: no more that 8 characters and
limited to upper case English characters, digits, and the three national
characters. I would love to be able to put an extension on my macros
(perhaps .mac) and be able to tell HLASM that any COPY members or when
searching for a macro to first use the given name, and if not found, then
try again after appending the default extension.

Going even further, it would be nice if I could use _any_ UNIX file name as
a COPY or MACRO name, perhaps by enclosing it in " marks. E.g.

 COPY "/some/directory/FileName.mac"
 copy "../../AnotherFile.copycode"
 "unix-macro.mac" operands
 "UNIX-macro.mac" operands

Note that the last two are different macro names and would be treated as
such by HLASM. I.e. they would be case significant because they are in "
marks.

I know that the above is most likely going to be rejected because it would
be a significant amount of work for something that the majority of HLASM
customers don't need. But, it can't hurt to ask, can it?
​


>
>
> Jonathan Scott, HLASM
> IBM Hursley, UK
>



-- 
We all have skeletons in our closet.
Mine are so old, they have osteoporosis.

Maranatha! <><
John McKown


Making ILMA=YES a default option

2018-05-16 Thread Jonathan Scott
We've just shipped the PTFs for HLASM APAR PI97142, which fixes
up quite a few loose ends in options processing, especially some
oversights in OPTABLE processing. When support for dynamically
changing the OPTABLE with *PROCESS and ACONTROL was added,
several implications of this change were not spotted at the
time, and there have been several fixes to this area over the
years as people have started to exploit this function.  For
example, only a few weeks ago APAR PI95384 fixed OPSYN to ensure
that it applied to all OPTABLEs in which the relevant
instruction instance was defined, not just the current optable,
ensuring that IEABRCX was still able to convert branches within
code which used ACONTROL to switch to a different OPTABLE.

As part of APAR PI97142, the ASMAOPT macro which is used to
generate the installation default options module ASMADOPT now
supports the option ILMA=YES, which ensures that in-line macros
are automatically assumed to apply to all OPTABLE instruction
sets. However, for "compatibility" with the situation before
this option was provided, the default is currently ILMA=NO.

I personally do not understand why it was previously considered
a good idea to provide the ILMA/NOILMA option to preserve the
original undocumented and unhelpful behaviour, as I cannot think
of any good reason to support the capability to define different
macros of the same name for different OPTABLE values. I'd agree
that it's possible to invent a way to use this function, for
example to generate different instructions within macros for
different OPTABLEs, but it is already possible to do that with
the existing capabilities for a macro to test the OPTABLE value
(or to achieve a similar effect by testing the operation code
attribute of an opcode to determine whether it is supported for
the current OPTABLE).

As the current HLASM team leader, I am considering changing the
default in the supplied defaults module to ILMA=YES, which
although technically incompatible is far more useful, and might
help reduce the frequency with which we have to tell users that
specifying the ILMA option will fix their problems.  I would
like to know if anyone on this list has any opinions on this
change, especially if they are aware of any possible negative
impact of this change.

(If an installation has its own default options module and
does not reassemble it after this change, they would not
pick up the new default of ILMA=YES until they reassembled it
or dropped back to the supplied default options module).

Jonathan Scott, HLASM
IBM Hursley, UK