[Info-vax] September 6, 2016 - new Roadmap and State of the Port updates now on VSI website

David Froble davef at tsoft-inc.com
Sat Sep 10 10:59:40 EDT 2016


johnwallace4 at yahoo.co.uk wrote:
> On Saturday, 10 September 2016 02:13:01 UTC+1, David Froble  wrote:
>> John Reagan wrote:
>>> On Thursday, September 8, 2016 at 9:54:57 PM UTC-4, David Froble wrote:
>>>> John Reagan wrote:
>>>>> On Thursday, September 8, 2016 at 3:44:19 PM UTC-4, David Froble wrote:
>>>>>> Ok, I'll throw out an idea here.  Not saying it's a good idea, and I'm sure 
>>>>>> Steve won't like it.  Well, pretty sure.
>>>>>>
>>>>>> How about two C compilers on VMS?  One for VMS users, and one aimed at porting 
>>>>>> needs.
>>>>>>
>>>>>> I'd assume that they would be almost identical,so common code could be used in 
>>>>>> the compilers.  Don't know how difficult this would be.  Most likely a John 
>>>>>> Reagan question.
>>>>>>
>>>>>> Not saying leave either of them in the past.  Both should be kept current, and 
>>>>>> mostly logical name free.  Just saying, if what's needed for porting *ix snake 
>>>>>> oil just isn't compatable with more traditional VMS users, then face up to the 
>>>>>> issue and address it in some workable manner.
>>>>> That's basically what you are getting.  The DEC C frontend hooked to LLVM
>>>>> gets you the C99 compiler with all of the strangeness that you want (there
>>>>> will probably be some things changing/disappearing - #pragma linkage for
>>>>> example).  I don't see that compiler getting any C11, etc features.
>>>>>
>>>>> And then you have clang (which is several compilers rolled into one).  That
>>>>> compiler has all the standard's compliance you want but currently none of the
>>>>> OpenVMS extensions you want.  That is what we'll be doing.  We'll try to
>>>>> limit the changes to the smallest set possible.
>>>>>
>>>>> Do you mix objects from both compilers?  Yes from the calling standard point
>>>>> of view, but they often contain calls into the RTL. Do the compilers share
>>>>> the same CRTL?  Can you malloc() in one and free() in the other?  Can you
>>>>> fopen() in one, but fclose() in the other.  Are the "errno"s the same or not?
>>>>> If you pick up C11 headers, etc. do you let them work in the DEC C case?  Or
>>>>> is that just __STDC_NO_THREADS__ ?
>>>> If there is a problem, then it is a stupid problem.  I can allocate memory from 
>>>> Macro-32, and deallocate it from Basic.  Or the opposite.  Or substitute any of 
>>>> the VMS languages.  So what's the problem?  They are still using VMS services to 
>>>> do the job, right?
>>> As Steve said, there are abstractions above the calls to LIB$GET_VM and LIB$MALLOC.  You wouldn't expect to do a NEW in Pascal, pass the pointer to a C routine and do a free(), would you?  However, when it is the same language, you expect that to work regardless of the compiler used.  Do you want to mix DEC C objects and clang objects?  Given that we will only have clang++, it is a given that we'll have to let you mix DEC C objects with clang++ objects.  The line between C and C++ is fuzzy.  I think it is expected to malloc() in one and free() in the other.
>>>
>>> On the other hand, you can't easily mix g++ and clang++ objects on a Linux box since there might be differences in vtables, etc.
>> Personal opinion.
>>
>> I think that when you implement an environment on top of another environment, 
>> then you're no longer really running executables under the lower (not sure what 
>> term) environment.  In this case, if special stuff is implemented in C, then by 
>> using it you're no longer running on VMS.
>>
>> I also think that if you're going to claim that you're running executables on 
>> VMS, then it should always be VMS services used to do things, not some language 
>> specific replacement of a VMS service.
>>
>> But what do I know ???
> 
> I guess you weren't a fan of VMS POSIX then?

Nope!

> If it had lasted, if the customers who said they wanted open standards
> had walked the walk as well as talked the talk, many of the "porting"
> and "tools" issues being discussed round here would have been non-issues.

If what one wants is *ix, then why not just use *ix?



More information about the Info-vax mailing list