public static void createStartupFunctionUnits() {
    { Symbol startupfnname = (Stella.incrementalTranslationP() ? ((Symbol)(null)) : Stella.yieldStartupFunctionName(((String)(Stella.$CURRENTFILE$.get()))));
      Cons tree = null;
      MethodSlot method = null;

      if (Stella.dontGenerateStartupCodeP()) {
        Stella.removeAllStartupTimePrognUnits();
      }
      else if (startupfnname != null) {
        tree = Cons.list$(Cons.cons(Stella.SYM_STELLA_DEFUN, Cons.cons(startupfnname, Cons.cons(Cons.list$(Cons.cons(Stella.NIL, Cons.cons(Stella.KWD_PUBLICp, Cons.cons(Stella.SYM_STELLA_TRUE, Cons.cons(Stella.SYM_STELLA_NULL, Cons.cons(Stella.NIL, Stella.NIL)))))), Stella.NIL))));
        method = Cons.defineMethodFromParseTree(tree);
        KeyValueList.setDynamicSlotValue(method.dynamicSlots, Stella.SYM_STELLA_FORWARD_DECLARATIONp, Stella.FALSE_WRAPPER, Stella.FALSE_WRAPPER);
        KeyValueList.setDynamicSlotValue(method.dynamicSlots, Stella.SYM_STELLA_METHOD_STARTUP_CLASSNAME, StringWrapper.wrapString(Symbol.yieldStartupFunctionClassname(startupfnname)), Stella.NULL_STRING_WRAPPER);
        tree = Cons.list$(Cons.cons(Stella.SYM_STELLA_STARTUP_TIME_PROGN, Cons.cons(Stella.KWD_METHODS, Cons.cons(MethodSlot.yieldDefineStellaMethodObject(method, method, null), Cons.cons(Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_LET, Cons.cons(Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_FUNCTION, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_LOOKUP_FUNCTION, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_QUOTE, Cons.cons(startupfnname, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL)))), Stella.NIL), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SETF, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_METHOD_STARTUP_CLASSNAME, Cons.cons(Stella.SYM_STELLA_FUNCTION, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(StringWrapper.wrapString(((StringWrapper)(KeyValueList.dynamicSlotValue(method.dynamicSlots, Stella.SYM_STELLA_METHOD_STARTUP_CLASSNAME, Stella.NULL_STRING_WRAPPER))).wrapperValue), Cons.cons(Stella.NIL, Stella.NIL))))), Cons.cons(Stella.NIL, Stella.NIL))))), Stella.NIL), Stella.NIL)))));
        Cons.walkAuxiliaryTree(tree);
        if (Stella.systemStartupFileP(((String)(Stella.$CURRENTFILE$.get())))) {
          tree = Cons.list$(Cons.cons(Stella.SYM_STELLA_DEFUN, Cons.cons(startupfnname, Cons.cons(Cons.list$(Cons.cons(Stella.NIL, Cons.cons(Stella.KWD_PUBLICp, Cons.cons(Stella.SYM_STELLA_TRUE, Cons.cons(Stella.KWD_AUXILIARYp, Cons.cons(Stella.SYM_STELLA_TRUE, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_WITH_PROCESS_LOCK, Cons.cons(Stella.SYM_STELLA_$BOOTSTRAP_LOCK$, Cons.cons(Symbol.combineStartupFunctionUnits(startupfnname).concatenate(Stella.NIL, Stella.NIL), Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL)))))))), Stella.NIL))));
        }
        else {
          tree = Cons.list$(Cons.cons(Stella.SYM_STELLA_DEFUN, Cons.cons(startupfnname, Cons.cons(Cons.list$(Cons.cons(Stella.NIL, Cons.cons(Stella.KWD_PUBLICp, Cons.cons(Stella.SYM_STELLA_TRUE, Cons.cons(Stella.KWD_AUXILIARYp, Cons.cons(Stella.SYM_STELLA_TRUE, Cons.cons(Symbol.combineStartupFunctionUnits(startupfnname).concatenate(Stella.NIL, Stella.NIL), Stella.NIL))))))), Stella.NIL))));
        }
        KeyValueList.setDynamicSlotValue(((MethodSlot)(Cons.helpWalkAuxiliaryTree(tree, true).theObject)).dynamicSlots, Stella.SYM_STELLA_METHOD_STARTUP_CLASSNAME, StringWrapper.wrapString(Symbol.yieldStartupFunctionClassname(startupfnname)), Stella.NULL_STRING_WRAPPER);
      }
      else {
        tree = Cons.cons(Stella.SYM_STELLA_STARTUP_TIME_PROGN, Symbol.combineStartupFunctionUnits(startupfnname).concatenate(Stella.NIL, Stella.NIL));
        Cons.walkAuxiliaryTree(tree);
        tree = Cons.cons(Stella.SYM_STELLA_PROGN, ((Cons)(((TranslationUnit)(((List)(Stella.$TRANSLATIONUNITS$.get())).first())).theObject)));
        ((TranslationUnit)(((List)(Stella.$TRANSLATIONUNITS$.get())).first())).theObject = tree;
      }
    }
  }