есть файл s-выражений, который включает символы иностранного языка, которые я читаю следующим образом:
(defun test (file)
(with-open-file (stream file)
(loop while (read stream nil nil))))
В ccl 1.8 читает файл без ошибок, а в 1.9 выдает ошибку:
? (test "/users/markklein/desktop/naples.text")
> Error: Reader error: Illegal symbol syntax.
> While executing: CCL::%PARSE-TOKEN, in process Listener(5).
> Type cmd-. to abort, cmd-\ for a list of available restarts.
> Type :? for other options.
1 >
У кого-нибудь есть идеи, что происходит не так, и как это исправить? Файл данных могу выслать по запросу.
file-position
будет восстанавливаемой информацией, когда у вас естьreader-error
наfile-stream
. Я бы попробовал вариант:?
и посмотрел, не выглядит ли что-нибудь многообещающим. Если вы получилиfile-position
, вы можете открыть файл в своем любимом редакторе и перейти к этому персонажу. В противном случае я бы нашел неисправное s-exp, завернув вызовread
в вызовprint
. - person m-n   schedule 18.06.2014