1#lang racket/base
2(require "../eval/main.rkt"
3         "../eval/dynamic-require.rkt"
4         "../eval/reflect.rkt"
5         "../eval/load.rkt"
6         "../eval/parameter.rkt"
7         "../eval/collection.rkt"
8         (prefix-in wrapper: "../eval/api.rkt")
9         "../compile/recompile.rkt"
10         "../namespace/namespace.rkt"
11         "../namespace/api.rkt"
12         "../namespace/attach.rkt"
13         "../namespace/api-module.rkt")
14
15(provide main-primitives)
16
17(define main-primitives
18  (hasheq 'eval wrapper:eval
19          'eval-syntax wrapper:eval-syntax
20          'compile wrapper:compile
21          'compile-syntax wrapper:compile-syntax
22          'expand wrapper:expand
23          'expand-syntax wrapper:expand-syntax
24          'expand-once wrapper:expand-once
25          'expand-syntax-once wrapper:expand-syntax-once
26          'expand-to-top-form wrapper:expand-to-top-form
27          'expand-syntax-to-top-form wrapper:expand-syntax-to-top-form
28          'dynamic-require dynamic-require
29          'dynamic-require-for-syntax dynamic-require-for-syntax
30          'load load
31          'load-extension load-extension
32          'load/use-compiled load/use-compiled
33
34          'current-eval current-eval
35          'current-compile current-compile ; protected
36          'current-load current-load
37          'current-load/use-compiled current-load/use-compiled
38
39          'collection-path collection-path
40          'collection-file-path collection-file-path
41          'find-library-collection-paths find-library-collection-paths
42          'find-library-collection-links find-library-collection-links
43          'find-compiled-file-roots find-compiled-file-roots
44
45          'current-library-collection-paths current-library-collection-paths
46          'current-library-collection-links current-library-collection-links
47          'use-compiled-file-paths use-compiled-file-paths
48          'current-compiled-file-roots current-compiled-file-roots
49          'use-compiled-file-check use-compiled-file-check
50          'use-collection-link-paths use-collection-link-paths
51          'use-user-specific-search-paths use-user-specific-search-paths
52
53          'compiled-expression? compiled-expression?
54          'compiled-module-expression? compiled-module-expression?
55          'module-compiled-name module-compiled-name
56          'module-compiled-submodules module-compiled-submodules
57          'module-compiled-language-info module-compiled-language-info
58          'module-compiled-imports module-compiled-imports
59          'module-compiled-exports module-compiled-exports
60          'module-compiled-indirect-exports module-compiled-indirect-exports
61
62          'compiled-expression-recompile compiled-expression-recompile
63
64          'make-empty-namespace make-empty-namespace
65
66          'namespace-attach-module namespace-attach-module
67          'namespace-attach-module-declaration namespace-attach-module-declaration
68
69          'namespace-symbol->identifier namespace-symbol->identifier
70          'namespace-module-identifier namespace-module-identifier
71          'namespace-syntax-introduce namespace-syntax-introduce
72          'namespace-require namespace-require
73          'namespace-require/copy namespace-require/copy
74          'namespace-require/constant namespace-require/constant
75          'namespace-require/expansion-time namespace-require/expansion-time
76          'namespace-variable-value namespace-variable-value
77          'namespace-set-variable-value! namespace-set-variable-value!
78          'namespace-undefine-variable!	namespace-undefine-variable!
79          'namespace-mapped-symbols namespace-mapped-symbols
80          'namespace-base-phase namespace-base-phase
81          'namespace-call-with-registry-lock namespace-call-with-registry-lock
82
83          'module-declared? module-declared?
84          'module-predefined? module-predefined?
85          'module->language-info module->language-info
86          'module->imports module->imports
87          'module->exports module->exports
88          'module->indirect-exports module->indirect-exports
89          'module-compiled-cross-phase-persistent? module-compiled-cross-phase-persistent?
90          'module-provide-protected? module-provide-protected?
91          'module->namespace module->namespace
92          'namespace-unprotect-module namespace-unprotect-module))
93