public static void startupClasses() {
    { Object old$Module$000 = Stella.$MODULE$.get();
      Object old$Context$000 = Stella.$CONTEXT$.get();

      try {
        Native.setSpecial(Stella.$MODULE$, Stella.$STELLA_MODULE$);
        Native.setSpecial(Stella.$CONTEXT$, ((Module)(Stella.$MODULE$.get())));
        if (Stella.currentStartupTimePhaseP(2)) {
          _StartupClasses.helpStartupClasses1();
          _StartupClasses.helpStartupClasses2();
        }
        if (Stella.currentStartupTimePhaseP(4)) {
          Stella.$WARNIFREDEFINEp$.setDefaultValue(new Boolean(true));
          Stella.$UNFINALIZED_CLASSES$ = List.newList();
          Stella.$CLASSES_WITH_UNRESOLVED_CHILDREN_REFERENCES$ = List.newList();
          Stella.$CLASS_TAXONOMY_GRAPH$ = TaxonomyGraph.newTaxonomyGraph();
        }
        if (Stella.currentStartupTimePhaseP(5)) {
          { Stella_Class renamed_Class = Stella.defineClassFromStringifiedSource("ALL-CLASS-SLOTS-ITERATOR", "(DEFCLASS ALL-CLASS-SLOTS-ITERATOR (ITERATOR) :PARAMETERS ((ANY-VALUE :TYPE SLOT)) :SLOTS ((ITERATOR-CONS-LIST :TYPE CONS) (ITERATOR-OBJECT :TYPE OBJECT)))");

            renamed_Class.classConstructorCode = Native.find_java_method("edu.isi.stella.AllClassSlotsIterator", "newAllClassSlotsIterator", new java.lang.Class [] {});
            renamed_Class.classSlotAccessorCode = Native.find_java_method("edu.isi.stella.AllClassSlotsIterator", "accessAllClassSlotsIteratorSlotValue", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.AllClassSlotsIterator"), Native.find_java_class("edu.isi.stella.Symbol"), Native.find_java_class("edu.isi.stella.Stella_Object"), java.lang.Boolean.TYPE});
          }
          Stella.defineStellaTypeFromStringifiedSource("(DEFTYPE ANY UNKNOWN)");
        }
        if (Stella.currentStartupTimePhaseP(6)) {
          Stella.finalizeClasses();
        }
        if (Stella.currentStartupTimePhaseP(7)) {
          _StartupClasses.helpStartupClasses3();
          _StartupClasses.helpStartupClasses4();
          Stella.defineFunctionObject("COLLECT-BAD-SUPER-CLASSES", "(DEFUN (COLLECT-BAD-SUPER-CLASSES (LIST OF TYPE)) ((TYPE TYPE) (BADONES (LIST OF TYPE))) :PUBLIC? TRUE)", Native.find_java_method("edu.isi.stella.Surrogate", "collectBadSuperClasses", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.Surrogate"), Native.find_java_class("edu.isi.stella.List")}), null);
          Stella.defineFunctionObject("ROOT-CLASS?", "(DEFUN (ROOT-CLASS? BOOLEAN) ((CLASS CLASS)))", Native.find_java_method("edu.isi.stella.Stella_Class", "rootClassP", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.Stella_Class")}), null);
          Stella.defineFunctionObject("CREATE-CLASS-TAXONOMY", "(DEFUN CREATE-CLASS-TAXONOMY ())", Native.find_java_method("edu.isi.stella.Stella", "createClassTaxonomy", new java.lang.Class [] {}), null);
          Stella.defineFunctionObject("SUBCLASS-OF?", "(DEFUN (SUBCLASS-OF? BOOLEAN) ((SUBCLASS CLASS) (SUPERCLASS CLASS)) :DOCUMENTATION \"Return `true' if `subClass' is a subclass of `superClass'.\" :PUBLIC? TRUE)", Native.find_java_method("edu.isi.stella.Stella_Class", "subclassOfP", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.Stella_Class"), Native.find_java_class("edu.isi.stella.Stella_Class")}), null);
          Stella.defineFunctionObject("FAST-SUBCLASS-OF?", "(DEFUN (FAST-SUBCLASS-OF? BOOLEAN) ((SUBCLASS CLASS) (SUPERCLASS CLASS)))", Native.find_java_method("edu.isi.stella.Stella_Class", "fastSubclassOfP", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.Stella_Class"), Native.find_java_class("edu.isi.stella.Stella_Class")}), null);
          Stella.defineFunctionObject("SUBTYPE-OF?", "(DEFUN (SUBTYPE-OF? BOOLEAN) ((SUB-TYPE TYPE) (SUPER-TYPE TYPE)) :DOCUMENTATION \"Return `true' iff the class named `sub-type' is a subclass \nof the class named `super-type'.\" :PUBLIC? TRUE)", Native.find_java_method("edu.isi.stella.Surrogate", "subtypeOfP", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.Surrogate"), Native.find_java_class("edu.isi.stella.Surrogate")}), null);
          Stella.defineFunctionObject("ISA?", "(DEFUN (ISA? BOOLEAN) ((OBJECT OBJECT) (TYPE TYPE)) :DOCUMENTATION \"Return `true' iff `object' is an instance of the class named `type'.\" :PUBLIC? TRUE)", Native.find_java_method("edu.isi.stella.Stella_Object", "isaP", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.Stella_Object"), Native.find_java_class("edu.isi.stella.Surrogate")}), null);
          Stella.defineFunctionObject("TAXONOMY-SUBCLASS-OF?", "(DEFUN (TAXONOMY-SUBCLASS-OF? BOOLEAN) ((SUBCLASS CLASS) (SUPERCLASS CLASS)) :GLOBALLY-INLINE? TRUE (RETURN (SUBCLASS-OF? SUBCLASS SUPERCLASS)))", Native.find_java_method("edu.isi.stella.Stella_Class", "taxonomySubclassOfP", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.Stella_Class"), Native.find_java_class("edu.isi.stella.Stella_Class")}), null);
          Stella.defineFunctionObject("TAXONOMY-ISA?", "(DEFUN (TAXONOMY-ISA? BOOLEAN) ((OBJECT OBJECT) (TYPE TYPE)) :GLOBALLY-INLINE? TRUE (RETURN (ISA? OBJECT TYPE)))", Native.find_java_method("edu.isi.stella.Stella_Object", "taxonomyIsaP", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.Stella_Object"), Native.find_java_class("edu.isi.stella.Surrogate")}), null);
          Stella.defineFunctionObject("INTERN-SLOTREF", "(DEFUN (INTERN-SLOTREF SLOTREF) ((CLASSNAME STRING) (SLOTNAME STRING)))", Native.find_java_method("edu.isi.stella.Stella", "internSlotref", new java.lang.Class [] {Native.find_java_class("java.lang.String"), Native.find_java_class("java.lang.String")}), null);
          Stella.defineFunctionObject("LOOKUP-SLOTREF", "(DEFUN (LOOKUP-SLOTREF SLOTREF) ((SELF TYPE) (SLOTNAME SYMBOL)) :PUBLIC? TRUE)", Native.find_java_method("edu.isi.stella.Surrogate", "lookupSlotref", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.Surrogate"), Native.find_java_class("edu.isi.stella.Symbol")}), null);
          Stella.defineFunctionObject("SLOTREF?", "(DEFUN (SLOTREF? BOOLEAN) ((SELF SURROGATE)))", Native.find_java_method("edu.isi.stella.Surrogate", "slotrefP", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.Surrogate")}), null);
          Stella.defineFunctionObject("LOOKUP-SLOT-FROM-SLOTREF", "(DEFUN (LOOKUP-SLOT-FROM-SLOTREF SLOT) ((SLOTREF SLOTREF)))", Native.find_java_method("edu.isi.stella.Surrogate", "lookupSlotFromSlotref", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.Surrogate")}), null);
          Stella.defineFunctionObject("SLOTREF-TYPE", "(DEFUN (SLOTREF-TYPE TYPE) ((SLOTREF SLOTREF)))", Native.find_java_method("edu.isi.stella.Surrogate", "slotrefType", new java.lang.Class [] {Native.find_java_class("edu.isi.stella.Surrogate")}), null);
          Stella.defineFunctionObject("STARTUP-CLASSES", "(DEFUN STARTUP-CLASSES () :PUBLIC? TRUE)", Native.find_java_method("edu.isi.stella._StartupClasses", "startupClasses", new java.lang.Class [] {}), null);
          { MethodSlot function = Symbol.lookupFunction(Stella.SYM_STELLA_STARTUP_CLASSES);

            KeyValueList.setDynamicSlotValue(function.dynamicSlots, Stella.SYM_STELLA_METHOD_STARTUP_CLASSNAME, StringWrapper.wrapString("_StartupClasses"), Stella.NULL_STRING_WRAPPER);
          }
        }
        if (Stella.currentStartupTimePhaseP(8)) {
          Stella.finalizeSlots();
          Stella.cleanupUnfinalizedClasses();
        }
        if (Stella.currentStartupTimePhaseP(9)) {
          Stella_Object.inModule(((StringWrapper)(Stella_Object.copyConsTree(StringWrapper.wrapString("/STELLA")))));
          Stella.defineStellaGlobalVariableFromStringifiedSource("(DEFSPECIAL *WARNIFREDEFINE?* BOOLEAN TRUE :DOCUMENTATION \"If set, warn about each redefinition.\" :PUBLIC? TRUE)");
          Stella.defineStellaGlobalVariableFromStringifiedSource("(DEFGLOBAL *UNFINALIZED-CLASSES* (LIST OF CLASS) (NEW LIST) :DOCUMENTATION \"List of classes whose class or slot inheritance is\ncurrently unfinalized.\")");
          Stella.defineStellaGlobalVariableFromStringifiedSource("(DEFGLOBAL *NEWLY-UNFINALIZED-CLASSES?* BOOLEAN FALSE :DOCUMENTATION \"Set to `true' by `remember-unfinalized-class'; set\nto `false' by `cleanup-unfinalized-classes'.  Minimizes the time that\n`finalize-classes' spends searching for classes to finalize.\")");
          Stella.defineStellaGlobalVariableFromStringifiedSource("(DEFGLOBAL *CLASSES-WITH-UNRESOLVED-CHILDREN-REFERENCES* (LIST OF CLASS) (NEW LIST) :DOCUMENTATION \"List of classes defined with a :children option\nwhich still have some of their children references unresolved.\")");
          Stella.defineStellaGlobalVariableFromStringifiedSource("(DEFGLOBAL *SYMBOL-SLOT-OFFSET-COUNTER* INTEGER 0)");
          Stella.defineStellaGlobalVariableFromStringifiedSource("(DEFGLOBAL *SLOT-CACHE-SIZE* INTEGER 20)");
          Stella.defineStellaGlobalVariableFromStringifiedSource("(DEFGLOBAL *CLASS-TAXONOMY-GRAPH* TAXONOMY-GRAPH (NEW TAXONOMY-GRAPH))");
        }

      } finally {
        Stella.$CONTEXT$.set(old$Context$000);
        Stella.$MODULE$.set(old$Module$000);
      }
    }
  }