From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29694 invoked by alias); 20 Dec 2013 22:29:43 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 29662 invoked by uid 89); 20 Dec 2013 22:29:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ee0-f49.google.com Received: from mail-ee0-f49.google.com (HELO mail-ee0-f49.google.com) (74.125.83.49) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Fri, 20 Dec 2013 22:29:39 +0000 Received: by mail-ee0-f49.google.com with SMTP id c41so1307231eek.22 for ; Fri, 20 Dec 2013 14:29:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=CnmRZmbOuaXmzdTvGl2pNIi8qysQJ+eeaf9gP4/HkIs=; b=egsBsVS0uRw/6bpOdmDICXK2gs1fBC5Zqd8SeoUUSAh2OTyEblld25QE7OSpa3MN9B 4w2QzNzAI2wXR7IGEZJLnWbXyMR3eVoww69IY5852tY7kY90TB2uE1bn+8k3qaZ50djd wVWnzKmUMHADb3zX3hPCw0KXTrlAYwSyPwFRvRJ6ChP/hQUvehEBekm3PyF5bEUW6PvO NZ6TkDR5PzcBiJNhLAgu33FYUXTXKzWepxSfB50jqy9QN76NXGRLaaMGfAbGzh9rI177 +HKDsqwDiLfJj5oWYyFIVdxVyj7zTeE7hC7Ct4GwoYixw7UzDPdVsZl3XhXxHx+VcDWF Hkng== X-Gm-Message-State: ALoCoQkRPEizPl2Jhx2I39v5/aCAo+uQmM5FD9f6fJaGI44h4hdwXdYv+xmBs1lPNDRfKAkHSmEw4i9F+4sN3JtiCxz87YHJ/4MxOrYke8v80th/ygSkJnzb+T6cn6i2J9QSdIWlkW+RmreZYQ6mV5X42N+yyjyFIfK+/bnNUzvZntsyCcyD8ZbxBK5k21unR/CFPynpbr8Is+T6PJZKXOJa/Rp0woTTXw== MIME-Version: 1.0 X-Received: by 10.14.119.1 with SMTP id m1mr7768752eeh.39.1387578576332; Fri, 20 Dec 2013 14:29:36 -0800 (PST) Received: by 10.14.151.72 with HTTP; Fri, 20 Dec 2013 14:29:36 -0800 (PST) In-Reply-To: References: <871u1j2ldi.fsf@fleche.redhat.com> Date: Fri, 20 Dec 2013 22:29:00 -0000 Message-ID: Subject: Re: [RFC/Patch] Call overloaded operators to perform valid Python operations on struct/class values. From: Siva Chandra To: gdb-patches Cc: Tom Tromey , Doug Evans Content-Type: multipart/mixed; boundary=001a11c372ec24061604edfed075 X-IsSubscribed: yes X-SW-Source: 2013-12/txt/msg00855.txt.bz2 --001a11c372ec24061604edfed075 Content-Type: text/plain; charset=UTF-8 Content-length: 1220 I do not think there was an agreement on whether to have this feature or not. Based on the points raised by Doug, my personal opinion is that we should have this feature along with the facility (which in my opinion is a cool fallback when no other Pythonic way works) suggested by Doug. To keep the discussion moving for both the ideas, I am sending a patch which addresses the nits pointed out by Doug on my first patch. I will hopefully find time during the holidays to work on the feature suggested by Doug. 2013-12-20 Siva Chandra Reddy Call overloaded operators to perform valid Python operations on struct/class values. * NEWS (Python Scripting): Add entry for this new feature. * python/py-value.c (valpy_binop): Call value_x_binop for struct and class values. testsuite/ * gdb.python/py-value-cc.cc: Improve test case to enable testing operations on gdb.Value objects. * gdb.python/py-value-cc.exp: Add new test to test operations on gdb.Value objects. doc/ * gdb.texinfo (Values From Inferior): Add description about performing valid Python operations on gdb.Value objects. --001a11c372ec24061604edfed075 Content-Type: text/plain; charset=US-ASCII; name="python_op_patch_v2.txt" Content-Disposition: attachment; filename="python_op_patch_v2.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hpg0b3210 Content-length: 8073 ZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggZTRiYWY1 MC4uYjcxMmZkZCAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05F V1MKQEAgLTQyLDYgKzQyLDkgQEAKICAgKiogTGluZSB0YWJsZXMgcmVwcmVz ZW50YXRpb24gaGFzIGJlZW4gYWRkZWQuCiAgICoqIE5ldyBhdHRyaWJ1dGUg J3BhcmVudF90eXBlJyBmb3IgZ2RiLkZpZWxkIG9iamVjdHMuCiAgICoqIGdk Yi5GaWVsZCBvYmplY3RzIGNhbiBiZSB1c2VkIGFzIHN1YnNjcmlwdHMgb24g Z2RiLlZhbHVlIG9iamVjdHMuCisgICoqIFZhbGlkIFB5dGhvbiBvcGVyYXRp b25zIG9uIGdkYi5WYWx1ZSBvYmplY3RzIHJlcHJlc2VudGluZworICAgICBz dHJ1Y3RzL2NsYXNzZXMgaW52b2tlcyB0aGUgY29ycmVzcG9uZGluZyBvdmVy bG9hZGVkIG9wZXJhdG9ycyBpZgorICAgICBhdmFpbGFibGUuCiAKICogTmV3 IHRhcmdldHMKIApkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBi L2dkYi9kb2MvZ2RiLnRleGluZm8KaW5kZXggYjc1NTFjMi4uMGNhMDg4MCAx MDA2NDQKLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbworKysgYi9nZGIvZG9j L2dkYi50ZXhpbmZvCkBAIC0yMzk3NCw3ICsyMzk3NCwyMyBAQCBiYXIgPSBz b21lX3ZhbCArIDIKIAogQG5vaW5kZW50CiBBcyByZXN1bHQgb2YgdGhpcywg QGNvZGV7YmFyfSB3aWxsIGFsc28gYmUgYSBAY29kZXtnZGIuVmFsdWV9IG9i amVjdAotd2hvc2UgdmFsdWVzIGFyZSBvZiB0aGUgc2FtZSB0eXBlIGFzIHRo b3NlIG9mIEBjb2Rle3NvbWVfdmFsfS4KK3dob3NlIHZhbHVlcyBhcmUgb2Yg dGhlIHNhbWUgdHlwZSBhcyB0aG9zZSBvZiBAY29kZXtzb21lX3ZhbH0uICBW YWxpZAorUHl0aG9uIG9wZXJhdGlvbnMgY2FuIGFsc28gYmUgcGVyZm9ybWVk IG9uIEBjb2Rle2dkYi5WYWx1ZX0gb2JqZWN0cworcmVwcmVzZW50aW5nIEBj b2Rle3N0cnVjdH1zL0Bjb2Rle2NsYXNzfWVzLiAgRm9yIHN1Y2ggY2FzZXMs IHRoZQorb3ZlcmxvYWRlZCBvcGVyYXRvciAoaWYgcHJlc2VudCksIGlzIHVz ZWQgdG8gcGVyZm9ybSB0aGUgb3BlcmF0aW9uLgorRm9yIGV4YW1wbGUsIGlm IEBjb2Rle3ZhbDF9YW5kIEBjb2Rle3ZhbDJ9IGFyZSBAY29kZXtnZGIuVmFs dWV9IG9iamVjdHMKK3JlcHJlc2VudGluZyBpbnN0YW5jZXMgb2YgYSBAY29k ZXtjbGFzc30gd2hpY2ggaGFzIGFuIG92ZXJsb2FkZWQKK29wZXJhdG9yIGRl ZmluZWQgZm9yIHRoZSBAY29kZXsrfSBvcGVyYXRvciwgdGhlbiBvbmUgY2Fu IHVzZSB0aGUKK0Bjb2Rleyt9IG9wZXJhdG9yIGluIHRoZWlyIFB5dGhvbiBz Y3JpcHQgYXMgZm9sbG93czoKKworQHNtYWxsZXhhbXBsZQordmFsMyA9IHZh bDEgKyB2YWwyCitAZW5kIHNtYWxsZXhhbXBsZQorCitAbm9pbmRlbnQKK1Ro ZSByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbiBAY29kZXt2YWwzfSBpcyBhbHNv IGEgQGNvZGV7Z2RiLlZhbHVlfQorb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8g dGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBvdmVybG9hZGVkIEBjb2Rleyt9 CitvcGVyYXRvci4KIAogSW5mZXJpb3IgdmFsdWVzIHRoYXQgYXJlIHN0cnVj dHVyZXMgb3IgaW5zdGFuY2VzIG9mIHNvbWUgY2xhc3MgY2FuCiBiZSBhY2Nl c3NlZCB1c2luZyB0aGUgUHl0aG9uIEBkZm57ZGljdGlvbmFyeSBzeW50YXh9 LiAgRm9yIGV4YW1wbGUsIGlmCmRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5 LXZhbHVlLmMgYi9nZGIvcHl0aG9uL3B5LXZhbHVlLmMKaW5kZXggZGYyNTE3 OS4uNmMyNDU4YyAxMDA2NDQKLS0tIGEvZ2RiL3B5dGhvbi9weS12YWx1ZS5j CisrKyBiL2dkYi9weXRob24vcHktdmFsdWUuYwpAQCAtODg0LDYgKzg4NCw4 IEBAIHZhbHB5X2Jpbm9wIChlbnVtIHZhbHB5X29wY29kZSBvcGNvZGUsIFB5 T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqb3RoZXIpCiAgICAgICBzdHJ1Y3Qg dmFsdWUgKmFyZzEsICphcmcyOwogICAgICAgc3RydWN0IGNsZWFudXAgKmNs ZWFudXAgPSBtYWtlX2NsZWFudXBfdmFsdWVfZnJlZV90b19tYXJrICh2YWx1 ZV9tYXJrICgpKTsKICAgICAgIHN0cnVjdCB2YWx1ZSAqcmVzX3ZhbCA9IE5V TEw7CisgICAgICBlbnVtIGV4cF9vcGNvZGUgb3AgPSBPUF9OVUxMOworICAg ICAgaW50IGhhbmRsZWQgPSAwOwogCiAgICAgICAvKiBJZiB0aGUgZ2RiLlZh bHVlIG9iamVjdCBpcyB0aGUgc2Vjb25kIG9wZXJhbmQsIHRoZW4gaXQgd2ls bCBiZSBwYXNzZWQKIAkgdG8gdXMgYXMgdGhlIE9USEVSIGFyZ3VtZW50LCBh bmQgU0VMRiB3aWxsIGJlIGFuIGVudGlyZWx5IGRpZmZlcmVudApAQCAtOTE1 LDYgKzkxNyw3IEBAIHZhbHB5X2Jpbm9wIChlbnVtIHZhbHB5X29wY29kZSBv cGNvZGUsIFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqb3RoZXIpCiAJICAg IENIRUNLX1RZUEVERUYgKHJ0eXBlKTsKIAkgICAgcnR5cGUgPSBTVFJJUF9S RUZFUkVOQ0UgKHJ0eXBlKTsKIAorCSAgICBoYW5kbGVkID0gMTsKIAkgICAg aWYgKFRZUEVfQ09ERSAobHR5cGUpID09IFRZUEVfQ09ERV9QVFIKIAkJJiYg aXNfaW50ZWdyYWxfdHlwZSAocnR5cGUpKQogCSAgICAgIHJlc192YWwgPSB2 YWx1ZV9wdHJhZGQgKGFyZzEsIHZhbHVlX2FzX2xvbmcgKGFyZzIpKTsKQEAg LTkyMiw3ICs5MjUsMTAgQEAgdmFscHlfYmlub3AgKGVudW0gdmFscHlfb3Bj b2RlIG9wY29kZSwgUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpvdGhlcikK IAkJICAgICAmJiBpc19pbnRlZ3JhbF90eXBlIChsdHlwZSkpCiAJICAgICAg cmVzX3ZhbCA9IHZhbHVlX3B0cmFkZCAoYXJnMiwgdmFsdWVfYXNfbG9uZyAo YXJnMSkpOwogCSAgICBlbHNlCi0JICAgICAgcmVzX3ZhbCA9IHZhbHVlX2Jp bm9wIChhcmcxLCBhcmcyLCBCSU5PUF9BREQpOworCSAgICAgIHsKKwkJaGFu ZGxlZCA9IDA7CisJCW9wID0gQklOT1BfQUREOworCSAgICAgIH0KIAkgIH0K IAkgIGJyZWFrOwogCWNhc2UgVkFMUFlfU1VCOgpAQCAtOTM1LDYgKzk0MSw3 IEBAIHZhbHB5X2Jpbm9wIChlbnVtIHZhbHB5X29wY29kZSBvcGNvZGUsIFB5 T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqb3RoZXIpCiAJICAgIENIRUNLX1RZ UEVERUYgKHJ0eXBlKTsKIAkgICAgcnR5cGUgPSBTVFJJUF9SRUZFUkVOQ0Ug KHJ0eXBlKTsKIAorCSAgICBoYW5kbGVkID0gMTsKIAkgICAgaWYgKFRZUEVf Q09ERSAobHR5cGUpID09IFRZUEVfQ09ERV9QVFIKIAkJJiYgVFlQRV9DT0RF IChydHlwZSkgPT0gVFlQRV9DT0RFX1BUUikKIAkgICAgICAvKiBBIHB0cmRp ZmZfdCBmb3IgdGhlIHRhcmdldCB3b3VsZCBiZSBwcmVmZXJhYmxlIGhlcmUu ICAqLwpAQCAtOTQ0LDM4ICs5NTEsNDkgQEAgdmFscHlfYmlub3AgKGVudW0g dmFscHlfb3Bjb2RlIG9wY29kZSwgUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0 ICpvdGhlcikKIAkJICAgICAmJiBpc19pbnRlZ3JhbF90eXBlIChydHlwZSkp CiAJICAgICAgcmVzX3ZhbCA9IHZhbHVlX3B0cmFkZCAoYXJnMSwgLSB2YWx1 ZV9hc19sb25nIChhcmcyKSk7CiAJICAgIGVsc2UKLQkgICAgICByZXNfdmFs ID0gdmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX1NVQik7CisJICAg ICAgeworCQloYW5kbGVkID0gMDsKKwkJb3AgPSBCSU5PUF9TVUI7CisJICAg ICAgfQogCSAgfQogCSAgYnJlYWs7CiAJY2FzZSBWQUxQWV9NVUw6Ci0JICBy ZXNfdmFsID0gdmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX01VTCk7 CisJICBvcCA9IEJJTk9QX01VTDsKIAkgIGJyZWFrOwogCWNhc2UgVkFMUFlf RElWOgotCSAgcmVzX3ZhbCA9IHZhbHVlX2Jpbm9wIChhcmcxLCBhcmcyLCBC SU5PUF9ESVYpOworCSAgb3AgPSBCSU5PUF9ESVY7CiAJICBicmVhazsKIAlj YXNlIFZBTFBZX1JFTToKLQkgIHJlc192YWwgPSB2YWx1ZV9iaW5vcCAoYXJn MSwgYXJnMiwgQklOT1BfUkVNKTsKKwkgIG9wID0gQklOT1BfUkVNOwogCSAg YnJlYWs7CiAJY2FzZSBWQUxQWV9QT1c6Ci0JICByZXNfdmFsID0gdmFsdWVf Ymlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX0VYUCk7CisJICBvcCA9IEJJTk9Q X0VYUDsKIAkgIGJyZWFrOwogCWNhc2UgVkFMUFlfTFNIOgotCSAgcmVzX3Zh bCA9IHZhbHVlX2Jpbm9wIChhcmcxLCBhcmcyLCBCSU5PUF9MU0gpOworCSAg b3AgPSBCSU5PUF9MU0g7CiAJICBicmVhazsKIAljYXNlIFZBTFBZX1JTSDoK LQkgIHJlc192YWwgPSB2YWx1ZV9iaW5vcCAoYXJnMSwgYXJnMiwgQklOT1Bf UlNIKTsKKwkgIG9wID0gQklOT1BfUlNIOwogCSAgYnJlYWs7CiAJY2FzZSBW QUxQWV9CSVRBTkQ6Ci0JICByZXNfdmFsID0gdmFsdWVfYmlub3AgKGFyZzEs IGFyZzIsIEJJTk9QX0JJVFdJU0VfQU5EKTsKKwkgIG9wID0gQklOT1BfQklU V0lTRV9BTkQ7CiAJICBicmVhazsKIAljYXNlIFZBTFBZX0JJVE9SOgotCSAg cmVzX3ZhbCA9IHZhbHVlX2Jpbm9wIChhcmcxLCBhcmcyLCBCSU5PUF9CSVRX SVNFX0lPUik7CisJICBvcCA9IEJJTk9QX0JJVFdJU0VfSU9SOwogCSAgYnJl YWs7CiAJY2FzZSBWQUxQWV9CSVRYT1I6Ci0JICByZXNfdmFsID0gdmFsdWVf Ymlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX0JJVFdJU0VfWE9SKTsKKwkgIG9w ID0gQklOT1BfQklUV0lTRV9YT1I7CiAJICBicmVhazsKIAl9CiAKKyAgICAg IGlmICghaGFuZGxlZCkKKwl7CisJICBpZiAoYmlub3BfdXNlcl9kZWZpbmVk X3AgKG9wLCBhcmcxLCBhcmcyKSkKKwkgICAgcmVzX3ZhbCA9IHZhbHVlX3hf Ymlub3AgKGFyZzEsIGFyZzIsIG9wLCBPUF9OVUxMLCBFVkFMX05PUk1BTCk7 CisJICBlbHNlCisJICAgIHJlc192YWwgPSB2YWx1ZV9iaW5vcCAoYXJnMSwg YXJnMiwgb3ApOworCX0KKwogICAgICAgaWYgKHJlc192YWwpCiAJcmVzdWx0 ID0gdmFsdWVfdG9fdmFsdWVfb2JqZWN0IChyZXNfdmFsKTsKIApkaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLWNjLmNj IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLWNjLmNjCmlu ZGV4IDgwMDk0ZWMuLjYwYzIxODIgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS1jYy5jYworKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktdmFsdWUtY2MuY2MKQEAgLTE3LDkgKzE3LDE4 IEBACiAKIGNsYXNzIEEgewogIHB1YmxpYzoKKyAgaW50IG9wZXJhdG9yKyAo Y29uc3QgaW50IGExKTsKKworIHB1YmxpYzoKICAgaW50IGE7CiB9OwogCitp bnQKK0E6Om9wZXJhdG9yKyAoY29uc3QgaW50IGExKQoreworICByZXR1cm4g YSArIGExOworfQorCiB1bmlvbiBVIHsKICAgaW50IGE7CiAgIGNoYXIgYzsK QEAgLTY1LDUgKzc0LDcgQEAgbWFpbiAoKQogewogICBBIG9iajsKIAorICBv YmouYSA9IDU7CisKICAgcmV0dXJuIGZ1bmMgKG9iaik7CiB9CmRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUtY2MuZXhw IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLWNjLmV4cApp bmRleCBlYWNhZjJlLi5mYjExNzZkIDEwMDY0NAotLS0gYS9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktdmFsdWUtY2MuZXhwCisrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS1jYy5leHAKQEAgLTc5LDMgKzc5 LDcgQEAgZ2RiX3Rlc3QgInB5dGhvbiBwcmludChiX3RkXFtiX2ZpZWxkc1xb MFxdXF1cWydhJ1xdKSIgIjEwMCIgXAogCiBnZGJfdGVzdCAicHl0aG9uIHBy aW50KHVcW3VfZmllbGRzXFswXF1cXSkiICI5OS4qIiAidSdzIGZpcnN0IGZp ZWxkIHZpYSBmaWVsZCIKIGdkYl90ZXN0ICJweXRob24gcHJpbnQodVxbdV9m aWVsZHNcWzFcXVxdKSIgIjk5LioiICJ1J3Mgc2Vjb25kIGZpZWxkIHZpYSBm aWVsZCIKKworIyBUZXN0IG92ZXJsb2FkZWQgb3BlcmF0b3JzLgorZ2RiX3Rl c3Rfbm9fb3V0cHV0ICJweXRob24gYSA9IGdkYi5wYXJzZV9hbmRfZXZhbCgn YScpIiAiaW5pdCBhIgorZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBhICsgNSIg IjEwIiAiYSArIDUiCg== --001a11c372ec24061604edfed075--