From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25961 invoked by alias); 21 Nov 2014 07:58:34 -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 25951 invoked by uid 89); 21 Nov 2014 07:58:34 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_SOFTFAIL autolearn=no version=3.3.2 X-HELO: mtaout22.012.net.il Received: from mtaout22.012.net.il (HELO mtaout22.012.net.il) (80.179.55.172) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 21 Nov 2014 07:58:32 +0000 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0NFD00I00PU0A100@a-mtaout22.012.net.il> for gdb-patches@sourceware.org; Fri, 21 Nov 2014 09:58:30 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NFD00I7EQ5H9U10@a-mtaout22.012.net.il>; Fri, 21 Nov 2014 09:58:30 +0200 (IST) Date: Fri, 21 Nov 2014 07:58:00 -0000 From: Eli Zaretskii Subject: Re: [PATCH v3 14/14] the "compile" command In-reply-to: <20141120212406.GA23190@host2.jankratochvil.net> To: Jan Kratochvil Cc: gdb-patches@sourceware.org Reply-to: Eli Zaretskii Message-id: <8361e956jd.fsf@gnu.org> References: <20141101214552.13230.45564.stgit@host1.jankratochvil.net> <20141101214733.13230.49968.stgit@host1.jankratochvil.net> <8361exy4if.fsf@gnu.org> <20141120212406.GA23190@host2.jankratochvil.net> X-IsSubscribed: yes X-SW-Source: 2014-11/txt/msg00499.txt.bz2 > Date: Thu, 20 Nov 2014 22:24:06 +0100 > From: Jan Kratochvil > Cc: gdb-patches@sourceware.org > > > > +something else in the example program changes it, or another > > > +@code{compile} command changes it. > > > > So why did you say the changes are persistent? Persistent might mean > > the value will be the same if the program is re-run. > > The command "compile code k = 3;" makes the change persistent. Contrary to it > command "compile code int k = 3;" would not be persistent which is described > about 3 paragraphs beneath: > Variables and types that are created as part > of the @code{compile} command are not persistent, and only exist as > long as the injected object code exists. This example is valid: > > @smallexample > compile code int ff = 5; printf ("ff is %d\n", ff); > @end smallexample Then maybe we need to tell what "persistent" means in this context. Something like "visible to the rest of the program for the duration of this run". > > > +However, if you were to type the following into @value{GDBN} after that > > > +command has completed: > > > + > > > +@smallexample > > > +compile code printf ("ff is %d\n'', ff); > > > +@end smallexample > > > + > > > +A compiler error would be raised as the variable @code{ff} no longer > > > > Again, @noindend after the @example, and start "a compiler error" with > > a lower-case letter, as this is a continuation of the sentence before > > the example. > > TBH I do not agree with this formatting as the previous sentence has been > terminated by its colon (':'). But then that previous sentence is incomplete, because it in effect goes like "If you were to type the following: SOMETHING." A sentence with an "if" but no "then" part is incomplete. I thought what follows the @example is the "then" part, which is why I suggested those changes. > I see the difference as: > See the expression: 1+2=3 Now we have to start a new sentence. > See the expression 1+2=3 while here we continue the sentence. These 2 examples are both fine, but they lack the "if" part, which is what triggered my comment. > > > Types defined in the @code{compile} are also > > > +deleted when the command exits. > > > > I think types are not deleted, they simply don't exist in compiled > > code. Right? > > The meaning is that for example in a second "compile" command the types > defined in previous "compile" command are no longer available. OK, then let's say so explicitly. Something like Types defined in the @code{compile} will no longer be available in the next @code{compile} command. > +If you specify options on the command line as well as source code, they > +may conflict. The @samp{@var{--}} delimiter can be used to separate options No need for @var here, as "--" is a literal string. Otherwise, your new text is OK. Thanks.