This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v1 02/36] Guile extension language: doc additions


On Sun, Jan 19, 2014 at 10:10 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>> Date: Sun, 19 Jan 2014 09:53:21 -0800
>> From: Doug Evans <xdje42@gmail.com>
>> Cc: Ludovic Courtès <ludo@gnu.org>,
>>       "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
>>
>> >   For C-like languages, a value is a string if it is a pointer to or an
>> >   array of characters or ints of type @code{wchar_t}, @code{char16_t},
>> >   or @code{char32_t}.  For other languages ... [say here how string
>> >   values are distinguished in other languages].  If the string is
>> >   terminated by a zero of the appropriate width, it will be converted up
>> >   to that zero.  For strings that are not zero-terminated (which
>> >   includes strings in non C-like languages), you must specify the length
>> >   for conversion.
>>
>> Even in C-like languages the user may wish to specify a length.
>>
>> E.g., C++ strings have a length, but it's up to the library to specify how it's
>> recorded.  Plus C++ programs can have multiple string implementations
>> (not just std::string).  Not always ideal, but an app may have a specific
>> performance issue for a specific part of it and thus provides its own
>> string implementation for that part.  Thus in this (important) case there
>> is no text I can provide here to answer the question you are asking.
>>
>> Plus there's a maintenance issue of describing how each language
>> defines a string.  We don't want to have to update this part for each
>> new language.
>
> Fair enough.  How about the following variant, which is entirely
> agnostic to the language?
>
>   Values are interpreted as strings according to the rules of the
>   current language.  If the optional length argument is given, the
>   string will be converted to that length.  Otherwise, for languages
>   where the string is zero-terminated, the entire string will be
>   converted.
>
> If you want to say something about C-like languages, we can have a
> "for example" sentence after the 1st one.  Something like
>
>   For example, in C-like languages, a value is a string if it is a
>   pointer to, or an array of, characters or ints of type ...
>
>> Please can I keep the current text?
>
> If you think it is better than what I suggested above.

I tweaked it a bit because I wanted to make clear specifying the
length will include any embedded zeroes.

Values are interpreted as strings according to the rules of the
current language.  If the optional length argument is given, the
string will be converted to that length, and will include any embedded
zeroes that the string may contain.  Otherwise, for languages
where the string is zero-terminated, the entire string will be
converted.

For example, in C-like languages, a value is a string if it is a pointer
to or an array of characters or ints of type @code{wchar_t}, @code{char16_t},
or @code{char32_t}.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]