Skip to content

979 system documentation errors - #983

Open
abrudz wants to merge 2 commits into
mainfrom
979-system-documentation-errors
Open

979 system documentation errors#983
abrudz wants to merge 2 commits into
mainfrom
979-system-documentation-errors

Conversation

@abrudz

@abrudz abrudz commented Aug 6, 2026

Copy link
Copy Markdown
Member

Contentious points:

  • Whether (1) or not (0) PCRE2 is in use is given by 10≤⎕SYSTEM.Features.PCRE.
    • This is not a useful hint - remove it. Every interpreter which supports ⎕SYSTEM contains PCRE2

There might be a PCRE3 in the future, and this teaches a pattern. Since we don't know what version number would indicate PCRE3, I've flipped the check to be for PCRE1.

  • This can be converted to a character vector with ⎕UCS ⎕SYSTEM.OS.Newline.
    • No shit, Sherlock. An unneccessary admonition overload.

@FionaDyalog and @abrudz discussed it and settled on it being non-obvious to the uninitiated.

  • A positive number means the local time zone is ahead of UTC. A negative number means behind UTC. For example, if ⎕OS.UTCOffset is 10, then when it is noon UTC (12:00), it is 10 PM local time (12+10, that is, 22:00).
    • Ditto.

Ditto, but text simplified.

  • 1 0 1≡10 22000⍸⎕SYSTEM.OS.Version
    • This is wrong; 10.0.22000 is Windows 11 21H2. I believe that: 10.0.XXXXX indicates Windows 10 or Windows 11, and that XXXXX ≥ 22000 indicates Windows 11. But it's at Microsoft's whim and we shouldn't claim stuff we cannot be sure of.

Well, nobody can ever use 10.0.22000, but changed to 21999. Also hardened to avoid false positives in case Microsoft restarts build numbering for a Windows 11+.

@abrudz
abrudz requested a review from FionaDyalog August 6, 2026 12:09
@abrudz abrudz linked an issue Aug 6, 2026 that may be closed by this pull request

@FionaDyalog FionaDyalog left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved with proviso that the feedback is incorporated.


!!! Hint "Hints and Recommendations"
A positive number means the local time zone is ahead of UTC. A negative number means behind UTC. For example, if `⎕OS.UTCOffset` is `10`, then when it is noon UTC (12:00), it is 10 PM local time (`12+10`, that is, 22:00).
For example, if `⎕OS.UTCOffset` is `¯3`, then when it is 10:00 UTC, it is 07:00 local time (`10+¯3`).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this one needs to be a hint, just standard text.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think it is needed at all.


!!! Warning "Warning"
Windows 11 identifies itself as "Windows 10". Whether (`1`) or not (`0`) Windows 10 is in use is given by `1 0 1≡10 22000⍸⎕SYSTEM.OS.Version`.
Windows 11 identifies itself as "Windows 10". Whether (`1`) or not (`0`) Windows 10 is in use is given by `1 0 2≡10 11 21999⍸⎕SYSTEM.OS.Version`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this needs further clarification, as the first sentence implies that the second one could refer to Windows 10 or Windows 11.


!!! Info "Information"
More members might be added in a future release of Dyalog, but `R` will remain serialisable using [`1⎕JSON`](json.md).
More members might be added in a future release of Dyalog, but `R` will remain serialisable using [`1⎕JSON`](json.md).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This still has the problem that it assumes it will remain serialisable, and there is every reason to suppose it might not.


!!! Hint "Hints and Recommendations"
Whether (`1`) or not (`0`) PCRE2 is in use is given by `10≤⎕SYSTEM.Features.PCRE`.
Whether (`1`) or not (`0`) PCRE1 is in use is given by `8≥⊃⎕SYSTEM.Features.PCRE`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can still never be true.


!!! Hint "Hints and Recommendations"
A positive number means the local time zone is ahead of UTC. A negative number means behind UTC. For example, if `⎕OS.UTCOffset` is `10`, then when it is noon UTC (12:00), it is 10 PM local time (`12+10`, that is, 22:00).
For example, if `⎕OS.UTCOffset` is `¯3`, then when it is 10:00 UTC, it is 07:00 local time (`10+¯3`).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think it is needed at all.


!!! Warning "Warning"
Windows 11 identifies itself as "Windows 10". Whether (`1`) or not (`0`) Windows 10 is in use is given by `1 0 1≡10 22000⍸⎕SYSTEM.OS.Version`.
Windows 11 identifies itself as "Windows 10". Whether (`1`) or not (`0`) Windows 10 is in use is given by `1 0 2≡10 12 21999⍸⎕SYSTEM.OS.Version`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is far too fragile, considering we don't know what Microsoft will do, nor any of the other OSes on which we run. Publishing this would be just out and out reckless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

⎕SYSTEM documentation errors

3 participants