* @param errorP
   * @return Module
   */
  public static Module getStellaModule(String pathname, boolean errorP) {
    { StringWrapper wrappedpathname = new StringWrapper();
      Module module = null;

      wrappedpathname.wrapperValue = pathname;
      { MemoizationTable memoTable000 = null;
        Cons memoizedEntry000 = null;
        Stella_Object memoizedValue000 = null;

        if (Stella.$MEMOIZATION_ENABLEDp$) {
          memoTable000 = ((MemoizationTable)(Stella.SGT_STELLA_F_GET_STELLA_MODULE_MEMO_TABLE_000.surrogateValue));
          if (memoTable000 == null) {
            Surrogate.initializeMemoizationTable(Stella.SGT_STELLA_F_GET_STELLA_MODULE_MEMO_TABLE_000, "(:MAX-VALUES 100 :TIMESTAMPS (:MODULE-UPDATE))");
            memoTable000 = ((MemoizationTable)(Stella.SGT_STELLA_F_GET_STELLA_MODULE_MEMO_TABLE_000.surrogateValue));
          }
          memoizedEntry000 = MruMemoizationTable.lookupMruMemoizedValue(((MruMemoizationTable)(memoTable000)), wrappedpathname, Stella.MEMOIZED_NULL_VALUE, null, null, 0);
          memoizedValue000 = memoizedEntry000.value;
        }
        if (memoizedValue000 != null) {
          if (memoizedValue000 == Stella.MEMOIZED_NULL_VALUE) {
            memoizedValue000 = null;
          }
        }
        else {
          memoizedValue000 = Stella.helpGetStellaModule(pathname, false);
          if (Stella.$MEMOIZATION_ENABLEDp$) {
            memoizedEntry000.value = ((memoizedValue000 == null) ? Stella.MEMOIZED_NULL_VALUE : memoizedValue000);
          }
        }
        module = ((Module)(memoizedValue000));
      }
      if ((module == null) &&
          errorP) {
        Stella.helpGetStellaModule(pathname, true);
      }
      return (module);
    }
  }