Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср апр 17, 2024 00:42

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: CRASH TEST для Форт систем.
СообщениеДобавлено: Вт дек 18, 2007 08:55 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
На страничке

http://www.xs4all.nl/~thebeez/4tH/crash.htm

есть такой тест
Код:

\ CRASH-PROOFING TEST RESULTS (1997-08-21, updated 2007-04-27)

\ Find a value not likely to be an execution token.
1 ALIGNED CONSTANT NotAnXT
\ Find an address likely to be outside the data space.
-4 ALIGNED CONSTANT NotADataAddress
\ Find an address which is likely to be unaligned.
HERE ALIGNED 1+ CONSTANT NotAligned
\ Create a : word which cannot be a macro.
: _DROP DROP ;

: BadExecute ( -- ) NotAnXT EXECUTE ;
: BadAddress ( -- ) NotADataAddress @ DROP ;
: BadAlign ( -- ) NotAligned @ DROP ;
: BadReturn ( -- ) NotAnXT >R ;
: BadCode ( -- ) ['] _DROP 20 0 FILL 0 ['] _DROP EXECUTE ; \ Try executing it
: BadRes1 ( -- n1 n2 ) 9 0 /MOD ; \ Divide by zero
: BadRes2 ( -- ) 0 1 1 UM/MOD ; \ Out of range
: BadBreak ( -- u1 u2 ) BEGIN AGAIN ; \ Try to interrupt loop
: BadNumb ( -- ) 1 1 BASE ! . ; \ Loops forever?



И разные Форт системы по разному себя ведут.( некоторые тесты не вызывают exception)
Код:
Result Codes 0 harmless, no need to detect action.
-2 prevents action, reports cause and location, continues at Forth prompt.
-3 prevents action, reports cause only, continues at Forth prompt.
-4 prevents action, reports "Error found", continues at Forth prompt.
-6 executes action, but values returned are incorrect.
-7 prevents action, reports cause only, empties dictionary, continues at Forth prompt.
-10 prevents action, reports cause and location, exits Forth.
-11 prevents action, reports cause only, exits Forth.
-12 prevents action, reports "Error found", exits Forth.
-14 no message, exits Forth.
-16 no message, hangs Forth but computer need not be re-booted.
-18 no message, hangs Forth and computer must be re-booted.
-20 no message, corrupts Forth which hangs at some later time.


Compiler Bad Execute Bad Address Bad Align Bad Return Bad Code Bad Res1 Bad Res2 Bad Break Bad Numb
F-PC for DOS v3.5 (from Chris Jakeman) -18 0 0 -18 0 -4 -6 -18 -18
Win32Forth v3.5 -2 -2 0 -2 -18 -2 -2 -16 -6
GForth for Unix v0.3.0 (from Bernd Paysan) -4 -4 0 -4 -16 -3 -6 -3 -6
GForth for Win32 v0.3.0(1) -16 -16 0 -16 -16 -16 -6 -16 -6
GForth for DOS v0.3.0 -4 -4 0 -4 -18 -3 -6 -3 -6
iForth v1.07 Linux (from Marcel Hendrix) -3 -3 0 -3 -20 -3 -3 -11(2) -11
mxForth v2.4 Linux (from Marcel Hendrix) -7 -7 0 -7 -20 -7 -7 -11(2) -11
4tH v3.5a (from Hans Bezemer) -2 -2 0 -2 0 -2 -6 -14 -2

The Win32 results are much worse than the Unix ones due to a bug in the cygwin32 library, not GForth.
Under NT it is not possible to achieve -11, but only -14.


Вопрос: насколько корректен тест и какие будут мнения?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср дек 19, 2007 03:16 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Kopa писал(а):
Вопрос: насколько корректен тест и какие будут мнения?

на сколько корректен, сказать трудно, то есть он не совсем автоматический 8-)
хотя задумка интересная, можно было сделать лучше, мне кажется.
наличие механизма CATCH THROW не учитывается 8( это плохо.
вобщем как идея катит на четыре балла по пятибальной шкале,
а за реализацию 2-а балла 8(

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс дек 23, 2007 15:21 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Результаты для gforth устаревшие, версия 0.6.2 ведёт себя получше (правда там все результаты имхо устаревшие)

Протестил SPF (cvs, wine)
Результаты : -2 -6* 0 -2 -2 -2 -2 -14 -3

*) BadAddress при включенном оптимизаторе не вызывает исключение, отрабатывает тихо. Это баг. При DIS-OPT появляется ACCESS_VIOLATION с правильным дампом стека, т.е. -2

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс дек 23, 2007 15:51 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
SPF/Linux by ~yz

-10 -6* 0 -10 -10 -10 -10 -14 -3

*) та же самая бага, иначе -10

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс дек 23, 2007 17:53 
Вместо "@ DROP" (которое сводится к DROP) для испытания надо делать "@ ." :)


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс дек 23, 2007 22:43 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
мда, закономерно. Вообщем такой эффект получился.

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB