автору http://spf.sourceforge.net/docs/intro.ru.html#ans

2 messages Options
Embed this post
Permalink
Andrey Cherezov

автору http://spf.sourceforge.net/docs/intro.ru.html#ans

Reply Threaded More More options
Print post
Permalink
Some javascript/style in this post has been disabled (why?)
Привет!
Случайно зацепился взглядом за предложение:

"Также исправляется неприятная особенность слов из ядра для работы с файлами - OPEN-FILE, CREATE-FILE и другие слова неявно требуют строку оканчивающуюся нулём, тогда как по стандарту получают строку со счётчиком на стеке."

В форте строкой со счетчиком традиционно называют строку C" string", т.е. когда счетчик идет первым байтом строки. Поэтому формулировка обвинения в адрес SPF неправильная (якобы несоответствие стандартной стековой нотации). И если уж сказано pro, то не забыть и про cons. Предлагаю исправить на:

"Также исправляется нарушающая стандарт оптимизация слов из ядра для работы с файлами - OPEN-FILE, CREATE-FILE и другие слова неявно требуют строку оканчивающуюся нулём, тогда как стандарт этого не требует. Ansi-file.f при получении строки без нуля в конце самостоятельно добавляет нулевой байт. При этом имя файла копируется во временный буфер, который может остаться неосвобожденным. При использовании строчных литералов S" и строчных бибиотек str*.f необходимости в этом исправлении нет, т.к. строки всегда заканчиваются нулем. Но при использовании не-SPF-библиотек может пригодиться."

И желательно указывать авторов страниц, хотя бы в $Id$. Сейчас там только дата.

yGREK Heretix

Re: автору http://spf.sourceforge.net/docs/intro.ru.html#ans

Reply Threaded More More options
Print post
Permalink
On Thu, 18 Jan 2007 01:39:12 +0200
Andrey Cherezov <[hidden email]> wrote:

> "Также исправляется нарушающая стандарт оптимизация слов из ядра для
> работы с файлами - |OPEN-FILE|, |CREATE-FILE| и другие слова неявно
> требуют строку оканчивающуюся нулём, тогда как стандарт этого не
> требует. Ansi-file.f при получении строки без нуля в конце
> самостоятельно добавляет нулевой байт. При этом имя файла копируется
> во временный буфер, который может остаться неосвобожденным. При
> использовании строчных литералов S" и строчных бибиотек str*.f
> необходимости в этом исправлении нет, т.к. строки всегда
> заканчиваются нулем. Но при использовании не-SPF-библиотек может
> пригодиться."
Согласен - формулировка кривая была.
Насчёт "может остаться неосвобожденным" - он всегда остаётся
несвообождённым для повторного использования.

Может пригодится в случае :
S" file.f qua qua" DROP 6 R/O OPEN-FILE THROW
именно об этот случай я и спотыкался несколько раз.

> И желательно указывать авторов страниц, хотя бы в $Id$. Сейчас там
> только дата.

intro.ru.html генерится автоматически из docs/intro.ru.md, поэтому
достаточно посмотреть лог или annotate на cvs. А указывать автора в Id -
будет видно ведь только последнего автора - так что смысл?

Вообщем исправил. Если что - правьте сразу файл на cvs.

--
ygrek   http://ygrek.org.ua


attachment0 (187 bytes) Download Attachment