From: Ken Raeburn <raeburn@raeburn.org>
To: Neil Jerram <neil@ossau.uklinux.net>
Cc: Andy Wingo <wingo@pobox.com>, Mark H Weaver <mhw@netris.org>,
guile-devel <guile-devel@gnu.org>
Subject: Re: truth of %nil
Date: Sun, 30 Aug 2009 18:01:48 -0400 [thread overview]
Message-ID: <DB2B9911-8F28-47C7-B261-FF6E540462EB@raeburn.org> (raw)
In-Reply-To: <87iqg5y2o8.fsf@arudy.ossau.uklinux.net>
On Aug 30, 2009, at 07:13, Neil Jerram wrote:
> Mark H Weaver <mhw@netris.org> writes:
> This numbering has the nice properties that 0 is #f.
> Just to be clear: will this mean that (SCM_BOOL_F == 0) ? As things
> stand I don't think it will, because SCM_MAKIFLAG shifts and adds
> 0x04.
>
> Just checking this because Ludovic said recently that (SCM_BOOL_F ==
> 0) would have nice properties for BDW-GC.
Was that in list email? Maybe I overlooked it. Having all-bits-zero
be a valid object would make some things easier in my guile-emacs work
too, but could cause other problems as well. In Emacs all-bits-zero
is now integer-zero, and in some places Lisp_Object variables are used
or made visible to GC before being explicitly set, so I have to set
them. In guile-emacs, I can check in key places (like 'cons', or the
'EQ' macro) for all-bits-zero and flag an error, or in certain cases
patch over the problem temporarily. While the integration is still
minimal, I suppose SCM_BOOL_F shouldn't be showing up in elisp
processing, so that still works, but if it gets moved further along as
I'm hoping, that could change. Having the default C initializer
change from one valid value to another between Emacs and Guile-Emacs
could make the bugs much more subtle.
I kind of assumed that making all-bits-zero an invalid value was a
conscious choice by the Guile (or SCM?) designers which wasn't likely
to be revisited. It is, after all, a fairly easy way of highlighting
a certain class of uninitialized-value problems -- choosing strict
checking and debugging over letting the programmer be lazy.
I think I'm mildly in favor of keeping all-bits-zero as an invalid
representation. But, if it's a huge win for BDW-GC, maybe it's worth
it.
Ken
next prev parent reply other threads:[~2009-08-30 22:01 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-29 21:12 truth of %nil Andy Wingo
2009-06-29 21:44 ` Neil Jerram
2009-06-29 22:11 ` Andy Wingo
2009-06-30 22:22 ` Neil Jerram
2009-07-01 6:45 ` Daniel Kraft
2009-07-01 21:54 ` Neil Jerram
2009-07-05 13:07 ` Mark H Weaver
2009-08-30 11:07 ` Neil Jerram
2009-08-30 14:11 ` Mark H Weaver
2009-09-01 22:00 ` Neil Jerram
2009-09-02 15:57 ` Mark H Weaver
2009-09-17 21:21 ` Neil Jerram
2009-07-02 14:28 ` Mark H Weaver
2009-07-02 14:50 ` Ludovic Courtès
2009-07-02 22:50 ` Neil Jerram
2009-07-03 15:32 ` Mark H Weaver
2009-07-05 2:41 ` Mark H Weaver
2009-07-05 9:19 ` Andy Wingo
2009-07-07 11:14 ` Mark H Weaver
2009-07-08 13:17 ` Mark H. Weaver
2009-08-30 11:20 ` Neil Jerram
2009-08-30 11:13 ` Neil Jerram
2009-08-30 14:15 ` Mark H Weaver
2009-09-01 21:50 ` Neil Jerram
2009-08-30 22:01 ` Ken Raeburn [this message]
2009-08-31 21:59 ` Ludovic Courtès
2009-08-31 23:39 ` Ken Raeburn
2009-08-31 21:55 ` SCM_BOOL_F == 0 and BDW-GC Ludovic Courtès
2009-09-17 22:00 ` Neil Jerram
2009-09-17 22:28 ` Ludovic Courtès
2009-09-18 20:51 ` Neil Jerram
2009-09-20 17:21 ` Ludovic Courtès
2009-09-20 21:03 ` Neil Jerram
2009-09-20 21:36 ` Ludovic Courtès
2009-07-06 21:46 ` truth of %nil Neil Jerram
2009-07-06 23:54 ` Mark H Weaver
2009-07-08 8:08 ` Ludovic Courtès
2009-07-23 21:12 ` 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=DB2B9911-8F28-47C7-B261-FF6E540462EB@raeburn.org \
--to=raeburn@raeburn.org \
--cc=guile-devel@gnu.org \
--cc=mhw@netris.org \
--cc=neil@ossau.uklinux.net \
--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).