From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Noah Lavine Newsgroups: gmane.lisp.guile.devel Subject: Re: Broken Backtraces, and Part of a Solution Date: Wed, 18 Apr 2012 22:13:31 -0400 Message-ID: References: <87zka8y1y7.fsf@pobox.com> <87sjg0y03d.fsf@pobox.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=e89a8f3ba05be16f1204bdfeb725 X-Trace: dough.gmane.org 1334801638 1085 80.91.229.3 (19 Apr 2012 02:13:58 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 19 Apr 2012 02:13:58 +0000 (UTC) Cc: guile-devel To: Andy Wingo Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu Apr 19 04:13:47 2012 Return-path: Envelope-to: guile-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 1SKgsT-0007Us-Jn for guile-devel@m.gmane.org; Thu, 19 Apr 2012 04:13:45 +0200 Original-Received: from localhost ([::1]:39036 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SKgsS-00074S-Py for guile-devel@m.gmane.org; Wed, 18 Apr 2012 22:13:44 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:47443) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SKgsM-00073o-3j for guile-devel@gnu.org; Wed, 18 Apr 2012 22:13:42 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SKgsH-0001le-Ak for guile-devel@gnu.org; Wed, 18 Apr 2012 22:13:37 -0400 Original-Received: from mail-iy0-f169.google.com ([209.85.210.169]:41821) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SKgsH-0001lZ-27 for guile-devel@gnu.org; Wed, 18 Apr 2012 22:13:33 -0400 Original-Received: by iajr24 with SMTP id r24so14014073iaj.0 for ; Wed, 18 Apr 2012 19:13:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=w89d7rUGkEa4b2bD4ghnsAoYC5lOj93bdMbgQd8XRws=; b=QP1sWotWLK7GpQmA6avnZwDvgkZ3QAHjf1DthMCanjkr/YBkJEnE3TrQajxf+1ev5I ycO/85JChM27OoFtnyUcDRaTiDzzLuW1U17npX0Kuy7MWMUADbG56dqESjkpHdeUqAhD sbtOozhQqL7jJqNT6Q/Eghv1btGXp8JWwMZdpqQWTudEE5Unkgw2Y4TxZ9XLu1dnpR8b W/hV0PVx+cqe1VXTI/LuXcsyUxcx0kYrVV0AeH03vwGAfaEoblueadqncTK5Nz1BS4u8 XF93YoMoFFdiI/dvDOvw3T5IeUFGEZtbSVvNk+FaZSyhYS9Vp1aEP1csDlOfddYGS5S1 CB0Q== Original-Received: by 10.50.77.136 with SMTP id s8mr133438igw.56.1334801611189; Wed, 18 Apr 2012 19:13:31 -0700 (PDT) Original-Received: by 10.42.29.200 with HTTP; Wed, 18 Apr 2012 19:13:31 -0700 (PDT) In-Reply-To: <87sjg0y03d.fsf@pobox.com> X-Google-Sender-Auth: Fl0WGssj2uGsCMghuZNad-H_Gxo X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.210.169 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:14287 Archived-At: --e89a8f3ba05be16f1204bdfeb725 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Here's a patch that fixes the bug for me. I'd also like to add a test suite for the stack functions, to make sure this doesn't happen again, but I'll look at that later. Noah On Wed, Apr 18, 2012 at 9:36 PM, Andy Wingo wrote: > On Wed 18 Apr 2012 18:08, Noah Lavine writes: > >>> We need to change to default to consider generic objects as >>> eq?-compared prompt tags. >> >> I agree, but you still couldn't use procedures or integers as prompt >> tags if you wanted make-stack to work, because those are special >> cases. > > Yeah, but the whole point of prompt tags is that you can make a new one > and know that it is eq?-unique, which is not the case for integers. =A0So > integers are not in the general case. =A0It seems useful to add procedure= s > as a special case too, no? > >> That's why I thought of just changing the interface to make-stack to >> specify what you want - it's such a weird restriction that someone >> could be bitten by it and have a lot of trouble tracking it down. And >> because an argument can mean three different things, code that uses >> make-stack is hard to understand (or at least it was for me). > > It's something of a nasty interface, I agree. =A0But it's been around for > a long time; if we can make a minimal change, we should, it seems to me. > > Want to make a patch? > > Regards, > > Andy > -- > http://wingolog.org/ --e89a8f3ba05be16f1204bdfeb725 Content-Type: application/octet-stream; name="0001-make-stack-handles-prompt-tags-better.patch" Content-Disposition: attachment; filename="0001-make-stack-handles-prompt-tags-better.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h176eglc0 RnJvbSBkMWJlY2E3ZWFjMTk1OGVlNzg2ZjAxYWYxM2RmNzMyYzIxMmNmZDA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIExhdmluZSA8bm9haC5iLmxhdmluZUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTggQXByIDIwMTIgMjI6MTA6MjEgLTA0MDAKU3ViamVjdDogW1BBVENIXSBt YWtlLXN0YWNrIGhhbmRsZXMgcHJvbXB0IHRhZ3MgYmV0dGVyCgoqIGxpYmd1aWxlL3N0YWNrcy5j OiB1cGRhdGUgbWFrZS1zdGFjayBhbmQgbmFycm93X3N0YWNrIHRvIGhhbmRsZQogIHByb21wdCB0 YWdzIHRoYXQgYXJlIG5vdCBzeW1ib2xzLgotLS0KIGxpYmd1aWxlL3N0YWNrcy5jIHwgICA2NiAr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2xpYmd1aWxlL3N0YWNrcy5jIGIvbGliZ3VpbGUvc3RhY2tzLmMKaW5kZXggMTNkMzQ3YS4u M2YzZjEzMiAxMDA2NDQKLS0tIGEvbGliZ3VpbGUvc3RhY2tzLmMKKysrIGIvbGliZ3VpbGUvc3Rh Y2tzLmMKQEAgLTEwOSw3ICsxMDksNyBAQCBmaW5kX3Byb21wdCAoU0NNIGtleSkKIH0KIAogc3Rh dGljIHZvaWQKLW5hcnJvd19zdGFjayAoU0NNIHN0YWNrLCBsb25nIGlubmVyLCBTQ00gaW5uZXJf a2V5LCBsb25nIG91dGVyLCBTQ00gb3V0ZXJfa2V5KQorbmFycm93X3N0YWNrIChTQ00gc3RhY2ss IFNDTSBpbm5lcl9jdXQsIFNDTSBvdXRlcl9jdXQpCiB7CiAgIHVuc2lnbmVkIGxvbmcgaW50IGxl bjsKICAgU0NNIGZyYW1lOwpAQCAtMTE4LDU3ICsxMTgsNjcgQEAgbmFycm93X3N0YWNrIChTQ00g c3RhY2ssIGxvbmcgaW5uZXIsIFNDTSBpbm5lcl9rZXksIGxvbmcgb3V0ZXIsIFNDTSBvdXRlcl9r ZXkpCiAgIGZyYW1lID0gU0NNX1NUQUNLX0ZSQU1FIChzdGFjayk7CiAKICAgLyogQ3V0IGlubmVy IHBhcnQuICovCi0gIGlmIChzY21faXNfdHJ1ZSAoc2NtX3Byb2NlZHVyZV9wIChpbm5lcl9rZXkp KSkKKyAgaWYgKHNjbV9pc190cnVlIChzY21fcHJvY2VkdXJlX3AgKGlubmVyX2N1dCkpKQogICAg IHsKICAgICAgIC8qIEN1dCB1bnRpbCB0aGUgZ2l2ZW4gcHJvY2VkdXJlIGlzIHNlZW4uICovCi0g ICAgICBmb3IgKDsgaW5uZXIgJiYgbGVuIDsgLS1pbm5lcikKKyAgICAgIGZvciAoOyBsZW4gOykK ICAgICAgICAgewogICAgICAgICAgIFNDTSBwcm9jID0gc2NtX2ZyYW1lX3Byb2NlZHVyZSAoZnJh bWUpOwogICAgICAgICAgIGxlbi0tOwogICAgICAgICAgIGZyYW1lID0gc2NtX2ZyYW1lX3ByZXZp b3VzIChmcmFtZSk7Ci0gICAgICAgICAgaWYgKHNjbV9pc19lcSAocHJvYywgaW5uZXJfa2V5KSkK KyAgICAgICAgICBpZiAoc2NtX2lzX2VxIChwcm9jLCBpbm5lcl9jdXQpKQogICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgIH0KICAgICB9Ci0gIGVsc2UgaWYgKHNjbV9pc19zeW1ib2wgKGlubmVy X2tleSkpCi0gICAgewotICAgICAgLyogQ3V0IHVudGlsIHRoZSBnaXZlbiBwcm9tcHQgdGFnIGlz IHNlZW4uIEZJWE1FLCBhc3N1bWVzIHByb21wdCB0YWdzIGFyZQotICAgICAgICAgc3ltYm9scy4g Ki8KLSAgICAgIFNDTSAqZnAgPSBmaW5kX3Byb21wdCAoaW5uZXJfa2V5KTsKLSAgICAgIGZvciAo OyBsZW47IGxlbi0tLCBmcmFtZSA9IHNjbV9mcmFtZV9wcmV2aW91cyAoZnJhbWUpKQotICAgICAg ICBpZiAoZnAgPT0gU0NNX1ZNX0ZSQU1FX0ZQIChmcmFtZSkgLSBTQ01fVk1fRlJBTUVfT0ZGU0VU IChmcmFtZSkpCi0gICAgICAgICAgYnJlYWs7Ci0gICAgfQotICBlbHNlCisgIGVsc2UgaWYgKHNj bV9pc19pbnRlZ2VyIChpbm5lcl9jdXQpKQogICAgIHsKICAgICAgIC8qIEN1dCBzcGVjaWZpZWQg bnVtYmVyIG9mIGZyYW1lcy4gKi8KKyAgICAgIGxvbmcgaW5uZXIgPSBzY21fdG9faW50IChpbm5l cl9jdXQpOworICAgICAgCiAgICAgICBmb3IgKDsgaW5uZXIgJiYgbGVuOyAtLWlubmVyKQogICAg ICAgICB7CiAgICAgICAgICAgbGVuLS07CiAgICAgICAgICAgZnJhbWUgPSBzY21fZnJhbWVfcHJl dmlvdXMgKGZyYW1lKTsKICAgICAgICAgfQogICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIC8q IEN1dCB1bnRpbCB0aGUgZ2l2ZW4gcHJvbXB0IHRhZyBpcyBzZWVuLiAqLworICAgICAgU0NNICpm cCA9IGZpbmRfcHJvbXB0IChpbm5lcl9jdXQpOworICAgICAgZm9yICg7IGxlbjsgbGVuLS0sIGZy YW1lID0gc2NtX2ZyYW1lX3ByZXZpb3VzIChmcmFtZSkpCisgICAgICAgIGlmIChmcCA9PSBTQ01f Vk1fRlJBTUVfRlAgKGZyYW1lKSAtIFNDTV9WTV9GUkFNRV9PRkZTRVQgKGZyYW1lKSkKKyAgICAg ICAgICBicmVhazsKKyAgICB9CiAKICAgU0NNX1NFVF9TVEFDS19MRU5HVEggKHN0YWNrLCBsZW4p OwogICBTQ01fU0VUX1NUQUNLX0ZSQU1FIChzdGFjaywgZnJhbWUpOwogCiAgIC8qIEN1dCBvdXRl ciBwYXJ0LiAqLwotICBpZiAoc2NtX2lzX3RydWUgKHNjbV9wcm9jZWR1cmVfcCAob3V0ZXJfa2V5 KSkpCisgIGlmIChzY21faXNfdHJ1ZSAoc2NtX3Byb2NlZHVyZV9wIChvdXRlcl9jdXQpKSkKICAg ICB7CiAgICAgICAvKiBDdXQgdW50aWwgdGhlIGdpdmVuIHByb2NlZHVyZSBpcyBzZWVuLiAqLwot ICAgICAgZm9yICg7IG91dGVyICYmIGxlbiA7IC0tb3V0ZXIpCisgICAgICBmb3IgKDsgbGVuIDsp CiAgICAgICAgIHsKICAgICAgICAgICBmcmFtZSA9IHNjbV9zdGFja19yZWYgKHN0YWNrLCBzY21f ZnJvbV9sb25nIChsZW4gLSAxKSk7CiAgICAgICAgICAgbGVuLS07Ci0gICAgICAgICAgaWYgKHNj bV9pc19lcSAoc2NtX2ZyYW1lX3Byb2NlZHVyZSAoZnJhbWUpLCBvdXRlcl9rZXkpKQorICAgICAg ICAgIGlmIChzY21faXNfZXEgKHNjbV9mcmFtZV9wcm9jZWR1cmUgKGZyYW1lKSwgb3V0ZXJfY3V0 KSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQotICBlbHNlIGlmIChzY21f aXNfc3ltYm9sIChvdXRlcl9rZXkpKQorICBlbHNlIGlmIChzY21faXNfaW50ZWdlciAob3V0ZXJf Y3V0KSkKKyAgICB7CisgICAgICAvKiBDdXQgc3BlY2lmaWVkIG51bWJlciBvZiBmcmFtZXMuICov CisgICAgICBsb25nIG91dGVyID0gc2NtX3RvX2ludCAob3V0ZXJfY3V0KTsKKyAgICAgIAorICAg ICAgaWYgKG91dGVyIDwgbGVuKQorICAgICAgICBsZW4gLT0gb3V0ZXI7CisgICAgICBlbHNlCisg ICAgICAgIGxlbiA9IDA7CisgICAgfQorICBlbHNlCiAgICAgewotICAgICAgLyogQ3V0IHVudGls IHRoZSBnaXZlbiBwcm9tcHQgdGFnIGlzIHNlZW4uIEZJWE1FLCBhc3N1bWVzIHByb21wdCB0YWdz IGFyZQotICAgICAgICAgc3ltYm9scy4gKi8KLSAgICAgIFNDTSAqZnAgPSBmaW5kX3Byb21wdCAo b3V0ZXJfa2V5KTsKKyAgICAgIC8qIEN1dCB1bnRpbCB0aGUgZ2l2ZW4gcHJvbXB0IHRhZyBpcyBz ZWVuLiAqLworICAgICAgU0NNICpmcCA9IGZpbmRfcHJvbXB0IChvdXRlcl9jdXQpOwogICAgICAg d2hpbGUgKGxlbikKICAgICAgICAgewogICAgICAgICAgIGZyYW1lID0gc2NtX3N0YWNrX3JlZiAo c3RhY2ssIHNjbV9mcm9tX2xvbmcgKGxlbiAtIDEpKTsKQEAgLTE3NywxNCArMTg3LDYgQEAgbmFy cm93X3N0YWNrIChTQ00gc3RhY2ssIGxvbmcgaW5uZXIsIFNDTSBpbm5lcl9rZXksIGxvbmcgb3V0 ZXIsIFNDTSBvdXRlcl9rZXkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0K LSAgZWxzZQotICAgIHsKLSAgICAgIC8qIEN1dCBzcGVjaWZpZWQgbnVtYmVyIG9mIGZyYW1lcy4g Ki8KLSAgICAgIGlmIChvdXRlciA8IGxlbikKLSAgICAgICAgbGVuIC09IG91dGVyOwotICAgICAg ZWxzZQotICAgICAgICBsZW4gPSAwOwotICAgIH0KIAogICBTQ01fU0VUX1NUQUNLX0xFTkdUSCAo c3RhY2ssIGxlbik7CiB9CkBAIC0zMDgsMTAgKzMxMCw4IEBAIFNDTV9ERUZJTkUgKHNjbV9tYWtl X3N0YWNrLCAibWFrZS1zdGFjayIsIDEsIDAsIDEsCiAJfQogICAgICAgCiAgICAgICBuYXJyb3df c3RhY2sgKHN0YWNrLAotCQkgICAgc2NtX2lzX2ludGVnZXIgKGlubmVyX2N1dCkgPyBzY21fdG9f aW50IChpbm5lcl9jdXQpIDogbiwKLQkJICAgIHNjbV9pc19pbnRlZ2VyIChpbm5lcl9jdXQpID8g U0NNX0JPT0xfVCA6IGlubmVyX2N1dCwKLQkJICAgIHNjbV9pc19pbnRlZ2VyIChvdXRlcl9jdXQp ID8gc2NtX3RvX2ludCAob3V0ZXJfY3V0KSA6IG4sCi0JCSAgICBzY21faXNfaW50ZWdlciAob3V0 ZXJfY3V0KSA/IFNDTV9CT09MX1QgOiBvdXRlcl9jdXQpOworICAgICAgICAgICAgICAgICAgICBp bm5lcl9jdXQsCisgICAgICAgICAgICAgICAgICAgIG91dGVyX2N1dCk7CiAKICAgICAgIG4gPSBT Q01fU1RBQ0tfTEVOR1RIIChzdGFjayk7CiAgICAgfQotLSAKMS43LjYKCg== --e89a8f3ba05be16f1204bdfeb725--