On Thu 31 Jan 2013 12:27, Andy Wingo <wi...@pobox.com> writes: > On Tue 22 Jan 2013 11:55, Andy Wingo <wi...@pobox.com> 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/