Opened 3 years ago

Last modified 11 days ago

#1180 new defect

parley seems to insert the same sexpression to the reader again when getting input while sleeping

Reported by: ckeen Owned by: ckeen
Priority: major Milestone: someday
Component: extensions Version: 4.9.x
Keywords: parley input type ahead bug Cc:
Estimated difficulty:

Change History (1)

comment:1 Changed 11 days ago by LemonBoy

There are a few problems here:

  • In parley we get a non-false prev-input with the contents of the typeahead buffer in it so we have to process every element one by one before reading from the "real" prompt. Now, the (eof-object? (peek-char in) condition doesn't make any sense because you want to process in until an #!eof occurs and then switch to real-in-port as soon as the typeahead buffer has been completely processed. The #<unspecified> value you see in the trace comes from the other arm of the if.
  • The use of object-copy is dangerous, especially when the state record contains references to port objects. With the adjustments outlined above I found that parley would crash the csi instance due to heap exhaustion while it was trying to copy such an object.
  • (parley "") gives an error, this is not really a problem but it could give a better error.
Note: See TracTickets for help on using tickets.