On Thu, Feb 28, 2008 at 7:31 PM, Tobia Conforto <[EMAIL PROTECTED]> wrote:
> Graham Fawcett wrote:
>  > There does seem to be a good case for an immediate value that *can*
>  > be tested this way, though. John et. al. wouldn't have used (void)
>  > in eggs if there weren't.
>
>  What about providing a utility to create new immediate values,
>  disjoint from anything else?
>
>  The immediate value space is far from cramped, if I'm not mistaken.
>  Such a new-immediate-value function (which could benefit from a better
>  name) would return a new value every time it's called, using for
>  example an internal counter.  One could write:
>
>  (define sql-null (new-immediate-value))
>
>  (define (sql-null? x) (eq? x sql-null))

I think that, to work well, we'd have to define it statically, so that
all libraries using (sql-null) would have the same immediate value.
E.g.

#>!
static C_word sql_null = ((C_word) ((C_word)(C_SPECIAL_BITS | 0x00000040)));
<#

I am not a core hacker, and can't forsee the consequences of doing
this, though...

Graham


_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to