[Info-vax] /NAME

John Reagan xyzzy1959 at gmail.com
Wed Feb 8 22:14:33 EST 2023


On Wednesday, February 8, 2023 at 9:10:41 PM UTC-5, Craig A. Berry wrote:
> On 2/8/23 7:42 PM, Arne Vajhøj wrote: 
> > On 2/8/2023 8:19 PM, John Reagan wrote: 
> >> On Wednesday, February 8, 2023 at 8:01:20 PM UTC-5, Arne Vajhøj wrote: 
> >>> On 2/8/2023 7:01 PM, John Reagan wrote: 
> >>>> On Wednesday, February 8, 2023 at 6:46:03 PM UTC-5, Arne Vajhøj wrote: 
> >>>>> Am I the only that wish to be able to distinguish between 
> >>>>> names the code expose and names that the code call? 
> >>>>> 
> >>>>> Like: 
> >>>>> 
> >>>>> /NAME=(EXPOSE:UPPERCASE,CALL:AS_IS) 
> >>>>> 
> >>>>> Use case: 
> >>>>> 
> >>>>> some Fortran (probably also Cobol or Basic) code -> C wrapper -> 
> >>>>> some C 
> >>>>> library that has to be build with /NAME=AS_IS 
> >>>>> 
> >>>>> /NAME=AS_IS works fine for pure C code, but I find it a hassle 
> >>>>> in Fortran. 
> >>>>> 
> >>>>> (it is not a problem in Pascal because the external name 
> >>>>> can be specified in the external attribute) 
> >>>> CDEC$ ALIAS internal-name, external-name 
> >>>> 
> >>>> The internal-name is the name of the subprogram as used in the current 
> >>>> program unit. 
> >>>> 
> >>>> The external-name is either a quoted character constant (delimited 
> >>>> by single 
> >>>> quotation marks) or a symbolic name. 
> > 
> >>> Does other languages (Cobol, Basic) have similar capability 
> >>> so that my enhanced /NAME is totally useless? 
> > 
> >> I'll have to look.  Other than C/C++, most of the frontends uppercase 
> >> all tokens almost 
> >> immediately in processing.  So if the source file as "Foo", "fOO", 
> >> "FoO", the internals of the 
> >> frontend see it as "FOO".  Asking each frontend to parse tokens 
> >> differently might be a 
> >> challenge. 
> > 
> > Which is why I think the ability to have the wrapper C code 
> > expose an all uppercase API and consume a mixed case API could 
> > be handy.
> I think the ability exists, but you have to put code into a shareable 
> image and alias the symbols in a linker options file.
Correct.  For example, the C RTL has both UPPER and lower case symbol
vector entries for all routines.  Older C compilers also have an undocumented
/BOTHCASE qualifier prior to the linker alias feature.  "Bothcase" doesn't really
help with one of the names might be MixedCamelCase



More information about the Info-vax mailing list