<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>kernel/bootstrap/load_order.txt</filename>
    </added>
    <added>
      <filename>kernel/common/load_order.txt</filename>
    </added>
    <added>
      <filename>kernel/compiler/load_order.txt</filename>
    </added>
    <added>
      <filename>kernel/delta/load_order.txt</filename>
    </added>
    <added>
      <filename>kernel/platform/load_order.txt</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,4 +1,3 @@
-!runtime/stable/loader.rbc
 !spec/tags
 *.a
 *.bundle
@@ -21,7 +20,6 @@
 .hg
 .hgignore
 .libs
-load_order.txt
 .spec/bm.yml
 /rubinius_tasks.dot
 /nbproject
@@ -35,8 +33,7 @@ coverage
 cscope.files
 cscope.out
 rakelib/ryan.rake
-runtime/platform.conf
-runtime/pristine*
+runtime
 scratch
 spec/ruby
 stamp-h1
@@ -65,7 +62,6 @@ tmtags
 /vm/instructions.cpp
 /vm/.deps
 
-/kernel/.load_order.txt
 /kernel/bootstrap/rubinius_config.rb
 /kernel/bootstrap/ruby_config.rb
 
@@ -77,23 +73,6 @@ tmtags
 /lib/openssl/digest.rb
 /lib/syslog.rb
 
-native/sexp
-native/translation
-native/bytecode
-native/.load_order.txt
-
-# native/bytecode
-native/bytecode/assembler.rb
-native/bytecode/compiler.rbc
-native/bytecode/primitive_names.rbc
-native/bytecode/encoder.rb
-native/bytecode/assembler.rbc
-native/bytecode/encoder.rbc
-native/bytecode/rubinius.rbc
-native/bytecode/compiler.rb
-native/bytecode/primitive_names.rb
-native/bytecode/system_hints.rbc
-
 # LLVM and its Makefiles
 vm/external_libs/llvm/Makefile
 vm/external_libs/llvm/Makefile.common</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 Bootstrapping is the process of building up functionality of the system until
-all Ruby code can be executed. There are six stages to the bootstrap process:
+all Ruby code can be executed. There are eight stages to the bootstrap process:
 
 1.  VM: The virtual machine is able to load and execute bytecode, send messages
     (i.e. look up and execute methods), and all primitive functions are
@@ -36,8 +36,37 @@ all Ruby code can be executed. There are six stages to the bootstrap process:
     implementation-specific versions of methods that override the versions
     provided in common are added.
 
-The files in the kernel directories bootstrap, platform, common, and delta
-implement the respective bootstrapping stages above.
+7.  compiler: The compiler files are loaded.
+
+8.  loader: The compiled version of kernel/loader.rb is run.
+
+The files in the kernel directories bootstrap, platform, common, delta, and
+compiler implement the respective bootstrapping stages above. The order in
+which these directories are loaded is specified in runtime/index.
+
+When an rbc file is loaded, code at the script level and in class or module
+bodies is executed. For instance, when loading
+
+    class SomeClass
+      attr_accessor :value
+    end
+
+the call to #attr_accessor will be run. This requires that any code called
+in script, class, or module bodies must be loaded before the file that calls
+the code is loaded. The kernel/alpha.rb defines most of the code that will be
+needed at the script or module level. However, other load order dependencies
+exist between some of the platform, common, delta, and compiler files.
+
+These load order dependencies are addressed by the load_order.txt file located
+in each of the kernel/** directories. If you modify code that adds a load
+order dependency, you must edit the load_order.txt files to place the depended
+on file above the file that depends on it. Also, if you add a new file to one
+of the kernel directories, you must add the file name to the load_order.txt
+file in that directory. These files are copied to the appropriate runtime/**
+directories during build. During each of the bootstrap stages above, the VM
+loads the files listed in load_order.txt in order.
+
+## Kernel Coding Guidelines
 
 The primary guideline for all kernel code is simple and efficient. Simple code
 is often more efficient and generally more comprehensible. There should be no</diff>
      <filename>doc/bootstrapping.txt</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb enumerable.rb
-
 ##
 # The virtual concatenation file of the files given on command line (or from
 # $stdin if no files were given).</diff>
      <filename>kernel/common/argf.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb enumerable.rb tuple.rb kernel.rb
-
 ##
 # Arrays are ordered, integer-indexed collections of any object.  Array
 # indexing starts at 0, as in C or Java.  A negative index is assumed to be</diff>
      <filename>kernel/common/array.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb integer.rb
-
 ##
 # Bignum objects hold integers outside the range of Fixnum. Bignum objects are
 # created automatically when integer calculations would otherwise overflow a</diff>
      <filename>kernel/common/bignum.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb
-
 ##
 # An array of bytes, used as a low-level data store for implementing various
 # other classes.</diff>
      <filename>kernel/common/bytearray.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: object.rb
-
 ##
 # Classes in Ruby are first-class objects, each is an instance of
 # class Class.</diff>
      <filename>kernel/common/class.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb
-
 ##
 # The Comparable mixin is used by classes whose objects may be ordered. The
 # class must define the &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; (spaceship) operator, which compares the</diff>
      <filename>kernel/common/comparable.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb executable.rb array.rb static_scope.rb
-
 # TODO - Comment!!!
 
 module Rubinius</diff>
      <filename>kernel/common/compiled_method.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb module.rb
-
 ##
 # Continuation objects are generated by Kernel#callcc. They hold a return
 # address and execution context, allowing a nonlocal return to the end of the</diff>
      <filename>kernel/common/continuation.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb
-
 ##
 # Mixin containing byte classification methods.
 #--</diff>
      <filename>kernel/common/ctype.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb
-
 ##
 # DelegatedMethod is used to implement Module#define_method
 </diff>
      <filename>kernel/common/delegated_method.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: array.rb class.rb fixnum.rb
-
 class Dir
   include Enumerable
 </diff>
      <filename>kernel/common/dir.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb
-
 ##
 # Interface to the custom ruby dtrace(1) probe.
 </diff>
      <filename>kernel/common/dtrace.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb class.rb
-
 ##
 #  The Enumerable mixin provides collection classes with  several traversal
 #  and searching methods, and with the ability to sort. The class must provide</diff>
      <filename>kernel/common/enumerable.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb
-
 ##
 # Interface to process environment variables.
 </diff>
      <filename>kernel/common/env.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb
-
 ##
 # Interface to the C errno integer.
 </diff>
      <filename>kernel/common/errno.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,3 @@
-# depends on: array.rb proc.rb binding.rb
-# (due to alias_method)
-
 module Kernel
 
   # Names of local variables at point of call (including evaled)</diff>
      <filename>kernel/common/eval.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb module.rb
-
 class Exception
 
   attr_writer :message</diff>
      <filename>kernel/common/exception.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: io.rb class.rb module.rb enumerable.rb
-
 module Platform::POSIX
   #--
   # Internal class for accessing timevals</diff>
      <filename>kernel/common/file.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb
-
 module FileTest
   def blockdev?(path)
     File.blockdev? path</diff>
      <filename>kernel/common/filetest.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: integer.rb class.rb
-
 ##
 #--
 # NOTE do not define to_sym or id2name. It's been deprecated for 5 years and</diff>
      <filename>kernel/common/fixnum.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: numeric.rb precision.rb class.rb
-
 class Float &lt; Numeric
 
   include Precision</diff>
      <filename>kernel/common/float.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb hash.rb argf.rb
-
 ##
 # Stores global variables and global variable aliases.
 </diff>
      <filename>kernel/common/global.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: enumerable.rb class.rb undefined.rb
-
 class Hash
 
   include Enumerable</diff>
      <filename>kernel/common/hash.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: kernel.rb module.rb
-
 ##
 # Mixin used to identify classes which have no memory storage.
 </diff>
      <filename>kernel/common/immediate.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb numeric.rb ctype.rb precision.rb
-
 class Integer &lt; Numeric
   include CType
   include Precision</diff>
      <filename>kernel/common/integer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb
-
 class IO
 
   # Buffer provides a sliding window into a region of bytes.</diff>
      <filename>kernel/common/io.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb kernel.rb exception.rb global.rb type.rb
-
 module Kernel
 
   def Float(obj)</diff>
      <filename>kernel/common/kernel.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: enumerable.rb
-
 ##
 # A simplified Hash that only works with symbols as keys.
 </diff>
      <filename>kernel/common/lookuptable.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb class.rb
-
 class Object
   def to_marshal(ms, strip_ivars = false)
     out = ms.serialize_extended_object self</diff>
      <filename>kernel/common/marshal.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb
-
 module Math
   # Constants
   PI = 3.14159_26535_89793_23846</diff>
      <filename>kernel/common/math.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb
-
 ##
 # Method objects are essentially detached, freely passed-around methods. The
 # Method is a copy of the method on the object at the time of extraction, so</diff>
      <filename>kernel/common/method.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb
-
 ##
 # Holds Executables for lookup by the VM.
 #</diff>
      <filename>kernel/common/method_table.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb proc.rb autoload.rb
-
 ##
 # Some terminology notes:
 #</diff>
      <filename>kernel/common/module.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-#depends on class.rb executable.rb
-
 ##
 # A wrapper for a calling a function in a shared library that has been
 # attached via rb_define_method().</diff>
      <filename>kernel/common/native_method.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb comparable.rb
-
 class Numeric
   include Comparable
 </diff>
      <filename>kernel/common/numeric.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb
-
 module ObjectSpace
 
   # @todo rewrite each_object</diff>
      <filename>kernel/common/objectspace.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: array.rb string.rb hash.rb range.rb
-
 class Array::Packer
   BASE_64_B2A = Array.new 64
   (00..25).each {|x| BASE_64_B2A[x] = (?A + x - 00).chr}</diff>
      <filename>kernel/common/pack.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb
-
 module Precision
   def prec(klass)
     klass.induced_from(self)</diff>
      <filename>kernel/common/precision.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb binding.rb
-
 class Proc
 
   def self.__from_block__(env)</diff>
      <filename>kernel/common/proc.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb class.rb hash.rb struct.rb
-
 module Process
   module Constants
     EXIT_SUCCESS = Rubinius::RUBY_CONFIG['rbx.platform.process.EXIT_SUCCESS'] || 0</diff>
      <filename>kernel/common/process.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb enumerable.rb
-
 ##
 # A Range represents an interval, a set of values with a start and an end.
 #</diff>
      <filename>kernel/common/range.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb string.rb
-
 class Regexp
   attr_reader :source
   attr_reader :names</diff>
      <filename>kernel/common/regexp.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb
-
 module Signal
   Names = {&quot;EXIT&quot; =&gt; 0}
 </diff>
      <filename>kernel/common/signal.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb class.rb
-
 module Rubinius
   class Sprintf
 </diff>
      <filename>kernel/common/sprintf.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb comparable.rb enumerable.rb
-
 # Default Ruby Record Separator
 # Used in this file and by various methods that need to ignore $/
 DEFAULT_RECORD_SEPARATOR = &quot;\n&quot;</diff>
      <filename>kernel/common/string.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb enumerable.rb hash.rb
-
 class Struct
 
   include Enumerable</diff>
      <filename>kernel/common/struct.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb
-
 class Symbol
   ##
   # Returns an array of all the symbols currently in Ruby&#8216;s symbol table.</diff>
      <filename>kernel/common/symbol.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb
-
 #--
 # Be very careful about calling raise in here! Thread has its own
 # raise which, if you're calling raise, you probably don't want. Use</diff>
      <filename>kernel/common/thread.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb
-
 class ThreadGroup
   def initialize
     @threads = []</diff>
      <filename>kernel/common/thread_group.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb
-
 module Rubinius
   class ThrownValue &lt; Exception
     def initialize(name, value, ctx)</diff>
      <filename>kernel/common/throw_catch.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: comparable.rb class.rb module.rb
-
 #--
 # _load
 # parse</diff>
      <filename>kernel/common/time.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: class.rb module.rb
-
 ##
 # The tuple data type.
 # A simple storage class. Created to contain a fixed number of elements.</diff>
      <filename>kernel/common/tuple.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: compiler.rb nodes.rb generator.rb
-
 # Each Node subclass is reopened here, and bytecode-generating
 # methods are added.
 </diff>
      <filename>kernel/compiler/bytecode.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: iseq.rb compiler.rb
-
 class Compiler
 
   ##</diff>
      <filename>kernel/compiler/generator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: compiler.rb generator.rb bytecode.rb text.rb
-
 class Compiler::Node
 
   # Debug print for the AST</diff>
      <filename>kernel/compiler/graph.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: compiler.rb
-
 class Compiler
 
   ##</diff>
      <filename>kernel/compiler/local.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: compiler.rb node.rb
-
 class Compiler
   class Node
 </diff>
      <filename>kernel/compiler/nodes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: compiler.rb execute.rb
-
 class Compiler
 
   ##</diff>
      <filename>kernel/compiler/plugins.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: compiler.rb
-
 class Compiler
   class StackDepthCalculator
     def initialize(iseq)</diff>
      <filename>kernel/compiler/stack.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: sexp.rb
-#
 # TODO: This is temporary. Sexp generation will be completely
 # removed in the near future.
 </diff>
      <filename>kernel/compiler/sydney_rewriter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: compiler.rb
-
 class Compiler
 
   ##</diff>
      <filename>kernel/compiler/text.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,3 @@
-# depends on: module.rb
 module FileTest
   module_function :blockdev?,
                   :chardev?,</diff>
      <filename>kernel/delta/filetest.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: module.rb
-
 module Math
   module_function \
     :acos,</diff>
      <filename>kernel/delta/math.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: rubinius.rb
-
 class Module
   #--
   # HACK: This should work after after the bootstrap is loaded,</diff>
      <filename>kernel/delta/module.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: stats.rb
-
 module Rubinius
   module Profiler
 </diff>
      <filename>kernel/delta/profiler.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: io.rb
-
 module Rubinius
   Terminal = STDIN.tty?
 </diff>
      <filename>kernel/delta/rubinius.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: library.rb
-
 module Rubinius
   class EnvironmentVariables
     extend FFI::Library</diff>
      <filename>kernel/platform/env.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: library.rb
-
 ##
 # Platform specific behavior for the File class.
 </diff>
      <filename>kernel/platform/file.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: ffi.rb
-
 module FFI
   module Library
 </diff>
      <filename>kernel/platform/library.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: library.rb
-
 ##
 # Platform specific behavior for Math.
 </diff>
      <filename>kernel/platform/math.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: ffi.rb
-
 module FFI
 
   ##</diff>
      <filename>kernel/platform/memorypointer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: library.rb
-
 ##
 # Namespace for various POSIX functions.
 </diff>
      <filename>kernel/platform/posix.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-# depends on: ffi.rb
-
 module FFI
   ##
   # Represents a C struct as ruby class.</diff>
      <filename>kernel/platform/struct.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,79 +1,5 @@
 # All the tasks to manage the kernel
 
-# Some files have load order dependencies. To specify a load order
-# dependency, include a comment in the file that has the dependency.
-# For example, assume files a.rb and b.rb, where a.rb requires that
-# b.rb is loaded first. In a.rb, include a comment
-#   # depends on: b.rb
-#
-# The 'depends on:' declaration takes a space separated list of file.
-# When the 'load_order.txt' file is created, a topological sort
-# (see name caveat in TSort) of the dependencies is performed
-# so files that are depended on are loaded first.
-#
-# If there is a 'depends on:' declarations for a non-existent file,
-# or if there are cyclic dependencies, this method will not create
-# the 'load_order.txt' file.
-
-require 'tsort'
-
-class Hash
-  include TSort
-
-  # This keeps things consistent across all platforms
-  def tsort_each_node(&amp;block)
-    keys.sort.each(&amp;block)
-  end
-
-  def tsort_each_child(node, &amp;block)
-    fetch(node).each(&amp;block)
-  end
-end
-
-def create_load_order(files, output=&quot;load_order.txt&quot;)
-  d = Hash.new { |h,k| h[k] = [] }
-
-  # assume all the files are in the same directory
-  dir = File.dirname(files.first)
-  found = false
-  files.each do |fname|
-    name = File.basename(fname)
-    # Force every entry to be in the hash
-    d[name]
-    File.open(File.join(dir, name), &quot;r&quot;) do |f|
-      f.each do |line|
-        if m = /#\s*depends on:\s*(.*)/.match(line)
-          found = true
-          m[1].split.each { |dep| d[name] &lt;&lt; dep }
-        end
-      end
-    end
-  end
-
-  puts &quot;Generating #{output}...&quot; if $verbose
-
-  File.open(output, &quot;w&quot;) do |f|
-    begin
-      if found
-        list = d.tsort
-      else
-        list = files.sort
-      end
-
-      list.each do |n|
-        f.puts File.basename(n, &quot;.*&quot;) + &quot;.rbc&quot;
-      end
-    rescue IndexError =&gt; e
-      puts &quot;Unable to generate 'load_order.txt'&quot;
-      puts &quot;Most likely, a file includes a 'depends on:' declaration for a non-existent file&quot;
-      raise e
-    rescue TSort::Cyclic =&gt; e
-      puts &quot;Unable to generate 'load_order.txt' due to a cyclic dependency\n  (#{e.message})&quot;
-      raise e
-    end
-  end
-end
-
 require 'lib/compiler/mri_compile'
 
 def compile_ruby(src, rbc, check_mtime = false, kernel = false)
@@ -184,8 +110,7 @@ namespace :kernel do
 
   task :build =&gt; ['kernel:check_compiler'] + kernel + extra_compiler do
     subdirs.each do |subdir|
-      files = Dir[&quot;kernel/#{subdir}/*.rb&quot;]
-      create_load_order files, &quot;runtime/#{subdir}/load_order.txt&quot;
+      cp &quot;kernel/#{subdir}/load_order.txt&quot;, &quot;runtime/#{subdir}/load_order.txt&quot;
     end
   end
 </diff>
      <filename>rakelib/kernel.rake</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>kernel/hints</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>349411c0afef21e4b2cb3bb5aa58605fa9abb397</id>
    </parent>
  </parents>
  <author>
    <name>Brian Ford</name>
    <email>bford@engineyard.com</email>
  </author>
  <url>http://github.com/evanphx/rubinius/commit/3f6d963a1b98d406d6688dcd97e55ef2091e6eeb</url>
  <id>3f6d963a1b98d406d6688dcd97e55ef2091e6eeb</id>
  <committed-date>2009-04-27T16:13:35-07:00</committed-date>
  <authored-date>2009-04-27T15:58:13-07:00</authored-date>
  <message>Make load order explicit. See doc/bootstrapping.txt.</message>
  <tree>68937f926b6acbe4832e141f625be35bc0845cd2</tree>
  <committer>
    <name>Brian Ford</name>
    <email>bford@engineyard.com</email>
  </committer>
</commit>
