prelude: :gerbil/core
package: gerbil/compiler
namespace: gxc

(%#begin (%#import
          :gerbil/core/expander
          :gerbil/expander
          :gerbil/compiler/base
          :gerbil/compiler/method)
         (%#export #t)
         (%#define-runtime gambit-annotations gxc#gambit-annotations)
         (%#define-runtime checked-primitives gxc#checked-primitives)
         (%#define-runtime current-compile-lift gxc#current-compile-lift)
         (%#define-runtime current-compile-marks gxc#current-compile-marks)
         (%#define-runtime
          current-compile-identifiers
          gxc#current-compile-identifiers)
         (%#define-runtime
          current-compile-boolean-context
          gxc#current-compile-boolean-context)
         (%#define-runtime
          make-bound-identifier-table
          gxc#make-bound-identifier-table)
         (%#define-runtime ::collect-bindings::t gxc#::collect-bindings::t)
         (%#define-runtime ::collect-bindings? gxc#::collect-bindings?)
         (%#define-runtime make-::collect-bindings gxc#make-::collect-bindings)
         (%#begin (%#begin-syntax
                   (%#call (%#ref load-module)
                           (%#quote "gerbil/compiler/compile~1")))
                  (%#define-syntax
                   ::collect-bindings
                   |gxc[:0:]#::collect-bindings|))
         (%#define-runtime
          ::collect-bindings-bind-methods!
          gxc#::collect-bindings-bind-methods!)
         (%#define-runtime apply-collect-bindings gxc#apply-collect-bindings)
         (%#define-runtime ::lift-modules::t gxc#::lift-modules::t)
         (%#define-runtime ::lift-modules? gxc#::lift-modules?)
         (%#define-runtime make-::lift-modules gxc#make-::lift-modules)
         (%#define-runtime ::lift-modules-modules gxc#::lift-modules-modules)
         (%#define-runtime
          ::lift-modules-modules-set!
          gxc#::lift-modules-modules-set!)
         (%#define-runtime &::lift-modules-modules gxc#&::lift-modules-modules)
         (%#define-runtime
          &::lift-modules-modules-set!
          gxc#&::lift-modules-modules-set!)
         (%#define-syntax ::lift-modules |gxc[:0:]#::lift-modules|)
         (%#define-runtime
          ::lift-modules-bind-methods!
          gxc#::lift-modules-bind-methods!)
         (%#begin (%#define-runtime
                   apply-lift-modules__%
                   gxc#apply-lift-modules__%)
                  (%#define-runtime
                   apply-lift-modules__@
                   gxc#apply-lift-modules__@)
                  (%#define-runtime apply-lift-modules gxc#apply-lift-modules))
         (%#define-runtime ::find-runtime-code::t gxc#::find-runtime-code::t)
         (%#define-runtime ::find-runtime-code? gxc#::find-runtime-code?)
         (%#define-runtime
          make-::find-runtime-code
          gxc#make-::find-runtime-code)
         (%#define-syntax ::find-runtime-code |gxc[:0:]#::find-runtime-code|)
         (%#define-runtime
          ::find-runtime-code-bind-methods!
          gxc#::find-runtime-code-bind-methods!)
         (%#define-runtime apply-find-runtime-code gxc#apply-find-runtime-code)
         (%#define-runtime
          ::find-lambda-expression::t
          gxc#::find-lambda-expression::t)
         (%#define-runtime
          ::find-lambda-expression?
          gxc#::find-lambda-expression?)
         (%#define-runtime
          make-::find-lambda-expression
          gxc#make-::find-lambda-expression)
         (%#define-syntax
          ::find-lambda-expression
          |gxc[:0:]#::find-lambda-expression|)
         (%#define-runtime
          ::find-lambda-expression-bind-methods!
          gxc#::find-lambda-expression-bind-methods!)
         (%#define-runtime
          apply-find-lambda-expression
          gxc#apply-find-lambda-expression)
         (%#define-runtime ::count-values::t gxc#::count-values::t)
         (%#define-runtime ::count-values? gxc#::count-values?)
         (%#define-runtime make-::count-values gxc#make-::count-values)
         (%#define-syntax ::count-values |gxc[:0:]#::count-values|)
         (%#define-runtime
          ::count-values-bind-methods!
          gxc#::count-values-bind-methods!)
         (%#define-runtime apply-count-values gxc#apply-count-values)
         (%#define-runtime
          ::generate-runtime-empty::t
          gxc#::generate-runtime-empty::t)
         (%#define-runtime
          ::generate-runtime-empty?
          gxc#::generate-runtime-empty?)
         (%#define-runtime
          make-::generate-runtime-empty
          gxc#make-::generate-runtime-empty)
         (%#define-syntax
          ::generate-runtime-empty
          |gxc[:0:]#::generate-runtime-empty|)
         (%#define-runtime
          ::generate-runtime-empty-bind-methods!
          gxc#::generate-runtime-empty-bind-methods!)
         (%#define-runtime ::generate-loader::t gxc#::generate-loader::t)
         (%#define-runtime ::generate-loader? gxc#::generate-loader?)
         (%#define-runtime make-::generate-loader gxc#make-::generate-loader)
         (%#define-syntax ::generate-loader |gxc[:0:]#::generate-loader|)
         (%#define-runtime
          ::generate-loader-bind-methods!
          gxc#::generate-loader-bind-methods!)
         (%#define-runtime apply-generate-loader gxc#apply-generate-loader)
         (%#define-runtime ::generate-runtime::t gxc#::generate-runtime::t)
         (%#define-runtime ::generate-runtime? gxc#::generate-runtime?)
         (%#define-runtime make-::generate-runtime gxc#make-::generate-runtime)
         (%#define-syntax ::generate-runtime |gxc[:0:]#::generate-runtime|)
         (%#define-runtime
          ::generate-runtime-bind-methods!
          gxc#::generate-runtime-bind-methods!)
         (%#define-runtime apply-generate-runtime gxc#apply-generate-runtime)
         (%#define-runtime
          ::generate-runtime-phi::t
          gxc#::generate-runtime-phi::t)
         (%#define-runtime ::generate-runtime-phi? gxc#::generate-runtime-phi?)
         (%#define-runtime
          make-::generate-runtime-phi
          gxc#make-::generate-runtime-phi)
         (%#define-syntax
          ::generate-runtime-phi
          |gxc[:0:]#::generate-runtime-phi|)
         (%#define-runtime
          ::generate-runtime-phi-bind-methods!
          gxc#::generate-runtime-phi-bind-methods!)
         (%#define-runtime
          apply-generate-runtime-phi
          gxc#apply-generate-runtime-phi)
         (%#define-runtime
          ::collect-expression-refs::t
          gxc#::collect-expression-refs::t)
         (%#define-runtime
          ::collect-expression-refs?
          gxc#::collect-expression-refs?)
         (%#define-runtime
          make-::collect-expression-refs
          gxc#make-::collect-expression-refs)
         (%#define-runtime
          ::collect-expression-refs-table
          gxc#::collect-expression-refs-table)
         (%#define-runtime
          ::collect-expression-refs-table-set!
          gxc#::collect-expression-refs-table-set!)
         (%#define-runtime
          &::collect-expression-refs-table
          gxc#&::collect-expression-refs-table)
         (%#define-runtime
          &::collect-expression-refs-table-set!
          gxc#&::collect-expression-refs-table-set!)
         (%#define-syntax
          ::collect-expression-refs
          |gxc[:0:]#::collect-expression-refs|)
         (%#define-runtime
          ::collect-expression-refs-bind-methods!
          gxc#::collect-expression-refs-bind-methods!)
         (%#begin (%#define-runtime
                   apply-collect-expression-refs__%
                   gxc#apply-collect-expression-refs__%)
                  (%#define-runtime
                   apply-collect-expression-refs__@
                   gxc#apply-collect-expression-refs__@)
                  (%#define-runtime
                   apply-collect-expression-refs
                   gxc#apply-collect-expression-refs))
         (%#define-runtime ::generate-meta::t gxc#::generate-meta::t)
         (%#define-runtime ::generate-meta? gxc#::generate-meta?)
         (%#define-runtime make-::generate-meta gxc#make-::generate-meta)
         (%#define-runtime ::generate-meta-state gxc#::generate-meta-state)
         (%#define-runtime
          ::generate-meta-state-set!
          gxc#::generate-meta-state-set!)
         (%#define-runtime &::generate-meta-state gxc#&::generate-meta-state)
         (%#define-runtime
          &::generate-meta-state-set!
          gxc#&::generate-meta-state-set!)
         (%#define-syntax ::generate-meta |gxc[:0:]#::generate-meta|)
         (%#define-runtime
          ::generate-meta-bind-methods!
          gxc#::generate-meta-bind-methods!)
         (%#begin (%#define-runtime
                   apply-generate-meta__%
                   gxc#apply-generate-meta__%)
                  (%#define-runtime
                   apply-generate-meta__@
                   gxc#apply-generate-meta__@)
                  (%#define-runtime
                   apply-generate-meta
                   gxc#apply-generate-meta))
         (%#define-runtime ::generate-meta-phi::t gxc#::generate-meta-phi::t)
         (%#define-runtime ::generate-meta-phi? gxc#::generate-meta-phi?)
         (%#define-runtime
          make-::generate-meta-phi
          gxc#make-::generate-meta-phi)
         (%#define-runtime
          ::generate-meta-phi-state
          gxc#::generate-meta-phi-state)
         (%#define-runtime
          ::generate-meta-phi-state-set!
          gxc#::generate-meta-phi-state-set!)
         (%#define-runtime
          &::generate-meta-phi-state
          gxc#&::generate-meta-phi-state)
         (%#define-runtime
          &::generate-meta-phi-state-set!
          gxc#&::generate-meta-phi-state-set!)
         (%#define-syntax ::generate-meta-phi |gxc[:0:]#::generate-meta-phi|)
         (%#define-runtime
          ::generate-meta-phi-bind-methods!
          gxc#::generate-meta-phi-bind-methods!)
         (%#begin (%#define-runtime
                   apply-generate-meta-phi__%
                   gxc#apply-generate-meta-phi__%)
                  (%#define-runtime
                   apply-generate-meta-phi__@
                   gxc#apply-generate-meta-phi__@)
                  (%#define-runtime
                   apply-generate-meta-phi
                   gxc#apply-generate-meta-phi))
         (%#define-runtime
          collect-bindings-define-values%
          gxc#collect-bindings-define-values%)
         (%#define-runtime
          collect-bindings-define-syntax%
          gxc#collect-bindings-define-syntax%)
         (%#define-runtime lift-modules-module% gxc#lift-modules-module%)
         (%#define-syntax
          with-primitive-bind+args
          |gxc[:0:]#with-primitive-bind+args|)
         (%#define-runtime
          current-compile-decls-unsafe?
          gxc#current-compile-decls-unsafe?)
         (%#define-syntax
          with-inline-unsafe-primitives
          |gxc[:0:]#with-inline-unsafe-primitives|)
         (%#define-runtime add-module-binding! gxc#add-module-binding!)
         (%#define-runtime
          generate-runtime-identifier
          gxc#generate-runtime-identifier)
         (%#define-runtime
          generate-runtime-identifier-key
          gxc#generate-runtime-identifier-key)
         (%#define-runtime generate-runtime-empty gxc#generate-runtime-empty)
         (%#define-runtime generate-runtime-begin% gxc#generate-runtime-begin%)
         (%#define-runtime
          generate-runtime-begin-foreign%
          gxc#generate-runtime-begin-foreign%)
         (%#define-runtime
          generate-runtime-begin-annotation%
          gxc#generate-runtime-begin-annotation%)
         (%#define-runtime
          generate-runtime-declare%
          gxc#generate-runtime-declare%)
         (%#define-runtime
          generate-runtime-define-values%
          gxc#generate-runtime-define-values%)
         (%#define-runtime
          generate-runtime-check-values
          gxc#generate-runtime-check-values)
         (%#define-runtime
          generate-runtime-values-count
          gxc#generate-runtime-values-count)
         (%#define-runtime
          generate-runtime-values-ref
          gxc#generate-runtime-values-ref)
         (%#define-runtime
          generate-runtime-values->list
          gxc#generate-runtime-values->list)
         (%#define-runtime
          generate-runtime-lambda%
          gxc#generate-runtime-lambda%)
         (%#define-runtime
          generate-runtime-lambda-form
          gxc#generate-runtime-lambda-form)
         (%#define-runtime
          generate-runtime-lambda-head
          gxc#generate-runtime-lambda-head)
         (%#define-runtime
          generate-runtime-case-lambda%
          gxc#generate-runtime-case-lambda%)
         (%#begin (%#define-runtime
                   generate-runtime-let-values%__%
                   gxc#generate-runtime-let-values%__%)
                  (%#begin (%#define-runtime
                            generate-runtime-let-values%__0
                            gxc#generate-runtime-let-values%__0)
                           (%#define-runtime
                            generate-runtime-let-values%
                            gxc#generate-runtime-let-values%)))
         (%#define-runtime
          generate-runtime-let-values-bind
          gxc#generate-runtime-let-values-bind)
         (%#begin (%#define-runtime
                   generate-runtime-letrec-values%__%
                   gxc#generate-runtime-letrec-values%__%)
                  (%#begin (%#define-runtime
                            generate-runtime-letrec-values%__0
                            gxc#generate-runtime-letrec-values%__0)
                           (%#define-runtime
                            generate-runtime-letrec-values%
                            gxc#generate-runtime-letrec-values%)))
         (%#define-runtime
          generate-runtime-letrec*-values%
          gxc#generate-runtime-letrec*-values%)
         (%#define-runtime
          generate-runtime-simple-let?
          gxc#generate-runtime-simple-let?)
         (%#define-runtime
          generate-runtime-simple-let
          gxc#generate-runtime-simple-let)
         (%#define-runtime generate-runtime-quote% gxc#generate-runtime-quote%)
         (%#define-runtime generate-runtime-call% gxc#generate-runtime-call%)
         (%#define-runtime
          generate-runtime-call-unchecked%
          gxc#generate-runtime-call-unchecked%)
         (%#define-runtime generate-runtime-if% gxc#generate-runtime-if%)
         (%#define-runtime generate-runtime-ref% gxc#generate-runtime-ref%)
         (%#define-runtime generate-runtime-setq% gxc#generate-runtime-setq%)
         (%#define-runtime
          generate-runtime-struct-instancep%
          gxc#generate-runtime-struct-instancep%)
         (%#define-runtime
          generate-runtime-struct-direct-instancep%
          gxc#generate-runtime-struct-direct-instancep%)
         (%#define-runtime
          generate-runtime-struct-ref%
          gxc#generate-runtime-struct-ref%)
         (%#define-runtime
          generate-runtime-struct-setq%
          gxc#generate-runtime-struct-setq%)
         (%#define-runtime
          generate-runtime-struct-direct-ref%
          gxc#generate-runtime-struct-direct-ref%)
         (%#define-runtime
          generate-runtime-struct-direct-setq%
          gxc#generate-runtime-struct-direct-setq%)
         (%#define-runtime
          generate-runtime-struct-unchecked-ref%
          gxc#generate-runtime-struct-unchecked-ref%)
         (%#define-runtime
          generate-runtime-struct-unchecked-setq%
          gxc#generate-runtime-struct-unchecked-setq%)
         (%#define-runtime
          generate-runtime-loader-import%
          gxc#generate-runtime-loader-import%)
         (%#define-runtime
          generate-runtime-quote-syntax%
          gxc#generate-runtime-quote-syntax%)
         (%#define-runtime
          generate-runtime-phi-define-runtime%
          gxc#generate-runtime-phi-define-runtime%)
         (%#define-runtime generate-meta-begin% gxc#generate-meta-begin%)
         (%#define-runtime
          generate-meta-begin-syntax%
          gxc#generate-meta-begin-syntax%)
         (%#define-runtime generate-meta-module% gxc#generate-meta-module%)
         (%#define-runtime
          generate-meta-import-path
          gxc#generate-meta-import-path)
         (%#define-runtime current-context-chain gxc#current-context-chain)
         (%#define-runtime generate-meta-import% gxc#generate-meta-import%)
         (%#define-runtime generate-meta-export% gxc#generate-meta-export%)
         (%#define-runtime generate-meta-provide% gxc#generate-meta-provide%)
         (%#define-runtime generate-meta-extern% gxc#generate-meta-extern%)
         (%#define-runtime
          generate-meta-define-values%
          gxc#generate-meta-define-values%)
         (%#define-runtime
          generate-meta-define-syntax%
          gxc#generate-meta-define-syntax%)
         (%#define-runtime
          generate-meta-define-alias%
          gxc#generate-meta-define-alias%)
         (%#define-runtime
          generate-meta-phi-define-values%
          gxc#generate-meta-phi-define-values%)
         (%#define-runtime generate-meta-phi-expr gxc#generate-meta-phi-expr)
         (%#define-runtime meta-state::t gxc#meta-state::t)
         (%#define-runtime meta-state? gxc#meta-state?)
         (%#define-runtime make-meta-state gxc#make-meta-state)
         (%#define-runtime meta-state-src gxc#meta-state-src)
         (%#define-runtime meta-state-n gxc#meta-state-n)
         (%#define-runtime meta-state-open gxc#meta-state-open)
         (%#define-runtime meta-state-blocks gxc#meta-state-blocks)
         (%#define-runtime meta-state-src-set! gxc#meta-state-src-set!)
         (%#define-runtime meta-state-n-set! gxc#meta-state-n-set!)
         (%#define-runtime meta-state-open-set! gxc#meta-state-open-set!)
         (%#define-runtime meta-state-blocks-set! gxc#meta-state-blocks-set!)
         (%#define-runtime &meta-state-src gxc#&meta-state-src)
         (%#define-runtime &meta-state-n gxc#&meta-state-n)
         (%#define-runtime &meta-state-open gxc#&meta-state-open)
         (%#define-runtime &meta-state-blocks gxc#&meta-state-blocks)
         (%#define-runtime &meta-state-src-set! gxc#&meta-state-src-set!)
         (%#define-runtime &meta-state-n-set! gxc#&meta-state-n-set!)
         (%#define-runtime &meta-state-open-set! gxc#&meta-state-open-set!)
         (%#define-runtime &meta-state-blocks-set! gxc#&meta-state-blocks-set!)
         (%#define-syntax meta-state |gxc[:0:]#meta-state|)
         (%#define-runtime meta-state:::init! gxc#meta-state:::init!)
         (%#define-runtime meta-state-block::t gxc#meta-state-block::t)
         (%#define-runtime meta-state-block? gxc#meta-state-block?)
         (%#define-runtime make-meta-state-block gxc#make-meta-state-block)
         (%#define-runtime meta-state-block-ctx gxc#meta-state-block-ctx)
         (%#define-runtime meta-state-block-phi gxc#meta-state-block-phi)
         (%#define-runtime meta-state-block-n gxc#meta-state-block-n)
         (%#define-runtime meta-state-block-code gxc#meta-state-block-code)
         (%#define-runtime
          meta-state-block-ctx-set!
          gxc#meta-state-block-ctx-set!)
         (%#define-runtime
          meta-state-block-phi-set!
          gxc#meta-state-block-phi-set!)
         (%#define-runtime meta-state-block-n-set! gxc#meta-state-block-n-set!)
         (%#define-runtime
          meta-state-block-code-set!
          gxc#meta-state-block-code-set!)
         (%#define-runtime &meta-state-block-ctx gxc#&meta-state-block-ctx)
         (%#define-runtime &meta-state-block-phi gxc#&meta-state-block-phi)
         (%#define-runtime &meta-state-block-n gxc#&meta-state-block-n)
         (%#define-runtime &meta-state-block-code gxc#&meta-state-block-code)
         (%#define-runtime
          &meta-state-block-ctx-set!
          gxc#&meta-state-block-ctx-set!)
         (%#define-runtime
          &meta-state-block-phi-set!
          gxc#&meta-state-block-phi-set!)
         (%#define-runtime
          &meta-state-block-n-set!
          gxc#&meta-state-block-n-set!)
         (%#define-runtime
          &meta-state-block-code-set!
          gxc#&meta-state-block-code-set!)
         (%#define-syntax meta-state-block |gxc[:0:]#meta-state-block|)
         (%#define-runtime meta-state-begin-phi! gxc#meta-state-begin-phi!)
         (%#define-runtime meta-state-add-phi! gxc#meta-state-add-phi!)
         (%#define-runtime meta-state-end-phi! gxc#meta-state-end-phi!)
         (%#define-runtime meta-state-end! gxc#meta-state-end!)
         (%#define-runtime collect-expression-refs gxc#collect-expression-refs)
         (%#define-runtime collect-refs-ref% gxc#collect-refs-ref%)
         (%#define-runtime collect-refs-setq% gxc#collect-refs-setq%)
         (%#define-runtime find-runtime-begin% gxc#find-runtime-begin%)
         (%#define-runtime count-values-single% gxc#count-values-single%)
         (%#define-runtime count-values-call% gxc#count-values-call%)
         (%#define-runtime count-values-if% gxc#count-values-if%))
(%#call (%#ref load-module) (%#quote "gerbil/compiler/compile~0"))
