Allegro CL freezes when calling (read) function

2019-07-04 03:19发布

Whenever I called the (read) function in Allegro Common Lisp 9.0 the Debug window "breaks" (I can't think of a more articulate term, sorry): the mouse becomes the spinning blue wheel of death, and the window refuses to evaluate any new input, although it can still be typed into. No other parts of the IDE are affected. The screen looks like this:

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.

The status text at the bottom of the window is stuck on:

"reading and evaluating 'read'..."

Any idea what's going on? All I'm trying to do is basic console io.

2条回答
冷血范
2楼-- · 2019-07-04 03:38

This problem seems to be resolved by patch 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

Download and install the new patches:

  • Select the menu "Install" -> "New Patches"
  • Click "List New Patches"
    Make sure you see these patches
  • Leave the "Download all new and updated patches" radio button checked
    I recommend this, so you get all current fixes and improvements
    Alternatively, you may:
    • Check only these patches
    • Check the "Download selected patches only (the ones checked above)" radio button
  • Click "Download"

A message appears saying that the process isn't over:

  • Close all Allegro CL instances
  • Run update.exe
    It will rebuild the official images with the downloaded patches

Now, (read) works in the IDE listeners.

查看更多
啃猪蹄的小仙女
3楼-- · 2019-07-04 03:46

(read) expects that you enter a s-expression and press return.

* (read)
(1 2 3 a b c) 
(1 2 3 A B C)
查看更多
登录 后发表回答