From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Antipov Newsgroups: gmane.emacs.devel Subject: Region cache for bidi paragraphs? Date: Fri, 02 Aug 2013 15:11:01 +0400 Message-ID: <51FB93C5.1020804@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------040905070008000208010004" X-Trace: ger.gmane.org 1375441898 7224 80.91.229.3 (2 Aug 2013 11:11:38 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 2 Aug 2013 11:11:38 +0000 (UTC) Cc: Emacs development discussions To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Aug 02 13:11:40 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1V5DGj-0004DU-Bv for ged-emacs-devel@m.gmane.org; Fri, 02 Aug 2013 13:11:37 +0200 Original-Received: from localhost ([::1]:59213 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V5DGi-0006Ev-UQ for ged-emacs-devel@m.gmane.org; Fri, 02 Aug 2013 07:11:36 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43456) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V5DGZ-0006Ef-V7 for emacs-devel@gnu.org; Fri, 02 Aug 2013 07:11:35 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V5DGS-0007w6-SY for emacs-devel@gnu.org; Fri, 02 Aug 2013 07:11:27 -0400 Original-Received: from forward8l.mail.yandex.net ([84.201.143.141]:56081) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V5DGK-0007uN-ER; Fri, 02 Aug 2013 07:11:12 -0400 Original-Received: from smtp9.mail.yandex.net (smtp9.mail.yandex.net [77.88.61.35]) by forward8l.mail.yandex.net (Yandex) with ESMTP id 6A1D51A40CF0; Fri, 2 Aug 2013 15:11:09 +0400 (MSK) Original-Received: from smtp9.mail.yandex.net (localhost [127.0.0.1]) by smtp9.mail.yandex.net (Yandex) with ESMTP id 1B71015207C4; Fri, 2 Aug 2013 15:11:09 +0400 (MSK) Original-Received: from 242.gprs.mts.ru (242.gprs.mts.ru [213.87.134.242]) by smtp9.mail.yandex.net (nwsmtp/Yandex) with ESMTP id X1zqysJJhE-B8VuAmRO; Fri, 2 Aug 2013 15:11:08 +0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1375441868; bh=OUzY+SFv9se1iYBU7qrVrZ0L2ZhUOCGjQAndyYqH8fo=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: Content-Type; b=FHneiZHt9uQKuhoKaCb/AWVbcDob4I4yHFUfi9+9SbRL3wI2ctRoMUuL6yNBaeE9d 8GmmLAblbgtHpII/cw1FPTy1kxOocZB7gJoZBbQw12otkDViRvusmqR84kzmDzCYWL 00prj4ps8D1VOizF66OLm1fnfhnzJ7GIZc7v5G3g= Authentication-Results: smtp9.mail.yandex.net; dkim=pass header.i=@yandex.ru User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 84.201.143.141 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:162371 Archived-At: This is a multi-part message in MIME format. --------------040905070008000208010004 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Eli, what do you think about using region cache to speedup bidi_find_paragraph_start? I wrote this just to illustrate an idea, which is fairly straightforward. Dmitry --------------040905070008000208010004 Content-Type: text/plain; charset=UTF-8; name="bidi_paragraph_cache.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="bidi_paragraph_cache.patch" PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9iaWRpLmMnCi0tLSBzcmMvYmlkaS5jCTIwMTMtMDYt MDggMTg6Mjg6MzYgKzAwMDAKKysrIHNyYy9iaWRpLmMJMjAxMy0wOC0wMiAxMDoyMzowMiAr MDAwMApAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgImNoYXJhY3Rlci5oIgogI2luY2x1 ZGUgImJ1ZmZlci5oIgogI2luY2x1ZGUgImRpc3BleHRlcm4uaCIKKyNpbmNsdWRlICJyZWdp b24tY2FjaGUuaCIKIAogc3RhdGljIGJvb2wgYmlkaV9pbml0aWFsaXplZCA9IDA7CiAKQEAg LTExMDAsNyArMTEwMSw4IEBACiB7CiAgIExpc3BfT2JqZWN0IHJlID0gcGFyYWdyYXBoX3N0 YXJ0X3JlOwogICBwdHJkaWZmX3QgbGltaXQgPSBaViwgbGltaXRfYnl0ZSA9IFpWX0JZVEU7 Ci0gIHB0cmRpZmZfdCBuID0gMDsKKyAgc3RydWN0IHJlZ2lvbl9jYWNoZSAqYnBjID0gY3Vy cmVudF9idWZmZXItPmJpZGlfcGFyYWdyYXBoX2NhY2hlOworICBwdHJkaWZmX3QgbiA9IDAs IG9sZHBvcyA9IHBvcywgbmV4dDsKIAogICB3aGlsZSAocG9zX2J5dGUgPiBCRUdWX0JZVEUK IAkgJiYgbisrIDwgTUFYX1BBUkFHUkFQSF9TRUFSQ0gKQEAgLTExMTEsMTAgKzExMTMsMTcg QEAKIAkgb2YgdGhlIHRleHQgb3ZlciB3aGljaCB3ZSBzY2FuIGJhY2sgaW5jbHVkZXMKIAkg cGFyYWdyYXBoX3N0YXJ0X3JlPyAgKi8KICAgICAgIERFQ19CT1RIIChwb3MsIHBvc19ieXRl KTsKLSAgICAgIHBvcyA9IGZpbmRfbmV3bGluZV9ub19xdWl0IChwb3MsIHBvc19ieXRlLCAt MSwgJnBvc19ieXRlKTsKKyAgICAgIGlmIChyZWdpb25fY2FjaGVfYmFja3dhcmQgKGN1cnJl bnRfYnVmZmVyLCBicGMsIHBvcywgJm5leHQpKQorCXsKKwkgIHBvcyA9IG5leHQsIHBvc19i eXRlID0gQ0hBUl9UT19CWVRFIChwb3MpOworCSAgYnJlYWs7CisJfQorICAgICAgZWxzZQor CXBvcyA9IGZpbmRfbmV3bGluZV9ub19xdWl0IChwb3MsIHBvc19ieXRlLCAtMSwgJnBvc19i eXRlKTsKICAgICB9CiAgIGlmIChuID49IE1BWF9QQVJBR1JBUEhfU0VBUkNIKQotICAgIHBv c19ieXRlID0gQkVHVl9CWVRFOworICAgIHBvcyA9IEJFR1YsIHBvc19ieXRlID0gQkVHVl9C WVRFOworICBrbm93X3JlZ2lvbl9jYWNoZSAoY3VycmVudF9idWZmZXIsIGJwYywgcG9zLCBv bGRwb3MpOwogICByZXR1cm4gcG9zX2J5dGU7CiB9CiAKCj09PSBtb2RpZmllZCBmaWxlICdz cmMvYnVmZmVyLmMnCi0tLSBzcmMvYnVmZmVyLmMJMjAxMy0wNy0xNiAyMTozNTo0NSArMDAw MAorKysgc3JjL2J1ZmZlci5jCTIwMTMtMDgtMDIgMDg6NDI6NTAgKzAwMDAKQEAgLTU5MCw2 ICs1OTAsNyBAQAogCiAgIGItPm5ld2xpbmVfY2FjaGUgPSAwOwogICBiLT53aWR0aF9ydW5f Y2FjaGUgPSAwOworICBiLT5iaWRpX3BhcmFncmFwaF9jYWNoZSA9IG5ld19yZWdpb25fY2Fj aGUgKCk7CiAgIGJzZXRfd2lkdGhfdGFibGUgKGIsIFFuaWwpOwogICBiLT5wcmV2ZW50X3Jl ZGlzcGxheV9vcHRpbWl6YXRpb25zX3AgPSAxOwogCkBAIC04MTMsNiArODE0LDcgQEAKIAog ICBiLT5uZXdsaW5lX2NhY2hlID0gMDsKICAgYi0+d2lkdGhfcnVuX2NhY2hlID0gMDsKKyAg Yi0+YmlkaV9wYXJhZ3JhcGhfY2FjaGUgPSBuZXdfcmVnaW9uX2NhY2hlICgpOwogICBic2V0 X3dpZHRoX3RhYmxlIChiLCBRbmlsKTsKIAogICBuYW1lID0gRmNvcHlfc2VxdWVuY2UgKG5h bWUpOwpAQCAtMTk1Nyw2ICsxOTU5LDExIEBACiAgICAgICBmcmVlX3JlZ2lvbl9jYWNoZSAo Yi0+d2lkdGhfcnVuX2NhY2hlKTsKICAgICAgIGItPndpZHRoX3J1bl9jYWNoZSA9IDA7CiAg ICAgfQorICBpZiAoYi0+YmlkaV9wYXJhZ3JhcGhfY2FjaGUpCisgICAgeworICAgICAgZnJl ZV9yZWdpb25fY2FjaGUgKGItPmJpZGlfcGFyYWdyYXBoX2NhY2hlKTsKKyAgICAgIGItPmJp ZGlfcGFyYWdyYXBoX2NhY2hlID0gMDsKKyAgICB9CiAgIGJzZXRfd2lkdGhfdGFibGUgKGIs IFFuaWwpOwogICB1bmJsb2NrX2lucHV0ICgpOwogICBic2V0X3VuZG9fbGlzdCAoYiwgUW5p bCk7CkBAIC0yMzY3LDYgKzIzNzQsNyBAQAogICBjdXJyZW50X2J1ZmZlci0+Y2xpcF9jaGFu Z2VkID0gMTsJb3RoZXJfYnVmZmVyLT5jbGlwX2NoYW5nZWQgPSAxOwogICBzd2FwZmllbGQg KG5ld2xpbmVfY2FjaGUsIHN0cnVjdCByZWdpb25fY2FjaGUgKik7CiAgIHN3YXBmaWVsZCAo d2lkdGhfcnVuX2NhY2hlLCBzdHJ1Y3QgcmVnaW9uX2NhY2hlICopOworICBzd2FwZmllbGQg KGJpZGlfcGFyYWdyYXBoX2NhY2hlLCBzdHJ1Y3QgcmVnaW9uX2NhY2hlICopOwogICBjdXJy ZW50X2J1ZmZlci0+cHJldmVudF9yZWRpc3BsYXlfb3B0aW1pemF0aW9uc19wID0gMTsKICAg b3RoZXJfYnVmZmVyLT5wcmV2ZW50X3JlZGlzcGxheV9vcHRpbWl6YXRpb25zX3AgPSAxOwog ICBzd2FwZmllbGQgKG92ZXJsYXlzX2JlZm9yZSwgc3RydWN0IExpc3BfT3ZlcmxheSAqKTsK Cj09PSBtb2RpZmllZCBmaWxlICdzcmMvYnVmZmVyLmgnCi0tLSBzcmMvYnVmZmVyLmgJMjAx My0wNy0xNiAyMTozNTo0NSArMDAwMAorKysgc3JjL2J1ZmZlci5oCTIwMTMtMDgtMDIgMDg6 Mzg6MTQgKzAwMDAKQEAgLTgzOSw5ICs4MzksMTIgQEAKICAgICAgdGhlIGNoYXJhY3Rlcidz IHdpZHRoOyBpZiBpdCBtYXBzIGEgY2hhcmFjdGVyIHRvIHplcm8sIHdlIGRvbid0CiAgICAg IGtub3cgd2hhdCBpdHMgd2lkdGggaXMuICBUaGlzIGFsbG93cyBjb21wdXRlX21vdGlvbiB0 byBwcm9jZXNzCiAgICAgIHN1Y2ggcmVnaW9ucyB2ZXJ5IHF1aWNrbHksIHVzaW5nIGFsZ2Vi cmEgaW5zdGVhZCBvZiBpbnNwZWN0aW5nCi0gICAgIGVhY2ggY2hhcmFjdGVyLiAgIFNlZSBh bHNvIHdpZHRoX3RhYmxlLCBiZWxvdy4gICovCisgICAgIGVhY2ggY2hhcmFjdGVyLiAgIFNl ZSBhbHNvIHdpZHRoX3RhYmxlLCBiZWxvdy4KKworICAgICBUaGUgQklESSBwYXJhZ3JhcGgg Y2FjaGUgc2hvdWxkIGJlIGRvY3VtZW50ZWQsIHRvby4gICovCiAgIHN0cnVjdCByZWdpb25f Y2FjaGUgKm5ld2xpbmVfY2FjaGU7CiAgIHN0cnVjdCByZWdpb25fY2FjaGUgKndpZHRoX3J1 bl9jYWNoZTsKKyAgc3RydWN0IHJlZ2lvbl9jYWNoZSAqYmlkaV9wYXJhZ3JhcGhfY2FjaGU7 CiAKICAgLyogTm9uLXplcm8gbWVhbnMgZG9uJ3QgdXNlIHJlZGlzcGxheSBvcHRpbWl6YXRp b25zIGZvcgogICAgICBkaXNwbGF5aW5nIHRoaXMgYnVmZmVyLiAgKi8KCj09PSBtb2RpZmll ZCBmaWxlICdzcmMvaW5zZGVsLmMnCi0tLSBzcmMvaW5zZGVsLmMJMjAxMy0wOC0wMiAwODoz MjozMiArMDAwMAorKysgc3JjL2luc2RlbC5jCTIwMTMtMDgtMDIgMDg6NDA6MDkgKzAwMDAK QEAgLTE4NzMsNiArMTg3MywxMCBAQAogICAgIGludmFsaWRhdGVfcmVnaW9uX2NhY2hlIChj dXJyZW50X2J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9i dWZmZXItPndpZHRoX3J1bl9jYWNoZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RhcnQgLSBCRUcsIFogLSBlbmQpOworICBpZiAoY3VycmVudF9idWZmZXItPmJpZGlfcGFy YWdyYXBoX2NhY2hlKQorICAgIGludmFsaWRhdGVfcmVnaW9uX2NhY2hlIChjdXJyZW50X2J1 ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9idWZmZXItPmJp ZGlfcGFyYWdyYXBoX2NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFy dCAtIEJFRywgWiAtIGVuZCk7CiAKICAgVmRlYWN0aXZhdGVfbWFyayA9IFF0OwogfQoK --------------040905070008000208010004--