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.
