From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.polymtl.ca (smtp.polymtl.ca [132.207.4.11]) by sourceware.org (Postfix) with ESMTPS id 00FF9385842C for ; Sat, 28 Aug 2021 20:29:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 00FF9385842C Received: from simark.ca (simark.ca [158.69.221.121]) (authenticated bits=0) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 17SKTBn5026842 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 28 Aug 2021 16:29:16 -0400 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 17SKTBn5026842 Received: from [10.0.0.11] (192-222-157-6.qc.cable.ebox.net [192.222.157.6]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 0AE471EDF0; Sat, 28 Aug 2021 16:29:11 -0400 (EDT) Subject: Re: [PATCH][gdb/testsuite] Support .debug_aranges in dwarf assembly To: Tom de Vries , Tom Tromey , Tom de Vries via Gdb-patches References: <20210826115625.GA22715@delia> <87eeafovsa.fsf@tromey.com> <40b7d95e-cc02-38c7-5406-0fc83a2a1b28@polymtl.ca> From: Simon Marchi Message-ID: <3ece042f-2e05-66dd-2f18-0ba2555a76dd@polymtl.ca> Date: Sat, 28 Aug 2021 16:29:10 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Poly-FromMTA: (simark.ca [158.69.221.121]) at Sat, 28 Aug 2021 20:29:11 +0000 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Aug 2021 20:29:29 -0000 On 2021-08-28 11:31 a.m., Tom de Vries wrote: > On 8/27/21 5:09 PM, Simon Marchi via Gdb-patches wrote: >> >> >> On 2021-08-27 9:35 a.m., Tom Tromey wrote: >>>>>>>> "Tom" == Tom de Vries via Gdb-patches writes: >>> >>> Tom> + # arange [-c ] [] >>> Tom> + # -- adds an address range. >>> >>> I wonder if there's a way to make this more tcl-ish, say by rearranging >>> the order of arguments so that things can be defaulted. I think the >>> "args"-parsing style should normally be a last resort. >> >> I personally don't like this style >> >> proc arange { arange_start arange_length {comment ""} {seg_sel ""} } >> >> ... because if you want to specify the last parameter, you need to give >> all the other optional ones before. >> >> I also agree that just having: >> >> proc arange { args } >> >> is not great, since we have to do the argument parsing by hand, and it's >> a bit opaque what the proc accepts. Could we consistently use the >> "options" pattern, such as the one used by aranges and cu? >> >> proc arange { options arange_start arange_length } >> >> The callers would look like: >> >> arange {} $start $length >> arange { >> comment $comment >> seg_sel $seg_sel >> } $start $length >> >> I think that's a good compromise. I could re-do the rnglists procs this >> way, if you'd like. >> > > This patch implements that approach, using a new proc parse_options > similar to parse_args. > > WDYT? Here: @@ -2354,9 +2350,9 @@ namespace eval Dwarf { # Terminator tuple. set comment "Terminator" if { $_seg_size == 0 } { - arange 0 0 $comment + arange [list comment $comment] 0 0 } else { - arange 0 0 $comment 0 + arange [list comment $comment seg_sel 0] 0 0 } Could we apply some magic so that we are able to use { } instead of list? arange { comment $comment set_seg 0 } { ... } ... instead of having to use [list ...]? I suppose doing an "eval" or something of the option value in the caller's context? Simon