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 23:10:57 +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=0016368e1d8a59c8950470f841ee X-Trace: ger.gmane.org 1250111482 24589 80.91.229.12 (12 Aug 2009 21:11:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 12 Aug 2009 21:11:22 +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 23:11:14 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 1MbL6G-0003xY-5Q for ged-emacs-devel@m.gmane.org; Wed, 12 Aug 2009 23:11:13 +0200 Original-Received: from localhost ([127.0.0.1]:59301 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MbL6D-000523-Hy for ged-emacs-devel@m.gmane.org; Wed, 12 Aug 2009 17:11:09 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MbL67-00051k-B1 for emacs-devel@gnu.org; Wed, 12 Aug 2009 17:11:03 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MbL62-0004xm-Kz for emacs-devel@gnu.org; Wed, 12 Aug 2009 17:11:02 -0400 Original-Received: from [199.232.76.173] (port=55583 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MbL62-0004xU-Hv for emacs-devel@gnu.org; Wed, 12 Aug 2009 17:10:58 -0400 Original-Received: from mail-yx0-f172.google.com ([209.85.210.172]:48518) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MbL62-0001rO-07 for emacs-devel@gnu.org; Wed, 12 Aug 2009 17:10:58 -0400 Original-Received: by yxe2 with SMTP id 2so445334yxe.14 for ; Wed, 12 Aug 2009 14:10:57 -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=QvanRuhiBucunC39kEmqZvC3t7IaK8WgIjL/v25do5Q=; b=cS2IITBwfupr+/2T3Uis5DJnIQthqTDCrAVkunVS4ZOG5xXw9jHcV0c7/2krodoSU7 aiH67VJ/ERUQAIYliAwQHlvjWvWafr6+1LDbaC2k82WleU8RnXHj5JnGVyGLuJg0Zwif M/NzPPjVFdVDFzmiFHUVYNhu8S+b06Tgc6TCc= 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=fug0NsnKwbfFSZqF/6g9RYErRpSFzX77jHMkbiFToqJf0sDN3KPTCHlpXWkyrDoCLB 0Mm24pa0Q4FRVosFCaE0C8VVCv9m9jUkJ7A/yiz2ydeB4Zbf/6X0Ll5oC2BjWFUgXv1H VViRxyqbQloYrpEqvSJqgomt3UJKrqrRRI7IU= Original-Received: by 10.101.67.11 with SMTP id u11mr426863ank.163.1250111457445; Wed, 12 Aug 2009 14:10:57 -0700 (PDT) In-Reply-To: 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:114156 Archived-At: --0016368e1d8a59c8950470f841ee Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Ehum, as always..., here is a better, somewhat more working version... ;-) On Wed, Aug 12, 2009 at 9:39 PM, Lennart Borgman wrote: > 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 = can >> 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 fir= st >> 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=A0Surprisi= ngly, >> fixed-size windows are used in practice as a recent bug report confirms. >> >> martin >> > --0016368e1d8a59c8950470f841ee 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_fyak29rf1 Ozs7IHdpbi1hbGcuZWwgLS0tIFdpbmRvdyBzaXplIGNvbXB1dGF0aW9uDQo7Ow0KOzsgQXV0aG9y OiBMZW5uYXJ0IEJvcmdtYW4gKGxlbm5hcnQgTyBib3JnbWFuIEEgZ21haWwgTyBjb20pDQo7OyBD cmVhdGVkOiAyMDA5LTA4LTEyIFdlZA0KOzsgVmVyc2lvbjogMC4xDQo7OyBMYXN0LVVwZGF0ZWQ6 IDIwMDktMDgtMTIgV2VkDQo7Ow0KOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ow0KOzsNCjs7OyBDb2RlOg0KDQoNCjs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ow0KOzs7IFdp bmRvdyBjcmVhdGlvbiBldGMNCg0KOzsoZGVmdW4gd2EtbWFrZS13aW5kb3cgKHdpZHRoIHdtaW4g d21heCBoZWlnaHQgaG1pbiBobWF4KQ0KKGRlZnVuIHdhLW1ha2Utd2luZG93IChuYW1lIHdpZHRo IHdtaW4gd21heCkNCiAgKGxpc3QgKGxpc3QgJ25hbWUgbmFtZSkgOzsgRWFzaWVyIGNvbW11bmlj YXRpb24gLi4uDQogICAgICAgIChsaXN0ICdjaGlsZCBuaWwpIDs7IENoaWxkDQogICAgICAgIChs aXN0ICdzaXplIHdpZHRoIHdtaW4gd21heCkgOzsgQWN0dWFsIHZhbHVlcw0KICAgICAgICAobGlz dCAnY29tcHNpemUgbmlsIG5pbCkgOzsgU2xvdCBmb3IgY29tcHV0YXRpb24sIHdtaW4gd21heA0K ICAgICAgICApKQ0KDQo7OyBGaXgtbWU6IE1ha2UgZGVmbWFjcm8gdG8gbWFrZSB0aG9zZSBnZXR0 ZXJzIHNldHRlcnMuLi4gLSBpbmNsdWRpbmcNCjs7IGNoZWNrcy4uLg0KKGRlZnVuIHdhLW5hbWUg ICh3aW5kb3cpIChudGggMSAobnRoIDAgd2luZG93KSkpDQooZGVmdW4gd2EtY2hpbGQgKHdpbmRv dykgKG50aCAxIChudGggMSB3aW5kb3cpKSkNCihkZWZ1biB3YS13aWR0aCAod2luZG93KSAobnRo IDEgKG50aCAyIHdpbmRvdykpKQ0KKGRlZnVuIHdhLXdtaW4gICh3aW5kb3cpIChudGggMiAobnRo IDIgd2luZG93KSkpDQooZGVmdW4gd2Etd21heCAgKHdpbmRvdykgKG50aCAzIChudGggMiB3aW5k b3cpKSkNCihkZWZ1biB3YS13Y21pbiAod2luZG93KSAobnRoIDEgKG50aCAzIHdpbmRvdykpKQ0K KGRlZnVuIHdhLXdjbWF4ICh3aW5kb3cpIChudGggMiAobnRoIDMgd2luZG93KSkpDQoNCihkZWZ1 biB3YS1zZXQtbmFtZSAgICh3aW5kb3cgbmFtZSkgIChzZXRjYXIgKG50aGNkciAxIChudGggMCB3 aW5kb3cpKSBuYW1lKSkNCihkZWZ1biB3YS1zZXQtY2hpbGQgICh3aW5kb3cgY2hpbGQpIChzZXRj YXIgKG50aGNkciAxIChudGggMSB3aW5kb3cpKSBjaGlsZCkpDQooZGVmdW4gd2Etc2V0LXdpZHRo ICAod2luZG93IHdpZHRoKSAoc2V0Y2FyIChudGhjZHIgMSAobnRoIDIgd2luZG93KSkgd2lkdGgp KQ0KKGRlZnVuIHdhLXNldC13bWluICAgKHdpbmRvdyB3bWluKSAgKHNldGNhciAobnRoY2RyIDIg KG50aCAyIHdpbmRvdykpIHdtaW4pKQ0KKGRlZnVuIHdhLXNldC13bWF4ICAgKHdpbmRvdyB3bWF4 KSAgKHNldGNhciAobnRoY2RyIDMgKG50aCAyIHdpbmRvdykpIHdtYXgpKQ0KKGRlZnVuIHdhLXNl dC13Y21pbiAgKHdpbmRvdyB3bWluKSAgKHNldGNhciAobnRoY2RyIDEgKG50aCAzIHdpbmRvdykp IHdtaW4pKQ0KKGRlZnVuIHdhLXNldC13Y21heCAgKHdpbmRvdyB3bWF4KSAgKHNldGNhciAobnRo Y2RyIDIgKG50aCAzIHdpbmRvdykpIHdtYXgpKQ0KDQooZGVmdW4gd2EtY2hlY2stZml0ICh3aW4p DQogIChsZXQgKCh3bWluICh3YS13bWluIHdpbikpDQogICAgICAgICh3bWF4ICh3YS13bWF4IHdp bikpDQogICAgICAgICh3Y21pbiAod2Etd2NtaW4gd2luKSkNCiAgICAgICAgKHdjbWF4ICh3YS13 Y21heCB3aW4pKSkNCiAgICAod2hlbiAoYW5kIHdtYXggd2NtaW4pDQogICAgICAodW5sZXNzICg8 PSB3Y21pbiB3bWF4KQ0KICAgICAgICAoZXJyb3IgIldpbmRvdyAlcyBpcyB0b28gc21hbGwsIG1p bj0lZCwgYnV0IGNhbiBiZSBtYXg9JWQiICh3YS1uYW1lIHdpbikgd2NtaW4gd21heCkpKQ0KICAg ICh3aGVuIChhbmQgd2NtYXggd21pbikNCiAgICAgICh1bmxlc3MgKDw9IHdjbWF4IHdtaW4pDQog ICAgICAgIChlcnJvciAiV2luZG93ICVzJ3MgY2hpbGRzIGFyZSB0b28gc21hbGwsIG1heD0lZCwg YnV0IGNhbiBiZSBtaW49JWQiICh3YS1uYW1lIHdpbikgd2NtYXggd21pbikpKSkpDQoNCihkZWZ2 YXIgd2Etcm9vdC13aW5kb3cgbmlsKQ0KDQooZGVmdW4gd2Etc2V0LWNoaWxkLXdpbmRvd3MgKHBh cmVudCB2ZXJ0aWNhbCAmcmVzdCBzaXplcykNCiAgKGRvbGlzdCAocyBzaXplcykgKGFzc2VydCAo PSAzIChsZW5ndGggcykpIHQpKQ0KICAobGV0KiAoKHRvdC1naXZlbiAoYXBwbHkgJysgKG1hcGNh ciAobGFtYmRhIChzKSAoY2FyIHMpKSAoY2RyIHNpemVzKSkpKQ0KICAgICAgICAgKHBhci1zaXpl ICAgICAgIChpZiB2ZXJ0aWNhbCAod2Etd2lkdGggcGFyZW50KSAod2EtaGVpZ2h0IHBhcmVudCkp KQ0KICAgICAgICAgOzsocGFyLW90aGVyLXNpemUgKGlmIHZlcnRpY2FsICh3YS1oZWlnaHQgcGFy ZW50KSAod2Etd2lkdGggcGFyZW50KSkpDQogICAgICAgICAocmVhbC1zaXplcyAoY29weS1zZXF1 ZW5jZSBzaXplcykpDQogICAgICAgICBjaGlsZHJlbg0KICAgICAgICAgKG51bSAwKSkNCiAgICAo c2V0Y2FyIChudGggMSByZWFsLXNpemVzKSAoLSBwYXItc2l6ZSB0b3QtZ2l2ZW4pKQ0KICAgIChz ZXRxIGNoaWxkcmVuIChtYXBjYXIgKGxhbWJkYSAoc2l6ZSkNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHNldHEgbnVtICgxKyBudW0pKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoaWYgdmVydGljYWwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3YS1tYWtl LXdpbmRvdyAoZm9ybWF0ICIlcy0lZCIgKHdhLW5hbWUgcGFyZW50KSBudW0pDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG50aCAwIHNpemUpDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG50aCAxIHNpemUp DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG50aCAy IHNpemUpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7KHdhLW1ha2Utd2luZG93 IHNpemUgcGFyLW90aGVyLXNpemUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkN CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWwtc2l6ZXMpKQ0KICAgICh3YS1zZXQtY2hp bGQgcGFyZW50IGNoaWxkcmVuKSkpDQoNCg0KOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7DQo7OzsgQ29tcHV0YXRpb24gb2Ygc2l6ZXMNCg0KKGRlZnVu IHdhLWNsZWFyLWNvbXB1dGVkICh3aW4pDQogICh3YS1zZXQtd2NtaW4gd2luIG5pbCkNCiAgKHdh LXNldC13Y21heCB3aW4gbmlsKQ0KICAoZG9saXN0IChjICh3YS1jaGlsZCB3aW4pKQ0KICAgICh3 YS1jbGVhci1jb21wdXRlZCBjKSkpDQoNCihkZWZ1biB3YS1jb21wdXRlLXJlcXVpcmVkICh3aW4p DQogIChsZXQgKCh3bWluICh3YS13bWluIHdpbikpDQogICAgICAgICh3bWF4ICh3YS13bWF4IHdp bikpDQogICAgICAgIChjbWluIDApDQogICAgICAgIChjbWF4IC0xKQ0KICAgICAgICApDQogICAg KGRvbGlzdCAoYyAod2EtY2hpbGQgd2luKSkNCiAgICAgIChsZXQqICgocmVzICh3YS1jb21wdXRl LXJlcXVpcmVkIGMpKQ0KICAgICAgICAgICAgIChyZXMtbWluIChudGggMCByZXMpKQ0KICAgICAg ICAgICAgIChyZXMtbWF4IChudGggMSByZXMpKSkNCiAgICAgICAgOzsgSnVzdCBzdW0gdGhlIE1J Tg0KICAgICAgICAod2hlbiByZXMtbWluDQogICAgICAgICAgKHNldHEgY21pbiAoKyBjbWluIHJl cy1taW4pKSkNCiAgICAgICAgKGlmIHJlcy1tYXgNCiAgICAgICAgICAgIDs7IC4uLiBvaywgbGV0 IHVzIHN1bSBNQVggdG8gc2VlIGhvdyBiaWcgd2UgY2FuIGJlIC4uLg0KICAgICAgICAgICAgKGlm IChudW1iZXJwIGNtYXgpDQogICAgICAgICAgICAgICAgKHNldHEgY21heCAoKyBjbWF4IHJlcy1t YXgpKQ0KICAgICAgICAgICAgICAoc2V0cSBjbWF4IHJlcy1tYXgpKQ0KICAgICAgICAgIDs7IEh1 cnJheSwgYXQgbGVhc3Qgb25lIGNoaWxkIGNhbiBncm93IQ0KICAgICAgICAgIChzZXRxIGNtYXgg bmlsKSkNCiAgICAgICAgKSkNCiAgICAod2hlbiAoYW5kIGNtYXggKDwgY21heCAwKSkgKHNldHEg Y21heCBuaWwpKSA7OyBUaGVyZSB3YXMgbm8gbWF4LCBpZSBubyBjaGlsZHMNCiAgICAod2hlbiB3 bWluIChzZXRxIGNtaW4gKG1heCB3bWluIGNtaW4pKSkNCiAgICAod2Etc2V0LXdjbWluIHdpbiBj bWluKQ0KICAgICh3YS1zZXQtd2NtYXggd2luIGNtYXgpDQogICAgKHdhLWNoZWNrLWZpdCB3aW4p DQogICAgKGxpc3QgKHdhLXdjbWluIHdpbikNCiAgICAgICAgICAod2Etd2NtYXggd2luKSkpKQ0K DQoNCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ow0KOzs7 IFRlc3RpbmcgcGFydA0KDQooZGVmdW4gd2EtYWRkLXRlc3QtY2hpbGRzICgpDQogICh3YS1zZXQt Y2hpbGQtd2luZG93cyB3YS1yb290LXdpbmRvdyB0DQogICAgICAgICAgICAgICAgICAgICAgICAg JyhuaWwgbmlsIG5pbCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAnKDUgNCBuaWwpDQogICAg ICAgICAgICAgICAgICAgICAgICAgJyg4IG5pbCBuaWwpDQogICAgICAgICAgICAgICAgICAgICAg ICAgJyg0IDMgbmlsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICkpDQoNCihzZXRxIHdhLXJv b3Qtd2luZG93ICh3YS1tYWtlLXdpbmRvdyAiUm9vdCIgODAgbmlsIG5pbCkpDQooc2V0cSB3YS1y b290LXdpbmRvdyAod2EtbWFrZS13aW5kb3cgIlJvb3QiIDgwIG5pbCA4KSkNCihzZXRxIHdhLXJv b3Qtd2luZG93ICh3YS1tYWtlLXdpbmRvdyAiUm9vdCIgODAgbmlsIDYpKQ0KKHNldHEgd2Etcm9v dC13aW5kb3cgKHdhLW1ha2Utd2luZG93ICJSb290IiA4MCA1IG5pbCkpDQooc2V0cSB3YS1yb290 LXdpbmRvdyAod2EtbWFrZS13aW5kb3cgIlJvb3QiIDgwIDE1IG5pbCkpDQoNCjs7ICh3YS1jaGls ZCB3YS1yb290LXdpbmRvdykNCjs7ICh3YS13aWR0aCB3YS1yb290LXdpbmRvdykNCjs7ICh3YS13 bWluIHdhLXJvb3Qtd2luZG93KQ0KOzsgKHdhLXdtYXggd2Etcm9vdC13aW5kb3cpDQo7OyAod2Et Y2xlYXItY29tcHV0ZWQgd2Etcm9vdC13aW5kb3cpDQoNCih3YS1hZGQtdGVzdC1jaGlsZHMpDQoo d2EtY29tcHV0ZS1yZXF1aXJlZCB3YS1yb290LXdpbmRvdykNCihkZXNjcmliZS12YXJpYWJsZSAn d2Etcm9vdC13aW5kb3cpDQoNCg0KDQo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7DQo7Ozsgd2luLWFsZy5lbCBlbmRz IGhlcmUNCg== --0016368e1d8a59c8950470f841ee--