public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Eli Zaretskii <eliz@gnu.org>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH v1 02/36] Guile extension language: doc additions
Date: Sat, 04 Jan 2014 11:57:00 -0000	[thread overview]
Message-ID: <87k3egez8e.fsf@gnu.org> (raw)
In-Reply-To: <83eh4ow78t.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 04 Jan	2014 09:12:18 +0200")

Eli Zaretskii <eliz@gnu.org> skribis:

>> >> +@defun value? object
>> 
>> What about distinguishing Scheme functions, like:
>> 
>>   @deffn {Scheme Procedure} value? object
>
> If it's important (is it?), then yes.

I think I would find it clearer, to someone who skims over the manual.

>> >> +If @var{type} is not provided,
>> >> +a Scheme real is converted to the C @code{double} type for the
>> >> +current architecture.
>> >
>> > Isn't Guile built with libgmp?  If so, doesn't it support floats
>> > which, when converted to a double, will lose accuracy?
>> 
>> Guile uses GMP, but GMP is for integers (bignums).
>
> What about long double support?

Guile doesn’t support it out of the box.

If needed, it could easily be implemented as an extension: one would use
a SMOB to wrap long doubles and pass them to Scheme, and possibly define
methods for ‘+’, ‘-’, etc. for objects of this type.

Of course, this wouldn’t be terribly efficient, but that’s not so
important here I think; what matters is that it would allow ‘long
double’ values to be passed around without loss of accuracy.

That said, my feeling is that leaving things as is (with long doubles
cast to doubles) may prove to be sufficient for most practical uses of
GDB.

WDYT?

>> >> +A Scheme string is converted to a target string, using the current
>> >> +target encoding.
>> >
>> > What if target encoding doesn't support some of the characters in the
>> > string?
>> 
>> Guile’s behavior can be controlled with
>> ‘%default-port-conversion-strategy’: it can raise an exception, or
>> substitute any characters that could not be converted, or escape them
>> (info "(guile) Ports").
>> 
>> Perhaps this should be briefly mentioned, with a cross-ref.
>
> It should, because the issue will certainly arise, especially since
> (AFAIU) Guile prefers UTF-8.

Right.  (UTF-8 is just the default encoding for source code; it’s not
“preferred” in any other way.)

>> >> +If the optional @var{length} argument is given, the string will be
>> >> +fetched and encoded to the length of characters specified.  If
>> >> +the @var{length} argument is not provided, the string will be fetched
>> >> +and encoded until a null of appropriate width is found.
>> >
>> > Isn't this null termination description skewed towards C-like
>> > languages?  Aren't there languages where strings don't have to be
>> > null-terminated?
>> 
>> Yes, and that’s when LENGTH should be provided, AIUI.
>
> Then I guess the above should say that explicitly.  But it would be
> nice if GDB could support strings in languages that don't
> null-terminate even without LENGTH.

Agreed (I had misread the description above as saying that, if LENGTH is
provided, then the string is *not* assumed to be nul-terminated.)

Thanks,
Ludo’.

  reply	other threads:[~2014-01-04 11:57 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-24 19:03 Doug Evans
2013-12-25 19:27 ` Eli Zaretskii
2014-01-03 21:31   ` Ludovic Courtès
2014-01-04  7:12     ` Eli Zaretskii
2014-01-04 11:57       ` Ludovic Courtès [this message]
2014-01-04 14:41         ` Eli Zaretskii
2014-01-04 17:42           ` Ludovic Courtès
2014-01-04 20:00             ` Eli Zaretskii
2014-01-16  4:20               ` Doug Evans
2014-01-18 20:36         ` Doug Evans
2014-01-18 20:52           ` Ludovic Courtès
2014-01-18 20:55             ` Doug Evans
2014-01-19 16:58               ` Eli Zaretskii
2014-01-19 17:19                 ` Doug Evans
2014-01-19 17:34                   ` Eli Zaretskii
2014-01-19 17:53                     ` Doug Evans
2014-01-19 18:10                       ` Eli Zaretskii
2014-01-19 21:19                         ` Doug Evans
2014-01-18 20:16     ` Doug Evans
2014-01-18 20:42       ` Ludovic Courtès
2014-01-18 21:57         ` Doug Evans
2014-01-19 14:46           ` Ludovic Courtès
2014-01-19 21:37             ` Doug Evans
2014-01-19 22:50               ` Ludovic Courtès
2014-01-18 22:32     ` Doug Evans
2014-01-19 14:47       ` Ludovic Courtès
2014-01-19 15:56         ` Eli Zaretskii
2014-01-19 16:13           ` Ludovic Courtès
2014-01-19 17:05             ` Doug Evans
2014-01-18 20:06   ` Doug Evans
2014-01-18 20:24     ` Eli Zaretskii
2014-01-18 20:53       ` Doug Evans
2014-01-19 16:57         ` Eli Zaretskii
2014-01-19 17:42           ` Doug Evans
2014-01-19 21:01           ` Doug Evans

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k3egez8e.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).