(import (scheme base) (scheme write) (scheme load) (scheme process-context) (retropikzel r7rs-pffi version main)) (define tag 'none) (define-syntax assert (syntax-rules () ((_ check value) (when (not (apply check (list value))) (display "[") (display tag) (display "] ") (display "Assert failed: ") (write (list 'check 'value)) (newline))))) (set! tag 'size-of) (assert number? (pffi-size-of 'int8)) (assert number? (pffi-size-of 'uint8)) (assert number? (pffi-size-of 'int16)) (assert number? (pffi-size-of 'uint16)) (assert number? (pffi-size-of 'int32)) (assert number? (pffi-size-of 'uint32)) (assert number? (pffi-size-of 'int64)) (assert number? (pffi-size-of 'uint64)) (assert number? (pffi-size-of 'char)) (assert number? (pffi-size-of 'unsigned-char)) (assert number? (pffi-size-of 'short)) (assert number? (pffi-size-of 'unsigned-short)) (assert number? (pffi-size-of 'int)) (assert number? (pffi-size-of 'unsigned-int)) (assert number? (pffi-size-of 'long)) (assert number? (pffi-size-of 'unsigned-long)) (assert number? (pffi-size-of 'float)) (assert number? (pffi-size-of 'double)) (assert number? (pffi-size-of 'string)) (assert string? (pffi-size-of 'pointer)) (exit 0)