Subject: repl metacommands do not discard remaining input after syntax error in an expression
From: [email-masked]
To: [email-masked]
Date: Sun, 25 Feb 2018 00:31:19 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello!

When using meta-commands in the repl (without readline support), if 
reading an expression parameter fails, the rest of the input gets read 
in anyway. An example interaction:

--8<---------------cut here---------------start------------->8---
GNU Guile 2.2.3
Copyright (C) 1995-2017 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> ,trace "\m"
Throw to key `read-error' while reading argument `form' of command 
`trace':
In procedure scm_lreadr: #<unknown port>:1:11: illegal character in 
escape sequence: #\m
"
$1 = "\n"
scheme@(guile-user)> ,trace "\m123
Throw to key `read-error' while reading argument `form' of command 
`trace':
In procedure scm_lreadr: #<unknown port>:2:11: illegal character in 
escape sequence: #\m
$2 = 123
--8<---------------cut here---------------end--------------->8---

Since Geiser uses meta-commands with multi-line expressions to 
communicate with Guile it can get very confusing if you have syntax 
errors in your code.