unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: David Kastrup <dak@gnu.org>
To: Andy Wingo <wingo@pobox.com>
Cc: guile-devel@gnu.org
Subject: Re: when and unless
Date: Tue, 06 Dec 2011 23:08:08 +0100	[thread overview]
Message-ID: <87y5upicaf.fsf@fencepost.gnu.org> (raw)
In-Reply-To: <8739cxob6z.fsf@pobox.com> (Andy Wingo's message of "Tue, 06 Dec 2011 18:35:16 +0100")

Andy Wingo <wingo@pobox.com> writes:

> which is strictly unspecified, as it is returning an unexpected number
> of values to a continuation.
>
> Guile 1.8:
>
>     guile> (eqv? (values) (values))
>     #f
>
> Guile 2.0:
>
>     scheme@(guile-user)> (eqv? (values) (values))
>     ERROR: In procedure values:
>     ERROR: Throw to key `vm-error' with args `(vm-run "Zero values returned to single-valued continuation" ())'.
>
> Not a nicely printed error, but oh well.
>
> Guile 2.0 returns a canonical unspecified value in this situation.  I
> would like to consider returning 0 values instead in the future, but
> figuring out how to do so without breaking the world is tricky.  It's
> useful to hear about your experiences with *unspecified*.
>
>> I am working on a language where returning values in certain contexts
>> might at one point of time might lead to the values being used.  So I
>> need to implement warnings to that effect in order to find out calls
>> _not_ returning *unspecified*...
>
> Have you considered using `(values)' as your way of saying, "I'm not
> returning any values"?

Testing for that is not all that much fun.  It is also rather useless
since pretty much all of the call-for-effect functions of Guile return
*unspecified* rather than (values).

It is not clear to me why (values) can't just evaluate to a single
*unspecified* just like '() evaluates to null.  Outside of
call-with-values, I don't see much need to treat it special.

-- 
David Kastrup



  reply	other threads:[~2011-12-06 22:08 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-30 10:44 when and unless Andy Wingo
2011-06-30 21:46 ` Ludovic Courtès
2011-07-01  7:50   ` Andy Wingo
2011-07-01 12:47     ` Ludovic Courtès
2011-12-05 20:23 ` Andy Wingo
2011-12-06  7:48   ` Marijn
2011-12-06  8:29     ` Alex Shinn
2011-12-06 11:17       ` David Kastrup
2011-12-06 16:25         ` Andy Wingo
2011-12-06 16:42           ` David Kastrup
2011-12-06 17:35             ` Andy Wingo
2011-12-06 22:08               ` David Kastrup [this message]
2011-12-06 23:05                 ` Chris K. Jester-Young
2011-12-07  9:23                   ` David Kastrup
2011-12-07 15:58                     ` Chris K. Jester-Young
2011-12-08  8:42                       ` David Kastrup
2011-12-08 15:34                         ` Chris K. Jester-Young
2011-12-08 16:10                           ` David Kastrup
2011-12-08 18:10                         ` Ian Price
2011-12-07 16:10         ` Chris K. Jester-Young
2011-12-06 19:05     ` Chris K. Jester-Young
2011-12-06 19:33       ` Andy Wingo
2011-12-06 14:39   ` Ludovic Courtès
2011-12-07 14:19     ` Ludovic Courtès
2011-12-07 14:27       ` David Kastrup
2012-01-07  0:16       ` Andy Wingo
2012-01-07 22:36         ` Ludovic Courtès
2012-01-20 20:19           ` Andy Wingo

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

  List information: https://www.gnu.org/software/guile/

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

  git send-email \
    --in-reply-to=87y5upicaf.fsf@fencepost.gnu.org \
    --to=dak@gnu.org \
    --cc=guile-devel@gnu.org \
    --cc=wingo@pobox.com \
    /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).