• VMS Pascal article

    From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to All on Wed Jan 1 11:12:57 2025
    VMS Pascal for C/Java/C# programmers:
    https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Chris Townley on Wed Jan 1 11:39:56 2025
    On 1/1/2025 11:31 AM, Chris Townley wrote:
    On 01/01/2025 16:12, Arne Vajhøj wrote:
    VMS Pascal for C/Java/C# programmers:
          https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    Interesting - many thanks
    I was surprised to see that Pascal was created in 2970!

    Ooops. Let me fix that.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris Townley@21:1/5 to All on Wed Jan 1 16:31:53 2025
    On 01/01/2025 16:12, Arne Vajhøj wrote:
    VMS Pascal for C/Java/C# programmers:
         https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    Arne

    Interesting - many thanks
    I was surprised to see that Pascal was created in 2970!

    --
    Chris

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dennis Boone@21:1/5 to All on Wed Jan 1 18:50:55 2025
    I was surprised to see that Pascal was created in 2970!

    In the year 3535, if Wirth is still alive...

    De

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marc Van Dyck@21:1/5 to All on Thu Jan 2 11:01:50 2025
    Arne Vajhj has brought this to us :
    VMS Pascal for C/Java/C# programmers:
    https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    Arne

    I like it.

    In the first section, you might also mention that VMS Pascal has
    excellent support in LSE/SCA - for those who still use DECset...

    Didn't see anything about the VARYING type and its so useful
    <varying>.BODY and <varying>.LENGTH functions, as well as READV and
    WRITEV. Probably the most important things to know if you have to
    manipulate character strings.

    May be also mention that the VMS Pascal compiler comes with declaration
    modules for all VMS system services and RTLs. Combined with LSE/SCA
    support, this makes system programming extremely easy.

    Ah, and also, good support of VMS Pascal by SDL...

    --
    Marc Van Dyck

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Marc Van Dyck on Thu Jan 2 17:19:14 2025
    On 1/2/2025 5:01 AM, Marc Van Dyck wrote:
    Arne Vajhøj has brought this to us :
    VMS Pascal for C/Java/C# programmers:
          https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    In the first section, you might also mention that VMS Pascal has
    excellent support in LSE/SCA - for those who still use DECset...

    Added something about choices for editor.

    Didn't see anything about the VARYING type and its so useful
    <varying>.BODY and <varying>.LENGTH functions, as well as READV and
    WRITEV. Probably the most important things to know if you have to
    manipulate character strings.

    May be also mention that the VMS Pascal compiler comes with declaration modules for all VMS system services and RTLs. Combined with LSE/SCA
    support, this makes system programming extremely easy.

    Added mention of SYS$LIBRARY:STARLET and SYS$LIBRARY:LIB$ROUTINES and
    added example making 3 simple LIB$ calls.

    And used that to show and explain .BODY and .LENGTH, which made
    sense to me because that is where I typical use them.

    Ah, and also, good support of VMS Pascal by SDL...

    Too advanced for me.

    :-)

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to All on Fri Jan 3 00:34:04 2025
    On Thu, 2 Jan 2025 17:19:14 -0500, Arne Vajhøj wrote:

    On 1/2/2025 5:01 AM, Marc Van Dyck wrote:

    Ah, and also, good support of VMS Pascal by SDL...

    Too advanced for me.

    SDL is just the common language used for defining interfaces. That’s how files like STARLET.PAS get automatically generated.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Lawrence D'Oliveiro on Thu Jan 2 20:49:43 2025
    On 1/2/2025 7:34 PM, Lawrence D'Oliveiro wrote:
    On Thu, 2 Jan 2025 17:19:14 -0500, Arne Vajhøj wrote:
    On 1/2/2025 5:01 AM, Marc Van Dyck wrote:
    Ah, and also, good support of VMS Pascal by SDL...

    Too advanced for me.

    SDL is just the common language used for defining interfaces. That’s how files like STARLET.PAS get automatically generated.

    I know what it is is. Otherwise I could not have commented on
    the level.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to All on Thu Jan 2 20:52:10 2025
    On 1/2/2025 5:19 PM, Arne Vajhøj wrote:
    On 1/2/2025 5:01 AM, Marc Van Dyck wrote:
    Ah, and also, good support of VMS Pascal by SDL...

    Too advanced for me.

    :-)

    But speaking of SDL.

    Does anybody know what VSI's plan is for SDL on VMS x86-64?
    Rewrite?

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to All on Fri Jan 3 02:53:16 2025
    On Thu, 2 Jan 2025 20:49:43 -0500, Arne Vajhøj wrote:

    On 1/2/2025 7:34 PM, Lawrence D'Oliveiro wrote:

    On Thu, 2 Jan 2025 17:19:14 -0500, Arne Vajhøj wrote:

    On 1/2/2025 5:01 AM, Marc Van Dyck wrote:
    Ah, and also, good support of VMS Pascal by SDL...

    Too advanced for me.

    SDL is just the common language used for defining interfaces. That’s
    how files like STARLET.PAS get automatically generated.

    I know what it is is.

    It’s also not that hard to understand, if you take the “Rosetta Stone” approach of looking at the original SDL source and comparing with its
    output for a particular language that you know.

    There was also one called MDL, if I recall rightly, which looked like it
    was more on the MACRO level.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Robert A. Brooks@21:1/5 to Lawrence D'Oliveiro on Thu Jan 2 22:30:36 2025
    On 1/2/2025 9:53 PM, Lawrence D'Oliveiro wrote:
    On Thu, 2 Jan 2025 20:49:43 -0500, Arne Vajhøj wrote:

    On 1/2/2025 7:34 PM, Lawrence D'Oliveiro wrote:

    On Thu, 2 Jan 2025 17:19:14 -0500, Arne Vajhøj wrote:

    On 1/2/2025 5:01 AM, Marc Van Dyck wrote:
    Ah, and also, good support of VMS Pascal by SDL...

    Too advanced for me.

    SDL is just the common language used for defining interfaces. That’s
    how files like STARLET.PAS get automatically generated.

    I know what it is is.

    It’s also not that hard to understand, if you take the “Rosetta Stone” approach of looking at the original SDL source and comparing with its
    output for a particular language that you know.

    There was also one called MDL, if I recall rightly, which looked like it
    was more on the MACRO level.

    Depending on whom you ask, it was either Module or Maynard Definition Language.

    --
    --- Rob

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Robert A. Brooks@21:1/5 to All on Thu Jan 2 22:29:19 2025
    On 1/2/2025 8:52 PM, Arne Vajhøj wrote:
    On 1/2/2025 5:19 PM, Arne Vajhøj wrote:
    On 1/2/2025 5:01 AM, Marc Van Dyck wrote:
    Ah, and also, good support of VMS Pascal by SDL...

    Too advanced for me.

    :-)

    But speaking of SDL.

    Does anybody know what VSI's plan is for SDL on VMS x86-64?
    Rewrite?

    It's written in C++ so we were waiting for a native C++ compiler.

    As it turns out, SDL uncovered some dark areas of the compiler that needed addressing.

    We have a working SDL on X86 now.


    --

    --- Rob

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Robert A. Brooks on Thu Jan 2 22:32:21 2025
    On 1/2/2025 10:29 PM, Robert A. Brooks wrote:
    On 1/2/2025 8:52 PM, Arne Vajhøj wrote:
    On 1/2/2025 5:19 PM, Arne Vajhøj wrote:
    On 1/2/2025 5:01 AM, Marc Van Dyck wrote:
    Ah, and also, good support of VMS Pascal by SDL...

    Too advanced for me.

    :-)

    But speaking of SDL.

    Does anybody know what VSI's plan is for SDL on VMS x86-64?
    Rewrite?

    It's written in C++ so we were waiting for a native C++ compiler.

    As it turns out, SDL uncovered some dark areas of the compiler that needed addressing.

    We have a working SDL on X86 now.

    I thought it was PL/I. Which is why I asked.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Robert A. Brooks@21:1/5 to All on Thu Jan 2 22:48:35 2025
    On 1/2/2025 10:32 PM, Arne Vajhøj wrote:
    On 1/2/2025 10:29 PM, Robert A. Brooks wrote:
    On 1/2/2025 8:52 PM, Arne Vajhøj wrote:
    On 1/2/2025 5:19 PM, Arne Vajhøj wrote:
    On 1/2/2025 5:01 AM, Marc Van Dyck wrote:
    Ah, and also, good support of VMS Pascal by SDL...

    Too advanced for me.

    :-)

    But speaking of SDL.

    Does anybody know what VSI's plan is for SDL on VMS x86-64?
    Rewrite?

    It's written in C++ so we were waiting for a native C++ compiler.

    As it turns out, SDL uncovered some dark areas of the compiler that needed >> addressing.

    We have a working SDL on X86 now.

    I thought it was PL/I. Which is why I asked.

    Rewritten in the early 2000's.

    --

    --- Rob

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Meyer@21:1/5 to All on Fri Jan 3 20:52:59 2025
    You wrote it for me! Many thanks. It looks like a very useful document.

    --
    David Meyer
    Takarazuka, Japan
    papa@sdf.org

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to arne@vajhoej.dk on Fri Jan 3 13:10:03 2025
    On 2025-01-02, Arne Vajhj <arne@vajhoej.dk> wrote:
    On 1/2/2025 7:34 PM, Lawrence D'Oliveiro wrote:
    On Thu, 2 Jan 2025 17:19:14 -0500, Arne Vajhj wrote:
    On 1/2/2025 5:01 AM, Marc Van Dyck wrote:
    Ah, and also, good support of VMS Pascal by SDL...

    Too advanced for me.

    SDL is just the common language used for defining interfaces. That?s how
    files like STARLET.PAS get automatically generated.

    I know what it is is. Otherwise I could not have commented on
    the level.


    The open source ecosystem equivalent is called swig, which comes across
    as much more flexible than SDL:

    https://www.swig.org/tutorial.html

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Robert A. Brooks on Fri Jan 3 07:59:58 2025
    On 1/2/2025 10:48 PM, Robert A. Brooks wrote:
    On 1/2/2025 10:32 PM, Arne Vajhøj wrote:
    On 1/2/2025 10:29 PM, Robert A. Brooks wrote:
    On 1/2/2025 8:52 PM, Arne Vajhøj wrote:
    But speaking of SDL.

    Does anybody know what VSI's plan is for SDL on VMS x86-64?
    Rewrite?

    It's written in C++ so we were waiting for a native C++ compiler.

    As it turns out, SDL uncovered some dark areas of the compiler that
    needed
    addressing.

    We have a working SDL on X86 now.

    I thought it was PL/I. Which is why I asked.

    Rewritten in the early 2000's.

    Ah. So it was rewritten for Itanium instead of being AEST'ed.

    I wonder whether it was because someone at HP decided
    to do the right thing or because AEST couldn't handle
    it.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to arne@vajhoej.dk on Fri Jan 3 15:11:43 2025
    In article <vl3pi8$2r2sr$1@dont-email.me>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:
    VMS Pascal for C/Java/C# programmers:
    https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    You should get a native English speaker to edit for grammar.

    C supports 'long double' which _may_ be the same as
    `quadruple`, depending on the implementation, though
    that's usually 80-bit floats. There is also _Float128,
    _Quad, and __float128.

    You mention `packed array` for dealing with character data,
    but mention the usual, non-packed variant only in passing
    later. It may be useful to explain the difference and why
    it matters: `packed` originated on the CDC6500, where Wirth
    wanted to fit multiple values into a machine word (that
    was a word-oriented machine). You curiously don't mention
    the String type at all. From https://docs.vmssoftware.com/vsi-pascal-for-openvms-reference-manual/#STRING_TYPES_SEC:

    |The STRING types provide a standard way for you to specify
    |storage for varying-length character strings with a maximum
    |length that can be specified at run time.

    When discussing comparisons to other languages, you seem to
    lump C, Java, and C# all in the same general bucket, which is
    odd. Java and C# are closer to one another, but compared to
    C they support rather different programming paradigms (OO and
    some functional versus strictly procedural, or pseudo-OO
    implemented by the programmer). It would be useful to state
    clearly that VSI Pascal is a procedural language.

    You write this:

    |Pascal has pointers, but Pascal pointers are more like
    |Java/C# references than C pointers.
    |
    |Pascal pointers can be used to allocate, to reference the
    |allocated and to free the allocated. No fancy pointer arithmetic.

    Don't bury the lede: if you're going to say that Pascal pointers
    are "more like Java/C# references than C pointers" then say why
    immediately, don't wait until the second sentence of the next
    paragraph.

    Also, "Pascal pointers can be used to allocate" doesn't make
    much sense. Pointers can be used to point to allocated storage,
    sure, but they are not themselves a memory allocator.

    Here's a potential rewrite:

    |Pascal has pointers: they can be null, and can point to
    |allocated storage. But unlike C, they do not support pointer
    |arithmetic. In this sense, they are closer to references in
    |Java and C#.

    I would not say that 'chr' and 'ord' are like casts in C.
    Pascal is strongly, statically typed; C is weakly typed with
    implicit conversions. Conversion between characters and integer
    types in Pascal is an explicit operation, but `int c = 'a' + 1;`
    is perfectly legal in C.

    You give two C equivalents of, `round`: `lround` and
    `ceil(v + 0.5)`. Surely the latter should be `trunc(v + 0.5)`:

    term% cat d.c
    #include <stdio.h>
    #include <math.h>

    int
    main()
    {
    printf("ceil(0.2 + 0.5) = %g\n", ceil(0.2 + 0.5));
    printf("ceil(0.6 + 0.5) = %g\n", ceil(0.6 + 0.5));
    printf("trunc(0.6 + 0.5) = %g\n", trunc(0.6 + 0.5));
    return 0;
    }
    term% make d
    cc d.c -o d
    : chandra; ./d
    ceil(0.2 + 0.5) = 1
    ceil(0.6 + 0.5) = 2
    trunc(0.6 + 0.5) = 1
    term%

    But, consider negative numbers, and note that one would still
    have to do a conversion to an integer type.

    Similarly, Java's `Math.ceil` is not the same as Pascal's
    `trunc`, unless the number is negative, and again there's the
    integer conversion to consider.

    Your C equivalent of `substr` is not correct; exercise left to
    the reader (consider what happens when `ix` is beyond the end of
    the string). For that matter, this is true of the VSI Pascal
    example as well: you should specify the preconditions that must
    be true.

    You may want to mention that strings are origin 1, not origin 0,
    as in most syntactically C-like languages. Also, array bounds
    are inclusive in Pascal, unlike in C et al where the upper bound
    is exclusive: `array [0..10] of integer` has 11 elements in
    Pascal, while `array [1..10] of integer` has 10.

    `readln` and `fgets` are not similar in that `readln` strips the
    line ending sequence, and `fgets` does not.

    `f = fopen,fnm "r");` is an obvious typo.
    `while not eof(f)) do` is an obvious typo.

    You might want to mention what `reset` and `rewrite` do. You
    might want to mention `extend` and compare to `fopen(..., "a")`
    or whatever.

    You may want to mention that Pascal, the semicolon is a
    statement separator, not a terminator, and hence why the last
    "END" in the protocol is followed by "." and not ";".

    The structure you present at the end as "equivalent" of a
    varying character array is not correct. `integer16` is a signed
    type, with a maximum value of 32,767. The length field for a
    `varying [n] of char` is an integer subrange type with word
    representation. That is, `length` is unsigned 0..max, where max
    is <= 65,535.

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Robert A. Brooks@21:1/5 to All on Fri Jan 3 09:30:37 2025
    On 1/3/2025 7:59 AM, Arne Vajhøj wrote:
    On 1/2/2025 10:48 PM, Robert A. Brooks wrote:
    On 1/2/2025 10:32 PM, Arne Vajhøj wrote:

    I thought it was PL/I. Which is why I asked.

    Rewritten in the early 2000's.

    Ah. So it was rewritten for Itanium instead of being AEST'ed.

    I wonder whether it was because someone at HP decided
    to do the right thing or because AEST couldn't handle
    it.

    I am not aware of an attempt to AEST it; it was rewritten
    by Walter Breu (sp?) of HP Germany. He was not in VMS Engineering,
    so I wasn't paying a lot of attention when he was doing the work.

    Pretty sure it was part of the "get rid of all PL/I" initiative.

    --

    --- Rob

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dan Cross on Fri Jan 3 11:45:59 2025
    On 1/3/2025 10:11 AM, Dan Cross wrote:
    In article <vl3pi8$2r2sr$1@dont-email.me>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:
    VMS Pascal for C/Java/C# programmers:
    https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    C supports 'long double' which _may_ be the same as
    `quadruple`, depending on the implementation, though
    that's usually 80-bit floats.

    Very good point. It is 128 bit on VMS unless using /L_DOUBLE=64.

    Added.

    I would not say that 'chr' and 'ord' are like casts in C.
    Pascal is strongly, statically typed; C is weakly typed with
    implicit conversions. Conversion between characters and integer
    types in Pascal is an explicit operation, but `int c = 'a' + 1;`
    is perfectly legal in C.

    It was the best explanation I could come up with.

    You give two C equivalents of, `round`: `lround` and
    `ceil(v + 0.5)`. Surely the latter should be `trunc(v + 0.5)`:

    Ooops. All ceil should be floor.

    Fixed.

    But, consider negative numbers,

    Very good point.

    I have added notes.

    and note that one would still
    have to do a conversion to an integer type.

    Yes.

    Fixed.

    Your C equivalent of `substr` is not correct; exercise left to
    the reader (consider what happens when `ix` is beyond the end of
    the string). For that matter, this is true of the VSI Pascal
    example as well: you should specify the preconditions that must
    be true.

    Invalid index or length causes an exception in VMS Pascal.

    But I don't want to get into that level of detail.

    `readln` and `fgets` are not similar in that `readln` strips the
    line ending sequence, and `fgets` does not.

    Close enough for the purpose of this article.


    `f = fopen,fnm "r");` is an obvious typo.
    `while not eof(f)) do` is an obvious typo.

    Fixed.

    You may want to mention that Pascal, the semicolon is a
    statement separator, not a terminator, and hence why the last
    "END" in the protocol is followed by "." and not ";".

    The article is more what to do than why to do that.

    The structure you present at the end as "equivalent" of a
    varying character array is not correct. `integer16` is a signed
    type, with a maximum value of 32,767. The length field for a
    `varying [n] of char` is an integer subrange type with word
    representation. That is, `length` is unsigned 0..max, where max
    is <= 65,535.

    Ooops.

    You are right.

    I was sure that the limit was 32K but it is 64K.

    Fixed.

    And also fixed in the description of VARYING further up.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to arne@vajhoej.dk on Fri Jan 3 18:17:25 2025
    In article <67781447$0$711$14726298@news.sunsite.dk>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/3/2025 10:11 AM, Dan Cross wrote:
    In article <vl3pi8$2r2sr$1@dont-email.me>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:
    VMS Pascal for C/Java/C# programmers:
    https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    C supports 'long double' which _may_ be the same as
    `quadruple`, depending on the implementation, though
    that's usually 80-bit floats.

    Very good point. It is 128 bit on VMS unless using /L_DOUBLE=64.

    Added.

    I would not say that 'chr' and 'ord' are like casts in C.
    Pascal is strongly, statically typed; C is weakly typed with
    implicit conversions. Conversion between characters and integer
    types in Pascal is an explicit operation, but `int c = 'a' + 1;`
    is perfectly legal in C.

    It was the best explanation I could come up with.

    Why not simply say that Pascal is strongly typed, and C is not?
    Conversion from a Pascal character to an integer type requires
    using an explicit conversion operation; in C you don't, though
    one may cast.

    You give two C equivalents of, `round`: `lround` and
    `ceil(v + 0.5)`. Surely the latter should be `trunc(v + 0.5)`:

    Ooops. All ceil should be floor.

    Fixed.

    But, consider negative numbers,

    Very good point.

    I have added notes.

    and note that one would still
    have to do a conversion to an integer type.

    Yes.

    Fixed.

    Your C equivalent of `substr` is not correct; exercise left to
    the reader (consider what happens when `ix` is beyond the end of
    the string). For that matter, this is true of the VSI Pascal
    example as well: you should specify the preconditions that must
    be true.

    Invalid index or length causes an exception in VMS Pascal.

    But I don't want to get into that level of detail.

    *Shrug* it's your document, but in C that'll just be UB.

    `readln` and `fgets` are not similar in that `readln` strips the
    line ending sequence, and `fgets` does not.

    Close enough for the purpose of this article.

    Perhaps. I may be worth an asterisk, as often C programmers
    will want to write:

    while ((s = fgets(s, len, fp)) != NULL) {
    char *nl = strchr(s, '\n');
    if (nl != NULL)
    *nl = '\0';
    }

    Which is a bit more cumbersome than the Pascal equivalent. When
    carriage returns get mixed in, it gets even nastier, so much so
    that one may just write a helper function to deal with it.

    `f = fopen,fnm "r");` is an obvious typo.
    `while not eof(f)) do` is an obvious typo.

    Fixed.

    Fixed, but the comparison to C is slightly wrong:

    `while not(eof(f)) do` is not exactly the same as
    `while(!feof(f))`. In particular, while in VSI Pascal `EOF(f)`
    will be true on the first iteration of the loop if `f` is empty,
    the same is not true for `feof` from stdio: in order for `feof`
    to be true, stdio must observe the end-of-file condition of `f`
    via some input operation. This leads to awkward code sequences
    like this:

    ch = fgetc(fp);
    while (!feof(fp)) {
    /*
    * Do something with `ch`
    * ...
    */
    ch = fgetc(fp);
    }

    You may want to mention that Pascal, the semicolon is a
    statement separator, not a terminator, and hence why the last
    "END" in the protocol is followed by "." and not ";".

    The article is more what to do than why to do that.

    It's actually a rather important syntactical detail of the
    language, and the reason one can often omit semi-colons in
    surprising ways. It's the reason one can write, e.g.:

    if foo <> 0 then x := 1 else y := 2;

    But hey, it's your document.

    The structure you present at the end as "equivalent" of a
    varying character array is not correct. `integer16` is a signed
    type, with a maximum value of 32,767. The length field for a
    `varying [n] of char` is an integer subrange type with word
    representation. That is, `length` is unsigned 0..max, where max
    is <= 65,535.

    Ooops.

    You are right.

    I was sure that the limit was 32K but it is 64K.

    Fixed.

    And also fixed in the description of VARYING further up.

    You should seriously mention the STRING type, though.

    I would also seriously recommend revising the section on
    pointers.

    Also, it's a bit of a bummer that you didn't mention nested functions/procedures, which are among the cooler aspects of the
    language:

    $ type foo.pas
    (* foo *)
    program foo(output);
    procedure hello;
    procedure world(var who: String);
    function punct: char;
    begin
    punct := '!'
    end;
    begin
    who := 'World' + punct
    end;
    var
    who: String (10);
    begin
    world(who);
    writeln('Hello, ', who)
    end;
    begin
    hello
    end.
    $ pascal foo.pas
    $ link foo
    $ run foo
    Hello, World!
    $

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to arne@vajhoej.dk on Fri Jan 3 18:51:37 2025
    In article <vl9aln$o72$1@dont-email.me>, Arne Vajhøj <arne@vajhoej.dk> wrote: >On 1/3/2025 1:17 PM, Dan Cross wrote:
    In article <67781447$0$711$14726298@news.sunsite.dk>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/3/2025 10:11 AM, Dan Cross wrote:
    `readln` and `fgets` are not similar in that `readln` strips the
    line ending sequence, and `fgets` does not.

    Close enough for the purpose of this article.

    Perhaps. I may be worth an asterisk, as often C programmers
    will want to write:

    while ((s = fgets(s, len, fp)) != NULL) {
    char *nl = strchr(s, '\n');
    if (nl != NULL)
    *nl = '\0';
    }

    Which is a bit more cumbersome than the Pascal equivalent. When
    carriage returns get mixed in, it gets even nastier, so much so
    that one may just write a helper function to deal with it.

    I think you are right. I have added a note.

    `f = fopen,fnm "r");` is an obvious typo.
    `while not eof(f)) do` is an obvious typo.

    Fixed.

    Fixed, but the comparison to C is slightly wrong:

    `while not(eof(f)) do` is not exactly the same as
    `while(!feof(f))`. In particular, while in VSI Pascal `EOF(f)`
    will be true on the first iteration of the loop if `f` is empty,
    the same is not true for `feof` from stdio: in order for `feof`
    to be true, stdio must observe the end-of-file condition of `f`
    via some input operation. This leads to awkward code sequences
    like this:

    ch = fgetc(fp);
    while (!feof(fp)) {
    /*
    * Do something with `ch`
    * ...
    */
    ch = fgetc(fp);
    }

    C feof is a crap function.

    I think I will drop feof completely and add fgetc
    not returning EOF. I already have fgets not returning NULL.

    The structure you present at the end as "equivalent" of a
    varying character array is not correct. `integer16` is a signed
    type, with a maximum value of 32,767. The length field for a
    `varying [n] of char` is an integer subrange type with word
    representation. That is, `length` is unsigned 0..max, where max
    is <= 65,535.

    Ooops.

    You are right.

    I was sure that the limit was 32K but it is 64K.

    Fixed.

    And also fixed in the description of VARYING further up.

    You should seriously mention the STRING type, though.

    I think VARYING OF CHAR is what is used most in VMS Pascal.

    Weird; I can't imagine why. Regardless, it may be worthwhile to
    at least mention it, since you state explicitly that there are
    three types for representing textual, string-like data, but
    VSI's documentation makes it clear that there are actually four.

    Also, it's a bit of a bummer that you didn't mention nested
    functions/procedures, which are among the cooler aspects of the
    language:

    $ type foo.pas
    (* foo *)
    program foo(output);
    procedure hello;
    procedure world(var who: String);
    function punct: char;
    begin
    punct := '!'
    end;
    begin
    who := 'World' + punct
    end;
    var
    who: String (10);
    begin
    world(who);
    writeln('Hello, ', who)
    end;
    begin
    hello
    end.

    There is already an example. fac is inside testfac.

    I will add a note about it.

    Ah, I see it now; the lack of indentation makes it hard to spot.

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dan Cross on Fri Jan 3 13:35:35 2025
    On 1/3/2025 1:17 PM, Dan Cross wrote:
    In article <67781447$0$711$14726298@news.sunsite.dk>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/3/2025 10:11 AM, Dan Cross wrote:
    `readln` and `fgets` are not similar in that `readln` strips the
    line ending sequence, and `fgets` does not.

    Close enough for the purpose of this article.

    Perhaps. I may be worth an asterisk, as often C programmers
    will want to write:

    while ((s = fgets(s, len, fp)) != NULL) {
    char *nl = strchr(s, '\n');
    if (nl != NULL)
    *nl = '\0';
    }

    Which is a bit more cumbersome than the Pascal equivalent. When
    carriage returns get mixed in, it gets even nastier, so much so
    that one may just write a helper function to deal with it.

    I think you are right. I have added a note.

    `f = fopen,fnm "r");` is an obvious typo.
    `while not eof(f)) do` is an obvious typo.

    Fixed.

    Fixed, but the comparison to C is slightly wrong:

    `while not(eof(f)) do` is not exactly the same as
    `while(!feof(f))`. In particular, while in VSI Pascal `EOF(f)`
    will be true on the first iteration of the loop if `f` is empty,
    the same is not true for `feof` from stdio: in order for `feof`
    to be true, stdio must observe the end-of-file condition of `f`
    via some input operation. This leads to awkward code sequences
    like this:

    ch = fgetc(fp);
    while (!feof(fp)) {
    /*
    * Do something with `ch`
    * ...
    */
    ch = fgetc(fp);
    }

    C feof is a crap function.

    I think I will drop feof completely and add fgetc
    not returning EOF. I already have fgets not returning NULL.

    The structure you present at the end as "equivalent" of a
    varying character array is not correct. `integer16` is a signed
    type, with a maximum value of 32,767. The length field for a
    `varying [n] of char` is an integer subrange type with word
    representation. That is, `length` is unsigned 0..max, where max
    is <= 65,535.

    Ooops.

    You are right.

    I was sure that the limit was 32K but it is 64K.

    Fixed.

    And also fixed in the description of VARYING further up.

    You should seriously mention the STRING type, though.

    I think VARYING OF CHAR is what is used most in VMS Pascal.

    Also, it's a bit of a bummer that you didn't mention nested functions/procedures, which are among the cooler aspects of the
    language:

    $ type foo.pas
    (* foo *)
    program foo(output);
    procedure hello;
    procedure world(var who: String);
    function punct: char;
    begin
    punct := '!'
    end;
    begin
    who := 'World' + punct
    end;
    var
    who: String (10);
    begin
    world(who);
    writeln('Hello, ', who)
    end;
    begin
    hello
    end.

    There is already an example. fac is inside testfac.

    I will add a note about it.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dan Cross on Fri Jan 3 14:58:22 2025
    On 1/3/2025 1:51 PM, Dan Cross wrote:
    In article <vl9aln$o72$1@dont-email.me>, Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/3/2025 1:17 PM, Dan Cross wrote:
    In article <67781447$0$711$14726298@news.sunsite.dk>,
    And also fixed in the description of VARYING further up.

    You should seriously mention the STRING type, though.

    I think VARYING OF CHAR is what is used most in VMS Pascal.

    Weird; I can't imagine why.

    I never use string (on VMS).

    $ search sys$common:[syshlp.examples.pascal]*.pas varying
    $ search sys$common:[syshlp.examples.pascal]*.pas "string("

    indicate that whoever write VMS Pascal examples also prefer
    varying of char over string.

    If I were to guess about why, then I believe it is historic
    reasons. varying of char has been there since like forever.
    string was added with ISO Pascal support later.

    Regardless, it may be worthwhile to
    at least mention it, since you state explicitly that there are
    three types for representing textual, string-like data, but
    VSI's documentation makes it clear that there are actually four.

    Good point.

    I have updated.

    Also, it's a bit of a bummer that you didn't mention nested
    functions/procedures, which are among the cooler aspects of the
    language:

    $ type foo.pas
    (* foo *)
    program foo(output);
    procedure hello;
    procedure world(var who: String);
    function punct: char;
    begin
    punct := '!'
    end;
    begin
    who := 'World' + punct
    end;
    var
    who: String (10);
    begin
    world(who);
    writeln('Hello, ', who)
    end;
    begin
    hello
    end.

    There is already an example. fac is inside testfac.

    I will add a note about it.

    Ah, I see it now; the lack of indentation makes it hard to spot.

    I don't indent them.

    With the blank lines I put in then I feel that indenting
    nested procedures/functions would make it too much space.

    But it is a close decision. In C# I do not use blank lines
    and I do indent local methods.

    Same code:

    using System;

    public class Program
    {
    public static void TestFac()
    {
    int Fac(int n)
    {
    if(n < 2)
    {
    return 1;
    }
    else
    {
    return n * Fac(n - 1);
    }
    }
    for(int i = 0; i < 6; i++)
    {
    Console.WriteLine("fac({0})={1}", i, Fac(i));
    }
    }
    public static void Main(string[] args)
    {
    TestFac();
    }
    }

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to arne@vajhoej.dk on Fri Jan 3 21:24:09 2025
    In article <6778415e$0$708$14726298@news.sunsite.dk>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/3/2025 1:51 PM, Dan Cross wrote:
    In article <vl9aln$o72$1@dont-email.me>, Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/3/2025 1:17 PM, Dan Cross wrote:
    In article <67781447$0$711$14726298@news.sunsite.dk>,
    And also fixed in the description of VARYING further up.

    You should seriously mention the STRING type, though.

    I think VARYING OF CHAR is what is used most in VMS Pascal.

    Weird; I can't imagine why.

    I never use string (on VMS).

    $ search sys$common:[syshlp.examples.pascal]*.pas varying
    $ search sys$common:[syshlp.examples.pascal]*.pas "string("

    indicate that whoever write VMS Pascal examples also prefer
    varying of char over string.

    If I were to guess about why, then I believe it is historic
    reasons. varying of char has been there since like forever.
    string was added with ISO Pascal support later.

    I suspect that's close, but ISO Pascal doesn't have a 'VARYING'
    array type, either.

    I suspect you're referring to what ISO calls "Extended Pascal"
    (ISO 10206); ISO Pascal (ISO 7185) doesn't support a `String`
    type of either the VSI Pascal form or the Turbo
    Pascal/Delphi/FreePascal form, only manifest string literals and
    `packed array [1..n] of char`. Of course, one can define a type
    alias, and ISO 7185 says this:

    |Any type designated packed and denoted by an array-type having
    |as its index-type a denotation of a subrange-type specifying a
    |smallest value of 1 and a largest value of greater than 1, and
    |having as its component-type a denotation of the char-type,
    |shall be designated a string-type.

    An annoyance with ISO Pascal is that an array's size is part of
    its type, and there is no separate slice type that could act
    as a window into an array independent of size and be passed
    around, so it is difficult to write procedures and functions
    that operate on e.g. strings, generically. See also, https://www.lysator.liu.se/c/bwk-on-pascal.html

    However, these deficiencies are largely addressed in ISO 10206
    Extended Pascal, which provides a variable-length string type
    and permits conformant array parameters, which for VSI Pascal
    appear to monomorphize over the argument type.

    It's perhaps worth noting that Wirth's subsequent languages,
    particularly Oberon, didn't have most of these problems.

    Regardless, it may be worthwhile to
    at least mention it, since you state explicitly that there are
    three types for representing textual, string-like data, but
    VSI's documentation makes it clear that there are actually four.

    Good point.

    I have updated.

    Also, it's a bit of a bummer that you didn't mention nested
    functions/procedures, which are among the cooler aspects of the
    language:

    $ type foo.pas
    (* foo *)
    program foo(output);
    procedure hello;
    procedure world(var who: String);
    function punct: char;
    begin
    punct := '!'
    end;
    begin
    who := 'World' + punct
    end;
    var
    who: String (10);
    begin
    world(who);
    writeln('Hello, ', who)
    end;
    begin
    hello
    end.

    There is already an example. fac is inside testfac.

    I will add a note about it.

    Ah, I see it now; the lack of indentation makes it hard to spot.

    I don't indent them.

    With the blank lines I put in then I feel that indenting
    nested procedures/functions would make it too much space.

    Meh, personally I sacrifice horizontal space for readability,
    but I suppose styles differ.

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to Dan Cross on Fri Jan 3 21:51:43 2025
    In article <vl9khp$cdg$1@reader2.panix.com>,
    Dan Cross <cross@spitfire.i.gajendra.net> wrote:
    In article <6778415e$0$708$14726298@news.sunsite.dk>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/3/2025 1:51 PM, Dan Cross wrote:
    In article <vl9aln$o72$1@dont-email.me>, Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/3/2025 1:17 PM, Dan Cross wrote:
    In article <67781447$0$711$14726298@news.sunsite.dk>,
    And also fixed in the description of VARYING further up.

    You should seriously mention the STRING type, though.

    I think VARYING OF CHAR is what is used most in VMS Pascal.

    Weird; I can't imagine why.

    I never use string (on VMS).

    $ search sys$common:[syshlp.examples.pascal]*.pas varying
    $ search sys$common:[syshlp.examples.pascal]*.pas "string("

    indicate that whoever write VMS Pascal examples also prefer
    varying of char over string.

    If I were to guess about why, then I believe it is historic
    reasons. varying of char has been there since like forever.
    string was added with ISO Pascal support later.

    I suspect that's close, but ISO Pascal doesn't have a 'VARYING'
    array type, either.

    I suspect you're referring to what ISO calls "Extended Pascal"
    (ISO 10206); ISO Pascal (ISO 7185) doesn't support a `String`
    type of either the VSI Pascal form or the Turbo
    Pascal/Delphi/FreePascal form, only manifest string literals and
    `packed array [1..n] of char`. Of course, one can define a type
    alias, and ISO 7185 says this:

    |Any type designated packed and denoted by an array-type having
    |as its index-type a denotation of a subrange-type specifying a
    |smallest value of 1 and a largest value of greater than 1, and
    |having as its component-type a denotation of the char-type,
    |shall be designated a string-type.

    An annoyance with ISO Pascal is that an array's size is part of
    its type, and there is no separate slice type that could act
    as a window into an array independent of size and be passed
    around, so it is difficult to write procedures and functions
    that operate on e.g. strings, generically. See also, >https://www.lysator.liu.se/c/bwk-on-pascal.html

    However, these deficiencies are largely addressed in ISO 10206
    Extended Pascal, which provides a variable-length string type
    and permits conformant array parameters, which for VSI Pascal
    appear to monomorphize over the argument type.

    Actually, I guess that conformant array parameterss were in ISO
    7185, which had two "levels" of compliance; level 0 omitted them
    and level 1 includes them. That language is retained in ISO
    10206. Original, Wirth Pascal does not have them.

    Extended Pascal's variable string type appears more or less
    identical to the string type in VSI Pascal.

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to All on Fri Jan 3 21:34:46 2025
    On Fri, 3 Jan 2025 14:58:22 -0500, Arne Vajhøj wrote:

    ... I feel that indenting nested
    procedures/functions would make it too much space.

    At an indentation step of 4 columns and a window width of typically 100 columns, I find that leaves room for plenty of indentation steps.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Lawrence D'Oliveiro on Fri Jan 3 18:54:57 2025
    On 1/3/2025 4:34 PM, Lawrence D'Oliveiro wrote:
    On Fri, 3 Jan 2025 14:58:22 -0500, Arne Vajhøj wrote:
    ... I feel that indenting nested
    procedures/functions would make it too much space.

    At an indentation step of 4 columns and a window width of typically 100 columns, I find that leaves room for plenty of indentation steps.

    I am typical at 132 width.

    Width is not the problem.

    But it looks like Iceland on a map of the northern
    atlantic ocean.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dan Cross on Fri Jan 3 18:53:23 2025
    On 1/3/2025 4:24 PM, Dan Cross wrote:
    In article <6778415e$0$708$14726298@news.sunsite.dk>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/3/2025 1:51 PM, Dan Cross wrote:
    In article <vl9aln$o72$1@dont-email.me>, Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/3/2025 1:17 PM, Dan Cross wrote:
    In article <67781447$0$711$14726298@news.sunsite.dk>,
    And also fixed in the description of VARYING further up.

    You should seriously mention the STRING type, though.

    I think VARYING OF CHAR is what is used most in VMS Pascal.

    Weird; I can't imagine why.

    I never use string (on VMS).

    $ search sys$common:[syshlp.examples.pascal]*.pas varying
    $ search sys$common:[syshlp.examples.pascal]*.pas "string("

    indicate that whoever write VMS Pascal examples also prefer
    varying of char over string.

    If I were to guess about why, then I believe it is historic
    reasons. varying of char has been there since like forever.
    string was added with ISO Pascal support later.

    I suspect that's close, but ISO Pascal doesn't have a 'VARYING'
    array type, either.

    I am saying that VMS Pascal had VARYING before ISO existed. A
    VMS specific (or DEC specific??) extension.

    I suspect you're referring to what ISO calls "Extended Pascal"
    (ISO 10206); ISO Pascal (ISO 7185) doesn't support a `String`
    type of either the VSI Pascal form or the Turbo
    Pascal/Delphi/FreePascal form, only manifest string literals and
    `packed array [1..n] of char`.

    Yes, 10206.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dan Cross on Fri Jan 3 19:06:02 2025
    On 1/3/2025 4:51 PM, Dan Cross wrote:
    In article <vl9khp$cdg$1@reader2.panix.com>,
    Dan Cross <cross@spitfire.i.gajendra.net> wrote:
    However, these deficiencies are largely addressed in ISO 10206
    Extended Pascal, which provides a variable-length string type
    and permits conformant array parameters, which for VSI Pascal
    appear to monomorphize over the argument type.

    Actually, I guess that conformant array parameterss were in ISO
    7185, which had two "levels" of compliance; level 0 omitted them
    and level 1 includes them. That language is retained in ISO
    10206. Original, Wirth Pascal does not have them.

    Extended Pascal's variable string type appears more or less
    identical to the string type in VSI Pascal.

    The SPD ( https://vmssoftware.com/docs/VSI_Pascal_spd.pdf )
    says:

    <quote>
    VSI Pascal is an implementation of the Pascal language that accepts
    programs compatible with either
    level of the ISO specification for Programming languages - Pascal ([ISO 7185-1987]) as well as
    (ANSI/IEEE 770X3.97-1987).
    ...
    VSI
    Pascal also accepts many features from the Extended Pascal standard
    ((ANSI/IEEE 770X3. 160-1989)
    and (ISO 10206)).
    ...
    Major Pascal Language Elements:
    ...
    ● STRING schema denoting variable-length character strings up to 65,535 characters
    </quote>

    which I read as that string is supposed to be the standard (10206) string.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Martin =?UTF-8?Q?Vorl=C3=A4nder?=@21:1/5 to arne@vajhoej.dk on Sat Jan 4 12:41:31 2025
    Arne Vajhj <arne@vajhoej.dk> schrieb:
    VMS Pascal for C/Java/C# programmers:
    https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    Arne,

    in your first example, the global variable declaration of v must come before the procedure declaration of add_one_and_print.

    cu,
    Martin

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Hoffman@21:1/5 to Robert A. Brooks on Sat Jan 4 14:14:55 2025
    On 2025-01-03 14:30:37 +0000, Robert A. Brooks said:

    On 1/3/2025 7:59 AM, Arne Vajhøj wrote:
    On 1/2/2025 10:48 PM, Robert A. Brooks wrote:
    On 1/2/2025 10:32 PM, Arne Vajhøj wrote:

    I thought it was PL/I. Which is why I asked.

    Rewritten in the early 2000's.

    Ah. So it was rewritten for Itanium instead of being AEST'ed.

    I wonder whether it was because someone at HP decided to do the right
    thing or because AEST couldn't handle it.

    I am not aware of an attempt to AEST it; it was rewritten by Walter
    Breu (sp?) of HP Germany. He was not in VMS Engineering, so I wasn't
    paying a lot of attention when he was doing the work.

    Pretty sure it was part of the "get rid of all PL/I" initiative.

    That's basically correct, yes. And Walter Breu was the author of the
    SDLC port and of some related updates. One of the goals of that SDLC
    port was character-level-formatting compatibility with the PL/I version
    of the SDL tool; matching DIFF'ing.

    Various factors that triggered this port including the transition of
    PL/I to Uniprise and later Kednos — and particularly the lack of a PL/I compiler on Itanium — and caused an interest in reducing the usage of
    PL/I within OpenVMS. MONITOR was the biggest existing user of PL/I.

    Translating the existing SDL tool to OpenVMS I64 worked, but obviously
    wasn't a great choice for maintenance and updates, and changes to SDL
    in support of Itanium were needed. And the original PL/1 SDL
    implementation also wasn't itself entirely stable. It crashed. A lot.
    And translating (AEST and TIE) an unstable app is less than fun.

    There were other OpenVMS and OpenVMS build components that were
    re-written around each OpenVMS platform port too, and those rewrites
    for various reasons. MAIL got rewritten, GNM, MONITOR as mentioned,
    etc. There are undoubtedly tools that have more recently been rewritten
    as part of the x86-64 port, too.


    --
    Pure Personal Opinion | HoffmanLabs LLC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Stephen Hoffman on Sat Jan 4 14:54:26 2025
    On 1/4/2025 2:14 PM, Stephen Hoffman wrote:
    On 2025-01-03 14:30:37 +0000, Robert A. Brooks said:
    On 1/3/2025 7:59 AM, Arne Vajhøj wrote:
    On 1/2/2025 10:48 PM, Robert A. Brooks wrote:
    On 1/2/2025 10:32 PM, Arne Vajhøj wrote:
    I thought it was PL/I. Which is why I asked.

    Rewritten in the early 2000's.

    Ah. So it was rewritten for Itanium instead of being AEST'ed.

    I wonder whether it was because someone at HP decided to do the right
    thing or because AEST couldn't handle it.

    I am not aware of an attempt to AEST it; it was rewritten by Walter
    Breu (sp?) of HP Germany.  He was not in VMS Engineering, so I wasn't
    paying a lot of attention when he was doing the work.

    Pretty sure it was part of the "get rid of all PL/I" initiative.

    That's basically correct, yes. And Walter Breu was the author of the
    SDLC port and of some related updates. One of the goals of that SDLC
    port was character-level-formatting compatibility with the PL/I version
    of the SDL tool; matching DIFF'ing.

    Various factors that triggered this port including the transition of PL/
    I to Uniprise and later Kednos — and particularly the lack of a PL/I compiler on Itanium — and caused an interest in reducing the usage of
    PL/I within OpenVMS. MONITOR was the biggest existing user of PL/I.

    Walter Braeu

    I tried installing 2.3 on VMS Alpha.

    And the installation procedure attempts to send an
    email to him at hp.com.

    Unusual!

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Stephen Hoffman on Sat Jan 4 22:09:19 2025
    On Sat, 4 Jan 2025 14:14:55 -0500, Stephen Hoffman wrote:

    And Walter Breu was the author of the SDLC port ...

    SDLC? Synchronous Data Link Control?

    Oh ... SDL for C? Perhaps better written SDL-C?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to arne@vajhoej.dk on Mon Jan 6 13:38:30 2025
    On 2025-01-04, Arne Vajhj <arne@vajhoej.dk> wrote:

    I tried installing 2.3 on VMS Alpha.

    And the installation procedure attempts to send an
    email to him at hp.com.

    Unusual!


    Not really. The guy was just ahead of his time. :-)

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Robert A. Brooks@21:1/5 to Simon Clubley on Mon Jan 6 09:46:55 2025
    On 1/6/2025 08:38, Simon Clubley wrote:
    On 2025-01-04, Arne Vajhøj <arne@vajhoej.dk> wrote:

    I tried installing 2.3 on VMS Alpha.

    And the installation procedure attempts to send an
    email to him at hp.com.

    Unusual!


    Not really. The guy was just ahead of his time. :-)

    That mechanism was pretty common within DEC in the '80's and 90's for internal software, so developers could keep track
    of who was using it.

    --
    -- Rob

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Reagan@21:1/5 to All on Mon Jan 6 17:52:42 2025
    On 1/1/2025 11:12 AM, Arne Vajhøj wrote:
    VMS Pascal for C/Java/C# programmers:
         https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    Arne

    I'll look and give feedback.

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Reagan@21:1/5 to John Reagan on Tue Jan 7 15:16:22 2025
    On 1/6/2025 5:52 PM, John Reagan wrote:
    On 1/1/2025 11:12 AM, Arne Vajhøj wrote:
    VMS Pascal for C/Java/C# programmers:
          https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    Arne

    I'll look and give feedback.

    John
    For modern OpenVMS usage, you might want to discuss how to get 64-bit
    pointers vs 32-bit pointers. C has the pointer_size pragma to modify
    the "current pointer size". Pascal uses the [QUAD] attribute in front
    of the pointer uparrow. There isn't a DCL qualifier (or module-level
    attribute) to control the default of 32-bits. I'd add one now but who
    would use it?

    var
    ptr64 : [quad] ^integer;
    ptr32 : ^integer;

    The compiler will call the appropriate Pascal RTL routine for NEW or
    NEW64 based on the pointer's type.

    As noted, QUADRUPLE is always 128-bits. With all the hassle with
    missing support on x86, I should have added the equivalent of /L_DOUBLE
    for Pascal (and others as well).

    Yes, VARYING OF CHAR is a VAX Pascal V2.0 extension based highly on
    PL/1's VARYING OF CHAR. I've seen comments hinting about an early form
    of VARYING OF BITS as well but that was never added.

    Extended Pascal's STRING type is modeled much on VAX Pascal's VARYING OF
    CHAR. You can check the Extended Pascal's title page to see who was the
    X3J9 Secretary at the time. 😉

    The VARYING OF CHAR .BODY and .LENGTH are quite powerful especially when
    you use them with IADDRESS. Along with the VAX Pascal V1 directives of
    %IMMED, %REF, and %STDESCR (notice the parallel with Fortran?), you can
    do many descriptor operations with ease.

    STRING allows for a run-time length since it is an Extended Pascal
    "schema" type. VARYING OF CHAR does not. We could have added that
    feature to VARYING OF CHAR but we didn't.

    We only added the Extended Pascal features that we thought were new and interesting. For example, we didn't bother with Extended Pascal's
    "complex" type. If you want a complex type, you code in Fortran as God intended. We didn't add the EP direct access file syntax since the VAX
    Pascal syntax provides the same feature set (guess where the feature set
    came from). We also didn't add the EP module syntax which added
    namespaces. (The PEN format actually has support for multiple name
    spaces but the compiler doesn't take advantage of it).

    The Pascal SDL backend was ever thought about 64-bit integers and such
    since we wanted to keep as much recompile-and-go as possible.

    Yes, the Pascal examples installed by the kit are a good resource. I
    haven't updated them in quite a while. Perhaps it is time. Maybe I'll
    do that when I finish the conversion to PCSI. Any suggestions?

    I have a copy of Theo De Klerk's book on my bookshelf. I did the
    technical review of that book (wow, that is a long time ago!)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to johnrreagan@earthlink.net on Tue Jan 7 21:04:26 2025
    In article <73aedef89896db7fe5bc43b8d47a8560537c6a48@i2pn2.org>,
    John Reagan <johnrreagan@earthlink.net> wrote:
    [snip]
    I have a copy of Theo De Klerk's book on my bookshelf. I did the
    technical review of that book (wow, that is a long time ago!)

    It looks like it would be a very nice reference; it's a that it
    is no longer available. I wonder if the author retained rights,
    or if those lie with Digital Press? If the former, perhaps the
    electronic copy others mentioned might show up in the Internet
    Archive's library or something similar.

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to johnrreagan@earthlink.net on Tue Jan 7 23:02:58 2025
    In article <4fce5c9d3be918e8a00edccd228701713d4fd059@i2pn2.org>,
    John Reagan <johnrreagan@earthlink.net> wrote:
    On 1/7/2025 4:04 PM, Dan Cross wrote:
    In article <73aedef89896db7fe5bc43b8d47a8560537c6a48@i2pn2.org>,
    John Reagan <johnrreagan@earthlink.net> wrote:
    [snip]
    I have a copy of Theo De Klerk's book on my bookshelf. I did the
    technical review of that book (wow, that is a long time ago!)

    It looks like it would be a very nice reference; it's a that it
    is no longer available. I wonder if the author retained rights,
    or if those lie with Digital Press? If the former, perhaps the
    electronic copy others mentioned might show up in the Internet
    Archive's library or something similar.

    Good question. My last email exchange with Theo was several years ago.
    I suspect that Digital Press (or who ever bought all of their IP) would
    still own the copyright to that version but could he provide an "almost
    final draft" for some archive in much the same way the C/C++ standard >committees provide "drafts" of the standards to avoid copyright issues.

    That would be very cool! There aren't that many books about
    OpenVMS out there, it seems; even fewer about application
    development. It would be great to have a few titles available.

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Reagan@21:1/5 to Dan Cross on Tue Jan 7 17:17:10 2025
    On 1/7/2025 4:04 PM, Dan Cross wrote:
    In article <73aedef89896db7fe5bc43b8d47a8560537c6a48@i2pn2.org>,
    John Reagan <johnrreagan@earthlink.net> wrote:
    [snip]
    I have a copy of Theo De Klerk's book on my bookshelf. I did the
    technical review of that book (wow, that is a long time ago!)

    It looks like it would be a very nice reference; it's a that it
    is no longer available. I wonder if the author retained rights,
    or if those lie with Digital Press? If the former, perhaps the
    electronic copy others mentioned might show up in the Internet
    Archive's library or something similar.

    - Dan C.

    Good question. My last email exchange with Theo was several years ago.
    I suspect that Digital Press (or who ever bought all of their IP) would
    still own the copyright to that version but could he provide an "almost
    final draft" for some archive in much the same way the C/C++ standard committees provide "drafts" of the standards to avoid copyright issues.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dan Cross on Tue Jan 7 19:00:47 2025
    On 1/7/2025 6:02 PM, Dan Cross wrote:
    In article <4fce5c9d3be918e8a00edccd228701713d4fd059@i2pn2.org>,
    John Reagan <johnrreagan@earthlink.net> wrote:
    On 1/7/2025 4:04 PM, Dan Cross wrote:
    In article <73aedef89896db7fe5bc43b8d47a8560537c6a48@i2pn2.org>,
    John Reagan <johnrreagan@earthlink.net> wrote:
    [snip]
    I have a copy of Theo De Klerk's book on my bookshelf. I did the
    technical review of that book (wow, that is a long time ago!)

    It looks like it would be a very nice reference; it's a that it
    is no longer available. I wonder if the author retained rights,
    or if those lie with Digital Press? If the former, perhaps the
    electronic copy others mentioned might show up in the Internet
    Archive's library or something similar.

    Good question. My last email exchange with Theo was several years ago.
    I suspect that Digital Press (or who ever bought all of their IP) would
    still own the copyright to that version but could he provide an "almost
    final draft" for some archive in much the same way the C/C++ standard
    committees provide "drafts" of the standards to avoid copyright issues.

    That would be very cool! There aren't that many books about
    OpenVMS out there, it seems; even fewer about application
    development. It would be great to have a few titles available.

    Once upon a time there were a reasonable number of of VMS books
    available - including about development.

    I have a list:
    https://www.vajhoej.dk/arne/vms/books.html

    But most of them are both not available for sale any longer
    and not uptodate (either describe VMS VAX or VMS Alpha).

    Probably not enough market today. How many would buy a book
    about VMS Pascal development today? 25? 50? 100?

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to All on Tue Jan 7 19:45:44 2025
    On 1/1/2025 11:12 AM, Arne Vajhøj wrote:
    VMS Pascal for C/Java/C# programmers:
         https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    And another one.

    VMS Pascal modernization:
    https://www.vajhoej.dk/arne/articles/vmspascalx.html

    This is also VMS Pascal but a totally different angle.

    This one covers how to integrate VMS Pascal application
    with some of the newer technologies out there.

    * writing JSON
    * reading JSON
    * calling RESTful web service using JSON/HTTP
    * exposing RESTful web service using JSON/HTTP via GGI
    * send JSON to and receive JSON from message queue
    (tested with ActiveMQ on VMS)
    * access MySQL running anywhere (tested with it on VMS)
    * access databases running on Windows/Linux using
    SQLRelay (tested with MS SQLServer, IBM DB2, Oracle DB,
    MySQL and PostgreSQL on Windows)

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to John Reagan on Tue Jan 7 19:24:04 2025
    On 1/7/2025 3:16 PM, John Reagan wrote:
    On 1/6/2025 5:52 PM, John Reagan wrote:
    On 1/1/2025 11:12 AM, Arne Vajhøj wrote:
    VMS Pascal for C/Java/C# programmers:
          https://www.vajhoej.dk/arne/articles/vmspascal.html

    It is a "pre-release" - I am not sure I got it right.

    So I would love some feedback.

    I'll look and give feedback.

    For modern OpenVMS usage, you might want to discuss how to get 64-bit pointers vs 32-bit pointers.  C has the pointer_size pragma to modify
    the "current pointer size".  Pascal uses the [QUAD] attribute in front
    of the pointer uparrow. There isn't a DCL qualifier (or module-level attribute) to control the default of 32-bits.  I'd add one now but who
    would use it?

    var
       ptr64 : [quad] ^integer;
       ptr32 :        ^integer;

    The compiler will call the appropriate Pascal RTL routine for NEW or
    NEW64 based on the pointer's type.

    I have updated with a little section about this fun topic.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to arne@vajhoej.dk on Wed Jan 8 13:08:29 2025
    In article <vlkf7f$2ejl5$2@dont-email.me>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/7/2025 6:02 PM, Dan Cross wrote:
    In article <4fce5c9d3be918e8a00edccd228701713d4fd059@i2pn2.org>,
    John Reagan <johnrreagan@earthlink.net> wrote:
    On 1/7/2025 4:04 PM, Dan Cross wrote:
    In article <73aedef89896db7fe5bc43b8d47a8560537c6a48@i2pn2.org>,
    John Reagan <johnrreagan@earthlink.net> wrote:
    [snip]
    I have a copy of Theo De Klerk's book on my bookshelf. I did the
    technical review of that book (wow, that is a long time ago!)

    It looks like it would be a very nice reference; it's a that it
    is no longer available. I wonder if the author retained rights,
    or if those lie with Digital Press? If the former, perhaps the
    electronic copy others mentioned might show up in the Internet
    Archive's library or something similar.

    Good question. My last email exchange with Theo was several years ago.
    I suspect that Digital Press (or who ever bought all of their IP) would
    still own the copyright to that version but could he provide an "almost
    final draft" for some archive in much the same way the C/C++ standard
    committees provide "drafts" of the standards to avoid copyright issues.

    That would be very cool! There aren't that many books about
    OpenVMS out there, it seems; even fewer about application
    development. It would be great to have a few titles available.

    Once upon a time there were a reasonable number of of VMS books
    available - including about development.

    I have a list:
    https://www.vajhoej.dk/arne/vms/books.html

    But most of them are both not available for sale any longer
    and not uptodate (either describe VMS VAX or VMS Alpha).

    Probably not enough market today. How many would buy a book
    about VMS Pascal development today? 25? 50? 100?

    That's a good question; I have no idea how large the audience
    for such things would be, but I suspect it would be small.

    However, there's something to be said for written materials that
    are in the detail level somewhere between general programming
    books about, say, a language or data structures or something,
    and the reference manuals for the languages.

    I don't think I'm saying anything novel here, but if authors and
    publishers are willing to allow some of these older titles to be
    distributed electronically, that can start to bridge that gap.

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Subcommandante XDelta@21:1/5 to Dan Cross on Thu Jan 9 09:59:59 2025
    On Wed, 8 Jan 2025 13:08:29 -0000 (UTC), cross@spitfire.i.gajendra.net
    (Dan Cross) wrote:
    :


    Once upon a time there were a reasonable number of of VMS books
    available - including about development.

    I have a list:
    https://www.vajhoej.dk/arne/vms/books.html

    But most of them are both not available for sale any longer
    and not uptodate (either describe VMS VAX or VMS Alpha).

    Probably not enough market today. How many would buy a book
    about VMS Pascal development today? 25? 50? 100?

    That's a good question; I have no idea how large the audience
    for such things would be, but I suspect it would be small.

    However, there's something to be said for written materials that
    are in the detail level somewhere between general programming
    books about, say, a language or data structures or something,
    and the reference manuals for the languages.

    I don't think I'm saying anything novel here, but if authors and
    publishers are willing to allow some of these older titles to be
    distributed electronically, that can start to bridge that gap.

    - Dan C.

    BTB, on Arne's list of VMS books, one, at least, should still be
    commercially available:

    Roland Hughes: The Minimum You Need to Know to Be an OpenVMS
    Application Developer

    https://www.theminimumyouneedtoknow.com/app_book.html

    For years now the question has been surfacing in the OpenVMS community
    "Where are the pimply faced kids?" The other situation which seems to continually occur is a developer of one language suddenly finding
    themselves having to modify or maintain an application written in a
    language completely foreign to them...
    :
    :

    Indeed, does anybody under sixty, follow comp.os.vms?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dave Froble@21:1/5 to All on Wed Jan 8 19:09:31 2025
    On 1/7/2025 7:00 PM, Arne Vajhøj wrote:
    On 1/7/2025 6:02 PM, Dan Cross wrote:
    In article <4fce5c9d3be918e8a00edccd228701713d4fd059@i2pn2.org>,
    John Reagan <johnrreagan@earthlink.net> wrote:
    On 1/7/2025 4:04 PM, Dan Cross wrote:
    In article <73aedef89896db7fe5bc43b8d47a8560537c6a48@i2pn2.org>,
    John Reagan <johnrreagan@earthlink.net> wrote:
    [snip]
    I have a copy of Theo De Klerk's book on my bookshelf. I did the
    technical review of that book (wow, that is a long time ago!)

    It looks like it would be a very nice reference; it's a that it
    is no longer available. I wonder if the author retained rights,
    or if those lie with Digital Press? If the former, perhaps the
    electronic copy others mentioned might show up in the Internet
    Archive's library or something similar.

    Good question. My last email exchange with Theo was several years ago.
    I suspect that Digital Press (or who ever bought all of their IP) would
    still own the copyright to that version but could he provide an "almost
    final draft" for some archive in much the same way the C/C++ standard
    committees provide "drafts" of the standards to avoid copyright issues.

    That would be very cool! There aren't that many books about
    OpenVMS out there, it seems; even fewer about application
    development. It would be great to have a few titles available.

    Once upon a time there were a reasonable number of of VMS books
    available - including about development.

    I have a list:
    https://www.vajhoej.dk/arne/vms/books.html

    But most of them are both not available for sale any longer
    and not uptodate (either describe VMS VAX or VMS Alpha).

    Probably not enough market today. How many would buy a book
    about VMS Pascal development today? 25? 50? 100?

    Arne


    If a book has an electronic format, does it matter how many would purchase it?

    Speaking of books, I have one that I may never have use for again:

    VAX/VMS Internals and Data Structures
    Ruth E. Goldenberg
    Lawrence J. Kenah
    Version 5.2

    Also had an earlier version, but haven't seen it for some time ...


    --
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Subcommandante XDelta on Wed Jan 8 19:23:20 2025
    On 1/8/2025 5:59 PM, Subcommandante XDelta wrote:
    On Wed, 8 Jan 2025 13:08:29 -0000 (UTC), cross@spitfire.i.gajendra.net
    (Dan Cross) wrote:
    Once upon a time there were a reasonable number of of VMS books
    available - including about development.

    I have a list:
    https://www.vajhoej.dk/arne/vms/books.html

    But most of them are both not available for sale any longer
    and not uptodate (either describe VMS VAX or VMS Alpha).

    Probably not enough market today. How many would buy a book
    about VMS Pascal development today? 25? 50? 100?

    That's a good question; I have no idea how large the audience
    for such things would be, but I suspect it would be small.

    BTB, on Arne's list of VMS books, one, at least, should still be
    commercially available:

    Roland Hughes: The Minimum You Need to Know to Be an OpenVMS
    Application Developer

    https://www.theminimumyouneedtoknow.com/app_book.html

    Yes. That one should still be available.

    For years now the question has been surfacing in the OpenVMS community
    "Where are the pimply faced kids?" The other situation which seems to continually occur is a developer of one language suddenly finding
    themselves having to modify or maintain an application written in a
    language completely foreign to them...

    Indeed, does anybody under sixty, follow comp.os.vms?

    I would expect some.

    If we say under fifty then I fear that inviting them all
    for coffee would not require a large table.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dave Froble on Wed Jan 8 19:31:29 2025
    On 1/8/2025 7:09 PM, Dave Froble wrote:
    On 1/7/2025 7:00 PM, Arne Vajhøj wrote:
    Once upon a time there were a reasonable number of of VMS books
    available - including about development.

    I have a list:
       https://www.vajhoej.dk/arne/vms/books.html

    But most of them are both not available for sale any longer
    and not uptodate (either describe VMS VAX or VMS Alpha).

    Probably not enough market today. How many would buy a book
    about VMS Pascal development today? 25? 50? 100?

    If a book has an electronic format, does it matter how many would
    purchase it?

    The variable cost per copy would be very small (maybe only
    the fee for processing payment).

    But there is also fixed cost for distributing electronically.
    Decide on what to do to prevent illegal copying. Generate the
    file to distribute. Get it up on some e-commerce web site.
    Not zero but not that expensive either. It would require a little
    bit of sale though.

    The problem will likely be that even if it would financially
    be positive, then the amount would be very small. If the copyright
    owner is an individual, then a plus of a few hundred or thousand
    dollars will be OK. But if the copyright owner is
    Big Mega Publishing Inc, then they will not do anything
    with an expected profit under hundreds of thousands of dollars.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Dave Froble on Wed Jan 8 19:35:11 2025
    On 1/8/2025 7:09 PM, Dave Froble wrote:
    Speaking of books, I have one that I may never have use for again:

    VAX/VMS Internals and Data Structures
    Ruth E. Goldenberg
    Lawrence J. Kenah
    Version 5.2

    Also had an earlier version, but haven't seen it for some time ...

    There were at least:
    * VMS VAX 4.4
    * VMS VAX 5.2
    * VMS Alpha 1.5

    Not sure if there were for earlier VMS versions.

    No:
    * VMS Alpha 7.x (64 bit !)
    * VMS Itanium

    Question for Camiel: will you be writing the one for VMS x86-64 9.2?

    :-)

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Robert A. Brooks@21:1/5 to All on Wed Jan 8 20:26:12 2025
    On 1/8/2025 19:35, Arne Vajhøj wrote:

    Question for Camiel: will you be writing the one for VMS x86-64 9.2?

    We do plan to put out a white paper on some X86 changes related to kernel mode I/O work.

    Specifically, the SVAPTE mechanism has been replaced with what we view as a cleaner
    mechanism for driver writers.

    --
    -- Rob

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Robert A. Brooks on Wed Jan 8 20:29:01 2025
    On 1/8/2025 8:26 PM, Robert A. Brooks wrote:
    On 1/8/2025 19:35, Arne Vajhøj wrote:
    Question for Camiel: will you be writing the one for VMS x86-64 9.2?

    We do plan to put out a white paper on some X86 changes related to
    kernel mode
    I/O work.

    Specifically, the SVAPTE mechanism has been replaced with what we view
    as a cleaner
    mechanism for driver writers.

    Which is good.

    But also a bit less than a full IDS 9.2.

    There are a lot of big changes between Alpha 1.5 and x86-64 9.2:
    * the 64 bit changes in 7.x
    * the Itanium changes in 8.x
    * the x86-64 changes in 9.x

    Obviously time is a constraint.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dan Cross@21:1/5 to arne@vajhoej.dk on Thu Jan 9 01:51:04 2025
    In article <vln5d0$318c0$2@dont-email.me>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:
    On 1/8/2025 7:09 PM, Dave Froble wrote:
    On 1/7/2025 7:00 PM, Arne Vajhøj wrote:
    Once upon a time there were a reasonable number of of VMS books
    available - including about development.

    I have a list:
       https://www.vajhoej.dk/arne/vms/books.html

    But most of them are both not available for sale any longer
    and not uptodate (either describe VMS VAX or VMS Alpha).

    Probably not enough market today. How many would buy a book
    about VMS Pascal development today? 25? 50? 100?

    If a book has an electronic format, does it matter how many would
    purchase it?

    The variable cost per copy would be very small (maybe only
    the fee for processing payment).

    But there is also fixed cost for distributing electronically.
    Decide on what to do to prevent illegal copying. Generate the
    file to distribute. Get it up on some e-commerce web site.
    Not zero but not that expensive either. It would require a little
    bit of sale though.

    I think the hope is that the authors and/or publishers would
    offer them gratis; there would be no need for working about
    illegal copying, the content would simply be available as a
    download (in PDF format presumably).

    The problem will likely be that even if it would financially
    be positive, then the amount would be very small. If the copyright
    owner is an individual, then a plus of a few hundred or thousand
    dollars will be OK. But if the copyright owner is
    Big Mega Publishing Inc, then they will not do anything
    with an expected profit under hundreds of thousands of dollars.

    Many technical books that previously cost rather tidy sums are
    now available for free, as authors and publishers realized that
    the audience had dwindled to negligible and there was no longer
    a financial incentive to holding on to the IP.

    It's kind of weirdly fascinating how thing that used to cost
    staggering sums are now available just for free.

    - Dan C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Subcommandante XDelta on Thu Jan 9 18:07:42 2025
    On 2025-01-08, Subcommandante XDelta <vlf@star.enet.dec.com> wrote:

    Indeed, does anybody under sixty, follow comp.os.vms?

    Yes.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Dan Cross on Thu Jan 9 18:19:19 2025
    On 2025-01-08, Dan Cross <cross@spitfire.i.gajendra.net> wrote:
    In article <vln5d0$318c0$2@dont-email.me>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:

    The problem will likely be that even if it would financially
    be positive, then the amount would be very small. If the copyright
    owner is an individual, then a plus of a few hundred or thousand
    dollars will be OK. But if the copyright owner is
    Big Mega Publishing Inc, then they will not do anything
    with an expected profit under hundreds of thousands of dollars.

    Many technical books that previously cost rather tidy sums are
    now available for free, as authors and publishers realized that
    the audience had dwindled to negligible and there was no longer
    a financial incentive to holding on to the IP.

    It's kind of weirdly fascinating how thing that used to cost
    staggering sums are now available just for free.


    Indeed.

    About 20 years ago I found the VMS device drivers in C book in
    a local large bookshop (either York or Leeds, I don't remember).

    Such a thing would be utterly unheard of these days.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to arne@vajhoej.dk on Thu Jan 9 18:24:46 2025
    On 2025-01-08, Arne Vajhj <arne@vajhoej.dk> wrote:

    There were at least:
    * VMS VAX 4.4
    * VMS VAX 5.2
    * VMS Alpha 1.5

    Not sure if there were for earlier VMS versions.

    No:
    * VMS Alpha 7.x (64 bit !)

    There was a memory or process supplement book published IIRC however.

    * VMS Itanium

    Question for Camiel: will you be writing the one for VMS x86-64 9.2?


    He and other VSI employees had previously said no to a full book but the posting from Rob in this thread about a selective release of changes is
    welcome news.

    A couple of more realistic freely available drivers (instead of just
    LRDRIVER) would also be welcome by anyone still writing VMS device drivers.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From jayjwa@21:1/5 to Subcommandante XDelta on Thu Jan 9 14:47:44 2025
    Subcommandante XDelta <vlf@star.enet.dec.com> writes:

    For years now the question has been surfacing in the OpenVMS community
    "Where are the pimply faced kids?"
    No one knows what it is, let alone how to use it. Thus, there is no
    demand for it. How would a young guy, say 15 year's old, go about
    getting his hands on it? It's not being taught in colleges anymore and you can't
    legally get it at home. The products and licenses are laughably expensive, especially when compared to other systems like Windows, Mac, and of
    course Linux. Even when there was a real hobbyist program, it was very restrictive. Expensive software running on expensive hardware might have
    worked in the 1980s, but it doesn't work now. Unfortunately, the
    business model wasn't updated to today's time. That is why there's no
    new community members.

    I was speaking to a well-known member of the community a few months
    back on IRC, and even he said it was far easier and much, much cheaper to set up a new server running something other than VMS. Even VSI's web server
    runs on Ubuntu if I'm not mistaken.

    Indeed, does anybody under sixty, follow comp.os.vms?
    I lurk here and IRC 2600 #vms occasionally. Now that Google Groups is
    dead, the place (and usenet itself) is usable again.

    --
    PGP Key ID: 781C A3E2 C6ED 70A6 B356 7AF5 B510 542E D460 5CAE
    "The Internet should always be the Wild West!"

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Simon Clubley on Thu Jan 9 14:40:44 2025
    On 1/9/2025 1:24 PM, Simon Clubley wrote:
    On 2025-01-08, Arne Vajhøj <arne@vajhoej.dk> wrote:
    There were at least:
    * VMS VAX 4.4
    * VMS VAX 5.2
    * VMS Alpha 1.5

    Not sure if there were for earlier VMS versions.

    No:
    * VMS Alpha 7.x (64 bit !)

    There was a memory or process supplement book published IIRC however.

    Yes.

    OpenVMS Alpha Internals and Data Structures: Memory Management
    Ruth Goldenberg
    2002

    <quote>
    OpenVMS Alpha Internals and Data Structures: Memory Management is an update
    to selected parts of the book OpenVMS AXP Internals and Data Structures
    Version 1.5 (Digital Press, 1994). This book covers the extensions to
    the memory management subsystem of OpenVMS Alpha to allow the operating
    system and applications to access 64 bits of address space. It
    emphasizes system data structures and their manipulation by paging and
    swapping routines and related system services.

    It also describes management of dynamic memory, such as nonpaged pool,
    and support for nonuniform memory access (NUMA) platforms.
    </quote>

    * VMS Itanium

    Question for Camiel: will you be writing the one for VMS x86-64 9.2?

    He and other VSI employees had previously said no to a full book but the posting from Rob in this thread about a selective release of changes is welcome news.

    Anything is good news.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Craig A. Berry@21:1/5 to jayjwa on Thu Jan 9 20:14:05 2025
    On 1/9/25 1:47 PM, jayjwa wrote:
    Subcommandante XDelta <vlf@star.enet.dec.com> writes:

    For years now the question has been surfacing in the OpenVMS community
    "Where are the pimply faced kids?"
    No one knows what it is, let alone how to use it. Thus, there is no
    demand for it. How would a young guy, say 15 year's old, go about
    getting his hands on it?

    Maybe apply for a community license?

    It's not being taught in colleges anymore and you can't
    legally get it at home.

    You certainly can get it at home, legally and for free. It's true that
    it isn't much used in many of the places where it used to be ubiquitous, including colleges and universities.

    The products and licenses are laughably expensive,
    especially when compared to other systems like Windows, Mac, and of
    course Linux. Even when there was a real hobbyist program, it was very restrictive. Expensive software running on expensive hardware might have worked in the 1980s, but it doesn't work now.

    Exotic hardware is no longer necessary, and the software prices now are
    a lot lower, adjusted for inflation, than they were 20, 30 or more years
    ago. That doesn't mean it's cheap -- most commercial software isn't.

    Unfortunately, the
    business model wasn't updated to today's time. That is why there's no
    new community members.

    Arguably it is the *new* business model, i.e., the time-limited
    licenses, that make it harder for people to justify staying with VMS.


    I was speaking to a well-known member of the community a few months
    back on IRC, and even he said it was far easier and much, much cheaper to set up a new server running something other than VMS. Even VSI's web server
    runs on Ubuntu if I'm not mistaken.

    Indeed, does anybody under sixty, follow comp.os.vms?
    I lurk here and IRC 2600 #vms occasionally. Now that Google Groups is
    dead, the place (and usenet itself) is usable again.


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Clubley@21:1/5 to Simon Clubley on Fri Jan 10 13:25:13 2025
    On 2025-01-09, Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:
    On 2025-01-08, Dan Cross <cross@spitfire.i.gajendra.net> wrote:
    In article <vln5d0$318c0$2@dont-email.me>,
    Arne Vajhøj <arne@vajhoej.dk> wrote:

    The problem will likely be that even if it would financially
    be positive, then the amount would be very small. If the copyright
    owner is an individual, then a plus of a few hundred or thousand
    dollars will be OK. But if the copyright owner is
    Big Mega Publishing Inc, then they will not do anything
    with an expected profit under hundreds of thousands of dollars.

    Many technical books that previously cost rather tidy sums are
    now available for free, as authors and publishers realized that
    the audience had dwindled to negligible and there was no longer
    a financial incentive to holding on to the IP.

    It's kind of weirdly fascinating how thing that used to cost
    staggering sums are now available just for free.


    Indeed.

    About 20 years ago I found the VMS device drivers in C book in
    a local large bookshop (either York or Leeds, I don't remember).

    Such a thing would be utterly unheard of these days.


    I was curious so I looked further and found the receipt still in the
    book. I purchased it from Waterstones at 9-10 High Ousegate in York
    on 26.06.01 at 16:05.

    So, 20 years ago, you could purchase VMS Digital Press books directly
    from a major high street bookseller. I also very strongly suspect it
    was on the shelf in the shop because I would have used a more local
    Waterstones if I was going to ask them to order it.

    Wow. Dan is right. Things have certainly changed in 20 years!

    BTW, according to the receipt I paid 34.99 UKP for it. I don't know
    what that is today however.

    Simon.

    --
    Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
    Walking destinations on a map are further away than they appear.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=C3=B8j?=@21:1/5 to Simon Clubley on Fri Jan 10 09:49:20 2025
    On 1/10/2025 8:25 AM, Simon Clubley wrote:
    On 2025-01-09, Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:
    About 20 years ago I found the VMS device drivers in C book in
    a local large bookshop (either York or Leeds, I don't remember).

    Such a thing would be utterly unheard of these days.

    I was curious so I looked further and found the receipt still in the
    book. I purchased it from Waterstones at 9-10 High Ousegate in York
    on 26.06.01 at 16:05.

    So, 20 years ago, you could purchase VMS Digital Press books directly
    from a major high street bookseller. I also very strongly suspect it
    was on the shelf in the shop because I would have used a more local Waterstones if I was going to ask them to order it.

    There may be another problem for VMS books hidden in that story.

    The switch from "VT terminals connected to server" to "PC GUI talking
    to servers" has killed the demand for VMS user books.

    The decrease in number of VMS systems has hit demand for all VMS books
    (system management, application programming, internals) hard.

    But the changes in book distribution may also have hurt
    sales of niche books like VMS books. Your book store actually
    had a relative specialized VMS book in stock, because that
    was expected of a serious book store. That was good for
    sale, because there must have been thousands of book stores
    world wide that bought one copy just to have one. In todays book
    market I would expect Amazon to buy a couple of handfuls and
    a few smaller online book sellers to buy a handful to have it
    and then they will order more if the books starts to sell.

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)