From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Lennart Borgman Newsgroups: gmane.emacs.devel Subject: Re: moving window handling into lisp Date: Wed, 12 Aug 2009 21:39:27 +0200 Message-ID: References: <4A81374E.9050401@gmx.at> <4A8283EF.5080007@gmx.at> <4A82C49A.4000209@gmx.at> <4A82F64B.2030606@gmx.at> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016e646522c1f841f0470f6fa69 X-Trace: ger.gmane.org 1250105991 6733 80.91.229.12 (12 Aug 2009 19:39:51 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 12 Aug 2009 19:39:51 +0000 (UTC) Cc: Stefan Monnier , emacs-devel@gnu.org To: martin rudalics Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Aug 12 21:39:44 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1MbJfj-0007LH-8u for ged-emacs-devel@m.gmane.org; Wed, 12 Aug 2009 21:39:43 +0200 Original-Received: from localhost ([127.0.0.1]:49976 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MbJfg-00062M-Mk for ged-emacs-devel@m.gmane.org; Wed, 12 Aug 2009 15:39:40 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MbJfa-00061l-Jy for emacs-devel@gnu.org; Wed, 12 Aug 2009 15:39:34 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MbJfV-0005ym-UP for emacs-devel@gnu.org; Wed, 12 Aug 2009 15:39:34 -0400 Original-Received: from [199.232.76.173] (port=34953 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MbJfV-0005yf-R7 for emacs-devel@gnu.org; Wed, 12 Aug 2009 15:39:29 -0400 Original-Received: from mail-yw0-f186.google.com ([209.85.211.186]:58401) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MbJfV-0002zz-Bh for emacs-devel@gnu.org; Wed, 12 Aug 2009 15:39:29 -0400 Original-Received: by ywh16 with SMTP id 16so353473ywh.24 for ; Wed, 12 Aug 2009 12:39:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=on4TyBpiR36yw3jIZJSXeQyU9r7AhfDw/bMyE1aRY28=; b=OsReoRZQBSOVc1LEF+wAXP4NPJAmY0SLeD1lQvzsfAG5A6AVquT1tc5CTP0VXsIb5F Vope6t8rKOuw3ixV0jzkEaBtoeI3vsScD2jD4QCu//Cfe1zHRRZE6Oj1Y8gwrwskb7Ce EOduVOa3Xyui2FKI2keJ9h9E3M0u6MdtoCGxE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=fZLCr5kZxKfa6Fjdm8e2KyfogXiVFxprSjYwZ/fQQKSmJh4F50r4/AuKHpIgT4SjTT pzDVH0eXj8H44MGC9bTwsSU3Q3t2pI+Pf5PyTSTCYhrgZCfqKUkloEDg4a6LFjuXoCCX ghZNirCUJVh34OvtNgVXH0H6trqxPCD3dx2wc= Original-Received: by 10.100.40.17 with SMTP id n17mr350819ann.187.1250105967477; Wed, 12 Aug 2009 12:39:27 -0700 (PDT) In-Reply-To: <4A82F64B.2030606@gmx.at> X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:114152 Archived-At: --0016e646522c1f841f0470f6fa69 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Here is some elisp code that shows the "collecting" part. Am I missing something essential there? There are not so many comments at the moment, but I think you can guess... = ;-) On Wed, Aug 12, 2009 at 7:05 PM, martin rudalics wrote: >> I think the problems in the currently used logic may show up like >> that, yes. But I am sure you know much more about that. > > I suppose it can't loop currently. =C2=A0Stefan's window balancing code c= an > loop so he put an upper bound on how often that loop can get executed. > >> I do not think that fixed size windows is any problem in the algorithm >> I gave. You just use that size both when walking up and collecting >> (minimal) sizes and when walking down to compute sizes to apply. > > Maybe. =C2=A0I still don't know whether you have an algorithm in the firs= t > place. =C2=A0The recipe you gave lacks two details: (1) How to "collect" = the > sizes, and (2) how to "apply" them as they could be. > >> There is so to say no way to get too small windows when computing >> sizes to apply, but you can of course find that there is not enough >> space if the "sum" of the minimum sizes is too large. But you will >> easily see that since on each level when you are going down you know >> how much space each sublevel as a mininum needs. > > With fixed-size windows you have a minimum and a maximum. =C2=A0Surprisin= gly, > fixed-size windows are used in practice as a recent bug report confirms. > > martin > --0016e646522c1f841f0470f6fa69 Content-Type: text/plain; charset=US-ASCII; name="win-alg.el" Content-Disposition: attachment; filename="win-alg.el" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fyagryr90 Ozs7IHdpbi1hbGcuZWwgLS0tIFdpbmRvdyBzaXplIGNvbXB1dGF0aW9uDQo7Ow0KOzsgQXV0aG9y OiBMZW5uYXJ0IEJvcmdtYW4gKGxlbm5hcnQgTyBib3JnbWFuIEEgZ21haWwgTyBjb20pDQo7OyBD cmVhdGVkOiAyMDA5LTA4LTEyIFdlZA0KOzsgVmVyc2lvbjogMC4xDQo7OyBMYXN0LVVwZGF0ZWQ6 IDIwMDktMDgtMTIgV2VkDQo7Ow0KOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ow0KOzsNCjs7OyBDb2RlOg0KDQoNCjs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ow0KOzs7IFdp bmRvdyBjcmVhdGlvbiBldGMNCg0KOzsoZGVmdW4gd2EtbWFrZS13aW5kb3cgKHdpZHRoIHdtaW4g d21heCBoZWlnaHQgaG1pbiBobWF4KQ0KKGRlZnVuIHdhLW1ha2Utd2luZG93ICh3aWR0aCB3bWlu IHdtYXgpDQogIChsaXN0IChsaXN0ICdjaGlsZCBuaWwpIDs7IENoaWxkDQogICAgICAgIChsaXN0 ICdzaXplIHdpZHRoIHdtaW4gd21heCkgOzsgQWN0dWFsIHZhbHVlcw0KICAgICAgICAobGlzdCAn Y29tcHNpemUgbmlsIG5pbCkgOzsgU2xvdCBmb3IgY29tcHV0YXRpb24sIHdtaW4gd21heA0KICAg ICAgICApKQ0KDQooZGVmdW4gd2EtY2hpbGQgKHdpbmRvdykgKG50aCAxIChudGggMCB3aW5kb3cp KSkNCihkZWZ1biB3YS13aWR0aCAod2luZG93KSAobnRoIDEgKG50aCAxIHdpbmRvdykpKQ0KKGRl ZnVuIHdhLXdtaW4gICh3aW5kb3cpIChudGggMiAobnRoIDEgd2luZG93KSkpDQooZGVmdW4gd2Et d21heCAgKHdpbmRvdykgKG50aCAzIChudGggMSB3aW5kb3cpKSkNCg0KKGRlZnVuIHdhLXNldC1j aGlsZCAod2luZG93IGNoaWxkKSAoc2V0Y2FyIChudGhjZHIgMSAobnRoIDAgd2luZG93KSkgY2hp bGQpKQ0KKGRlZnVuIHdhLXNldC13aWR0aCAod2luZG93KSAgICAgICAoc2V0Y2FyIChudGhjZHIg MSAobnRoIDEgd2luZG93KSkpKQ0KKGRlZnVuIHdhLXNldC13bWluICAod2luZG93KSAgICAgICAo c2V0Y2FyIChudGhjZHIgMiAobnRoIDEgd2luZG93KSkpKQ0KKGRlZnVuIHdhLXNldC13bWF4ICAo d2luZG93KSAgICAgICAoc2V0Y2FyIChudGhjZHIgMyAobnRoIDEgd2luZG93KSkpKQ0KDQooZGVm dmFyIHdhLXJvb3Qtd2luZG93IG5pbCkNCihzZXRxIHdhLXJvb3Qtd2luZG93ICh3YS1tYWtlLXdp bmRvdyA4MCBuaWwgbmlsKSkNCg0KKGRlZnVuIHdhLXNldC1jaGlsZC13aW5kb3dzIChwYXJlbnQg dmVydGljYWwgJnJlc3Qgc2l6ZXMpDQogIChkb2xpc3QgKHMgc2l6ZXMpIChhc3NlcnQgKD0gMyAo bGVuZ3RoIHMpKSB0KSkNCiAgKGxldCogKCh0b3QtZ2l2ZW4gKGFwcGx5ICcrIChtYXBjYXIgKGxh bWJkYSAocykgKGNhciBzKSkgKGNkciBzaXplcykpKSkNCiAgICAgICAgIChwYXItc2l6ZSAgICAg ICAoaWYgdmVydGljYWwgKHdhLXdpZHRoIHBhcmVudCkgKHdhLWhlaWdodCBwYXJlbnQpKSkNCiAg ICAgICAgIDs7KHBhci1vdGhlci1zaXplIChpZiB2ZXJ0aWNhbCAod2EtaGVpZ2h0IHBhcmVudCkg KHdhLXdpZHRoIHBhcmVudCkpKQ0KICAgICAgICAgKHJlYWwtc2l6ZXMgKGNvcHktc2VxdWVuY2Ug c2l6ZXMpKQ0KICAgICAgICAgY2hpbGRyZW4pDQogICAgKHNldGNhciAobnRoIDEgcmVhbC1zaXpl cykgKC0gcGFyLXNpemUgdG90LWdpdmVuKSkNCiAgICAoc2V0cSBjaGlsZHJlbiAobWFwY2FyIChs YW1iZGEgKHNpemUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiB2ZXJ0aWNhbA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdhLW1ha2Utd2luZG93IChudGggMCBz aXplKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChu dGggMSBzaXplKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChudGggMiBzaXplKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7Oyh3YS1t YWtlLXdpbmRvdyBzaXplIHBhci1vdGhlci1zaXplKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICByZWFsLXNpemVzKSkNCiAgICAo d2Etc2V0LWNoaWxkIHBhcmVudCBjaGlsZHJlbikpKQ0KDQoNCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ow0KOzs7IENvbXB1dGF0aW9uIG9mIHNpemVz DQoNCihkZWZ1biB3YS1jb21wdXRlLXJlcXVpcmVkICh3aW4pDQogIChsZXQgKChjbWluIChvciAo d2Etd21pbiB3aW4pIG1vc3QtbmVnYXRpdmUtZml4bnVtKSkNCiAgICAgICAgKGNtYXggKG9yICh3 YS13bWF4IHdpbikgbW9zdC1wb3NpdGl2ZS1maXhudW0pKSkNCiAgICAoZG9saXN0IChjICh3YS1j aGlsZCB3aW4pKQ0KICAgICAgKGxldCAoKHJlcyAod2EtY29tcHV0ZS1yZXF1aXJlZCBjKSkpDQog ICAgICAgIChzZXRxIGNtaW4gKG1heCAobnRoIDAgcmVzKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgY21pbikpDQogICAgICAgIChzZXRxIGNtYXggKG1heCAobnRoIDEgcmVzKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgY21heCkpKSkNCiAgICAoYXNzZXJ0IChlcSAnY29tcHNpemUgKGNhciAo bnRoIDIgd2luKSkpKQ0KICAgIChzZXRjYXIgKG50aGNkciAxIChudGggMiB3aW4pKSBjbWluKQ0K ICAgIChzZXRjYXIgKG50aGNkciAyIChudGggMiB3aW4pKSBjbWF4KQ0KICAgIChsaXN0IGNtaW4g Y21heCkpKQ0KDQoNCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ow0KOzs7IFRlc3RpbmcgcGFydA0KDQo7OyAod2EtdGVzdCkNCjs7ICh3YS1jaGlsZCB3YS1y b290LXdpbmRvdykNCjs7ICh3YS13aWR0aCB3YS1yb290LXdpbmRvdykNCjs7ICh3YS13bWluIHdh LXJvb3Qtd2luZG93KQ0KOzsgKHdhLXdtYXggd2Etcm9vdC13aW5kb3cpDQo7OyAod2EtY29tcHV0 ZS1yZXF1aXJlZCB3YS1yb290LXdpbmRvdykNCg0KKGRlZnVuIHdhLXRlc3QgKCkNCiAgKHdhLXNl dC1jaGlsZC13aW5kb3dzIHdhLXJvb3Qtd2luZG93IHQNCiAgICAgICAgICAgICAgICAgICAgICAg ICAnKG5pbCBuaWwgbmlsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICcoNSA0IG5pbCkNCiAg ICAgICAgICAgICAgICAgICAgICAgICAnKDggbmlsIG5pbCkNCiAgICAgICAgICAgICAgICAgICAg ICAgICAnKDQgMyBuaWwpDQogICAgICAgICAgICAgICAgICAgICAgICAgKSkNCg0KDQo7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7DQo7Ozsgd2luLWFsZy5lbCBlbmRzIGhlcmUNCg== --0016e646522c1f841f0470f6fa69--