    # File lib/merb-core/bootloader.rb, line 872
        def load_file(file, reload = false)
          Merb.logger.verbose! "#{reload ? "re" : ""}loading #{file}"

          # If we're going to be reloading via constant remove,
          # keep track of what constants were loaded and what files
          # have been added, so that the constants can be removed
          # and the files can be removed from $LOADED_FEAUTRES
          if !Merb::Config[:fork_for_class_load]
            if FILES_LOADED[file]
              FILES_LOADED[file].each {|lf| $LOADED_FEATURES.delete(lf)}
            end

            klasses = ObjectSpace.classes.dup
            files_loaded = $LOADED_FEATURES.dup
          end

          # If we're in the midst of a reload, remove the file
          # itself from $LOADED_FEATURES so it will get reloaded
          if reload
            $LOADED_FEATURES.delete(file) if reload
          end

          # Ignore the file for syntax errors. The next time
          # the file is changed, it'll be reloaded again
          begin
            require file
          rescue SyntaxError => e
            Merb.logger.error "Cannot load #{file} because of syntax error: #{e.message}"
          ensure
            if Merb::Config[:reload_classes]
              MTIMES[file] = File.mtime(file)
            end
          end

          # If we're reloading via constant remove, store off the details
          # after the file has been loaded
          unless Merb::Config[:fork_for_class_load]
            LOADED_CLASSES[file] = ObjectSpace.classes - klasses
            FILES_LOADED[file] = $LOADED_FEATURES - files_loaded
          end

          nil
        end