diff --git a/cig/cig.scm b/cig/cig.scm index 7b387a8..2a0ef0e 100644 --- a/cig/cig.scm +++ b/cig/cig.scm @@ -863,6 +863,10 @@ step 4 (let ((name (cdr form))) (set! init-name (car name)))) + ((define-stubless-foreign) + (let ((c-name (cadddr form))) + (set! c-names (cons c-name c-names)))) + ((foreign-source) (let ((forms (cdr form))) (if (pair? forms) @@ -1089,9 +1093,11 @@ step 4 -(define-structure define-foreign-syntax (export (define-foreign :syntax) - (foreign-source :syntax) - (foreign-init-name :syntax)) +(define-structure define-foreign-syntax + (export (define-foreign :syntax) + (foreign-source :syntax) + (foreign-init-name :syntax) + (define-stubless-foreign :syntax)) (open scheme external-calls structure-refs cig-aux) (access signals) ; for ERROR (for-syntax (open scheme define-foreign-syntax-support)) @@ -1108,7 +1114,12 @@ step 4 (define-syntax foreign-init-name (syntax-rules () ((foreign-init-name name) (lambda () name)))) - + + (define-syntax define-stubless-foreign + (syntax-rules () + ((define-stubless-foreign bla ...) + (import-lambda-definition bla ...)))) + (define (check-arg pred obj proc) (if (not (pred obj)) (error "check-arg" pred obj proc)