Catching up after the holidays.
[kakapo:kakapo.git] / src / Kakapo.nqp
1 # Copyright (C) 2009, Austin Hastings. See accompanying LICENSE file, or 
2 # http://www.opensource.org/licenses/artistic-license-2.0.php for license.
3
4 module Kakapo;
5 # Organizing code for setting up the Kakapo framework.
6
7 INIT {
8         if Opcode::isnull(Kakapo::krt0::main) {
9         }
10 }
11
12 sub is_loaded() {
13         return 1;
14 }
15
16 sub _pre_initload() {
17 # This sub is called directly by code in kakapo_top_pir.tmpl to perform 'very first thing' 
18 # initialization. The intent is to (1) ensure that the environment is initialized, and (2) to 
19 # directly initialize those modules that are prerequisites of just about every other module 
20 # in the system.
21
22         if our $_Pre_initload_done { return 0; }
23         $_Pre_initload_done := 1;
24         
25         unless Opcode::defined(say) {
26                 Opcode::load_language('nqp');
27         }
28         
29         unless Opcode::defined(P6object::HOW) {
30                 Opcode::load_bytecode('P6object.pbc');
31         }       
32         
33         # Note: Order is important, here.
34
35         
36         Global::_pre_initload();
37         Dumper::_pre_initload();
38         Opcode::_pre_initload();
39         Undef::_pre_initload();
40         String::_pre_initload();
41         Parrot::_pre_initload();
42         P6metaclass::_pre_initload();
43         Pir::_pre_initload();
44         P6object::_pre_initload();
45         Class::_pre_initload();
46         Exception::_pre_initload();
47         DependencyQueue::_pre_initload();
48         Program::_pre_initload(
49                 'Global', 
50                 'Dumper', 
51                 'Opcode', 
52                 'Undef',
53                 'Parrot', 
54                 'P6metaclass', 
55                 'P6object', 
56                 'Pir', 
57                 'Class', 
58                 'Exception',
59                 'DependencyQueue', 
60                 'Program',
61         );
62 }