From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Neil Jerram" Newsgroups: gmane.lisp.guile.devel Subject: Re: Stack calibration Date: Thu, 9 Oct 2008 23:53:03 +0100 Message-ID: <49dd78620810091553gbb10a0aod55076f5eb93b28b@mail.gmail.com> References: <47B2A8DF.9070004@tammer.net> <66e540fe0802140339n2121e1d9y85fcc9f019d8be0f@mail.gmail.com> <87prukog9w.fsf@ossau.uklinux.net> <87hc8lw0q2.fsf_-_@gnu.org> <49dd78620809271120j17097ffq4da8f2b8dffd4efd@mail.gmail.com> <87abdsf337.fsf@gnu.org> <49dd78620809301510q173d1777rd26240ce40f204f0@mail.gmail.com> <49dd78620810021530u8f29699x88fa8c0241105a07@mail.gmail.com> <87d4ide4md.fsf@gnu.org> <49dd78620810061611v2e67d646v29b479ca1fb23274@mail.gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_125659_25443758.1223592783999" X-Trace: ger.gmane.org 1223592877 31853 80.91.229.12 (9 Oct 2008 22:54:37 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 9 Oct 2008 22:54:37 +0000 (UTC) Cc: guile-devel@gnu.org To: "=?ISO-8859-1?Q?Ludovic_Court=E8s?=" Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri Oct 10 00:55:34 2008 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Ko4Pm-000410-Vr for guile-devel@m.gmane.org; Fri, 10 Oct 2008 00:55:27 +0200 Original-Received: from localhost ([127.0.0.1]:36649 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ko4Oj-0007QF-4L for guile-devel@m.gmane.org; Thu, 09 Oct 2008 18:54:21 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Ko4NY-0006u4-GC for guile-devel@gnu.org; Thu, 09 Oct 2008 18:53:08 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Ko4NX-0006sw-5k for guile-devel@gnu.org; Thu, 09 Oct 2008 18:53:07 -0400 Original-Received: from [199.232.76.173] (port=43510 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ko4NW-0006sa-R8 for guile-devel@gnu.org; Thu, 09 Oct 2008 18:53:06 -0400 Original-Received: from rv-out-0708.google.com ([209.85.198.248]:46987) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Ko4NV-0004wh-Hl for guile-devel@gnu.org; Thu, 09 Oct 2008 18:53:06 -0400 Original-Received: by rv-out-0708.google.com with SMTP id k29so250588rvb.6 for ; Thu, 09 Oct 2008 15:53:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type:references; bh=eR7Tv5xsegGPg4N7tpu+wIDFXKQT0lnCYCpeddTw2bA=; b=uLGj8/4385vjfaPx9Mhe8dH6WFahqgkhYBytThKZoVTXF5mlYKaAMwB+9iNUbAQ8ZX Ms7rufLq6DKn1Qd9fWArRxueQNe3YHWulcvqqw9CRTc2IGKcZxRkJ+epjfJ6PPntzlXI tos8SQcSEfoBXyVZCfF2ALaaPgANpTm0M35cg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:references; b=T63oA221I/+44ra4jDlHzonKaI/3NTfqNmgQ6j3pUOcB9G5lSMZ0jFZaODMpG2HVSC PmZnEBMVVJJgunVqXnx0uB+k75omBro7mzzRW5VxNkteGEqVX4iNMXD/XGe1uZ/3hSrY hLHXhXWxGurxsF1+WzIYarSyMo0ZuJjlvLHH8= Original-Received: by 10.141.137.8 with SMTP id p8mr578287rvn.163.1223592784009; Thu, 09 Oct 2008 15:53:04 -0700 (PDT) Original-Received: by 10.140.142.15 with HTTP; Thu, 9 Oct 2008 15:53:03 -0700 (PDT) In-Reply-To: <49dd78620810061611v2e67d646v29b479ca1fb23274@mail.gmail.com> X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:7762 Archived-At: ------=_Part_125659_25443758.1223592783999 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi Ludo, OK, here's my next attempt at a solution for this problem. :-) Compared to the previous stack calibration patch/approach, the main points of this one are that - it uses a much larger amount of executed code to calibrate stack usage: specifically, all the code involved in starting up a standard debug-mode REPL - it focusses on the problem of getting `make check' to pass (when it should do so) - it does not modify the value or meaning of the default, C-coded stack limit - it doesn't require building the whole of Guile twice! I'm only looking at this stage for general thoughts; if you think this approach looks good, I will still need to - incorporate a "-l ../libguile/stack-limit-calibration.scm" into the running of test-suite/tests/* - do ChangeLogs, docs and NEWS. Please let me know what you think. Neil ------=_Part_125659_25443758.1223592783999 Content-Type: text/x-patch; name=0001-Stack-calibration-mark-2.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fm3zhkv00 Content-Disposition: attachment; filename=0001-Stack-calibration-mark-2.patch RnJvbSBlZDE2OGI0MDAwZGYzMGU4YWUyMDU1NjI4MzhlMjM1OGMzM2Y3YzhkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOZWlsIEplcnJhbSA8bmVpbEBvc3NhdS51a2xpbnV4Lm5ldD4K RGF0ZTogVGh1LCA5IE9jdCAyMDA4IDIzOjM2OjQ2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gU3Rh Y2sgY2FsaWJyYXRpb24gbWFyayAyCgotLS0KIGxpYmd1aWxlL01ha2VmaWxlLmFtICAgICAgICAg ICAgICAgIHwgICAgNSArLQogbGliZ3VpbGUvZGVidWcuaCAgICAgICAgICAgICAgICAgICAgfCAg ICAzICstCiBsaWJndWlsZS9ldmFsLmMgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIGxp Ymd1aWxlL21lYXN1cmUtaHdtLnNjbSAgICAgICAgICAgIHwgIDEyMiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogbGliZ3VpbGUvc3RhY2tjaGsuYyAgICAgICAgICAgICAgICAg fCAgIDE5ICsrKysrKwogbGliZ3VpbGUvc3RhY2tjaGsuaCAgICAgICAgICAgICAgICAgfCAgICA5 ICsrKwogbGliZ3VpbGUvdGhyZWFkcy5jICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBsaWJn dWlsZS90aHJlYWRzLmggICAgICAgICAgICAgICAgICB8ICAgIDUgKysKIHRlc3Qtc3VpdGUvc3Rh bmRhbG9uZS90ZXN0LXVzZS1zcmZpIHwgICAgNiArLQogOSBmaWxlcyBjaGFuZ2VkLCAxNjggaW5z ZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJndWlsZS9t ZWFzdXJlLWh3bS5zY20KCmRpZmYgLS1naXQgYS9saWJndWlsZS9NYWtlZmlsZS5hbSBiL2xpYmd1 aWxlL01ha2VmaWxlLmFtCmluZGV4IGViNzYyMzcuLjA3M2RlZmYgMTAwNjQ0Ci0tLSBhL2xpYmd1 aWxlL01ha2VmaWxlLmFtCisrKyBiL2xpYmd1aWxlL01ha2VmaWxlLmFtCkBAIC0xNTMsNyArMTUz LDcgQEAgRVhUUkFfRE9UX0RPQ19GSUxFUyA9IEBFWFRSQV9ET1RfRE9DX0ZJTEVTQAogCiBCVUlM VF9TT1VSQ0VTID0gY3BwX2Vycl9zeW1ib2xzLmMgY3BwX3NpZ19zeW1ib2xzLmMgbGlicGF0aC5o IFwKICAgICB2ZXJzaW9uLmggc2NtY29uZmlnLmggXAotICAgICQoRE9UX1hfRklMRVMpICQoRVhU UkFfRE9UX1hfRklMRVMpCisgICAgJChET1RfWF9GSUxFUykgJChFWFRSQV9ET1RfWF9GSUxFUykg c3RhY2stbGltaXQtY2FsaWJyYXRpb24uc2NtCiAKIEVYVFJBX2xpYmd1aWxlX2xhX1NPVVJDRVMg PSBfc2NtLmgJCVwKICAgICBpbmV0X2F0b24uYyBtZW1tb3ZlLmMgcHV0ZW52LmMgc3RyZXJyb3Iu YwlcCkBAIC0zMTMsNiArMzEzLDkgQEAgZ3VpbGUtcHJvY2VkdXJlcy50eHQ6IGd1aWxlLXByb2Nl ZHVyZXMudGV4aQogCiBlbmRpZgogCitzdGFjay1saW1pdC1jYWxpYnJhdGlvbi5zY206IG1lYXN1 cmUtaHdtLnNjbSBndWlsZSQoRVhFRVhUKQorCSQocHJlaW5zdGd1aWxlKSAtcyBtZWFzdXJlLWh3 bS5zY20gPiAkQAorCiBjLXRva2VuaXplLmM6IGMtdG9rZW5pemUubGV4CiAJZmxleCAtdCAkKHNy Y2RpcikvYy10b2tlbml6ZS5sZXggPiAkQCB8fCB7IHJtICRAOyBmYWxzZTsgfQogCmRpZmYgLS1n aXQgYS9saWJndWlsZS9kZWJ1Zy5oIGIvbGliZ3VpbGUvZGVidWcuaAppbmRleCBjMjkyMDA0Li41 YTgyY2M2IDEwMDY0NAotLS0gYS9saWJndWlsZS9kZWJ1Zy5oCisrKyBiL2xpYmd1aWxlL2RlYnVn LmgKQEAgLTU4LDcgKzU4LDggQEAgU0NNX0FQSSBzY21fdF9vcHRpb24gc2NtX2RlYnVnX29wdHNb XTsKICNkZWZpbmUgU0NNX1NUQUNLX0xJTUlUCQlzY21fZGVidWdfb3B0c1sxMl0udmFsCiAjZGVm aW5lIFNDTV9TSE9XX0ZJTEVfTkFNRQlzY21fZGVidWdfb3B0c1sxM10udmFsCiAjZGVmaW5lIFND TV9XQVJOX0RFUFJFQ0FURUQJc2NtX2RlYnVnX29wdHNbMTRdLnZhbAotI2RlZmluZSBTQ01fTl9E RUJVR19PUFRJT05TIDE1CisjZGVmaW5lIFNDTV9TVEFDS19IV00gICAJc2NtX2RlYnVnX29wdHNb MTVdLnZhbAorI2RlZmluZSBTQ01fTl9ERUJVR19PUFRJT05TIDE2CiAKIFNDTV9BUEkgaW50IHNj bV9kZWJ1Z19tb2RlX3A7CiBTQ01fQVBJIGludCBzY21fY2hlY2tfZW50cnlfcDsKZGlmZiAtLWdp dCBhL2xpYmd1aWxlL2V2YWwuYyBiL2xpYmd1aWxlL2V2YWwuYwppbmRleCA4OTdmMTY0Li5iNmJj NTJkIDEwMDY0NAotLS0gYS9saWJndWlsZS9ldmFsLmMKKysrIGIvbGliZ3VpbGUvZXZhbC5jCkBA IC0zMTAxLDcgKzMxMDEsOCBAQCBzY21fdF9vcHRpb24gc2NtX2RlYnVnX29wdHNbXSA9IHsKICAg eyBTQ01fT1BUSU9OX0JPT0xFQU4sICJkZWJ1ZyIsIDAsICJVc2UgdGhlIGRlYnVnZ2luZyBldmFs dWF0b3IuIiB9LAogICB7IFNDTV9PUFRJT05fSU5URUdFUiwgInN0YWNrIiwgMjAwMDAsICJTdGFj ayBzaXplIGxpbWl0IChtZWFzdXJlZCBpbiB3b3JkczsgMCA9IG5vIGNoZWNrKS4iIH0sCiAgIHsg U0NNX09QVElPTl9TQ00sICJzaG93LWZpbGUtbmFtZSIsICh1bnNpZ25lZCBsb25nKVNDTV9CT09M X1QsICJTaG93IGZpbGUgbmFtZXMgYW5kIGxpbmUgbnVtYmVycyBpbiBiYWNrdHJhY2VzIHdoZW4g bm90IGAjZicuICBBIHZhbHVlIG9mIGBiYXNlJyBkaXNwbGF5cyBvbmx5IGJhc2UgbmFtZXMsIHdo aWxlIGAjdCcgZGlzcGxheXMgZnVsbCBuYW1lcy4ifSwKLSAgeyBTQ01fT1BUSU9OX0JPT0xFQU4s ICJ3YXJuLWRlcHJlY2F0ZWQiLCAwLCAiV2FybiB3aGVuIGRlcHJlY2F0ZWQgZmVhdHVyZXMgYXJl IHVzZWQuIiB9CisgIHsgU0NNX09QVElPTl9CT09MRUFOLCAid2Fybi1kZXByZWNhdGVkIiwgMCwg Ildhcm4gd2hlbiBkZXByZWNhdGVkIGZlYXR1cmVzIGFyZSB1c2VkLiIgfSwKKyAgeyBTQ01fT1BU SU9OX0JPT0xFQU4sICJzdGFjay1od20iLCAwLCAiVHJhY2sgbWF4aW11bSBzdGFjayBzaXplIHVz ZWQgKGFsc28ga25vd24gYXMgYSBgaGlnaCB3YXRlciBtYXJrJywgaGVuY2UgdGhlIG9wdGlvbiBu YW1lKS4iIH0KIH07CiAKIHNjbV90X29wdGlvbiBzY21fZXZhbHVhdG9yX3RyYXBfdGFibGVbXSA9 IHsKQEAgLTMyNjYsNiArMzI2Nyw3IEBAIENFVkFMIChTQ00geCwgU0NNIGVudikKICAgc2NtX2lf c2V0X2xhc3RfZGVidWdfZnJhbWUgKCZkZWJ1Zyk7CiAjZW5kaWYKICNpZmRlZiBFVkFMX1NUQUNL X0NIRUNLSU5HCisgIFNDTV9DSEVDS19TVEFDS19IV00gKCZwcm9jKTsKICAgaWYgKHNjbV9zdGFj a19jaGVja2luZ19lbmFibGVkX3AgJiYgU0NNX1NUQUNLX09WRVJGTE9XX1AgKCZwcm9jKSkKICAg ICB7CiAjaWZkZWYgREVWQUwKZGlmZiAtLWdpdCBhL2xpYmd1aWxlL21lYXN1cmUtaHdtLnNjbSBi L2xpYmd1aWxlL21lYXN1cmUtaHdtLnNjbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi44NWY4ZDJiCi0tLSAvZGV2L251bGwKKysrIGIvbGliZ3VpbGUvbWVhc3VyZS1od20uc2Nt CkBAIC0wLDAgKzEsMTIyIEBACis7Ozs7IENvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKzs7OzsKKzs7OzsgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorOzs7OyBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7Ozs7IExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorOzs7 OyB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKzs7OzsgCis7Ozs7IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzs7OyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzs7OyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VQorOzs7OyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor Ozs7OyAKKzs7OzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworOzs7OyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5 OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCis7Ozs7IEZvdW5kYXRpb24sIElu Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMw MSBVU0EKKzs7OzsKKworOzs7IENvbW1lbnRhcnk6CisKKzs7OyBUaGlzIGNvZGUgaXMgcnVuIGR1 cmluZyB0aGUgR3VpbGUgYnVpbGQsIGluIG9yZGVyIHRvIHNldCB0aGUgc3RhY2sKKzs7OyBsaW1p dCB0byBhIHZhbHVlIHRoYXQgd2lsbCBhbGxvdyB0aGUgYG1ha2UgY2hlY2snIHRlc3RzIHRvIHBh c3MsCis7OzsgdGFraW5nIGludG8gYWNjb3VudCB0aGUgYXZlcmFnZSBzdGFjayB1c2FnZSBvbiB0 aGUgYnVpbGQgcGxhdGZvcm0uCis7OzsgRm9yIG1vcmUgZGV0YWlsLCBzZWUgdGhlIHRleHQgYmVs b3cgdGhhdCBnZXRzIHdyaXR0ZW4gb3V0IHRvIHRoZQorOzs7IHN0YWNrIGxpbWl0IGNhbGlicmF0 aW9uIGZpbGUuCisKKzs7OyBDb2RlOgorCis7OyBTdG9yZSBvZmYgR3VpbGUncyBkZWZhdWx0IHN0 YWNrIGxpbWl0LgorKGRlZmluZSBkZWZhdWx0LXN0YWNrLWxpbWl0IChjYWRyIChtZW1xICdzdGFj ayAoZGVidWctb3B0aW9ucykpKSkKKworOzsgTm93IGRpc2FibGUgdGhlIHN0YWNrIGxpbWl0LCBz byB0aGF0IHdlIGRvbid0IGdldCBhIHN0YWNrIG92ZXJmbG93Cis7OyB3aGlsZSBydW5uaW5nIHRo aXMgY29kZSEKKyhkZWJ1Zy1zZXQhIHN0YWNrIDApCisKKzs7IEVuYWJsZSBzdGFjayBoaWdoIHdh dGVyIG1hcmsgdHJhY2tpbmcuCisoZGVidWctZW5hYmxlICdzdGFjay1od20pCisKKzs7IENhbGwg KHR1cm4tb24tZGVidWdnaW5nKSBhbmQgKHRvcC1yZXBsKSBpbiBvcmRlciB0byBzaW11bGF0ZSBh cworOzsgY2xvc2VseSBhcyBwb3NzaWJsZSB3aGF0IGhhcHBlbnMgLSBhbmQgaW4gcGFydGljdWxh ciwgaG93IG11Y2gKKzs7IHN0YWNrIGlzIHVzZWQgLSB3aGVuIGEgc3RhbmRhcmQgR3VpbGUgUkVQ TCBpcyBzdGFydGVkIHVwLgorOzsKKzs7IGBtYWtlIGNoZWNrJyBzdGFjayBvdmVyZmxvdyBlcnJv cnMgaGF2ZSBiZWVuIHJlcG9ydGVkIGluIHRoZSBwYXN0Cis7OyBmb3I6Cis7OworOzsgLSB0ZXN0 LXN1aXRlL3N0YW5kYWxvbmUvdGVzdC11c2Utc3JmaSwgd2hpY2ggcnVucyBgZ3VpbGUgLXEKKzs7 ICAgLS11c2Utc3JmaT0uLi4nIGEgZmV3IHRpbWVzLCB3aXRoIHN0YW5kYXJkIGlucHV0IGZvciB0 aGUgUkVQTAorOzsgICBjb21pbmcgZnJvbSBhIHNoZWxsIHNjcmlwdAorOzsKKzs7IC0gdGVzdC1z dWl0ZS90ZXN0cy9lbGlzcC50ZXN0LCB3aGljaCBkb2VzIG5vdCBpbnZvbHZlIHRoZSBSRVBMLCBi dXQKKzs7ICAgaGFzIGEgbG90IG9mIGB1c2UtbW9kdWxlcycgY2FsbHMuCis7OworOzsgU3RhY2sg aGlnaCB3YXRlciBtYXJrIChIV00pIG1lYXN1cmVtZW50cyBzaG93IHRoYXQgdGhlIEhXTSBpcwor OzsgaGlnaGVyIGluIHRoZSB0ZXN0LXVzZS1zcmZpIGNhc2UgLSBzcGVjaWZpY2FsbHkgYmVjYXVz ZSBvZiB0aGUKKzs7IGNvbXBsZXhpdHkgb2YgKHRvcC1yZXBsKSAtIHNvIHRoYXQgaXMgd2hhdCB3 ZSBzaW11bGF0ZSBmb3Igb3VyCis7OyBjYWxpYnJhdGlvbiBtb2RlbCBoZXJlLgorKHR1cm4tb24t ZGVidWdnaW5nKQorKHdpdGgtb3V0cHV0LXRvLXBvcnQgKCVtYWtlLXZvaWQtcG9ydCAidyIpCisg IChsYW1iZGEgKCkKKyAgICAod2l0aC1pbnB1dC1mcm9tLXN0cmluZyAiXG4iIHRvcC1yZXBsKSkp CisKKzs7IEdldCB0aGUgc3RhY2sgSFdNIHRoYXQgcmVzdWx0ZWQgZnJvbSBydW5uaW5nIHRoYXQg Y29kZS4KKyhkZWZpbmUgdG9wLXJlcGwtaHdtLW1lYXN1cmVkICglZ2V0LXJlc2V0LXN0YWNrLWh3 bSkpCisKKzs7IFRoaXMgaXMgdGhlIHZhbHVlIG9mIHRvcC1yZXBsLWh3bS1tZWFzdXJlZCB0aGF0 IHdlIGdldCBvbiBhCis7OyBgY2Fub25pY2FsJyBidWlsZCBwbGF0Zm9ybS4gIChTZWUgdGV4dCBi ZWxvdyBmb3Igd2hhdCB0aGF0IG1lYW5zLikKKyhkZWZpbmUgdG9wLXJlcGwtaHdtLWkzODYtZ251 LWxpbnV4IDkxODQpCisKKzs7IFVzaW5nIHRoZSBhYm92ZSByZXN1bHRzLCBvdXRwdXQgY29kZSB0 aGF0IHRlc3RzIGNhbiBydW4gaW4gb3JkZXIgdG8KKzs7IGNvbmZpZ3VyZSB0aGUgc3RhY2sgbGlt aXQgY29ycmVjdGx5IGZvciB0aGUgY3VycmVudCBidWlsZCBwbGF0Zm9ybS4KKyhmb3JtYXQgI3Qg IlwKKzs7IFN0YWNrIGxpbWl0IGNhbGlicmF0aW9uIGZpbGUuCis7OworOzsgVGhpcyBmaWxlIGlz IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IEd1aWxlIHdoZW4gaXQgYnVpbGRzLCBpbgorOzsg b3JkZXIgdG8gc2V0IHRoZSBzdGFjayBsaW1pdCB0byBhIHZhbHVlIHRoYXQgcmVmbGVjdHMgdGhl IHN0YWNrCis7OyB1c2FnZSBvZiB0aGUgYnVpbGQgcGxhdGZvcm0gKE9TICsgY29tcGlsZXIgKyBj b21waWxhdGlvbiBvcHRpb25zKSwKKzs7IHNwZWNpZmljYWxseSBzbyB0aGF0IG5vbmUgb2YgR3Vp bGUncyBvd24gdGVzdHMgKHdoaWNoIGFyZSBydW4gYnkKKzs7IGBtYWtlIGNoZWNrJykgZmFpbCBi ZWNhdXNlIG9mIGEgYmVuaWduIHN0YWNrIG92ZXJmbG93IGNvbmRpdGlvbi4KKzs7Cis7OyBCeSBh IGBiZW5pZ24nIHN0YWNrIG92ZXJmbG93IGNvbmRpdGlvbiwgd2UgbWVhbiBvbmUgd2hlcmUgdGhl IHRlc3QKKzs7IGNvZGUgaXMgYmVoYXZpbmcgY29ycmVjdGx5LCBidXQgZXhjZWVkcyB0aGUgY29u ZmlndXJlZCBzdGFjayBsaW1pdAorOzsgYmVjYXVzZSB0aGUgbGltaXQgaXMgc2V0IHRvbyBsb3cu ICBBIG5vbi1iZW5pZ24gc3RhY2sgb3ZlcmZsb3cKKzs7IGNvbmRpdGlvbiB3b3VsZCBiZSBpZiBh IHBpZWNlIG9mIHRlc3QgY29kZSBiZWhhdmVkIHNpZ25pZmljYW50bHkKKzs7IGRpZmZlcmVudGx5 IG9uIHNvbWUgcGxhdGZvcm0gdG8gaG93IGl0IGRvZXMgbm9ybWFsbHksIGFuZCBhcyBhCis7OyBy ZXN1bHQgY29uc3VtZWQgYSBsb3QgbW9yZSBzdGFjay4gIEFsdGhvdWdoIHRoZXkgc2VlbSBwcmV0 dHkKKzs7IHVubGlrZWx5LCB3ZSB3b3VsZCB3YW50IHRvIGNhdGNoIG5vbi1iZW5pZ24gY29uZGl0 aW9ucyBsaWtlIHRoaXMsCis7OyBhbmQgdGhhdCBpcyB3aHkgd2UgZG9uJ3QganVzdCBkbyBgKGRl YnVnLXNldCEgc3RhY2sgMCknIHdoZW4KKzs7IHJ1bm5pbmcgYG1ha2UgY2hlY2snLgorOzsKKzs7 IEFsdGhvdWdoIHRoZSBwcmltYXJ5IHB1cnBvc2Ugb2YgdGhpcyBmaWxlIGlzIHRvIHByZXZlbnQg YG1ha2UKKzs7IGNoZWNrJyBmcm9tIGZhaWxpbmcgd2l0aG91dCBnb29kIHJlYXNvbiwgR3VpbGUg ZGV2ZWxvcGVycyBhbmQgdXNlcnMKKzs7IG1heSBhbHNvIGZpbmQgdGhlIGZvbGxvd2luZyBpbmZv cm1hdGlvbiB1c2VmdWwsIHdoZW4gZGV0ZXJtaW5pbmcKKzs7IHdoYXQgc3RhY2sgbGltaXQgdG8g Y29uZmlndXJlIGZvciB0aGVpciBvd24gcHJvZ3JhbXMuCisKKyAobGV0ICg7OyBUaGUgc3RhY2sg aGlnaCB3YXRlciBtYXJrIG1lYXN1cmVkIHdoZW4gc3RhcnRpbmcgdXAgdGhlCisgICAgICAgOzsg c3RhbmRhcmQgR3VpbGUgUkVQTCBvbiB0aGUgY3VycmVudCBidWlsZCBwbGF0Zm9ybS4KKyAgICAg ICAodG9wLXJlcGwtaHdtLW1lYXN1cmVkIH5hKQorCisgICAgICAgOzsgVGhlIHZhbHVlIG9mIHRv cC1yZXBsLWh3bS1tZWFzdXJlZCB0aGF0IHdlIGdldCB3aGVuIGJ1aWxkaW5nCisgICAgICAgOzsg R3VpbGUgb24gYW4gaTM4NiBHTlUvTGludXggc3lzdGVtLCBhZnRlciBjb25maWd1cmluZyB3aXRo CisgICAgICAgOzsgYC4vY29uZmlndXJlIC0tZW5hYmxlLW1haW50YWluZXItbW9kZSAtLXdpdGgt dGhyZWFkcycuCisgICAgICAgOzsgKEhlcmVhZnRlciByZWZlcnJlZCB0byBhcyB0aGUgYGNhbm9u aWNhbCcgYnVpbGQgcGxhdGZvcm0uKQorICAgICAgICh0b3AtcmVwbC1od20taTM4Ni1nbnUtbGlu dXggfmEpCisKKyAgICAgICA7OyBHdWlsZSdzIGRlZmF1bHQgc3RhY2sgbGltaXQgKGkuZS4gdGhl IGluaXRpYWwsIEMtY29kZWQgdmFsdWUKKyAgICAgICA7OyBvZiB0aGUgJ3N0YWNrIGRlYnVnIG9w dGlvbikuICBJbiB0aGUgY29udGV4dCBvZiB0aGlzIGZpbGUsCisgICAgICAgOzsgdGhlIGltcG9y dGFudCB0aGluZyBhYm91dCB0aGlzIG51bWJlciBpcyB0aGF0IHdlIGtub3cgdGhhdAorICAgICAg IDs7IGl0IGFsbG93cyBhbGwgb2YgdGhlIGBtYWtlIGNoZWNrJyB0ZXN0cyB0byBwYXNzIG9uIHRo ZQorICAgICAgIDs7IGNhbm9uaWNhbCBidWlsZCBwbGF0Zm9ybS4KKyAgICAgICAoZGVmYXVsdC1z dGFjay1saW1pdCB+YSkKKworICAgICAgIDs7IENhbGlicmF0ZWQgc3RhY2sgbGltaXQuICBUaGlz IGlzIHRoZSBkZWZhdWx0IHN0YWNrIGxpbWl0LAorICAgICAgIDs7IHNjYWxlZCBieSB0aGUgZmFj dG9yIGJldHdlZW4gdG9wLXJlcGwtaHdtLWkzODYtZ251LWxpbnV4IGFuZAorICAgICAgIDs7IHRv cC1yZXBsLWh3bS1tZWFzdXJlZC4KKyAgICAgICAoY2FsaWJyYXRlZC1zdGFjay1saW1pdCB+YSkp CisKKyAgIDs7IENvbmZpZ3VyZSB0aGUgY2FsaWJyYXRlZCBzdGFjayBsaW1pdC4KKyAgIChkZWJ1 Zy1zZXQhIHN0YWNrIGNhbGlicmF0ZWQtc3RhY2stbGltaXQpKQorIgorCXRvcC1yZXBsLWh3bS1t ZWFzdXJlZAorCXRvcC1yZXBsLWh3bS1pMzg2LWdudS1saW51eAorCWRlZmF1bHQtc3RhY2stbGlt aXQKKwkoLyAoKiBkZWZhdWx0LXN0YWNrLWxpbWl0IHRvcC1yZXBsLWh3bS1tZWFzdXJlZCkgdG9w LXJlcGwtaHdtLWkzODYtZ251LWxpbnV4KSkKZGlmZiAtLWdpdCBhL2xpYmd1aWxlL3N0YWNrY2hr LmMgYi9saWJndWlsZS9zdGFja2Noay5jCmluZGV4IDM5MWNlMjEuLmQ1M2MxMTggMTAwNjQ0Ci0t LSBhL2xpYmd1aWxlL3N0YWNrY2hrLmMKKysrIGIvbGliZ3VpbGUvc3RhY2tjaGsuYwpAQCAtMjQs NiArMjQsNyBAQAogI2luY2x1ZGUgImxpYmd1aWxlL19zY20uaCIKICNpbmNsdWRlICJsaWJndWls ZS9wb3J0cy5oIgogI2luY2x1ZGUgImxpYmd1aWxlL3Jvb3QuaCIKKyNpbmNsdWRlICJsaWJndWls ZS90aHJlYWRzLmgiCiAKICNpbmNsdWRlICJsaWJndWlsZS9zdGFja2Noay5oIgogDApAQCAtNzgs NiArNzksMjQgQEAgc2NtX3N0YWNrX3JlcG9ydCAoKQogICBzY21fcHV0cyAoIlxuIiwgcG9ydCk7 CiB9CiAKKworU0NNX0RFRklORSAoc2NtX3N5c19nZXRfcmVzZXRfc3RhY2tfaHdtLCAiJWdldC1y ZXNldC1zdGFjay1od20iLCAwLCAwLCAwLAorCSAgICAoKSwKKwkgICAgIkdldCBhbmQgcmVzZXQg dGhlIHN0YWNrIGhpZ2ggd2F0ZXIgbWFyayBmb3IgdGhlIGN1cnJlbnQgdGhyZWFkLiIpCisjZGVm aW5lIEZVTkNfTkFNRSBzX3NjbV9zeXNfZ2V0X3Jlc2V0X3N0YWNrX2h3bQoreworICBzY21faV90 aHJlYWQgKnQgPSBTQ01fSV9DVVJSRU5UX1RIUkVBRDsKKyNpZiBTQ01fU1RBQ0tfR1JPV1NfVVAK KyAgaW50IGh3bSA9IHQtPmh3bSAtIHQtPmJhc2U7CisjZWxzZQorICBpbnQgaHdtID0gdC0+YmFz ZSAtIHQtPmh3bTsKKyNlbmRpZgorICB0LT5od20gPSB0LT5iYXNlOworICByZXR1cm4gc2NtX2Zy b21faW50IChod20pOworfQorI3VuZGVmIEZVTkNfTkFNRQorCisKIHZvaWQKIHNjbV9pbml0X3N0 YWNrY2hrICgpCiB7CmRpZmYgLS1naXQgYS9saWJndWlsZS9zdGFja2Noay5oIGIvbGliZ3VpbGUv c3RhY2tjaGsuaAppbmRleCA5YTVjNTlmLi4yYjE3MjViIDEwMDY0NAotLS0gYS9saWJndWlsZS9z dGFja2Noay5oCisrKyBiL2xpYmd1aWxlL3N0YWNrY2hrLmgKQEAgLTM4LDE0ICszOCwyMiBAQAog IyAgZGVmaW5lIFNDTV9TVEFDS19PVkVSRkxPV19QKHMpXAogICAgKFNDTV9TVEFDS19QVFIgKHMp IFwKICAgICA+IChTQ01fSV9DVVJSRU5UX1RIUkVBRC0+YmFzZSArIFNDTV9TVEFDS19MSU1JVCkp CisjICBkZWZpbmUgU0NNX1NUQUNLX1BBU1NFRF9IV00ocylcCisgICAoU0NNX1NUQUNLX1BUUiAo cykgPiBTQ01fSV9DVVJSRU5UX1RIUkVBRC0+aHdtKQogIyBlbHNlCiAjICBkZWZpbmUgU0NNX1NU QUNLX09WRVJGTE9XX1AocylcCiAgICAoU0NNX1NUQUNLX1BUUiAocykgXAogICAgIDwgKFNDTV9J X0NVUlJFTlRfVEhSRUFELT5iYXNlIC0gU0NNX1NUQUNLX0xJTUlUKSkKKyMgIGRlZmluZSBTQ01f U1RBQ0tfUEFTU0VEX0hXTShzKVwKKyAgIChTQ01fU1RBQ0tfUFRSIChzKSA8IFNDTV9JX0NVUlJF TlRfVEhSRUFELT5od20pCiAjIGVuZGlmCisjIGRlZmluZSBTQ01fQ0hFQ0tfU1RBQ0tfSFdNKHMp XAorICAgaWYgKFNDTV9TVEFDS19IV00gJiYgU0NNX1NUQUNLX1BBU1NFRF9IV00gKHMpKVwKKyAg ICAgU0NNX0lfQ1VSUkVOVF9USFJFQUQtPmh3bSA9IFNDTV9TVEFDS19QVFIgKHMpCiAjIGRlZmlu ZSBTQ01fQ0hFQ0tfU1RBQ0tcCiAgICAge1wKICAgICAgICBTQ01fU1RBQ0tJVEVNIHN0YWNrO1wK KyAgICAgICBTQ01fQ0hFQ0tfU1RBQ0tfSFdNICgmc3RhY2spO1wKICAgICAgICBpZiAoU0NNX1NU QUNLX09WRVJGTE9XX1AgKCZzdGFjaykgJiYgc2NtX3N0YWNrX2NoZWNraW5nX2VuYWJsZWRfcClc CiAJIHNjbV9yZXBvcnRfc3RhY2tfb3ZlcmZsb3cgKCk7XAogICAgIH0KQEAgLTYwLDYgKzY4LDcg QEAgU0NNX0FQSSBpbnQgc2NtX3N0YWNrX2NoZWNraW5nX2VuYWJsZWRfcDsKIFNDTV9BUEkgdm9p ZCBzY21fcmVwb3J0X3N0YWNrX292ZXJmbG93ICh2b2lkKTsKIFNDTV9BUEkgbG9uZyBzY21fc3Rh Y2tfc2l6ZSAoU0NNX1NUQUNLSVRFTSAqc3RhcnQpOwogU0NNX0FQSSB2b2lkIHNjbV9zdGFja19y ZXBvcnQgKHZvaWQpOworU0NNX0FQSSBTQ00gc2NtX3N5c19nZXRfcmVzZXRfc3RhY2tfaHdtICh2 b2lkKTsKIFNDTV9BUEkgdm9pZCBzY21faW5pdF9zdGFja2NoayAodm9pZCk7CiAKICNlbmRpZiAg LyogU0NNX1NUQUNLQ0hLX0ggKi8KZGlmZiAtLWdpdCBhL2xpYmd1aWxlL3RocmVhZHMuYyBiL2xp Ymd1aWxlL3RocmVhZHMuYwppbmRleCA0Mzc3NzI3Li5hZmQ3NjI4IDEwMDY0NAotLS0gYS9saWJn dWlsZS90aHJlYWRzLmMKKysrIGIvbGliZ3VpbGUvdGhyZWFkcy5jCkBAIC00MjMsNyArNDIzLDcg QEAgZ3VpbGlmeV9zZWxmXzEgKFNDTV9TVEFDS0lURU0gKmJhc2UpCiAgIHQtPmJsb2NrX2FzeW5j cyA9IDE7CiAgIHQtPnBlbmRpbmdfYXN5bmNzID0gMTsKICAgdC0+bGFzdF9kZWJ1Z19mcmFtZSA9 IE5VTEw7Ci0gIHQtPmJhc2UgPSBiYXNlOworICB0LT5od20gPSB0LT5iYXNlID0gYmFzZTsKICNp ZmRlZiBfX2lhNjRfXwogICAvKiBDYWxjdWxhdGUgYW5kIHN0b3JlIG9mZiB0aGUgYmFzZSBvZiB0 aGlzIHRocmVhZCdzIHJlZ2lzdGVyCiAgICAgIGJhY2tpbmcgc3RvcmUgKFJCUykuICBVbmZvcnR1 bmF0ZWx5IG91ciBpbXBsZW1lbnRhdGlvbihzKSBvZgpkaWZmIC0tZ2l0IGEvbGliZ3VpbGUvdGhy ZWFkcy5oIGIvbGliZ3VpbGUvdGhyZWFkcy5oCmluZGV4IGQ1OGEwZmIuLjliNWYwMzggMTAwNjQ0 Ci0tLSBhL2xpYmd1aWxlL3RocmVhZHMuaAorKysgYi9saWJndWlsZS90aHJlYWRzLmgKQEAgLTEx Myw2ICsxMTMsMTEgQEAgdHlwZWRlZiBzdHJ1Y3Qgc2NtX2lfdGhyZWFkIHsKICAgc2NtX3RfY29u dHJlZ3MgKnBlbmRpbmdfcmJzX2NvbnRpbnVhdGlvbjsKICNlbmRpZgogCisgIC8qIFN0YWNrIGhp Z2ggd2F0ZXIgbWFyay4gIEluIG90aGVyIHdvcmRzLCB0aGUgaGlnaGVzdCBzdGFjayBhZGRyZXNz CisgICAgIHJlYWNoZWQsIGZvciBhIHN0YWNrIHRoYXQgZ3Jvd3MgdXB3YXJkcywgYW5kIHRoZSBs b3dlc3Qgc3RhY2sKKyAgICAgYWRkcmVzcyByZWFjaGVkLCBmb3IgYSBzdGFjayB0aGF0IGdyb3dz IGRvd253YXJkcy4gKi8KKyAgU0NNX1NUQUNLSVRFTSAqaHdtOworCiB9IHNjbV9pX3RocmVhZDsK IAogI2RlZmluZSBTQ01fSV9JU19USFJFQUQoeCkgICAgU0NNX1NNT0JfUFJFRElDQVRFIChzY21f dGMxNl90aHJlYWQsIHgpCmRpZmYgLS1naXQgYS90ZXN0LXN1aXRlL3N0YW5kYWxvbmUvdGVzdC11 c2Utc3JmaSBiL3Rlc3Qtc3VpdGUvc3RhbmRhbG9uZS90ZXN0LXVzZS1zcmZpCmluZGV4IDcxODZi NWEuLjY5NjRhZjcgMTAwNzU1Ci0tLSBhL3Rlc3Qtc3VpdGUvc3RhbmRhbG9uZS90ZXN0LXVzZS1z cmZpCisrKyBiL3Rlc3Qtc3VpdGUvc3RhbmRhbG9uZS90ZXN0LXVzZS1zcmZpCkBAIC0xOSw3ICsx OSw3IEBACiAKICMgVGVzdCB0aGF0IHR3byBzcmZpIG51bWJlcnMgb24gdGhlIGNvbW1hbmQgbGlu ZSB3b3JrLgogIwotZ3VpbGUgLXEgLS11c2Utc3JmaT0xLDEwID4vZGV2L251bGwgPDxFT0YKK2d1 aWxlIC1xIC1sIC4uLy4uL2xpYmd1aWxlL3N0YWNrLWxpbWl0LWNhbGlicmF0aW9uLnNjbSAtLXVz ZS1zcmZpPTEsMTAgPi9kZXYvbnVsbCA8PEVPRgogKGlmIChhbmQgKGRlZmluZWQ/ICdwYXJ0aXRp b24pCiAgICAgICAgICAoZGVmaW5lZD8gJ2RlZmluZS1yZWFkZXItY3RvcikpCiAgICAgKGV4aXQg MCkgICA7OyBnb29kCkBAIC0zOCw3ICszOCw3IEBAIGZpCiAjIGB0b3AtcmVwbCcgdGhlIGNvcmUg YmluZGluZ3MgZ290IGFoZWFkIG9mIGFueXRoaW5nIC0tdXNlLXNyZmkgZ2F2ZS4KICMKIAotZ3Vp bGUgLXEgLS11c2Utc3JmaT0xID4vZGV2L251bGwgPDxFT0YKK2d1aWxlIC1xIC1sIC4uLy4uL2xp Ymd1aWxlL3N0YWNrLWxpbWl0LWNhbGlicmF0aW9uLnNjbSAtLXVzZS1zcmZpPTEgPi9kZXYvbnVs bCA8PEVPRgogKGNhdGNoICN0CiAgIChsYW1iZGEgKCkKICAgICAoaW90YSAyIDMgNCkpCkBAIC01 Niw3ICs1Niw3IEBAIGZpCiAjIGV4ZXJjaXNlcyBkdXBsaWNhdGVzIGhhbmRsaW5nIGluIGB0b3At cmVwbCcgdmVyc3VzIGB1c2Utc3JmaXMnIChpbgogIyBib290LTkuc2NtKS4KICMKLWd1aWxlIC1x IC0tdXNlLXNyZmk9MTcgPi9kZXYvbnVsbCA8PEVPRgorZ3VpbGUgLXEgLWwgLi4vLi4vbGliZ3Vp bGUvc3RhY2stbGltaXQtY2FsaWJyYXRpb24uc2NtIC0tdXNlLXNyZmk9MTcgPi9kZXYvbnVsbCA8 PEVPRgogKGlmIChwcm9jZWR1cmUtd2l0aC1zZXR0ZXI/IGNhcikKICAgICAoZXhpdCAwKSAgIDs7 IGdvb2QKICAgICAoZXhpdCAxKSkgIDs7IGJhZAotLSAKMS41LjYuNQoK ------=_Part_125659_25443758.1223592783999--