Hi, I have added a framework for security features to GNU APL. These features need to be enabled via ./configure, for example: ./configure SECURITY_LEVEL_WANTED=0 This is the default and leaves everything as is today. ./configure SECURITY_LEVEL_WANTED=2 This enables all security checks and will, in the long run, render the interpreter useless. ./configure SECURITY_LEVEL_WANTED=1 This enables security checks, but with a finer granularity. With this setting you can turn individual security checks on and of in your preferences file(s). For example: Profile 1 disable_Quad_SQL yes # disable ⎕SQL disable_Quad_FIO no # do not disable ⎕FIO disable_native_functions yes # disable A ⎕FX B (native fnctions) If you start GNU APL with profile 1, for example apl -p 1 then ⎕SQL is disabled, ⎕FIO is enabled, and dyadic ⎕FX (aka. native functions) ia disabled. If you have no Profile line before the security settings then the settings will be applied in all profiles (no -p option on the GNU APL command line corresponds to profile 0). If a user calls a disabled facility, then it will raise a DOMAIN ERROR and set )MORE accordingly. Hope you like it, Jürgen |