#!/bin/sh
# -*- scheme -*-
incdir=`guile -c "(display (assoc-ref %guile-build-info 'includedir))"`
libdir=`guile -c "(display (assoc-ref %guile-build-info 'libdir))"`
CFLAGS="-g -I$incdir/guile/3.0 -Wunused"
LIBS="-L$libdir -Wl,--rpath=$libdir -lguile-3.0"
gcc -o chkarch.so chkarch.c $CFLAGS -shared -fPIC $LIBS
export LD_LIBRARY_PATH=`pwd`
exec guile -s $0
!#

(use-modules (nyacc foreign arch-info))
(define (sf fmt . args) (apply simple-format #t fmt args))

(define base-type-symbol-testers
  (filter
   (lambda (s) (not (member s '(_Float16 _Float128))))
   base-type-symbol-list))

(load-extension "chkarch" "chkarch_init")

(for-each
 (lambda (n)
   (let ((c-sz (arch-sizeof n))
         (s-sz (sizeof-basetype n)))
     (sf "~a: ~s ~s\n" n c-sz s-sz)))
 base-type-symbol-testers)

(for-each
 (lambda (n)
   (let ((c-sz (arch-alignof n))
         (s-sz (alignof-basetype n)))
     (sf "~a: ~s ~s\n" n c-sz s-sz)))
 base-type-symbol-testers)

;; --- last line --- 

