I was watching Martin Odersky's keynote at the recent Scala Days
conference. They are doing work (not dissimilar to some things we have
been doing) to make the language suitable for humans and AI. There are
plenty more things we can digest about that talk but I was going to
look at just one piece.

I created a draft GEP for a Restricted Compiler Profile. We know how
you can lock things down - disabling Grab, using SecureASTCustomizer
etc. but this would make it easy for embedders to lock down
configurations when needed. This applies to tools like groovysh,
GroovyConsole (local and web), groovy-jupyter as well as the AI
applications Scala is exploring: MCP servers and Dual LLMs where the
LLM only sees sanitised versions of many things (this also relates to
the tainted data GEP we have).

The GEP aims to simplify creating a restricted profile and close some
gaps in existing mechanisms. It is still NOT about providing a
full-blown sandbox, which would remain a separate activity. As an
example, SecureASTCustomizer currently runs too early to detect all
usage of particular classes, despite having allow/disallow lists. The
GEP discusses an additional "checker" that could run later in
partnership with the existing customizer. We have refrained from
renaming the current customizer because its role and shortcomings have
been widely discussed in various places, but we could use Groovy 7 as
an opportunity to rename it. We would leave the old one there but mark
it as deprecated.

Anyway, I expect this to evolve somewhat over the next little while.
Feedback welcome.

Cheers, Paul.

Reply via email to