Adjusted the image bootstrap to macroExpand before assembling the main kernel method...
[cslatevm.git] / src / mobius / prelude.slate
blob14c5f9640bfc91066056a9df909923af6d48a0b4
1 "This file exists so that the build-up of the full standard image may be
2 customized without requiring a full bootstrap. This is loaded by post-bootstrap
3 code which is compiled in to the kernel image."
5 here load: 'src/mobius/map.slate'.
7 #(numerics load: _) `er for: {
8   'src/lib/fraction.slate'.
9   'src/lib/complex.slate'.
12 numerics load: 'src/lib/numericMixin.slate' &imports: {Mixins -> #Mixin}.
14 #(collections load: _) `er for: {
15   'src/lib/linkedlist.slate'. "Collection ExtensibleSequence"
16   'src/lib/cord.slate'. "Sequence"
17   'src/lib/sortedSet.slate'.
20 collections load: 'src/lib/traversal.slate' &imports:
21   {streams -> #ReadStream. prototypes -> #Root}. "Collection Sequence IdentitySet Stack"
23 prototypes load: 'src/lib/lookup.slate'.
25 _@prototypes lobby [here].
26 _@prototypes Syntax [Syntax].
27 prototypes import: #nodes from: here.
28 prototypes load: 'src/lib/path.slate' &imports:
29   {streams -> #ReadStream. collections -> #TraversalStream}. "lobby IdentitySet"
30 prototypes load: 'src/lib/tokenizer.slate'.
32 collections load: 'src/lib/subsequence.slate' &imports:
33   {streams -> #WriteStream. Mixins -> #PrettyPrinterMixin. prototypes -> #Root}.
34 #(collections load: _) `er for: {
35   'src/lib/bag.slate'. "ExtensibleCollection Dictionary Collection PrettyPrinterMixin"
36   'src/lib/queue.slate'. "ArrayBacked Sequence"
38 collections load: 'src/lib/repetition.slate' &imports:
39   {Mixins -> #PrettyPrinterMixin. prototypes -> #Root}.
40 mappings load: 'src/lib/mapping-epilogue.slate' &imports: {collections -> #Set}.
41 collections load: 'src/lib/ringbuffer.slate'. "Queue"
42 streams load: 'src/lib/buffer.slate' &imports:
43   {collections -> {#RingBuffer. #Sequence}}. "Stream BufferStream WriteStream ReadStream"
44 collections load: 'src/lib/multi-dimensional.slate' &imports: {
45   mappings -> #Mapping.
46   streams -> {#ReadStream. #WriteStream. #PositionableStream}.
47   numerics -> #Integer.
48   prototypes -> {#Method. #Boolean}.
49   globals -> #Nil
50 }. "also Range"
52 Syntax load: 'src/lib/precedence.slate' &imports: {collections -> #Stack}.
54 here load: 'src/lib/inspect.slate'.
55 prototypes load: 'src/lib/directory.slate'.
56 #(here load: _) `er for: {
57   'src/lib/time.slate'.
58   'src/lib/concurrency.slate'.
59   'src/lib/observer.slate'.
60   'src/lib/method.slate'.
61   'src/mobius/role.slate'.
62   'src/lib/image.slate'.
63   'src/lib/method-query.slate'.
64   'src/mobius/memory.slate'.
65   'src/mobius/disassemble.slate'.
66   'src/mobius/primitive-method.slate'.
67   'src/lib/repl.slate'.
70 lobby ensureNamespace: #C.
71 (Types ensureNamespace: #C)
72   load: 'src/mobius/types.slate'
73   &imports: {here -> #Types. prototypes -> #Cloneable. globals -> #{#Nil. #False}. collections -> #ExtensibleArray}.
74 prototypes load: 'src/lib/extlib.slate' &imports: {Types -> #C}.
75 prototypes load: 'src/lib/devsupport.slate'.
77 prototypes load: 'src/lib/platform.slate' &imports: {globals -> #Image}.
79 "Totally optional, makes for pretty source output and enables C code output."
80 load: 'src/syntax/print.slate'.
82 "Loads AutoLoader definitions from the standard file database."
83 load: 'src/lib/module.slate'.
84 AutoLoader readStorage.
86 "Print the greeting banner and start a REPL - or whatever else you want."
87 inform: 'Hi, there!'.
88 inform: 'Please save your image now, (eg. "Image saveNamed: \'slate.image\'.") to avoid repeating this initialization.'.
90 "Define the REPL as the primary setup for this image. This is called by the
91 bootstrap method."
92 _@lobby start [REPL start].