all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: Nix <nix@esperi.org.uk>
Cc: Chong Yidong <cyd@gnu.org>,
	Stefan Monnier <monnier@iro.umontreal.ca>,
	emacs-devel@gnu.org
Subject: Re: Windows' "split status"
Date: Wed, 23 Nov 2011 15:15:19 +0100	[thread overview]
Message-ID: <4ECCFFF7.1030702@gmx.at> (raw)
In-Reply-To: <87sjlfxbg1.fsf@spindle.srvr.nix>

 >>      If this variable is always non-`nil', a frame's window
 >>      tree is a binary tree so every window but the frame's root window
 >>      has exactly one sibling.
 >
 > As a native English speaker, I'm afraid that this reads like a
 > non-native-English-speaker's attempt to render
 >
 >> If this variable is always non-`nil', a frame's window tree is always
 >> a binary tree so every window but the frame's root window has exactly
 >> one sibling.

Because of the missing "always"?  Then your formulation is missing yet
another "always" immediately before "exactly".

 > which unfortunately has a quite different meaning.

Mixing temporal operators and quantification in prose is problematic.
But what precisely constitutes the "different meaning" here in your
opinion?

 > While your
 > formulation is grammatically correct, I don't think it's very meaningful
 > to talk about a variable's value "always" being something.

The term "always" has very contrived semantics but it's informally often
used to say something like: If this variable is non-nil when Emacs
starts and is non-nil whenever Emacs performs an action, then for any of
Emacs' frames, that frame's window tree is a binary tree when Emacs
starts and after any action performed by Emacs.  Or, if this variable is
always non-nil, then any frame's window tree is always a binary tree.

Obviously I'd prefer to say something more useful like "for all frames
invariantly holds that if this variable is non-nil when that frame is
created or a window on that frame is created or deleted, that frame's
window tree is a binary tree" but I don't like talking in terms of pre-
and post-conditions and don't know anyway how to provide the necessary
atomicity of Emacs' actions wrt to "this variable's value".

 > Perhaps framing this in terms of a guarantee is clearer?
 >
 >> If this variable's value remains non-`nil' throughout the lifetime of
 >> a frame, the frame's window tree is guaranteed to be a binary tree;
 >> every window nested below the root window will have exactly one
 >> sibling.

I wouldn't mind.  After all, this sentence was meant as an additional
hint only, without the slightest claim for formal correctness.

martin



  reply	other threads:[~2011-11-23 14:15 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-11 15:37 Windows' "split status" Chong Yidong
2011-11-11 18:37 ` martin rudalics
2011-11-12  0:36   ` Chong Yidong
2011-11-12 10:01     ` martin rudalics
2011-11-13  3:23       ` Chong Yidong
2011-11-13 10:49         ` martin rudalics
2011-11-13 16:10           ` Chong Yidong
2011-11-13 17:17             ` martin rudalics
2011-11-15  5:20               ` Chong Yidong
2011-11-15  7:25                 ` martin rudalics
2011-11-15  9:39                   ` Chong Yidong
2011-11-15 13:30                     ` Stefan Monnier
2011-11-15 15:15                       ` martin rudalics
2011-11-15 16:24                         ` monnier
2012-01-10 16:26                           ` martin rudalics
2011-11-23 12:36                         ` Nix
2011-11-23 14:15                           ` martin rudalics [this message]
2011-11-23 17:38                             ` Eli Zaretskii
2011-11-23 19:21                               ` martin rudalics
2011-11-23 20:14                                 ` Eli Zaretskii
2011-11-24 10:00                                   ` martin rudalics
2011-11-24 11:27                                     ` Eli Zaretskii
2011-11-25 10:24                                       ` martin rudalics
2011-11-25 11:37                                         ` Eli Zaretskii
2011-11-25 13:55                                           ` martin rudalics
2011-11-25 12:00                                         ` Nix
2011-11-25 12:07                                           ` Eli Zaretskii
2011-11-25 12:14                                             ` Nix
2011-11-25 13:55                                               ` martin rudalics
2011-11-25 13:54                                           ` martin rudalics
2011-11-15 15:15                     ` martin rudalics
2011-11-15 18:37                       ` Juri Linkov
2011-11-16  5:08                         ` Chong Yidong
2011-11-16 10:11                           ` martin rudalics
2011-11-16 13:34                           ` Stefan Monnier
2011-11-16 17:01                           ` Juri Linkov
2011-11-17 10:34                             ` martin rudalics

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4ECCFFF7.1030702@gmx.at \
    --to=rudalics@gmx.at \
    --cc=cyd@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=nix@esperi.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.