code: func (intr *Interpreter) Init(ctx context.Context) error {
  	intr.modules = map[moduleKey]*loadedModule{}
  	intr.execed = map[moduleKey]struct{}{}
  
  	intr.globals = make(starlark.StringDict, len(intr.Predeclared)+1)
  	for k, v := range intr.Predeclared {
  		intr.globals[k] = v
  	}
  	intr.globals["exec"] = intr.execBuiltin()
  
  	// Load the stdlib, if any.
  	top, err := intr.LoadModule(ctx, StdlibPkg, "builtins.star")
  	if err != nil && err != ErrNoModule && err != ErrNoPackage {
  		return err
  	}
  	for k, v := range top {
  		if !strings.HasPrefix(k, "_") {
  			intr.globals[k] = v
  		}
  	}
  	return nil
  }
docs: // Init initializes the interpreter and loads '@stdlib//builtins.star'.
  //
  // Registers whatever was passed via Predeclared plus 'exec'. Then loads
  // '@stdlib//builtins.star', which may define more symbols or override already
  // defined ones. Whatever symbols not starting with '_' end up in the global
  // dict of '@stdlib//builtins.star' module will become available as global
  // symbols in all modules.
  //
  // The context ends up available to builtins through Context(...).