Maybe a simple example explains the new feature in 1.3.0 best:
def gren = new Grengine(myScriptDir)
def shell = new GroovyShell(gren.asClassLoader)
shell.evaluate("<use any Groovy classes in myScriptDir>")
So you can use any Grengine instance as a class loader,
e.g. for GroovyShell or GroovyClassLoader.
(You loose speed if you evaluate Groovy expressions multiple times
compared to using e.g. gren.run("<some Groovy expression>"), but
on the other hand you can dynamically accumulate classes in the shell,
i.e. things are more dynamic "on top", but rock-solid "at the bottom".)
https://www.grengine.ch/
Release Notes
1.3.0 (20 Jul 2017)
* New methods asClassLoader() for Grengine and Engine that allow to use
a Grengine resp. its engine as parent class loader for GroovyShell or
GroovyClassLoader (or any other class loader).