[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Guile API for foreign languages: proposing SCM scm_list_0(void)
From: |
Andy Wingo |
Subject: |
Re: Guile API for foreign languages: proposing SCM scm_list_0(void) |
Date: |
Thu, 31 Jan 2013 12:45:42 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) |
On Thu 31 Jan 2013 12:27, Andy Wingo <address@hidden> writes:
> On Tue 22 Jan 2013 11:55, Andy Wingo <address@hidden> writes:
>
>> SCM_BOOL_F
>> SCM_BOOL_T
>> SCM_ELISP_NIL
>> SCM_EOF_VAL
>> SCM_EOL
>> SCM_UNBOUND
>> SCM_UNDEFINED
>> SCM_UNSPECIFIED
>>
> Instead, users should just keep a table of what the values of these
> constants are for a given Guile major series. Defining them as
> enumerated values doesn't help e.g. an Ada compiler. The particular
> language should make this list in their own source code format, perhaps
> generated by a small C program linked to libguile.
Or by Scheme:
(for-each
(lambda (pair)
(format #t "static const scm_t_bits my_~A = 0x~X;\n"
(car pair) (object-address (cdr pair))))
`(("false" . #f)
("true" . #t)
("nil" . #nil)
("eof" . ,the-eof-object)
("eol" . ())
("unspecified" . ,*unspecified*)))
static const scm_t_bits my_false = 0x4;
static const scm_t_bits my_true = 0x404;
static const scm_t_bits my_nil = 0x104;
static const scm_t_bits my_eof = 0xa04;
static const scm_t_bits my_eol = 0x304;
static const scm_t_bits my_unspecified = 0x804;
Unbound and undefined are a little trickier.
Andy
--
http://wingolog.org/