Replaced Array::new with [ ]
[kakapo:kakapo.git] / src / Internals / Kakapo.nqp
1 # Copyright (C) 2009-2010, 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                 # No krt0 - what shall I do?
10         }
11 }
12
13 # This sub is called directly by code in kakapo_top_pir.tmpl to perform 'very first thing' 
14 # initialization. The intent is to (1) ensure that the environment is initialized, and (2) to 
15 # directly initialize those modules that are prerequisites of just about every other module 
16 # in the system.
17 sub _pre_initload() {
18
19         if our $_Pre_initload_done { return 0; }
20         $_Pre_initload_done := 1;
21         
22         unless Opcode::defined(say) {
23                 Opcode::load_language('nqp');
24         }
25         
26         unless Opcode::defined(P6object::HOW) {
27                 Opcode::load_bytecode('P6object.pbc');
28         }       
29         
30         call_preinit_subs( get_preinit_subs() );
31 }
32
33 sub call_preinit_subs(@list) {
34         
35         my $nsp;
36         my ⊂
37
38         for @list {
39                 #say("Calling preinit for $_");
40                 
41                 $nsp := pir::get_hll_namespace__PP( pir::split('::', ~$_) );
42                 &sub := $nsp.find_sub('_pre_initload');
43                 
44                 if pir::isnull(&sub) {
45                         say("*** WARNING: No _pre_initload sub found for namespace $_");
46                 }
47                 else {
48                         &sub();
49                 }
50         }
51 }
52
53 sub is_loaded() {
54         1;
55 }
56
57 sub ident() {
58         our $_Ident := q{Git blob $Id$};
59 }