197 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Scheme
		
	
	
	
			
		
		
	
	
			197 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Scheme
		
	
	
	
(define-library
 | 
						|
  (retropikzel pffi)
 | 
						|
  (cond-expand
 | 
						|
    (chibi
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)
 | 
						|
              (chibi ast)
 | 
						|
              (chibi))
 | 
						|
      (include-shared "pffi/chibi-pffi"))
 | 
						|
    (chicken
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)
 | 
						|
              (chicken base)
 | 
						|
              (chicken foreign)
 | 
						|
              (chicken locative)
 | 
						|
              (chicken syntax)
 | 
						|
              (chicken memory)
 | 
						|
              (chicken random)))
 | 
						|
    (cyclone
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)
 | 
						|
              (cyclone foreign)
 | 
						|
              (scheme cyclone primitives)))
 | 
						|
    (gambit
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)
 | 
						|
              (only (gambit) c-declare c-lambda c-define define-macro)))
 | 
						|
    (gauche
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)
 | 
						|
              (gauche base)
 | 
						|
              (retropikzel pffi gauche)))
 | 
						|
    (gerbil
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)))
 | 
						|
    (guile
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)
 | 
						|
              (rnrs bytevectors)
 | 
						|
              (system foreign)
 | 
						|
              (system foreign-library)
 | 
						|
              (only (guile) include-from-path)))
 | 
						|
    (kawa
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)))
 | 
						|
    (larceny
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)
 | 
						|
              (rename (primitives r5rs:require) (r5rs:require require))
 | 
						|
              (primitives std-ffi)
 | 
						|
              (primitives foreign-procedure)
 | 
						|
              (primitives foreign-file)
 | 
						|
              (primitives foreign-stdlib)))
 | 
						|
    (mosh
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)
 | 
						|
              (mosh ffi)))
 | 
						|
    (racket
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)
 | 
						|
              (only (racket base) system-type)
 | 
						|
              (ffi winapi)
 | 
						|
              (compatibility mlist)
 | 
						|
              (ffi unsafe)
 | 
						|
              (ffi vector)))
 | 
						|
    (sagittarius
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)
 | 
						|
              (sagittarius ffi)
 | 
						|
              (sagittarius)))
 | 
						|
    (skint
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)))
 | 
						|
    (stklos
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)
 | 
						|
              (stklos))
 | 
						|
      (export make-external-function
 | 
						|
              calculate-struct-size-and-offsets
 | 
						|
              struct-make))
 | 
						|
    (tr7
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)))
 | 
						|
    (ypsilon
 | 
						|
      (import (scheme base)
 | 
						|
              (scheme write)
 | 
						|
              (scheme char)
 | 
						|
              (scheme file)
 | 
						|
              (scheme process-context)
 | 
						|
              (ypsilon c-ffi)
 | 
						|
              (ypsilon c-types)
 | 
						|
              (only (core) define-macro syntax-case))))
 | 
						|
  (export pffi-init
 | 
						|
          pffi-size-of
 | 
						|
          pffi-type?
 | 
						|
          pffi-align-of
 | 
						|
          pffi-define-library
 | 
						|
          pffi-pointer-null
 | 
						|
          pffi-pointer-null?
 | 
						|
          pffi-pointer-allocate
 | 
						|
          pffi-pointer-address
 | 
						|
          pffi-pointer?
 | 
						|
          pffi-pointer-free
 | 
						|
          pffi-pointer-set!
 | 
						|
          pffi-pointer-get
 | 
						|
          pffi-string->pointer
 | 
						|
          pffi-pointer->string
 | 
						|
          pffi-define-struct
 | 
						|
          pffi-struct-pointer
 | 
						|
          pffi-struct-offset-get
 | 
						|
          pffi-struct-get
 | 
						|
          pffi-struct-set!
 | 
						|
          pffi-struct-dereference
 | 
						|
          pffi-array-allocate
 | 
						|
          pffi-array-pointer
 | 
						|
          pffi-array?
 | 
						|
          pffi-pointer->array
 | 
						|
          pffi-array-get
 | 
						|
          pffi-array-set!
 | 
						|
          pffi-list->array
 | 
						|
          pffi-array->list
 | 
						|
          pffi-define-function
 | 
						|
          pffi-define-callback)
 | 
						|
  (cond-expand
 | 
						|
    (chibi (include "pffi/chibi.scm"))
 | 
						|
    (chicken-5 (include "pffi/chicken.scm"))
 | 
						|
    (chicken-6 (include-relative "pffi/chicken.scm"))
 | 
						|
    (cyclone (include "pffi/cyclone.scm"))
 | 
						|
    (gambit (include "pffi/gambit.scm"))
 | 
						|
    (gauche (include "pffi/gauche.scm"))
 | 
						|
    (gerbil (include "pffi/gerbil.scm"))
 | 
						|
    (guile (include "pffi/guile.scm"))
 | 
						|
    (kawa (include "pffi/kawa.scm"))
 | 
						|
    (larceny (include "pffi/larceny.scm"))
 | 
						|
    (mosh (include "pffi/mosh.scm"))
 | 
						|
    (racket (include "pffi/racket.scm"))
 | 
						|
    (sagittarius (include "pffi/sagittarius.scm"))
 | 
						|
    (skint (include "pffi/skint.scm"))
 | 
						|
    (stklos (include "pffi/stklos.scm"))
 | 
						|
    (tr7 (include "pffi/tr7.scm"))
 | 
						|
    (ypsilon (include "pffi/ypsilon.scm")))
 | 
						|
  ;(include "pffi/shared/union.scm")
 | 
						|
  (cond-expand
 | 
						|
    (chicken-6 (include-relative "pffi/shared/main.scm")
 | 
						|
             (include-relative "pffi/shared/pointer.scm")
 | 
						|
             (include-relative "pffi/shared/array.scm")
 | 
						|
             (include-relative "pffi/shared/struct.scm"))
 | 
						|
    (else (include "pffi/shared/main.scm")
 | 
						|
          (include "pffi/shared/pointer.scm")
 | 
						|
          (include "pffi/shared/array.scm")
 | 
						|
          (include "pffi/shared/struct.scm"))))
 |