!avYyleMexqjFHoqrME:nixos.org

Nix Documentation

398 Members
Discussion about documentation improvements around the Nix ecosystem78 Servers

Load older messages


SenderMessageTime
16 Jan 2024
@bzzm3r:matrix.org@bzzm3r:matrix.org * I think I understand sufficiently now: "executing sequential steps" here refers to explicit sequencing of computing operations. There is no explicit sequencing of computing operations. Sequencing of computing operations only happens implicitly through specification of data dependencies. 05:46:09
@fricklerhandwerk:matrix.orgfricklerhandwerk
In reply to @bzzm3r:matrix.org
I think I understand sufficiently now: "executing sequential steps" here refers to explicit sequencing of computing operations. There is no explicit sequencing of computing operations. Sequencing of computing operations only happens implicitly through specification of data dependencies.
That’s right, it’s not exactly right. Of course the evaluator does things in some sequence, you just don’t have much control over it. The “executing sequential steps” is an old fragment I took from something or someone. Feel free to suggest a rewording in a PR
07:09:49
@fricklerhandwerk:matrix.orgfricklerhandwerk
In reply to @bzzm3r:matrix.org
I think I understand sufficiently now: "executing sequential steps" here refers to explicit sequencing of computing operations. There is no explicit sequencing of computing operations. Sequencing of computing operations only happens implicitly through specification of data dependencies.
* That’s right, it’s not very precise and, if you think too hard about it, potentially misleading. Of course the evaluator does things in some sequence, you just don’t have much control over it. The “executing sequential steps” is an old fragment I took from something or someone. Feel free to suggest a rewording in a PR
07:10:20
@fricklerhandwerk:matrix.orgfricklerhandwerkThinking too hard about stuff usually reveals that it’s all a scam…07:11:37
@bzzm3r:matrix.org@bzzm3r:matrix.orgSounds good. Currently I'm working on a PR to enable auto-formatting of EBNF in the Nix (reference) manual. (Rather than manually formatting the markdown...)07:11:38
@fricklerhandwerk:matrix.orgfricklerhandwerk
In reply to @bzzm3r:matrix.org
Sounds good. Currently I'm working on a PR to enable auto-formatting of EBNF in the Nix (reference) manual. (Rather than manually formatting the markdown...)
That would be cool. Just writing down the EBNF would be way cooler though because the first is cosmetic while the second is essential.
07:12:48
@fricklerhandwerk:matrix.orgfricklerhandwerk
In reply to @bzzm3r:matrix.org
Sounds good. Currently I'm working on a PR to enable auto-formatting of EBNF in the Nix (reference) manual. (Rather than manually formatting the markdown...)
* That would be cool. Just writing down the EBNF in the first place would be way cooler though because the first is cosmetic while the second is essential.
07:12:58
@bzzm3r:matrix.org@bzzm3r:matrix.org
In reply to @fricklerhandwerk:matrix.org
That would be cool. Just writing down the EBNF in the first place would be way cooler though because the first is cosmetic while the second is essential.

I can do that first quite happily!

But then it won't live in the docs "properly", as it won't be formatted per the contributing instructions. Perhaps it can just live in a side branch, where it can still receive reviews?

07:13:48
@bzzm3r:matrix.org@bzzm3r:matrix.orgI was not thrilled when I found out how the EBNF had to be formatted.07:14:08
@bzzm3r:matrix.org@bzzm3r:matrix.orgSo if I can skip that all together for now, I'd be much happier, yes.07:14:17
@fricklerhandwerk:matrix.orgfricklerhandwerk
In reply to @bzzm3r:matrix.org

I can do that first quite happily!

But then it won't live in the docs "properly", as it won't be formatted per the contributing instructions. Perhaps it can just live in a side branch, where it can still receive reviews?

There are no real conventions for it, it just started adding stuff using some dreamt-up EBNF syntax from my faulty memory and wrapping it in a block quote for highlighting.
07:15:21
@bzzm3r:matrix.org@bzzm3r:matrix.org(The other thing I was noticing while writing out the EBNF: it would be very, very nice to be able to link between meta-identifiers. So that would be missing in the first pass too, hopefully not to the chagrin of reviewers.)07:15:28
@bzzm3r:matrix.org@bzzm3r:matrix.orgYeah, the block quotes are what I am referring to: backticking each piece..., putting >07:16:03
@bzzm3r:matrix.org@bzzm3r:matrix.orgWell, I'll give it a go, maybe I was being too lazy.07:16:11
@fricklerhandwerk:matrix.orgfricklerhandwerk
In reply to @bzzm3r:matrix.org
(The other thing I was noticing while writing out the EBNF: it would be very, very nice to be able to link between meta-identifiers. So that would be missing in the first pass too, hopefully not to the chagrin of reviewers.)
All of that would be super nice to have, but it doesn’t matter as long as nothing is written down to begin with. Stressing out about those details just postpones the writing.
07:16:52
@bzzm3r:matrix.org@bzzm3r:matrix.orgAlright, will re-prioritize. Expect something even sooner 07:17:25
@bzzm3r:matrix.org@bzzm3r:matrix.org(Will do it piecemeal too)07:17:33
@bzzm3r:matrix.org@bzzm3r:matrix.org * (Will do it piecemeal too, tiny PRs)07:17:40
@fricklerhandwerk:matrix.orgfricklerhandwerk
In reply to @bzzm3r:matrix.org
Yeah, the block quotes are what I am referring to: backticking each piece..., putting >
Just give it a go. If I’m at the keyboard I can always fix it up.
07:17:42
@bzzm3r:matrix.org@bzzm3r:matrix.org

fricklerhandwerk: https://github.com/NixOS/nix/pull/9783

I forced myself to stay small. Tried to put most of that aside to prioritize "keep it small" and "get feedback fast and early"; punted plenty to todo lists, and the "Draft" status of the PR.

09:05:14
@bzzm3r:matrix.org@bzzm3r:matrix.org *

fricklerhandwerk: https://github.com/NixOS/nix/pull/9783

I forced myself to stay small. Tried to put most of what I felt would be necessary in a final product aside to prioritize "keep it small" and "get feedback fast and early"; punted plenty to todo lists, and the "Draft" status of the PR.

09:06:07
@bzzm3r:matrix.org@bzzm3r:matrix.org

Am I right in thinking the next part of this PR should be a push which has a guide to the EBNF we plan on using? As much as possible, I want to eliminate ... and use repetition operators.

(Ideally, we would have "raw" EBNF live in a bunch of separate files, which are processed and formatted as markdown, then inserted into the guide for presentation. These files can then also be used to drive parsers. During the processing stage, inter-linking would be performed as well, between the EBNF, and those regions of the documentation that mention something from the EBNF.)

09:13:47
@bzzm3r:matrix.org@bzzm3r:matrix.org *

Am I right in thinking the next part of this PR should be a push which has a guide to the EBNF we plan on using? Especially because: as much as possible, I want to eliminate ... and use repetition operators.

(Ideally, we would have "raw" EBNF live in a bunch of separate files, which are processed and formatted as markdown, then inserted into the guide for presentation. These files can then also be used to drive parsers. During the processing stage, inter-linking would be performed as well, between the EBNF, and those regions of the documentation that mention something from the EBNF.)

09:15:21
@bzzm3r:matrix.org@bzzm3r:matrix.org

are there any downsides to using nix-repl output directly as examples? For example, in the language reference we see the example:

''
  This is the first line.
  This is the second line.
    This is the third line.
''

(is the same as)

"This is the first line.\nThis is the second line.\n  This is the third line.\n"

This could also be presented as:

nix-repl> indentedString =   ''
              This is the first line
              This is the second line
                This is the third line
            '' # "empty-line", it has no non-whitespace characters

nix-repl> indentedString
"This is the first line\nThis is the second line\n  This is the third line\n"
23:33:29
@bzzm3r:matrix.org@bzzm3r:matrix.org I guess the stuff around nix-repl> looks noisy, perhaps. Are there any other downsides? 23:35:07
17 Jan 2024
@bzzm3r:matrix.org@bzzm3r:matrix.org *

are there any downsides to using nix-repl output directly as examples? For example, in the language reference we see the example:

''
  This is the first line.
  This is the second line.
    This is the third line.
''

(whole bunch of language explaining "this is the same as"....)

"This is the first line.\nThis is the second line.\n  This is the third line.\n"

This could also be presented as:

nix-repl> indentedString =   ''
              This is the first line
              This is the second line
                This is the third line
            '' # "empty-line", it has no non-whitespace characters

nix-repl> indentedString
"This is the first line\nThis is the second line\n  This is the third line\n"
05:04:55
@fricklerhandwerk:matrix.orgfricklerhandwerk While there’s no one currently working on it to my knowledge (although Shahar "Dawn" Or (mightyiam) has started work in that direction last year), REPL examples would probably be more hassle for automatic testing, and we really need automatic testing eventually. 07:56:43
@fricklerhandwerk:matrix.orgfricklerhandwerk

My opinion on this somewhat technically unqualified because I haven’t done concrete work on it, but I see a few theoretical advantages to have pairs of code blocks for input/output:

  • No fancy parsing needed, can be hooked into markdown processors. On nix.dev we have highlighting of expression/value pairs which demonstrate this.
  • Easier to type, obvious how to copy paste
  • No implicit state possible or required. State bad.

Generally documentation (and everything, really) should be low-tech so it’s easy to contribute to and understand how it works. That is, it shouldn’t do anything clever, because it will be hard to change for most people if it does, if only because it requires time to figure out. And time is a very scarce resource.

08:02:49
@danielsidhion:nixos.devdanielsidhionThe nix manuals are build with mdbook, which has stuff like https://github.com/FauconFan/mdbook-cmdrun which might be a possible solution for repl testing08:12:47
@danielsidhion:nixos.devdanielsidhion * The nix manuals are built with mdbook, which has stuff like https://github.com/FauconFan/mdbook-cmdrun which might be a possible solution for repl testing08:12:54

Show newer messages


Back to Room ListRoom Version: 6