• VMS Bootcamp

    From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Tue Nov 4 19:36:23 2025
    From Newsgroup: comp.os.vms

    https://events.vmssoftware.com/post-portsmouth-bootcamp-2025

    has links to presentations and recordings!

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Tue Nov 4 19:43:47 2025
    From Newsgroup: comp.os.vms

    On 11/4/2025 7:36 PM, Arne Vajh|+j wrote:
    https://events.vmssoftware.com/post-portsmouth-bootcamp-2025

    has links to presentations and recordings!

    From the Rdb presentation:

    <quote>
    To put ourselves in the strongest position possible, we are building a portfolio of
    customer business cases so that our senior management can better
    understand the
    importance of offering Oracle Rdb on x86-64
    </quote>

    <quote>
    rCo We have now heard from 27 end customers who have an interest in Oracle
    Rdb on x86-64, 7 of these following the August Newsletter
    rCo Of these 27, 14 have given us either a business case or at least a statement
    about their need
    rCo We are working to strengthen our hand before we go back to our senior management seek approval to release Rdb on x86-64 in beta and/or
    production release
    </quote>

    It sounds like they could use a few more business cases!!!!

    Test status looks like they are close to wrapping up: 8896
    good tests, 159 failing tests (93 due to one issue) and
    744 tests not run yet (mostly network related).

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Tue Nov 4 19:51:12 2025
    From Newsgroup: comp.os.vms

    On 11/4/2025 7:36 PM, Arne Vajh|+j wrote:
    https://events.vmssoftware.com/post-portsmouth-bootcamp-2025

    has links to presentations and recordings!

    Interesting description of TCPIP 7.0.

    Based on FreeBSD 14.2, will use DUNIX threads, x86-64 only (requires
    clang), they will implement bmake.

    Sounds like a lot of work to me!

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From John H. Reinhardt@johnhreinhardt@thereinhardts.org to comp.os.vms on Tue Nov 4 19:17:56 2025
    From Newsgroup: comp.os.vms

    On 11/4/2025 6:51 PM, Arne Vajh|+j wrote:
    On 11/4/2025 7:36 PM, Arne Vajh|+j wrote:
    https://events.vmssoftware.com/post-portsmouth-bootcamp-2025

    has links to presentations and recordings!

    Interesting description of TCPIP 7.0.

    Based on FreeBSD 14.2, will use DUNIX threads, x86-64 only (requires
    clang), they will implement bmake.


    Not surprising that it's x86 only, but that's disappointing. It was stated other places that iSCSI is dependent on TCP/IP V7.0 so that means no backporting to Integrity or Alpha. It was a long shot but it would be nice. Without iSCSI I don't think there is any real practical way of hardware sharing disk drives - not MSCP shared. x86 can do FC but that requires dedicating a HBA to each VM Guest. Hardly practical unless you have a server with a lot of PCIe slots or very few OpenVMS guests.

    Sounds like a lot of work to me!

    Arne

    --
    John H. Reinhardt

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.os.vms on Wed Nov 5 02:49:43 2025
    From Newsgroup: comp.os.vms

    On Tue, 4 Nov 2025 19:17:56 -0600, John H. Reinhardt wrote:

    On 11/4/2025 6:51 PM, Arne Vajh|+j wrote:

    Interesting description of TCPIP 7.0.

    Based on FreeBSD 14.2, will use DUNIX threads, x86-64 only (requires
    clang), they will implement bmake.

    Are they still copying the FreeBSD networking stack?

    I suppose they donrCOt have much choice ...

    Not surprising that it's x86 only, but that's disappointing. It was
    stated other places that iSCSI is dependent on TCP/IP V7.0 so that
    means no backporting to Integrity or Alpha.

    I have just been learning about iSCSI myself. A client wants to set up a storage server for his main XCP-ng hypervisors. I looked up whether it was possible for the SAS interfaces to work in a rCLperipheralrCY mode when connected to another machine as a host; seems the support for this in
    Linux is limited at best. So the next option is to connect via iSCSI.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Robert A. Brooks@FIRST.LAST@vmssoftware.com to comp.os.vms on Tue Nov 4 22:10:13 2025
    From Newsgroup: comp.os.vms

    On 11/4/2025 7:51 PM, Arne Vajh|+j wrote:
    On 11/4/2025 7:36 PM, Arne Vajh|+j wrote:
    https://events.vmssoftware.com/post-portsmouth-bootcamp-2025

    has links to presentations and recordings!

    Interesting description of TCPIP 7.0.

    Based on FreeBSD 14.2, will use DUNIX threads, x86-64 only (requires
    clang), they will implement bmake.

    Yeah, it would be tough, but some of us are still holding out hope, but
    the chances are admittedly quite slim that TCP/IP V7.0 might make
    Alpha or IA64.
    --

    --- Rob
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Tue Nov 4 22:15:36 2025
    From Newsgroup: comp.os.vms

    On 11/4/2025 10:10 PM, Robert A. Brooks wrote:
    On 11/4/2025 7:51 PM, Arne Vajh|+j wrote:
    On 11/4/2025 7:36 PM, Arne Vajh|+j wrote:
    https://events.vmssoftware.com/post-portsmouth-bootcamp-2025

    has links to presentations and recordings!

    Interesting description of TCPIP 7.0.

    Based on FreeBSD 14.2, will use DUNIX threads, x86-64 only (requires
    clang), they will implement bmake.

    Yeah, it would be tough, but some of us are still holding out hope, but
    the chances are admittedly quite slim that TCP/IP V7.0 might make
    Alpha or IA64.

    Back porting the code to C99 does not make any sense as
    future updates will be a nigtmare.

    That leaves:
    * bringing clang to Alpha and Itanium
    * updating VMS C to newer C (whatever is needed C11 or C23)

    :-(

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Tue Nov 4 22:35:59 2025
    From Newsgroup: comp.os.vms

    On 11/4/2025 10:10 PM, Robert A. Brooks wrote:
    On 11/4/2025 7:51 PM, Arne Vajh|+j wrote:
    On 11/4/2025 7:36 PM, Arne Vajh|+j wrote:
    https://events.vmssoftware.com/post-portsmouth-bootcamp-2025

    has links to presentations and recordings!

    Interesting description of TCPIP 7.0.

    Based on FreeBSD 14.2, will use DUNIX threads, x86-64 only (requires
    clang), they will implement bmake.

    Yeah, it would be tough, but some of us are still holding out hope, but
    the chances are admittedly quite slim that TCP/IP V7.0 might make
    Alpha or IA64.

    Not trying to overinterpret and I was not there hearing what
    was said, but the slides say:

    "Could not be compiled with DECC (code uses newer C language features)"

    "Compile all C modules across the product using the clang compiler
    (X86-only)"

    "Currently planned for X86-64 only (due to lack of tools)"

    which seems pretty clear to me.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From John Reagan@johnrreagan@earthlink.net to comp.os.vms on Wed Nov 5 09:36:09 2025
    From Newsgroup: comp.os.vms

    On 11/4/2025 10:15 PM, Arne Vajh|+j wrote:
    On 11/4/2025 10:10 PM, Robert A. Brooks wrote:
    On 11/4/2025 7:51 PM, Arne Vajh|+j wrote:
    On 11/4/2025 7:36 PM, Arne Vajh|+j wrote:
    https://events.vmssoftware.com/post-portsmouth-bootcamp-2025

    has links to presentations and recordings!

    Interesting description of TCPIP 7.0.

    Based on FreeBSD 14.2, will use DUNIX threads, x86-64 only (requires
    clang), they will implement bmake.

    Yeah, it would be tough, but some of us are still holding out hope, but
    the chances are admittedly quite slim that TCP/IP V7.0 might make
    Alpha or IA64.

    Back porting the code to C99 does not make any sense as
    future updates will be a nigtmare.

    That leaves:
    * bringing clang to Alpha and Itanium
    * updating VMS C to newer C (whatever is needed C11 or C23)

    :-(

    Arne

    And it is more than just a C compiler, you also need header changes,
    backend changes (GEM), linker changes (thread local storage), image
    activator changes, pthreads changes, debugger, etc.

    Moving clang to Alpha/Itanium means finding/resurrecting ancient LLVM
    targets OR trying to adapt clang to GEM (the reverse of what we've
    done). Either way, you still have all the other downstream changes.

    And yes, we're looking at TLS for x86 with TCPIP V7 as an important
    consumer.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Wed Nov 5 20:39:59 2025
    From Newsgroup: comp.os.vms

    On 11/5/2025 9:36 AM, John Reagan wrote:
    And yes, we're looking at TLS for x86 with TCPIP V7 as an important consumer.

    TLS will make a lot of things easier.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Wed Nov 5 20:48:37 2025
    From Newsgroup: comp.os.vms

    On 11/5/2025 9:36 AM, John Reagan wrote:
    On 11/4/2025 10:15 PM, Arne Vajh|+j wrote:
    On 11/4/2025 10:10 PM, Robert A. Brooks wrote:
    On 11/4/2025 7:51 PM, Arne Vajh|+j wrote:
    On 11/4/2025 7:36 PM, Arne Vajh|+j wrote:
    https://events.vmssoftware.com/post-portsmouth-bootcamp-2025

    has links to presentations and recordings!

    Interesting description of TCPIP 7.0.

    Based on FreeBSD 14.2, will use DUNIX threads, x86-64 only (requires
    clang), they will implement bmake.

    Yeah, it would be tough, but some of us are still holding out hope, but
    the chances are admittedly quite slim that TCP/IP V7.0 might make
    Alpha or IA64.

    Back porting the code to C99 does not make any sense as
    future updates will be a nigtmare.

    That leaves:
    * bringing clang to Alpha and Itanium
    * updating VMS C to newer C (whatever is needed C11 or C23)

    :-(

    And it is more than just a C compiler, you also need header changes,
    backend changes (GEM), linker changes (thread local storage), image activator changes, pthreads changes, debugger, etc.

    Moving clang to Alpha/Itanium means finding/resurrecting ancient LLVM targets OR trying to adapt clang to GEM (the reverse of what we've
    done).-a Either way, you still have all the other downstream changes.

    Very understandable if it does not happen.

    But it does come with some implications.

    VSI may support VMS 8.4-2Lx on Alpha and Itanium until
    2035. But the software running on them will likely be
    10-20 years old, because newer software requires
    other newer software.

    No clang on Itanium => no Java 17 and newer on Itanium
    no Tomcat newer than 9.0.x, no ActiveMQ newer than 5.16.x
    etc. on Itanium.

    Arne


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Thu Nov 6 15:31:53 2025
    From Newsgroup: comp.os.vms

    On 11/4/2025 7:36 PM, Arne Vajh|+j wrote:
    https://events.vmssoftware.com/post-portsmouth-bootcamp-2025

    has links to presentations and recordings!

    From Camiel's roadmap presentations (Technical Directions):

    9.2-3 update 2 - February 2026
    9.2-4 with TCPIP 7.0 and iSCSI - 2027
    9.2-5 native built - TBD
    9.3 with cluster and security updates - TBD

    8.4-3 with accumulated patches and unspecified backports - TBD

    They are migrating some IO and memory management
    code from Macro-32/Bliss to C.

    Confirmed Java 17 for December.

    Arne


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.os.vms on Thu Nov 6 21:25:39 2025
    From Newsgroup: comp.os.vms

    On Thu, 6 Nov 2025 15:31:53 -0500, Arne Vajh|+j wrote:

    They are migrating some IO and memory management code from
    Macro-32/Bliss to C.

    Why not Rust?
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Thu Nov 6 16:28:10 2025
    From Newsgroup: comp.os.vms

    On 11/6/2025 4:25 PM, Lawrence DrCOOliveiro wrote:
    On Thu, 6 Nov 2025 15:31:53 -0500, Arne Vajh|+j wrote:
    They are migrating some IO and memory management code from
    Macro-32/Bliss to C.

    Why not Rust?

    Rust is not available for VMS.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Chris Townley@news@cct-net.co.uk to comp.os.vms on Thu Nov 6 23:35:06 2025
    From Newsgroup: comp.os.vms

    On 06/11/2025 21:28, Arne Vajh|+j wrote:

    Rust is not available for VMS.

    Arne


    Yet...
    --
    Chris
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Thu Nov 6 18:58:40 2025
    From Newsgroup: comp.os.vms

    On 11/6/2025 6:35 PM, Chris Townley wrote:
    On 06/11/2025 21:28, Arne Vajh|+j wrote:

    Rust is not available for VMS.

    Yet...

    True.

    But I do not expect it to become available any time soon.

    Sure most OS and compiler people would love to see Rust on VMS.

    But the people writing average business applications have
    many other languages prioritized higher than Rust.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.os.vms on Fri Nov 7 01:20:37 2025
    From Newsgroup: comp.os.vms

    On Thu, 6 Nov 2025 18:58:40 -0500, Arne Vajh|+j wrote:

    But the people writing average business applications have
    many other languages prioritized higher than Rust.

    I thought VMS had a strong focus on high availability, process control,
    that kind of thing.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Thu Nov 6 20:34:31 2025
    From Newsgroup: comp.os.vms

    On 11/6/2025 8:20 PM, Lawrence DrCOOliveiro wrote:
    On Thu, 6 Nov 2025 18:58:40 -0500, Arne Vajh|+j wrote:
    But the people writing average business applications have
    many other languages prioritized higher than Rust.

    I thought VMS had a strong focus on high availability, process control,
    that kind of thing.

    HA is architecture not programming language.

    Yes - some VMS system control manufacturing. But I expect many more
    VMS systems to be used managing things, people and money.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.os.vms on Fri Nov 7 03:07:32 2025
    From Newsgroup: comp.os.vms

    On Thu, 6 Nov 2025 20:34:31 -0500, Arne Vajh|+j wrote:

    On 11/6/2025 8:20 PM, Lawrence DrCOOliveiro wrote:

    On Thu, 6 Nov 2025 18:58:40 -0500, Arne Vajh|+j wrote:

    But the people writing average business applications have many other
    languages prioritized higher than Rust.

    I thought VMS had a strong focus on high availability, process control,
    that kind of thing.

    HA is architecture not programming language.

    Memory safety has a part to play in minimizing downtime.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.os.vms on Fri Nov 7 13:22:06 2025
    From Newsgroup: comp.os.vms

    In article <mmvmu4F1c8iU1@mid.individual.net>,
    John H. Reinhardt <johnhreinhardt@thereinhardts.org> wrote:
    [snip] x86 can do FC but
    that requires dedicating a HBA to each VM Guest. Hardly practical
    unless you have a server with a lot of PCIe slots or very few OpenVMS
    guests.

    One presumes fiber channel HBAs are mostly PCIe devies at this
    point; given that, what about using SR-IOV to mux guests onto a
    single (or small set of) HBA(s)?

    - Dan C.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From bill@bill.gunshannon@gmail.com to comp.os.vms on Fri Nov 7 12:39:23 2025
    From Newsgroup: comp.os.vms

    On 11/6/2025 6:58 PM, Arne Vajh|+j wrote:
    On 11/6/2025 6:35 PM, Chris Townley wrote:
    On 06/11/2025 21:28, Arne Vajh|+j wrote:

    Rust is not available for VMS.

    Yet...

    True.

    But I do not expect it to become available any time soon.

    Sure most OS and compiler people would love to see Rust on VMS.


    I doubt most "OS and compiler people" have a clue what VMS
    is or care what languages run on it.

    bill


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mark Berryman@mark@theberrymans.com to comp.os.vms on Fri Nov 7 12:51:29 2025
    From Newsgroup: comp.os.vms

    On 11/7/25 6:22 AM, Dan Cross wrote:
    In article <mmvmu4F1c8iU1@mid.individual.net>,
    John H. Reinhardt <johnhreinhardt@thereinhardts.org> wrote:
    [snip] x86 can do FC but
    that requires dedicating a HBA to each VM Guest. Hardly practical
    unless you have a server with a lot of PCIe slots or very few OpenVMS
    guests.

    One presumes fiber channel HBAs are mostly PCIe devies at this
    point; given that, what about using SR-IOV to mux guests onto a
    single (or small set of) HBA(s)?

    On ESXi V8 the Qlogic 2692 is listed as not capable of SR-IOV. I also
    have 8G HBAs with the same status. I don't have any 32G HBAs to check.

    Mark Berryman
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Fri Nov 7 14:54:24 2025
    From Newsgroup: comp.os.vms

    On 11/7/2025 12:39 PM, bill wrote:
    On 11/6/2025 6:58 PM, Arne Vajh|+j wrote:
    On 11/6/2025 6:35 PM, Chris Townley wrote:
    On 06/11/2025 21:28, Arne Vajh|+j wrote:

    Rust is not available for VMS.

    Yet...

    True.

    But I do not expect it to become available any time soon.

    Sure most OS and compiler people would love to see Rust on VMS.

    I doubt most "OS and compiler people" have a clue what VMS
    is or care what languages run on it.

    "most" in the (small) subset that work with VMS.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Fri Nov 7 15:01:23 2025
    From Newsgroup: comp.os.vms

    On 11/6/2025 10:07 PM, Lawrence DrCOOliveiro wrote:
    On Thu, 6 Nov 2025 20:34:31 -0500, Arne Vajh|+j wrote:
    On 11/6/2025 8:20 PM, Lawrence DrCOOliveiro wrote:
    On Thu, 6 Nov 2025 18:58:40 -0500, Arne Vajh|+j wrote:
    But the people writing average business applications have many other
    languages prioritized higher than Rust.

    I thought VMS had a strong focus on high availability, process control,
    that kind of thing.

    HA is architecture not programming language.

    Memory safety has a part to play in minimizing downtime.

    True.

    But traditionally high availability is used to describe
    the ability to continue service in case a system goes down
    and not systems with low probability to go down.

    Anyway the memory safety of Rust makes it clearly
    different from C/C++, but if we look at languages
    typical used for business applications, then memory
    safety is common.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.os.vms on Fri Nov 7 21:46:17 2025
    From Newsgroup: comp.os.vms

    In article <mn6p6bFfndpU2@mid.individual.net>,
    bill <bill.gunshannon@gmail.com> wrote:
    On 11/6/2025 6:58 PM, Arne Vajh|+j wrote:
    On 11/6/2025 6:35 PM, Chris Townley wrote:
    On 06/11/2025 21:28, Arne Vajh|+j wrote:

    Rust is not available for VMS.

    Yet...

    True.

    But I do not expect it to become available any time soon.

    Sure most OS and compiler people would love to see Rust on VMS.

    I doubt most "OS and compiler people" have a clue what VMS
    is or care what languages run on it.

    I assure you you are wrong about the first part. Unfortunately
    the second part is probably accurate.

    It didn't help getting a new generation of folks interested in
    alternatives to the dominant near-monoculture that the hobbyist
    program went away. :-( I get that VSI had pragmatic reasons,
    but is still a real shame.

    - Dan C.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From John Reagan@johnrreagan@earthlink.net to comp.os.vms on Fri Nov 7 16:58:34 2025
    From Newsgroup: comp.os.vms

    On 11/7/2025 12:39 PM, bill wrote:
    On 11/6/2025 6:58 PM, Arne Vajh|+j wrote:
    On 11/6/2025 6:35 PM, Chris Townley wrote:
    On 06/11/2025 21:28, Arne Vajh|+j wrote:

    Rust is not available for VMS.

    Yet...

    True.

    But I do not expect it to become available any time soon.

    Sure most OS and compiler people would love to see Rust on VMS.


    I doubt most "OS and compiler people" have a clue what VMS
    is or care what languages run on it.

    bill


    I'm still surprised by the number of young (well, younger than me)
    people at last week's LLVM conference that know about VMS. One of the keynotes was the compiler team lead from Arm talking about rehosting
    their compiler toolchain to LLVM. It was almost the same story was VMS
    but he said "I used VMS in the past and you had a tougher time".

    And one young person (under 30) tracked me down to ask all sorts of
    questions of VMS.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Chris Townley@news@cct-net.co.uk to comp.os.vms on Fri Nov 7 23:47:15 2025
    From Newsgroup: comp.os.vms

    On 07/11/2025 21:46, Dan Cross wrote:
    In article <mn6p6bFfndpU2@mid.individual.net>,
    bill <bill.gunshannon@gmail.com> wrote:
    On 11/6/2025 6:58 PM, Arne Vajh|+j wrote:
    On 11/6/2025 6:35 PM, Chris Townley wrote:
    On 06/11/2025 21:28, Arne Vajh|+j wrote:

    Rust is not available for VMS.

    Yet...

    True.

    But I do not expect it to become available any time soon.

    Sure most OS and compiler people would love to see Rust on VMS.

    I doubt most "OS and compiler people" have a clue what VMS
    is or care what languages run on it.

    I assure you you are wrong about the first part. Unfortunately
    the second part is probably accurate.

    It didn't help getting a new generation of folks interested in
    alternatives to the dominant near-monoculture that the hobbyist
    program went away. :-( I get that VSI had pragmatic reasons,
    but is still a real shame.

    - Dan C.


    The VSI Hobbyist program is still there, and seemingly well used. It
    just doesn't give access to install media. However the VMDK is perfectly usable
    --
    Chris
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.os.vms on Fri Nov 7 23:50:05 2025
    From Newsgroup: comp.os.vms

    In article <10elil1$23l8m$1@dont-email.me>,
    Mark Berryman <mark@theberrymans.com> wrote:
    On 11/7/25 6:22 AM, Dan Cross wrote:
    In article <mmvmu4F1c8iU1@mid.individual.net>,
    John H. Reinhardt <johnhreinhardt@thereinhardts.org> wrote:
    [snip] x86 can do FC but
    that requires dedicating a HBA to each VM Guest. Hardly practical
    unless you have a server with a lot of PCIe slots or very few OpenVMS
    guests.

    One presumes fiber channel HBAs are mostly PCIe devies at this
    point; given that, what about using SR-IOV to mux guests onto a
    single (or small set of) HBA(s)?

    On ESXi V8 the Qlogic 2692 is listed as not capable of SR-IOV. I also
    have 8G HBAs with the same status. I don't have any 32G HBAs to check.

    It seems to be surprisingly rare. Some of the Emulex 16G HBAs
    support it (Gen 5, Gen 6) but most seem to be doing it via a
    NIC and FCoE. :-/

    - Dan C.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.os.vms on Sat Nov 8 21:59:26 2025
    From Newsgroup: comp.os.vms

    On Fri, 7 Nov 2025 15:01:23 -0500, Arne Vajh|+j wrote:

    But traditionally high availability is used to describe the ability to continue service in case a system goes down and not systems with low probability to go down.

    It helps if the system is designed not to go down so readily in the first place.

    Remember the old saying: rCLan ounce of prevention is worth a pound of curerCY.

    Anyway the memory safety of Rust makes it clearly different from C/C++,
    but if we look at languages typical used for business applications, then memory safety is common.

    Do rCLbusiness applicationsrCY need to do network connections? Using custom protocols, even?
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Sat Nov 8 17:14:33 2025
    From Newsgroup: comp.os.vms

    On 11/8/2025 4:59 PM, Lawrence DrCOOliveiro wrote:
    On Fri, 7 Nov 2025 15:01:23 -0500, Arne Vajh|+j wrote:
    But traditionally high availability is used to describe the ability to
    continue service in case a system goes down and not systems with low
    probability to go down.

    It helps if the system is designed not to go down so readily in the first place.

    Remember the old saying: rCLan ounce of prevention is worth a pound of curerCY.

    Anyway the memory safety of Rust makes it clearly different from C/C++,
    but if we look at languages typical used for business applications, then
    memory safety is common.

    Do rCLbusiness applicationsrCY need to do network connections?

    Absolutely.

    Requests coming in over the network. Accessing database servers,
    message queue servers, cache servers etc. during processing.

    Using custom protocols, even?

    Only for older applications. Newer applications typical use
    something not specific for that application: JSON/HTTP(S),
    XML/HTTP(S), GRPC, IIOP, RMI, Remoting, PostgreSQL, MySQL,
    OpenWire, AMQP, STOMP etc..

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.os.vms on Sat Nov 8 23:09:29 2025
    From Newsgroup: comp.os.vms

    On Sat, 8 Nov 2025 17:14:33 -0500, Arne Vajh|+j wrote:

    On 11/8/2025 4:59 PM, Lawrence DrCOOliveiro wrote:

    On Fri, 7 Nov 2025 15:01:23 -0500, Arne Vajh|+j wrote:

    Anyway the memory safety of Rust makes it clearly different from
    C/C++, but if we look at languages typical used for business
    applications, then memory safety is common.

    Do rCLbusiness applicationsrCY need to do network connections?

    Absolutely.

    Requests coming in over the network. Accessing database servers,
    message queue servers, cache servers etc. during processing.

    Those are well-known sources of memory errors, buffer overflows,
    security vulnerabilities caused by (accidentally or deliberately)
    corrupted packets etc.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Sat Nov 8 18:36:28 2025
    From Newsgroup: comp.os.vms

    On 11/8/2025 6:09 PM, Lawrence DrCOOliveiro wrote:
    On Sat, 8 Nov 2025 17:14:33 -0500, Arne Vajh|+j wrote:
    On 11/8/2025 4:59 PM, Lawrence DrCOOliveiro wrote:
    On Fri, 7 Nov 2025 15:01:23 -0500, Arne Vajh|+j wrote:
    Anyway the memory safety of Rust makes it clearly different from
    C/C++, but if we look at languages typical used for business
    applications, then memory safety is common.

    Do rCLbusiness applicationsrCY need to do network connections?

    Absolutely.

    Requests coming in over the network. Accessing database servers,
    message queue servers, cache servers etc. during processing.

    Those are well-known sources of memory errors, buffer overflows,
    security vulnerabilities caused by (accidentally or deliberately)
    corrupted packets etc.

    Yes.

    But I don't think you got the point.

    Rewriting the business application from one
    memory safe language (Java, C#, Python, Pascal
    or whatever) to Rust does not help anything.

    If the issue is at the application level, then
    the old language already prevent buffer overflow
    and if the issue is in some low level library,
    then nothing changes by rewriting the application.

    Arne


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.os.vms on Wed Nov 12 13:04:23 2025
    From Newsgroup: comp.os.vms

    In article <10eok5t$2u3pu$1@dont-email.me>,
    Arne Vajh|+j <arne@vajhoej.dk> wrote:
    On 11/8/2025 6:09 PM, Lawrence DrCOOliveiro wrote:
    On Sat, 8 Nov 2025 17:14:33 -0500, Arne Vajh|+j wrote:
    On 11/8/2025 4:59 PM, Lawrence DrCOOliveiro wrote:
    On Fri, 7 Nov 2025 15:01:23 -0500, Arne Vajh|+j wrote:
    Anyway the memory safety of Rust makes it clearly different from
    C/C++, but if we look at languages typical used for business
    applications, then memory safety is common.

    Do rCLbusiness applicationsrCY need to do network connections?

    Absolutely.

    Requests coming in over the network. Accessing database servers,
    message queue servers, cache servers etc. during processing.

    Those are well-known sources of memory errors, buffer overflows,
    security vulnerabilities caused by (accidentally or deliberately)
    corrupted packets etc.

    Yes.

    But I don't think you got the point.

    Rewriting the business application from one
    memory safe language (Java, C#, Python, Pascal

    Given the `POINTER` type, consequent support for type-casting
    pointers, and dynamic memory allocation, it's hard to understand
    how VSI Pascal can be considered meaningfully memory safe in the
    way that Rust or a managed language is.

    or whatever) to Rust does not help anything.

    If the issue is at the application level, then
    the old language already prevent buffer overflow
    and if the issue is in some low level library,
    then nothing changes by rewriting the application.

    I suspect that there is a lot of business code floating around
    in memory-unsafe languages (MACRO-32, Pascal, maybe COBOL if
    used in some odd ways) etc. Not to mention FFI calls from safe
    languages into unsafe code.

    Rust on VMS would be cool. Getting the compiler to generate
    code that would load and run probably wouldn't be _that_ much of
    a lift; a much bigger challenge would be getting the standard
    library ported. A Tokio executor for async code built on VMS
    primitives would be cool; I suspect it's a pretty good fit.

    - Dan C.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Wed Nov 12 17:14:49 2025
    From Newsgroup: comp.os.vms

    On 11/12/2025 8:04 AM, Dan Cross wrote:
    In article <10eok5t$2u3pu$1@dont-email.me>,
    Arne Vajh|+j <arne@vajhoej.dk> wrote:
    Rewriting the business application from one
    memory safe language (Java, C#, Python, Pascal

    Given the `POINTER` type, consequent support for type-casting
    pointers, and dynamic memory allocation, it's hard to understand
    how VSI Pascal can be considered meaningfully memory safe in the
    way that Rust or a managed language is.

    The US government considers Pascal a memory safe language.

    :-)

    But I think you are right about it being a bit questionable.

    I consider the 3 biggest memory unsafe problems to be:
    * no out of bounds check for array index
    * allowing use of deallocated memory
    * memory leak due to memory never being deallocated

    Pascal only prevents the first not the other two.

    The other two are not as common in Pascal as in C,
    because dynamic memory allocation is not as common in
    Pascal as in C.

    I did a quick check in my code repo and I use dynamic
    memory allocation in 25% of my C pieces but only in
    0.5% of my Pascal pieces. I am just one out of
    millions so it is obviously anecdotal only, but pretty
    big difference ...

    Anyway 1 fixed + 2 not fixed but rare is not really
    fixed.

    So I think you are right and the US government is wrong.

    :-)

    I do not see a problem with the pointer type casts. If
    normal code is safe, then I think it is OK to have ways
    to workaround the safeness. Sometimes it is desirable
    and it is hopefully easy to identify usage of such
    constructs and require extra code review of such code.

    Arne


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Wed Nov 12 17:21:48 2025
    From Newsgroup: comp.os.vms

    On 11/12/2025 5:14 PM, Arne Vajh|+j wrote:
    I do not see a problem with the pointer type casts. If
    normal code is safe, then I think it is OK to have ways
    to workaround the safeness. Sometimes it is desirable
    and it is hopefully easy to identify usage of such
    constructs and require extra code review of such code.

    Illustration:

    $ type m1.pas
    program m1(input,output);

    type
    a4 = array [1..4] of integer;
    pa4 = ^a4;

    var
    ap : pa4;
    i : integer;

    begin
    new(ap);
    for i := 1 to 5 do begin
    ap^[i] := i;
    writeln(i);
    end;
    dispose(ap);
    end.
    $ pas m1
    $ link m1
    $ run m1
    1
    2
    3
    4
    %PAS-F-ARRINDVAL, array index value is out of range
    %TRACE-F-TRACEBACK, symbolic stack dump follows
    image module routine line rel PC abs PC
    m1 M1 M1 14 00000000000000DC 00000000800000DC
    0 FFFF8300071C81C6 FFFF8300071C81C6
    DCL 0 000000008006632B 000000007ADC432B
    %TRACE-I-END, end of TRACE stack dump
    $ type m2.pas
    program m2(input,output);

    type
    a4 = array [1..4] of integer;
    pa4 = ^a4;
    a5 = array [1..5] of integer;
    pa5 = ^a5;

    var
    ap : pa4;
    hack : pa5;
    i : integer;

    begin
    new(ap);
    hack := ap::pa5;
    for i := 1 to 5 do begin
    hack^[i] := i;
    writeln(i);
    end;
    dispose(ap);
    end.
    $ pas m2
    $ link m2
    $ run m2
    1
    2
    3
    4
    5
    $ type m3.pas
    program m3(input,output);

    type
    a4 = array [1..4] of integer;
    pa4 = ^a4;
    a5 = array [1..5] of integer;
    pa5 = ^a5;
    pa4_or_pa5 = record
    case boolean of
    false: (f4 : pa4);
    true: (f5 : pa5);
    end;

    var
    ap : pa4;
    hack : pa4_or_pa5;
    i : integer;

    begin
    new(ap);
    hack.f4 := ap;
    for i := 1 to 5 do begin
    hack.f5^[i] := i;
    writeln(i);
    end;
    dispose(ap);
    end.
    $ pas m3
    $ link m3
    $ run m3
    1
    2
    3
    4
    5

    Pointer type cast and variant records just scream for
    a critical code review.

    And other languages also allow circumventing checks.

    Including C#!

    using System;

    namespace AA
    {
    public class Program
    {
    public static void Main(string[] args)
    {
    int[] a = new int[4];
    for(int i = 0; i < 5; i++)
    {
    a[i] = i;
    Console.WriteLine(i);
    }
    }
    }
    }

    0
    1
    2
    3

    Unhandled Exception: System.IndexOutOfRangeException: Index was outside
    the bounds of the array.
    at AA.Program.Main(String[] args) in c:IDEProjects\SharpDevelop5\aa\aa\Program.cs:line 12

    using System;

    namespace AAX
    {
    public class Program
    {
    public static void Main(string[] args)
    {
    int[] a = new int[4];
    unsafe
    {
    fixed (int* hack = &a[0])
    {
    for(int i = 0; i < 5; i++)
    {
    hack[i] = i;
    Console.WriteLine(i);
    }
    }
    }
    }
    }
    }

    0
    1
    2
    3
    4

    unsafe { } clearly reveal that something fishy is going on.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Wed Nov 12 17:24:37 2025
    From Newsgroup: comp.os.vms

    On 11/12/2025 5:21 PM, Arne Vajh|+j wrote:
    On 11/12/2025 5:14 PM, Arne Vajh|+j wrote:
    I do not see a problem with the pointer type casts. If
    normal code is safe, then I think it is OK to have ways
    to workaround the safeness. Sometimes it is desirable
    and it is hopefully easy to identify usage of such
    constructs and require extra code review of such code.

    Illustration:

    Note that it is not tied to dynamic memory allocation.

    type
    -a-a a4 = array [1..4] of integer;
    -a-a pa4 = ^a4;

    var
    -a-a ap : pa4;
    -a-a new(ap);

    could have been:

    type
    a4 = array [1..4] of integer;
    pa4 = ^a4;

    var
    a : [volatile] a4;
    ap : pa4;
    ...
    ap := address(a);

    with same effect.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Brian Schenkenberger@mail@SendSpamHere.ORG to comp.os.vms on Wed Nov 12 18:39:26 2025
    From Newsgroup: comp.os.vms

    On 2025-11-12 13:04:23 +0000, Dan Cross said:

    I suspect that there is a lot of business code floating around
    in memory-unsafe languages (MACRO-32, Pascal, maybe COBOL if
    used in some odd ways) etc. Not to mention FFI calls from safe
    languages into unsafe code.

    What *exactly* is memory unsafe using Macro? You do realize that the
    lion's share of VMS is Macro???

    rCo VAXman

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Wed Nov 12 18:49:36 2025
    From Newsgroup: comp.os.vms

    On 11/12/2025 6:39 PM, Brian Schenkenberger wrote:
    On 2025-11-12 13:04:23 +0000, Dan Cross said:
    I suspect that there is a lot of business code floating around
    in memory-unsafe languages (MACRO-32, Pascal, maybe COBOL if
    used in some odd ways) etc.-a Not to mention FFI calls from safe
    languages into unsafe code.

    What *exactly* is memory unsafe using Macro?

    Just about everything.

    :-)

    But let us start with the definition of memory unsafe.

    Wikipedia:

    https://en.wikipedia.org/wiki/Memory_safety

    My short version:
    * no out of bounds check for array index
    * allowing use of deallocated memory
    * memory leak due to memory never being deallocated

    Macro-32 does not take care of that - it leaves it all
    to the developer.

    Which would not be a problem if we had a million VAXMAN's,
    but we don't, so it is a problem.

    You do realize that the
    lion's share of VMS is Macro???

    That code was written a long time ago.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Wed Nov 12 19:14:29 2025
    From Newsgroup: comp.os.vms

    On 11/12/2025 5:21 PM, Arne Vajh|+j wrote:
    On 11/12/2025 5:14 PM, Arne Vajh|+j wrote:
    I do not see a problem with the pointer type casts. If
    normal code is safe, then I think it is OK to have ways
    to workaround the safeness. Sometimes it is desirable
    and it is hopefully easy to identify usage of such
    constructs and require extra code review of such code.

    Illustration:

    So VMS Pascal is not so bad.

    Delphi is pretty bad.

    It seems like Delphi had as a design goal that anything
    possible in C should be possible in Delphi.

    So it add a lot of questionable features.

    Making it possible to code C in Pascal.

    Example:

    program cinp;

    var
    p, p2 : pchar;
    i : integer;

    begin
    GetMem(p, 4); // p = malloc(4)
    GetMem(p2, 3); // p2 = malloc(3)
    for i := 0 to 4 do p[i] := chr(i); // initialize elements 0..4
    Move(p, p2, 5); // memcpy(p2, p, 5)
    for i := 0 to 4 do writeln(ord(p2[i])); // print elements 0..4
    FreeMem(p2); // free(p2)
    FreeMem(p); // free(p)
    end.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.os.vms on Sat Nov 15 15:04:02 2025
    From Newsgroup: comp.os.vms

    In article <10f30sp$1koun$4@dont-email.me>,
    Arne Vajh|+j <arne@vajhoej.dk> wrote:
    On 11/12/2025 8:04 AM, Dan Cross wrote:
    In article <10eok5t$2u3pu$1@dont-email.me>,
    Arne Vajh|+j <arne@vajhoej.dk> wrote:
    Rewriting the business application from one
    memory safe language (Java, C#, Python, Pascal

    Given the `POINTER` type, consequent support for type-casting
    pointers, and dynamic memory allocation, it's hard to understand
    how VSI Pascal can be considered meaningfully memory safe in the
    way that Rust or a managed language is.

    The US government considers Pascal a memory safe language.

    :-)

    Have you seen the state of my government recently? :-(

    But I think you are right about it being a bit questionable.

    I consider the 3 biggest memory unsafe problems to be:
    * no out of bounds check for array index
    * allowing use of deallocated memory
    * memory leak due to memory never being deallocated

    That's a decent starter list. I'd add not indirecting through
    uninitialized pointers. The second two are phrased in terms
    usually associated with dynamic memory allocation, but of course
    returning a pointer to a stack-allocated variable is a form of
    (2). And there are other problems, like trying to access and/or
    rely on the specific values of padding bytes between aligned
    data in a struct/record. Unconstrained pointer arithmetic, as
    in C, is a huge area of concern.

    I think it's debatable whether one does or should include some
    notion of concurrency in one's definition of memory safety, but
    it is an important area, so perhaps something about data races
    should be included here, as well.

    Anyway, my list is something like:

    1. Accessing uninitialized data
    2. Indirecting an invalid pointer (nil, uninitialized, dangling,
    misaligned, or pointing to an invalid object)
    3. Reading from/writing to memory before or after a valid object
    (note: an array is a valid object, so as long as they are
    also in the array, accessing the elements before or after
    some element is ok)
    4. Accessing an object after it is no longer in scope (note:
    this includes dynamically scoped objects, such as those that
    are heap allocated: so no use-after free, no double-frees,
    and so on. But this also applies to lexically and block
    scoped data, so no returning pointers to e.g. stack allocated
    variables, and no assigning pointers to block scoped
    variables and then indirecting them in the outer scope)
    5. Invalid accesses inside of a valid object (e.g., misaligned
    accesses, or trying to read padding bits, or partial reads
    spanning multiple fields in some way that is not
    architecturally valid)
    6. Writing to read-only data
    7. Unsynchronized accesses to read/write data

    Pascal only prevents the first not the other two.

    The other two are not as common in Pascal as in C,
    because dynamic memory allocation is not as common in
    Pascal as in C.

    Pascal is certainly an improvement over (at least) C and
    assembler languages in this domain: as I recall, it doesn't
    support arbitrary pointer arithmetic, and arrays are properly
    typed by including the array size in the type, and so on.

    But there is a lot more in this domain that is very important
    when considering overall memory safety that Pascal doesn't
    address.

    I did a quick check in my code repo and I use dynamic
    memory allocation in 25% of my C pieces but only in
    0.5% of my Pascal pieces. I am just one out of
    millions so it is obviously anecdotal only, but pretty
    big difference ...

    Anyway 1 fixed + 2 not fixed but rare is not really
    fixed.

    So I think you are right and the US government is wrong.

    :-)

    Yeah. That's about the long and short of it, unfortunately.

    I do not see a problem with the pointer type casts. If
    normal code is safe, then I think it is OK to have ways
    to workaround the safeness. Sometimes it is desirable
    and it is hopefully easy to identify usage of such
    constructs and require extra code review of such code.

    You certainly need some kind of escape hatch to write some kinds
    of programs. The issue is whether that's explicitly called out
    as "unsafe" at the language level, and in Pascal, it's just not.
    Trivially casting a pointer to an array of $n$ elements to an
    array of $n+k$ elements (or a record, or something else) without
    some indicator that there be dragons there isn't great.

    Another issue is whether the language can prevent this
    statically (that is, at compile time) or not. Consider
    out-of-bounds array accesses; if I use some arbitrary integer to
    index into an array, I am pretty much forced to check that at
    runtime. On the other hand, if the language supports iterators,
    then I can more or less guarantee at compile time that those are
    valid.

    Anyway, it's a big design space in languages, and one must admit
    that safety in this dimension exists along some spectrum; from
    trivially dangerous (C, assembler) to safe-by-default (Rust, Ada
    etc). Pascal is somewhere in the middle.

    - Dan C.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.os.vms on Sat Nov 15 15:10:21 2025
    From Newsgroup: comp.os.vms

    In article <10f35re$1q4rf$1@dont-email.me>,
    Brian Schenkenberger <mail@SendSpamHere.ORG> wrote:
    On 2025-11-12 13:04:23 +0000, Dan Cross said:

    I suspect that there is a lot of business code floating around
    in memory-unsafe languages (MACRO-32, Pascal, maybe COBOL if
    used in some odd ways) etc. Not to mention FFI calls from safe
    languages into unsafe code.

    What *exactly* is memory unsafe using Macro?

    Almost nothing about Macro is memory safe; almost everything is
    memory unsafe.

    Memory safety in this context has a definition (albeit a kind of
    loose one) and nothing about Macro aligns with that definition.

    You do realize that the lion's share of VMS is Macro???

    I don't see how that's relevant, though it _is_ a testament to
    the skill and professionalism of its authors that VMS works so
    well despite the inherent dangers of Macro as the implementation
    language.

    - Dan C.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Sat Nov 15 19:00:04 2025
    From Newsgroup: comp.os.vms

    On 11/15/2025 10:04 AM, Dan Cross wrote:
    In article <10f30sp$1koun$4@dont-email.me>,
    I consider the 3 biggest memory unsafe problems to be:
    * no out of bounds check for array index
    * allowing use of deallocated memory
    * memory leak due to memory never being deallocated

    Pascal only prevents the first not the other two.

    The other two are not as common in Pascal as in C,
    because dynamic memory allocation is not as common in
    Pascal as in C.

    Pascal is certainly an improvement over (at least) C and
    assembler languages in this domain: as I recall, it doesn't
    support arbitrary pointer arithmetic,

    Standard: no.

    VMS: only if jumping through hoops.

    Delphi: easy peasy.

    VMS code:

    program pasptr(input,output);

    type
    char_arr = packed array [1..3] of char;
    char_arr_ptr = ^char_arr;

    var
    p : char_arr_ptr;
    hack1, hack3 : char_arr_ptr;
    hack2, hack4 : [unsafe] char_arr_ptr;

    begin
    new(p);
    p^ := 'ABC';
    writeln(p^[1]);
    hack1 := (p::integer + 1)::char_arr_ptr;
    writeln(hack1^[1]);
    hack2 := p::integer + 2;
    writeln(hack2^[1]);
    hack3 := (iaddress(p^) + 1)::char_arr_ptr;
    writeln(hack3^[1]);
    hack4 := iaddress(p^) + 2;
    writeln(hack4^[1]);
    dispose(p);
    end.

    That code is screaming for a code review.

    Delphi code:

    program pasptr(input, output);

    var
    p : pchar;
    hack1, hack2 : pchar;

    begin
    GetMem(p, 3);
    p := 'ABC';
    writeln(p[0]);
    hack1 := p + 1;
    writeln(hack1[0]);
    hack2 := @p[0] + 2;
    writeln(hack2[0]);
    end.

    That code is C in Pascal.

    and arrays are properly
    typed by including the array size in the type, and so on.
    Either the dimension(s) is in the compile time declaration or
    passed at runtime.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Sat Nov 15 19:17:49 2025
    From Newsgroup: comp.os.vms

    On 11/15/2025 7:00 PM, Arne Vajh|+j wrote:
    Delphi code:

    program pasptr(input, output);

    var
    -a p : pchar;
    -a hack1, hack2 : pchar;

    begin

    Drop line below (it should not be there):

    -a GetMem(p, 3);
    -a p := 'ABC';
    -a writeln(p[0]);
    -a hack1 := p + 1;
    -a writeln(hack1[0]);
    -a hack2 := @p[0] + 2;
    -a writeln(hack2[0]);
    end.

    That code is C in Pascal.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@arne@vajhoej.dk to comp.os.vms on Sat Nov 15 20:02:04 2025
    From Newsgroup: comp.os.vms

    On 11/15/2025 10:04 AM, Dan Cross wrote:
    Anyway, it's a big design space in languages, and one must admit
    that safety in this dimension exists along some spectrum; from
    trivially dangerous (C, assembler) to safe-by-default (Rust, Ada
    etc). Pascal is somewhere in the middle.

    Yes. Pascal is strict but not nearly as strict as Ada.

    But besides what the compiler enforce, then VMS Pascal
    benefit from having a tradition for nice code.

    I just checked some of my VMS Pascal code. A little over 100
    files with a little over 7000 lines. Zero type casts and one
    UNSAFE (and that UNSAFE is for an alternate declaration for
    LBR$GET_HELP because the one in PASCAL$LBR_ROUTINES did not
    work for me).

    And my guess is that I am not atypical regarding use
    of type cast and UNSAFE in VMS Pascal.

    Arne

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Simon Clubley@clubley@remove_me.eisner.decus.org-Earth.UFP to comp.os.vms on Mon Nov 17 19:52:27 2025
    From Newsgroup: comp.os.vms

    On 2025-11-15, Dan Cross <cross@spitfire.i.gajendra.net> wrote:
    In article <10f30sp$1koun$4@dont-email.me>,
    Arne Vajh|+j <arne@vajhoej.dk> wrote:

    The US government considers Pascal a memory safe language.

    :-)

    Have you seen the state of my government recently? :-(


    You have a government ???

    I thought your people had elected a group of Feudal warlords who go
    on raiding parties to other countries to force them to pay tribute
    to your warlords to make up for the lack of investment in your country
    or its people by previous US governments over the last 20+ years.

    I also thought your Feudal warloads had a strategy of deliberately
    humilating those leaders and their countries in order to force their
    submission and to force them into paying tribute to your warlords.

    Your Feudal warlords also have developed a habit of breaking international agreements and alliances or just outright ignoring them.

    I also really hope for your sakes that your feudal warlords don't
    suddenly find themselves needing help from those other countries as
    they are far less likely to place their citizens in harm's way like
    they did after 9/11 in order to help your country.

    Sorry Dan, but after seeing the latest set of events, you just set me off.


    Pascal only prevents the first not the other two.

    The other two are not as common in Pascal as in C,
    because dynamic memory allocation is not as common in
    Pascal as in C.

    Pascal is certainly an improvement over (at least) C and
    assembler languages in this domain: as I recall, it doesn't
    support arbitrary pointer arithmetic, and arrays are properly
    typed by including the array size in the type, and so on.


    C and assembly language (Macro-32 in this case) are not at the
    same level when it comes to safety.

    Assembly language is much more dangerous than C because you can
    create vulnerabilities with it that even a C compiler has a good
    chance of stopping.

    Bliss, the other VMS system implementation language, I would place
    somewhere between Macro-32 and C in terms of safety.

    Simon.
    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.os.vms on Tue Nov 18 13:04:11 2025
    From Newsgroup: comp.os.vms

    In article <10ffudr$1233b$3@dont-email.me>,
    Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:
    On 2025-11-15, Dan Cross <cross@spitfire.i.gajendra.net> wrote:
    In article <10f30sp$1koun$4@dont-email.me>,
    Arne Vajh|+j <arne@vajhoej.dk> wrote:

    The US government considers Pascal a memory safe language.

    :-)

    Have you seen the state of my government recently? :-(

    You have a government ???

    I think we have a fascist proto-dictatorship at this point.

    I thought your people had elected a group of Feudal warlords who go
    on raiding parties to other countries to force them to pay tribute
    to your warlords to make up for the lack of investment in your country
    or its people by previous US governments over the last 20+ years.

    I also thought your Feudal warloads had a strategy of deliberately
    humilating those leaders and their countries in order to force their >submission and to force them into paying tribute to your warlords.

    Your Feudal warlords also have developed a habit of breaking international >agreements and alliances or just outright ignoring them.

    I also really hope for your sakes that your feudal warlords don't
    suddenly find themselves needing help from those other countries as
    they are far less likely to place their citizens in harm's way like
    they did after 9/11 in order to help your country.

    Sorry Dan, but after seeing the latest set of events, you just set me off.

    I mean, I don't want to devolve this into politics but this is
    not inaccurate.

    I would ask that you bear in mind that a) the majority of people
    did not vote for this fool (I certainly didn't). b) the US is
    highly political stratified at present; as much if not more so
    than immediately prior to the American civil war. c) we have
    systemic problems rooted in our founding and dating to our
    original sin (slavery, which gave rise to the electoral college)
    that have never been addressed. d) our opposition party is
    completely ineffective, and we seem completely unable to even
    begin to entertain the idea of a viable third party, perhaps due
    to the intrinsic structure of our government.

    There were some encouraging signs in the most recent elections,
    but I'm not sure we can vote our way out of this at this point.
    I strongly suspect a second American civil war will happen in my
    lifetime.

    - Dan C.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.os.vms on Tue Nov 18 13:06:05 2025
    From Newsgroup: comp.os.vms

    In article <10ffudr$1233b$3@dont-email.me>,
    Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:
    On 2025-11-15, Dan Cross <cross@spitfire.i.gajendra.net> wrote:
    [snip]

    Pascal only prevents the first not the other two.

    The other two are not as common in Pascal as in C,
    because dynamic memory allocation is not as common in
    Pascal as in C.

    Pascal is certainly an improvement over (at least) C and
    assembler languages in this domain: as I recall, it doesn't
    support arbitrary pointer arithmetic, and arrays are properly
    typed by including the array size in the type, and so on.

    C and assembly language (Macro-32 in this case) are not at the
    same level when it comes to safety.

    Assembly language is much more dangerous than C because you can
    create vulnerabilities with it that even a C compiler has a good
    chance of stopping.

    Bliss, the other VMS system implementation language, I would place
    somewhere between Macro-32 and C in terms of safety.

    Of course: these things are all on a spectrum, though I would
    assert that C is closer to assembler than it is to Pascal in
    terms of safety.

    - Dan C.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Dave Froble@davef@tsoft-inc.com to comp.os.vms on Sat Nov 29 19:09:04 2025
    From Newsgroup: comp.os.vms

    On 11/17/2025 2:52 PM, Simon Clubley wrote:
    On 2025-11-15, Dan Cross <cross@spitfire.i.gajendra.net> wrote:
    In article <10f30sp$1koun$4@dont-email.me>,
    Arne Vajh|a-+j <arne@vajhoej.dk> wrote:

    The US government considers Pascal a memory safe language.

    :-)

    Have you seen the state of my government recently? :-(


    You have a government ???

    I thought your people had elected a group of Feudal warlords who go
    on raiding parties to other countries to force them to pay tribute
    to your warlords to make up for the lack of investment in your country
    or its people by previous US governments over the last 20+ years.

    I also thought your Feudal warloads had a strategy of deliberately
    humilating those leaders and their countries in order to force their submission and to force them into paying tribute to your warlords.

    Your Feudal warlords also have developed a habit of breaking international agreements and alliances or just outright ignoring them.

    I also really hope for your sakes that your feudal warlords don't
    suddenly find themselves needing help from those other countries as
    they are far less likely to place their citizens in harm's way like
    they did after 9/11 in order to help your country.

    Simon.


    Nice rant Simon, but you forgot some things.

    You forgot the gestapo running around arresting US citizens without regard to the US constitution.

    You forgot the Hitler wanna-be suggesting executing members of congress.

    I also am forgetting many more things ...
    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Dave Froble@davef@tsoft-inc.com to comp.os.vms on Sat Nov 29 19:17:51 2025
    From Newsgroup: comp.os.vms

    On 11/12/2025 6:39 PM, Brian Schenkenberger wrote:
    On 2025-11-12 13:04:23 +0000, Dan Cross said:

    I suspect that there is a lot of business code floating around
    in memory-unsafe languages (MACRO-32, Pascal, maybe COBOL if
    used in some odd ways) etc. Not to mention FFI calls from safe
    languages into unsafe code.

    What *exactly* is memory unsafe using Macro? You do realize that the lion's share of VMS is Macro???

    rCo VAXman


    Well ....

    From what I've read, Macro-32 is down to 33% or less these days, and shrinking.

    I'm not really sure just what "memory unsafe" means. Nor is "idiot safe" something that can be enforced in any language.

    Good code is relatively safe, but not always. I defy anyone to mention any language in which I cannot do something stupid. Might exist, but I can really be very stupid.
    --
    David Froble Tel: 724-529-0450
    Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
    DFE Ultralights, Inc.
    170 Grimplin Road
    Vanderbilt, PA 15486
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From antispam@antispam@fricas.org (Waldek Hebisch) to comp.os.vms on Sun Nov 30 23:00:29 2025
    From Newsgroup: comp.os.vms

    Dave Froble <davef@tsoft-inc.com> wrote:
    On 11/12/2025 6:39 PM, Brian Schenkenberger wrote:
    On 2025-11-12 13:04:23 +0000, Dan Cross said:

    I suspect that there is a lot of business code floating around
    in memory-unsafe languages (MACRO-32, Pascal, maybe COBOL if
    used in some odd ways) etc. Not to mention FFI calls from safe
    languages into unsafe code.

    What *exactly* is memory unsafe using Macro? You do realize that the lion's >> share of VMS is Macro???

    rCo VAXman


    Well ....

    From what I've read, Macro-32 is down to 33% or less these days, and shrinking.

    I'm not really sure just what "memory unsafe" means. Nor is "idiot safe" something that can be enforced in any language.

    Good code is relatively safe, but not always. I defy anyone to mention any language in which I cannot do something stupid. Might exist, but I can really
    be very stupid.

    The point is what happens when you have bugs. In memory-unsafe languages typically attacker who can control data sent to your program can take
    control of the program. Memory-safe languages are supposed to put
    limits on what can happen. If say banking program has a bug in withdrawal routine, then attacker may be able to do illegal withdrawals. But
    other parts, like authentication, logging, etc, are supposed to
    work. So in well designed banking software guilty party will leave
    traces and there is good chance that law enforement will catch
    them. In program written in memory-unsafe language attacker usually
    can take control of the whole program and say delete logs, change authentication tokens to gain future access or attack something
    else from "inside", theat is feed malicious date to other programs
    which are supposed to only get trusted data, so may be easier to
    break.

    Many years ago I was marginally involved in a security alert.
    Compiler user reported that compiler was crashing on specific
    input. I investigated and tracked problem to generated parser.
    The parser was table-driven and tables were specific to the
    compiler. Driving code ("skeleton") was provided by the parser
    generator. This code had to allocate data on parser stack.
    Logic was rather twisty and on each relevant path skeleton code
    was supposed to check that there is enough space on the stack.
    But authors of the skeleton got it wrong in one case: generated
    paser could access one item beyond the end of area allocated
    for the stack. IIRC the check used equality, once you were
    one item beyond end the check was ineffective.

    I passed info to the maintainers of the parser generator. In
    short time security people got involved and there was an alert
    (CVE). Security disscussion was in private and I did not see
    details. But I learned later that security folks managed to
    exploit the bug so that using maliciuous data they could gain
    control of program using generated parser. Such things are
    supposed to be impossible in memory-safe language. That is,
    when out of memory the program is supposed to reliably crash,
    without any chance of attacker taking control.
    --
    Waldek Hebisch
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.os.vms on Mon Dec 1 16:08:10 2025
    From Newsgroup: comp.os.vms

    In article <10gg2do$3s891$1@dont-email.me>,
    Dave Froble <davef@tsoft-inc.com> wrote:
    On 11/12/2025 6:39 PM, Brian Schenkenberger wrote:
    On 2025-11-12 13:04:23 +0000, Dan Cross said:

    I suspect that there is a lot of business code floating around
    in memory-unsafe languages (MACRO-32, Pascal, maybe COBOL if
    used in some odd ways) etc. Not to mention FFI calls from safe
    languages into unsafe code.

    What *exactly* is memory unsafe using Macro? You do realize that the lion's >> share of VMS is Macro???

    Well ....

    From what I've read, Macro-32 is down to 33% or less these days, and shrinking.

    I'm not really sure just what "memory unsafe" means.

    Generally what this means is that a well-defined program cannot
    make an errant memory access: access to some sized datum will be
    appropritely sized; no dangling pointers; no access through
    uninitialized pointers; no double-frees or NULL dereferences; no
    accesses beyond the end of an array, or before it. In Unix
    terms, this would mean that it won't do something that would
    generate a SIGSEGV or SIGBUS.

    A number of languages can and do make these guarantees; many of
    these languages have an unsafe superset that serves as an escape
    hatch for people who need to do things that would otherwise be
    unrepresentable, but in general, "memory safe" languages prevent
    the programmer from making memory-related mistakes. Clearly, in
    order to do this, the language has to have some notion of types.

    Macro-32, as an assembly langauge, is obviously not memory safe
    in this way: if I MOVL something into R0, the language doesn't
    know whether that's a pointer or just a number. Perhaps a super
    advanced static analyzer could do ok tracing subsequent
    instructions to determing whether accesses make sense, but so
    much semantic information is missing that it is hard to imagine
    how it might meaningfully analyze the program to determine
    whether it's accessing memory safely or not.

    Nor is "idiot safe"
    something that can be enforced in any language.

    100% this. We can make languages _safer_ by making some things
    safe, but we can't make them completely bug-free. I don't know
    that anyone is trying to do that, but a lot of resistance to
    say, memory safe languages seems to be from people who conflate
    the two. However, memory safety eliminates entire categories of
    common bugs.

    Same thing with static typing; I once fixed a production outage
    in a Common Lisp program that passed a list to a function that
    expected a fixnum. But in a language with a strong, static type
    system, that would have been a compile-time error.

    Good code is relatively safe, but not always. I defy anyone to mention any >language in which I cannot do something stupid. Might exist, but I can really
    be very stupid.

    Such a language does not exist. Overall, the thing is sort of
    like solving the halting problem: we know that we cannot solve
    "THE" halting problem in general, but `for(;;);` pretty
    obviously doesn't halt and is easy to detect in a program. So
    we _can_ detect and solve any number of _instances_ of the
    halting problem. So it is with safer languages: we can't
    prevent all bugs, but we can detect and prevent a lot of them,
    and if we do that in important or common areas, and the language
    isn't _too_ onerus as a result, that's a net win.

    Btw, I've found that programmer reactions to these sorts of
    things tend to follow one of two tracks: either enthusiastic
    endorsement ("yes! free me from myself!") or derisive
    condescention ("I don't need that trash; I already write correct
    programs!"). Of course there's some nuance in here I'm eliding,
    but in terms of these broad categories, I tend to find the
    better programmers falling into the former group.

    - Dan C.

    --- Synchronet 3.21a-Linux NewsLink 1.2