3

每当我(read)在 Allegro Common Lisp 9.0 中调用该函数时,调试窗口就会“中断”(我想不出一个更清晰的术语,抱歉):鼠标变成了旋转的蓝色死亡轮,窗口拒绝评估任何新的输入, 虽然它仍然可以输入。IDE 的其他部分不受影响。屏幕如下所示:

International Allegro CL Free Express Edition
9.0 [Windows] (Jan 8, 2013 8:45)
Copyright (C) 1985-2012, Franz Inc., Oakland, CA, USA.  All Rights Reserved.

This development copy of Allegro CL is licensed to:
   Allegro CL 9.0 Express user

CG version 9.0 / IDE version 9.0
Loaded options from C:\Users\Noah Dove\Documents\allegro-prefs-9-0-express.cl.

;; Optimization settings: safety 1, space 1, speed 1, debug 2.
;; For a complete description of all compiler switches given the current
;; optimization settings evaluate (EXPLAIN-COMPILER-SETTINGS).

[changing package from "COMMON-LISP-USER" to "COMMON-GRAPHICS-USER"]
CG-USER(1): (read) ; <--- causes window to malfunction. 
                   ;  any further input is not evaluated.

窗口底部的状态文本卡在:

"reading and evaluating 'read'..."

知道发生了什么吗?我要做的只是基本的控制台 io。

4

2 回答 2

4

补丁cg_cg-text-edit-pane_001似乎解决了这个问题:

Date posted: Mon Jan 28 09:26:04 PST 2013
Patch names: code/cg-text-edit-pane.001,
             update/pjk001.001,
             update/pjl002.001
Description: The code for doing lisp reading in text-edit-pane windows and
             widgets was out-of-date with the conversion of Common Graphics
             to the Unicode version of the Windows API.
             fresh-line erroneously printed a newline just after a blocking
             read.
             Lisp reading was broken in IDE listeners.
Impact:      recommended

下载并安装新补丁:

  • 选择菜单“安装”->“新补丁”
  • 单击“列出新补丁”
    确保您看到这些补丁
  • 保持选中“下载所有新的和更新的补丁”单选按钮
    我建议这样做,这样您就可以获得所有当前的修复和改进
    或者,您可以:
    • 只检查这些补丁
    • 选中“仅下载选定的补丁(上面选中的补丁)”单选按钮
  • 点击“下载”

将出现一条消息,指出该过程尚未结束:

  • 关闭所有 Allegro CL 实例
  • 运行update.exe
    它将使用下载的补丁重建官方图像

现在,(read)在 IDE 侦听器中工作。

于 2013-01-29T12:38:10.833 回答
0

(read)期望您输入一个 s 表达式并按回车键。

* (read)
(1 2 3 a b c) 
(1 2 3 A B C)
于 2013-01-12T00:29:14.880 回答