For those that have not seen it:
https://vmssoftware.com/resources/blog/2024-07-26-rtl8/
(Darya is listed as author, John Reagan is quoted in it)
Content is a rather unusual mix of:
* some business/admin stuff
- 8.4-2L1 going out of standard support in December
so time to update to 8.4-2L3
- a warning about known issues in C RTL 8 and a suggestion
to wait for C RTL 9
* some programming notes about problems related to:
- use of uninitialized variables
- mismatch between 32 and 64 bit
Arne
Other[snip]
than bugs in the compilers and OS, the most common issue I've seen is a mismatch of 32/64 bit variables. I've seen 20 or so instance of code
that is doing a 64-bit write into a 32-bit variable.
It mostly has been in BLISS and C code.
And in lieu of an actual porting guide, I've been asked about "what
things are catching people porting code from Itanium to x86". Other
than bugs in the compilers and OS, the most common issue I've seen is a mismatch of 32/64 bit variables. I've seen 20 or so instance of code
that is doing a 64-bit write into a 32-bit variable. On Alpha and
Itanium, GEM would allocate 32-bit variables into their own quadword on
the stack. Back in the old Alpha days, quadword granularity was very important. It became less important on later Alphas and Itanium but
still had limited benefit. For x86, there is no reason for it and LLVM
will just allocate 32-bit variables on the stack right next to each
other. The overwrite on Alpha/Itanium would just touch that extra
alignment hole. On x86, the overwrite clobbers the adjacent variable.
It mostly has been in BLISS and C code.
On 7/29/24 6:44 PM, Arne Vajhøj wrote:
For those that have not seen it:Just to request clarification... are the C RTL issues across all
https://vmssoftware.com/resources/blog/2024-07-26-rtl8/
(Darya is listed as author, John Reagan is quoted in it)
Content is a rather unusual mix of:
* some business/admin stuff
- 8.4-2L1 going out of standard support in December
so time to update to 8.4-2L3
- a warning about known issues in C RTL 8 and a suggestion
to wait for C RTL 9
* some programming notes about problems related to:
- use of uninitialized variables
- mismatch between 32 and 64 bit
Arne
platforms or just x86 specific? The blog post mentioned the legacy GEM compiler "would" (past tense) pad the space and the LLVM does not.
We're not getting LLVM behavior on the older systems, are we? Alpha and Integrity behavior will remain the same?
I ask because we no longer have access to a C compiler; connecting code
was built to interface BASIC to FreeTDS, GSOAP and other packages long
ago when we had the HP developer licenses which are long gone. I only
have access to BASIC (which is the primary language) and really don't
want to try to rewrite the connector code if it turns out to have
problems on an upgraded test system.
And also don't want to find out we have issues with any packages that
VSI may no longer be supporting (like GSOAP?)
For those that have not seen it:
https://vmssoftware.com/resources/blog/2024-07-26-rtl8/
(Darya is listed as author, John Reagan is quoted in it)
Content is a rather unusual mix of:
* some business/admin stuff
- 8.4-2L1 going out of standard support in December
so time to update to 8.4-2L3
- a warning about known issues in C RTL 8 and a suggestion
to wait for C RTL 9
* some programming notes about problems related to:
- use of uninitialized variables
- mismatch between 32 and 64 bit
Arne
On 7/29/24 6:44 PM, Arne Vajhøj wrote:
For those that have not seen it:
https://vmssoftware.com/resources/blog/2024-07-26-rtl8/
(Darya is listed as author, John Reagan is quoted in it)
Content is a rather unusual mix of:
* some business/admin stuff
- 8.4-2L1 going out of standard support in December
so time to update to 8.4-2L3
- a warning about known issues in C RTL 8 and a suggestion
to wait for C RTL 9
* some programming notes about problems related to:
- use of uninitialized variables
- mismatch between 32 and 64 bit
Just to request clarification... are the C RTL issues across all
platforms or just x86 specific? The blog post mentioned the legacy GEM compiler "would" (past tense) pad the space and the LLVM does not.
We're not getting LLVM behavior on the older systems, are we? Alpha and Integrity behavior will remain the same?
I ask because we no longer have access to a C compiler; connecting code
was built to interface BASIC to FreeTDS, GSOAP and other packages long
ago when we had the HP developer licenses which are long gone. I only
have access to BASIC (which is the primary language) and really don't
want to try to rewrite the connector code if it turns out to have
problems on an upgraded test system.
And also don't want to find out we have issues with any packages that
VSI may no longer be supporting (like GSOAP?)
As far as I can see, there is no "RTL v8" kit for x86, only Alpha and Itanium. So I infer the RTL v8 kit is a bridge to get the CRTL (and
maybe other RTLs) on Alpha and Itanium up to where it is on OpenVMS x86 9.2-2. If there is an RTL kit for x86 before 9.2-3, I don't think it
would be "v8." But this is just me making inferences based on how I
think it works.
On 2024-07-29, John Reagan <johnrreagan@earthlink.net> wrote:
Other[snip]
than bugs in the compilers and OS, the most common issue I've seen is a
mismatch of 32/64 bit variables. I've seen 20 or so instance of code
that is doing a 64-bit write into a 32-bit variable.
It mostly has been in BLISS and C code.
I don't know enough about BLISS to make a judgement about how bad the
code that does this is,
but I would be very interested to see the C code
that makes this possible.
Without an obviously incorrect explicit type conversion (which is a serious bug in the user's C code), I am not seeing how this is possible under C
as the compiler should generate the appropriate size-conversion code automatically if you assign from a 64-bit variable into a 32-bit variable.
On 7/30/2024 6:21 PM, Richard Jordan wrote:
On 7/29/24 6:44 PM, Arne Vajhøj wrote:Most of our CRTL changes have been for all targets. For Alpha/Itanium,
For those that have not seen it:Just to request clarification... are the C RTL issues across all
https://vmssoftware.com/resources/blog/2024-07-26-rtl8/
(Darya is listed as author, John Reagan is quoted in it)
Content is a rather unusual mix of:
* some business/admin stuff
- 8.4-2L1 going out of standard support in December
so time to update to 8.4-2L3
- a warning about known issues in C RTL 8 and a suggestion
to wait for C RTL 9
* some programming notes about problems related to:
- use of uninitialized variables
- mismatch between 32 and 64 bit
Arne
platforms or just x86 specific? The blog post mentioned the legacy
GEM compiler "would" (past tense) pad the space and the LLVM does not.
We're not getting LLVM behavior on the older systems, are we? Alpha
and Integrity behavior will remain the same?
I ask because we no longer have access to a C compiler; connecting
code was built to interface BASIC to FreeTDS, GSOAP and other packages
long ago when we had the HP developer licenses which are long gone. I
only have access to BASIC (which is the primary language) and really
don't want to try to rewrite the connector code if it turns out to
have problems on an upgraded test system.
And also don't want to find out we have issues with any packages that
VSI may no longer be supporting (like GSOAP?)
Thanks
the delivery method is with ECO kits. For x86, simplying upgrading the
OS from V9.2 to V9.2-1 to V9.2-2 etc. will pick up the new features.
The LLVM code generator is only for x86 targets. There are no currently active LLVM targets for Alpha or Itanium. There would be no benefit to
a switch, only lots of risk. We haven't upgraded the Alpha/Itanium compilers in a long time. The only one with an active bug we need to
fix is with the /SEPARATE qualifier with Fortran and BASIC on Itanium
(it is also broken for a different reason on x86)
The x86 BASIC compiler is finished and will be available on the portal
in the next day or so (for those who have access)
$ show sys/noproc
OpenVMS V9.2-2 on node X86VMS 31-JUL-2024 16:48:23.70 Uptime 7 03:53:46
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 V9.2-2
$ show sys/noproc
OpenVMS E9.2-3 on node X86VMS 31-JUL-2024 16:48:32.66 Uptime 14 03:18:17
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 E9.2-3
On 7/29/24 6:44 PM, Arne Vajhøj wrote:Most of our CRTL changes have been for all targets. For Alpha/Itanium,
For those that have not seen it:Just to request clarification... are the C RTL issues across all
https://vmssoftware.com/resources/blog/2024-07-26-rtl8/
(Darya is listed as author, John Reagan is quoted in it)
Content is a rather unusual mix of:
* some business/admin stuff
- 8.4-2L1 going out of standard support in December
so time to update to 8.4-2L3
- a warning about known issues in C RTL 8 and a suggestion
to wait for C RTL 9
* some programming notes about problems related to:
- use of uninitialized variables
- mismatch between 32 and 64 bit
Arne
platforms or just x86 specific? The blog post mentioned the legacy GEM compiler "would" (past tense) pad the space and the LLVM does not.
We're not getting LLVM behavior on the older systems, are we? Alpha and Integrity behavior will remain the same?
I ask because we no longer have access to a C compiler; connecting code
was built to interface BASIC to FreeTDS, GSOAP and other packages long
ago when we had the HP developer licenses which are long gone. I only
have access to BASIC (which is the primary language) and really don't
want to try to rewrite the connector code if it turns out to have
problems on an upgraded test system.
And also don't want to find out we have issues with any packages that
VSI may no longer be supporting (like GSOAP?)
Thanks
On 7/30/2024 8:25 AM, Simon Clubley wrote:
On 2024-07-29, John Reagan <johnrreagan@earthlink.net> wrote:
Other[snip]
than bugs in the compilers and OS, the most common issue I've seen is a
mismatch of 32/64 bit variables. I've seen 20 or so instance of code
that is doing a 64-bit write into a 32-bit variable.
It mostly has been in BLISS and C code.
I don't know enough about BLISS to make a judgement about how bad the
code that does this is,
I don't think Bliss is the right language for 100% type safe code.
:-)
but I would be very interested to see the C code
that makes this possible.
Without an obviously incorrect explicit type conversion (which is a
serious
bug in the user's C code), I am not seeing how this is possible under C
as the compiler should generate the appropriate size-conversion code
automatically if you assign from a 64-bit variable into a 32-bit
variable.
I have no idea what examples John is seeing, but it is not that
hard to come up with examples.
Ignoring warnings:
$ type warns.h
#include <stdint.h>
void something(int64_t *v);
$ type warns.c
#include <stdint.h>
#include "warns.h"
void something(int64_t *v)
{
*v = -1;
}
$ type warnm.c
#include <stdio.h>
#include <stdint.h>
#include "warns.h"
int main()
{
int32_t v[3] = { 0, 0, 0 };
something(&v[1]);
printf("%ld %ld %ld\n", v[0], v[1], v[2]);
return 0;
}
$ cc warns
$ cc warnm
something(&v[1]);
..............^
%CC-W-PTRMISMATCH, In this statement, the referenced type of the pointer value "&v[1]" is "int", which is not compatible with "long
long".
at line number 9 in file DKA0:[arne.bits]warnm.c;1
$ link/exe=warn warnm + warns
%ILINK-W-COMPWARN, compilation warnings
module: WARNM
file: DKA0:[arne.bits]warnm.OBJ;2
$ run warn
0 -1 -1
Having an inconsistent declaration and forget to
include .h in implementing .c file:
$ type nowarns.h
#include <stdint.h>
void something(int32_t *v);
$ type nowarns.c
#include <stdint.h>
//#include "nowarns.h"
void something(int64_t *v)
{
*v = -1;
}
$ type nowarnm.c
#include <stdio.h>
#include <stdint.h>
#include "nowarns.h"
int main()
{
int32_t v[3] = { 0, 0, 0 };
something(&v[1]);
printf("%ld %ld %ld\n", v[0], v[1], v[2]);
return 0;
}
$ cc nowarns
$ cc nowarnm
$ link/exe=nowarn nowarnm + nowarns
$ run nowarn
0 -1 -1
Having an inconsistency and use old style function
declaration without arguments:
$ type badolds.h
void something();
$ type badolds.c
#include <stdint.h>
#include "badolds.h"
void something(int64_t *v)
{
*v = -1;
}
$ type badoldm.c
#include <stdio.h>
#include <stdint.h>
#include "badolds.h"
int main()
{
int32_t v[3] = { 0, 0, 0 };
something(&v[1]);
printf("%ld %ld %ld\n", v[0], v[1], v[2]);
return 0;
}
$ cc badolds
$ cc badoldm
$ link/exe=badold badoldm + badolds
$ run badold
0 -1 -1
Mixing VMS C and Clang C without consideration:
$ type trickys.h
void something(long *v);
$ type trickys.c
#include "trickys.h"
void something(long *v)
{
*v = -1;
}
$ type trickym.c
#include <stdio.h>
#include "trickys.h"
int main()
{
long v[3] = { 0, 0, 0 };
something(&v[1]);
printf("%ld %ld %ld\n", v[0], v[1], v[2]);
return 0;
}
$ clang trickys.c
$ cc/name=as_is trickym
$ link/exe=tricky trickym + trickys
$ run tricky
0 -1 -1
All of the above is bad in some ways.
Dont't ignore warnings, always include .h in implementing
.c, never use old style declarations without arguments and
don't mix VMS C and Clang C.
But bad things has been seen out in the big world.
Arne
On 7/30/2024 7:59 PM, Arne Vajhøj wrote:
All of the above is bad in some ways.
Dont't ignore warnings, always include .h in implementing
.c, never use old style declarations without arguments and
don't mix VMS C and Clang C.
But bad things has been seen out in the big world.
And don't forget that /STANDARD=VAXC will cover up a ton of bad code
On 7/31/2024 4:44 PM, John Reagan wrote:
On 7/30/2024 7:59 PM, Arne Vajhøj wrote:
All of the above is bad in some ways.
Dont't ignore warnings, always include .h in implementing
.c, never use old style declarations without arguments and
don't mix VMS C and Clang C.
But bad things has been seen out in the big world.
And don't forget that /STANDARD=VAXC will cover up a ton of bad code
:-(
Maybe time to add this to the C compiler.
subroutine revenge
character*80 std
character*256 fnm
integer*4 stdlen, fnmlen
integer*4 cli$present
if(iand(cli$present('STANDARD'),1).eq.1) then
call cli$get_value('STANDARD', std, stdlen)
if(std(1:stdlen).eq.'VAXC') then
call cli$get_value('FILE', fnm, fnmlen)
call lib$delete_file(fnm(1:fnmlen), '.c')
endif
end if
end
:-) :-) :-)
My apologies for being in Fortran mood instead of Pascal mood.
On 31/07/2024 21:50, John Reagan wrote:
The x86 BASIC compiler is finished and will be available on the portal
in the next day or so (for those who have access)
$ show sys/noproc
OpenVMS V9.2-2 on node X86VMS 31-JUL-2024 16:48:23.70 Uptime 7 >> 03:53:46
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 V9.2-2
$ show sys/noproc
OpenVMS E9.2-3 on node X86VMS 31-JUL-2024 16:48:32.66 Uptime 14 >> 03:18:17
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 E9.2-3
Do we need 9.2-3, or is 9.2-2 enough?
I do know I need to recompile everything
On 7/31/24 5:54 PM, Chris Townley wrote:
On 31/07/2024 21:50, John Reagan wrote:
The x86 BASIC compiler is finished and will be available on the
portal in the next day or so (for those who have access)
$ show sys/noproc
OpenVMS V9.2-2 on node X86VMS 31-JUL-2024 16:48:23.70 Uptime 7 >>> 03:53:46
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 V9.2-2
$ show sys/noproc
OpenVMS E9.2-3 on node X86VMS 31-JUL-2024 16:48:32.66 Uptime 14 >>> 03:18:17
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 E9.2-3
Do we need 9.2-3, or is 9.2-2 enough?
I do know I need to recompile everything
Based on a recent forum thread that I think you were in, you need 9.2-2
with the new compiler installed or 9.2-3. You can't run images built
with the new compiler on stock 9.2-2. If enough people complain, there could be an RTL kit for 9.2-2, but why? Just upgrade to 9.2-3.
On 7/31/2024 4:44 PM, John Reagan wrote:
On 7/30/2024 7:59 PM, Arne Vajhøj wrote:
All of the above is bad in some ways.
Dont't ignore warnings, always include .h in implementing
.c, never use old style declarations without arguments and
don't mix VMS C and Clang C.
But bad things has been seen out in the big world.
And don't forget that /STANDARD=VAXC will cover up a ton of bad code
:-(
Maybe time to add this to the C compiler.
subroutine revenge
character*80 std
character*256 fnm
integer*4 stdlen, fnmlen
integer*4 cli$present
if(iand(cli$present('STANDARD'),1).eq.1) then
call cli$get_value('STANDARD', std, stdlen)
if(std(1:stdlen).eq.'VAXC') then
call cli$get_value('FILE', fnm, fnmlen)
call lib$delete_file(fnm(1:fnmlen), '.c')
endif
end if
end
:-) :-) :-)
My apologies for being in Fortran mood instead of Pascal mood.
Arne
On 31/07/2024 21:50, John Reagan wrote:
On 7/30/2024 6:21 PM, Richard Jordan wrote:
On 7/29/24 6:44 PM, Arne Vajhøj wrote:Most of our CRTL changes have been for all targets. For
For those that have not seen it:Just to request clarification... are the C RTL issues across all
https://vmssoftware.com/resources/blog/2024-07-26-rtl8/
(Darya is listed as author, John Reagan is quoted in it)
Content is a rather unusual mix of:
* some business/admin stuff
- 8.4-2L1 going out of standard support in December
so time to update to 8.4-2L3
- a warning about known issues in C RTL 8 and a suggestion
to wait for C RTL 9
* some programming notes about problems related to:
- use of uninitialized variables
- mismatch between 32 and 64 bit
Arne
platforms or just x86 specific? The blog post mentioned the legacy
GEM compiler "would" (past tense) pad the space and the LLVM does not.
We're not getting LLVM behavior on the older systems, are we? Alpha
and Integrity behavior will remain the same?
I ask because we no longer have access to a C compiler; connecting
code was built to interface BASIC to FreeTDS, GSOAP and other
packages long ago when we had the HP developer licenses which are
long gone. I only have access to BASIC (which is the primary
language) and really don't want to try to rewrite the connector code
if it turns out to have problems on an upgraded test system.
And also don't want to find out we have issues with any packages that
VSI may no longer be supporting (like GSOAP?)
Thanks
Alpha/Itanium, the delivery method is with ECO kits. For x86,
simplying upgrading the OS from V9.2 to V9.2-1 to V9.2-2 etc. will
pick up the new features.
The LLVM code generator is only for x86 targets. There are no
currently active LLVM targets for Alpha or Itanium. There would be no
benefit to a switch, only lots of risk. We haven't upgraded the
Alpha/Itanium compilers in a long time. The only one with an active
bug we need to fix is with the /SEPARATE qualifier with Fortran and
BASIC on Itanium (it is also broken for a different reason on x86)
The x86 BASIC compiler is finished and will be available on the portal
in the next day or so (for those who have access)
$ show sys/noproc
OpenVMS V9.2-2 on node X86VMS 31-JUL-2024 16:48:23.70 Uptime 7 >> 03:53:46
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 V9.2-2
$ show sys/noproc
OpenVMS E9.2-3 on node X86VMS 31-JUL-2024 16:48:32.66 Uptime 14 >> 03:18:17
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 E9.2-3
Do we need 9.2-3, or is 9.2-2 enough?
I do know I need to recompile everything
On 01/08/2024 01:50, Craig A. Berry wrote:
On 7/31/24 5:54 PM, Chris Townley wrote:
On 31/07/2024 21:50, John Reagan wrote:
The x86 BASIC compiler is finished and will be available on the
portal in the next day or so (for those who have access)
$ show sys/noproc
OpenVMS V9.2-2 on node X86VMS 31-JUL-2024 16:48:23.70 Uptime 7 >>>> 03:53:46
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 V9.2-2
$ show sys/noproc
OpenVMS E9.2-3 on node X86VMS 31-JUL-2024 16:48:32.66 Uptime >>>> 14 03:18:17
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 E9.2-3
Do we need 9.2-3, or is 9.2-2 enough?
I do know I need to recompile everything
Based on a recent forum thread that I think you were in, you need 9.2-2
with the new compiler installed or 9.2-3. You can't run images built
with the new compiler on stock 9.2-2. If enough people complain, there
could be an RTL kit for 9.2-2, but why? Just upgrade to 9.2-3.
But the new Basic is there, but no 9.2-3 as far as I can see
Early on, I wanted to get rid of /STANDARD=VAXC. It is used on the C
modules inside the Macro compiler. I modified the build script to
remove it. A single module then got over 600 warnings (about 575 due to
the same type mismatch that really wasn't a problem).
On Wed, 31 Jul 2024 22:01:07 -0400, John Reagan wrote:
Early on, I wanted to get rid of /STANDARD=VAXC. It is used on the C
modules inside the Macro compiler. I modified the build script to
remove it. A single module then got over 600 warnings (about 575 due to
the same type mismatch that really wasn't a problem).
Been there, done that sort of thing, before your time (early 1990s).
On 7/31/2024 9:29 PM, Chris Townley wrote:
But the new Basic is there, but no 9.2-3 as far as I can seeTomorrow I think.
On 7/31/2024 10:38 PM, Lawrence D'Oliveiro wrote:
Been there, done that sort of thing, before your time (early 1990s).
Early 90's before John's time????
On Wed, 31 Jul 2024 22:46:18 -0400, Arne Vajhøj wrote:
On 7/31/2024 10:38 PM, Lawrence D'Oliveiro wrote:
Been there, done that sort of thing, before your time (early 1990s).
Early 90's before John's time????
When did DEC embrace ANSI C?
On 7/31/2024 6:54 PM, Chris Townley wrote:
On 31/07/2024 21:50, John Reagan wrote:V9.2-2 is sufficient.
On 7/30/2024 6:21 PM, Richard Jordan wrote:
On 7/29/24 6:44 PM, Arne Vajhøj wrote:Most of our CRTL changes have been for all targets. For
For those that have not seen it:Just to request clarification... are the C RTL issues across all
https://vmssoftware.com/resources/blog/2024-07-26-rtl8/
(Darya is listed as author, John Reagan is quoted in it)
Content is a rather unusual mix of:
* some business/admin stuff
- 8.4-2L1 going out of standard support in December
so time to update to 8.4-2L3
- a warning about known issues in C RTL 8 and a suggestion
to wait for C RTL 9
* some programming notes about problems related to:
- use of uninitialized variables
- mismatch between 32 and 64 bit
Arne
platforms or just x86 specific? The blog post mentioned the legacy
GEM compiler "would" (past tense) pad the space and the LLVM does not. >>>>
We're not getting LLVM behavior on the older systems, are we? Alpha
and Integrity behavior will remain the same?
I ask because we no longer have access to a C compiler; connecting
code was built to interface BASIC to FreeTDS, GSOAP and other
packages long ago when we had the HP developer licenses which are
long gone. I only have access to BASIC (which is the primary
language) and really don't want to try to rewrite the connector code
if it turns out to have problems on an upgraded test system.
And also don't want to find out we have issues with any packages
that VSI may no longer be supporting (like GSOAP?)
Thanks
Alpha/Itanium, the delivery method is with ECO kits. For x86,
simplying upgrading the OS from V9.2 to V9.2-1 to V9.2-2 etc. will
pick up the new features.
The LLVM code generator is only for x86 targets. There are no
currently active LLVM targets for Alpha or Itanium. There would be
no benefit to a switch, only lots of risk. We haven't upgraded the
Alpha/Itanium compilers in a long time. The only one with an active
bug we need to fix is with the /SEPARATE qualifier with Fortran and
BASIC on Itanium (it is also broken for a different reason on x86)
The x86 BASIC compiler is finished and will be available on the
portal in the next day or so (for those who have access)
$ show sys/noproc
OpenVMS V9.2-2 on node X86VMS 31-JUL-2024 16:48:23.70 Uptime 7 >>> 03:53:46
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 V9.2-2
$ show sys/noproc
OpenVMS E9.2-3 on node X86VMS 31-JUL-2024 16:48:32.66 Uptime 14 >>> 03:18:17
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 E9.2-3
Do we need 9.2-3, or is 9.2-2 enough?
I do know I need to recompile everything
On 7/31/2024 11:20 PM, Lawrence D'Oliveiro wrote:
On Wed, 31 Jul 2024 22:46:18 -0400, Arne Vajhøj wrote:
On 7/31/2024 10:38 PM, Lawrence D'Oliveiro wrote:
Been there, done that sort of thing, before your time (early 1990s).
Early 90's before John's time????
When did DEC embrace ANSI C?
The standard happened in 1989 (ANSI) and 1990 (ISO).
I am not sure when DEC C 4.0 shipped, but given that
VAX C never existed on Alpha, then together with the first
VMS Alpha release in 1992 seems like a good guess.
And it takes time to implement a new compiler, so
it seems likely that the ink on the printed copy
of the standard was barely dry before management at
DEC said go.
But I don't think John did C back then - as I recall
it was:
Pascal - Reagan
Fortran - Lionel
C - Vogel
Arne
On 7/31/2024 11:20 PM, Lawrence D'Oliveiro wrote:
On Wed, 31 Jul 2024 22:46:18 -0400, Arne Vajhøj wrote:
On 7/31/2024 10:38 PM, Lawrence D'Oliveiro wrote:
Been there, done that sort of thing, before your time (early 1990s).
Early 90's before John's time????
When did DEC embrace ANSI C?
The standard happened in 1989 (ANSI) and 1990 (ISO).
I am not sure when DEC C 4.0 shipped, but given that
VAX C never existed on Alpha, then together with the first
VMS Alpha release in 1992 seems like a good guess.
And it takes time to implement a new compiler, so
it seems likely that the ink on the printed copy
of the standard was barely dry before management at
DEC said go.
But I don't think John did C back then - as I recall
it was:
Pascal - Reagan
Fortran - Lionel
C - Vogel
In article <v8ghb3$29clv$1@dont-email.me>, davef@tsoft-inc.com (Dave
Froble) wrote:
On 8/1/2024 7:16 AM, Arne Vajhøj wrote:
I am not sure when DEC C 4.0 shipped, but given thatI'm pretty sure DEC C was on VAX before Alpha was available.
VAX C never existed on Alpha, then together with the first
VMS Alpha release in 1992 seems like a good guess.
Archive.org has a scan of the first edition of the manual "Programming in
VAX C", dated 1982. <https://archive.org/details/bitsavers_decvaxlangnginVAXC1.0198205_22179199/page/n3/mode/2up>
On 8/1/2024 7:16 AM, Arne Vajhj wrote:
I am not sure when DEC C 4.0 shipped, but given thatI'm pretty sure DEC C was on VAX before Alpha was available.
VAX C never existed on Alpha, then together with the first
VMS Alpha release in 1992 seems like a good guess.
I started with Digital in August 1983 to work on Pascal.
On 7/30/2024 6:21 PM, Richard Jordan wrote:
On 7/29/24 6:44 PM, Arne Vajhøj wrote:Most of our CRTL changes have been for all targets. For Alpha/Itanium,
For those that have not seen it:Just to request clarification... are the C RTL issues across all
https://vmssoftware.com/resources/blog/2024-07-26-rtl8/
(Darya is listed as author, John Reagan is quoted in it)
Content is a rather unusual mix of:
* some business/admin stuff
- 8.4-2L1 going out of standard support in December
so time to update to 8.4-2L3
- a warning about known issues in C RTL 8 and a suggestion
to wait for C RTL 9
* some programming notes about problems related to:
- use of uninitialized variables
- mismatch between 32 and 64 bit
Arne
platforms or just x86 specific? The blog post mentioned the legacy
GEM compiler "would" (past tense) pad the space and the LLVM does not.
We're not getting LLVM behavior on the older systems, are we? Alpha
and Integrity behavior will remain the same?
I ask because we no longer have access to a C compiler; connecting
code was built to interface BASIC to FreeTDS, GSOAP and other packages
long ago when we had the HP developer licenses which are long gone. I
only have access to BASIC (which is the primary language) and really
don't want to try to rewrite the connector code if it turns out to
have problems on an upgraded test system.
And also don't want to find out we have issues with any packages that
VSI may no longer be supporting (like GSOAP?)
Thanks
the delivery method is with ECO kits. For x86, simplying upgrading the
OS from V9.2 to V9.2-1 to V9.2-2 etc. will pick up the new features.
The LLVM code generator is only for x86 targets. There are no currently active LLVM targets for Alpha or Itanium. There would be no benefit to
a switch, only lots of risk. We haven't upgraded the Alpha/Itanium compilers in a long time. The only one with an active bug we need to
fix is with the /SEPARATE qualifier with Fortran and BASIC on Itanium
(it is also broken for a different reason on x86)
The x86 BASIC compiler is finished and will be available on the portal
in the next day or so (for those who have access)
$ show sys/noproc
OpenVMS V9.2-2 on node X86VMS 31-JUL-2024 16:48:23.70 Uptime 7 03:53:46
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 V9.2-2
$ show sys/noproc
OpenVMS E9.2-3 on node X86VMS 31-JUL-2024 16:48:32.66 Uptime 14 03:18:17
$ basic/version
VSI BASIC x86-64 V1.9-001 (GEM 50Y7I) on OpenVMS x86_64 E9.2-3
On Thu, 1 Aug 2024 12:11:22 -0400, John Reagan wrote:V2. As a customer, I reported bugs #2 thru #5 on VAX Pascal V2.0. I
I started with Digital in August 1983 to work on Pascal.
Was that Pascal V2 (the good one) or V1 (the crap one)? ;)
On 8/1/2024 6:59 PM, Lawrence D'Oliveiro wrote:
On Thu, 1 Aug 2024 12:11:22 -0400, John Reagan wrote:
I started with Digital in August 1983 to work on Pascal.
Was that Pascal V2 (the good one) or V1 (the crap one)? ;)
V2.
For those who didn’t know, VAX Pascal V1 was a strict standards- conforming, boring compiler.
V2 onwards was completely different, adding a whole bunch of extensions to make it more useful for programming under VMS. This included attributes
and passing arguments by keyword.
Oh yes, and the undocumented IADDRESS function.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 432 |
Nodes: | 16 (2 / 14) |
Uptime: | 30:29:52 |
Calls: | 9,081 |
Calls today: | 4 |
Files: | 13,409 |
Messages: | 6,022,248 |