;;;; constants.scm (define-constant +version+ 0.7) (define-constant void-tag 0) (define-constant null-tag 1) (define-constant eof-tag 2) (define-constant fixnum-tag 3) (define-constant bytevector-tag 4) (define-constant vector-tag 5) (define-constant special-tag 6) (define-constant true-tag 7) (define-constant false-tag 8) (define-constant char-tag 9) (define-constant backref-tag 10) (define-constant gensym-tag 11) (define-constant procedure-tag 12) (define-constant symbol-tag 13) (define-constant stdport-tag 14) (define-constant hash-table-tag 15) (define-constant big-endian-tag 16) (define-constant little-endian-tag 17) (define-constant thirtytwo-bit-tag 18) (define-constant sixtyfour-bit-tag 19) (define +sizeof-ulong+ (foreign-value "sizeof(unsigned long)" int)) (define +sizeof-word+ (foreign-value "sizeof(C_word)" int)) (define +sizeof-header+ (foreign-value "sizeof(C_header)" int)) #> static int check_endianness() { int i = 99; return *((char *)&i) != 99 ? 16 : 17; } <# (define +endianness-tag+ (foreign-value "check_endianness()" int))