无法在 Dyalog APL 中使用用户命令

Cannot use user commands in Dyalog APL

我刚刚在我的 windows(Windows 10) 机器上安装了 Dyalog-APL 18.0,当我尝试在 IDE 上使用 ]box on -style=max 时,出现以下错误:

FILE ACCESS ERROR: C:/Users/<User>/Documents/: Unable to read directory status

然后我注意到打开 Dyalog 时出现了一个我公然忽略的错误:

SALT initialization failed: C:/Users/<User>/Documents/: Unable to read directory status

此外,我意识到所有用户命令都会给出第一个错误。

一些细节:我以管理员权限安装它并安装了 Avast Antivirus。

我尝试过的事情:

  1. 在防病毒设置中将文档文件夹添加为例外,并将其添加到允许的应用程序列表中(来自 Ransomware Shield)。 改完之后又重启了
  2. 正在重新安装
  3. 以管理员身份启动 Dyalog

这个答案不再直接相关,因为我们知道平台是 Windows 10,但供将来参考:当你到达 Windows 11 时,如果“受控”,你可能会遇到类似的问题文件夹访问”已启用:这可以防止应用程序访问用户文件夹。您需要将 Dyalog APL 添加到“允许的应用程序”列表中,如果您在计算机上具有管理员权限,这将非常简单。

如果您启动 APL 并收到有关由于文件夹不存在而无法重建命令缓存的警告,请转到 Windows 安全设置的“勒索软件保护”部分,select “通过受控文件夹访问允许应用程序”,select“添加应用程序”,您应该能够从“最近被阻止的应用程序”列表中 select APL。

如果您最近没有被阻止,您将需要 select dyalog.exe 使用文件资源管理器。

some experimentation 之后,我们确定问题出在 Documents 文件夹中。默认情况下,APL 系统将在那里查找自定义用户命令:

      ⎕SE.SALT.Set'cmddir'
C:\Users\<User>\Documents\MyUCMDs;C:\g\link\SALT\spice;C:\d\SVN\salt\trunk\spice

所以我们要求它p永久跳过那个位置:

      ⎕SE.SALT.Set'cmddir -p C:\Program Files\Dyalog\Dyalog APL-64 18.0 Unicode\SALT\spice'

that solved the problem.