Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 22:47

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт дек 16, 2008 18:56 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
in4 писал(а):
mOleg писал(а):2) откладывать до определенного места (но зачем себе искать проблемы?)Более гибкий вариант. Дает возможность единообразно (и неизвестным заранее способом!) обработать несколько разных исключений.
Типа для консольных приложений один способ, для графических - другой...

ага и потенциальное место для непонятных багов (во всю ловлю в ядре СПФа: если хочется удовольствие получить - смотри в RECEIVE-WITH-XT )

in4 писал(а):
О! можно доп. параметры завертывать в доп. фрейм исключений (или делать дополнение существующего фрейма), снимаемый обработчиком!

и тоже потом ловить баги.
вообще мне кажется, что значительно лучше выводить сообщения сразу, не откладывая.

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


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
тот, кто хочет отловить все исключения (даже когда падает система), видимо, должен воспользоваться идеей "параллельного стека" (упоминалась в теме о возможных улучшениях к форту) и вариант реализации предлагал Михаил
думаю, такая система могла бы сообщать зараннее, что предполагаемая операция некорректна

_________________
понимаю некоторую бестолковость некоторых вопросов


Последний раз редактировалось вопрос Вс дек 21, 2008 14:22, всего редактировалось 1 раз.

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

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Когда то баги ловил человек, а ныне "машино", далеко пошел прогресс.

_________________
Меня нет, не будет и не было.


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
вопрос писал(а):
тот, кто хочет отловить все исключения (даже когда падает система), видиом. должен воспользоваться идеей "параллельного стека" (упоминалась в теме о возможных улучшениях к форту) и вариант реализации предлагал Михаил
думаю, такая система могла бы сообщать зараннее, что предполагаемая операция некорректна

брр
да нет, достаточно изменить "ловитель" исключений. Сделать его более качественным.
с другой стортны, исключения и задумывались так, чтобы всегда завершать программу (только корректно).

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


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

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
mOleg писал(а):
ага и потенциальное место для непонятных багов (во всю ловлю в ядре СПФа: если хочется удовольствие получить - смотри в RECEIVE-WITH-XT )

Интересно -- что за непонятные баги?

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


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
mOleg писал(а):
вопрос писал(а):
тот, кто хочет отловить все исключения (даже когда падает система), видиом. должен воспользоваться идеей "параллельного стека" (упоминалась в теме о возможных улучшениях к форту) и вариант реализации предлагал Михаил
думаю, такая система могла бы сообщать зараннее, что предполагаемая операция некорректна

брр
да нет, достаточно изменить "ловитель" исключений. Сделать его более качественным.
с другой стортны, исключения и задумывались так, чтобы всегда завершать программу (только корректно).
Да, так проще, но всегда ли сложность - плохо.

_________________
понимаю некоторую бестолковость некоторых вопросов


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

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

о, мне очень понравилось, как в СПФ сделан INCLUDED
и еще нарвался на ошибку -1002 , которая не ошибка, а сообщение обработчику о конце потока.

кстати, композиция ['] @ CATCH в СПФ не работает
да, и еще в случае возникновения исключения течет память, подгребаемая INCLUDED под себя.

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


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

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

Это баг?

mOleg писал(а):
и еще нарвался на ошибку -1002 , которая не ошибка, а сообщение обработчику о конце потока.

Подробнее. В каком случае вы на неё нарвались. Код.

mOleg писал(а):
кстати, композиция ['] @ CATCH в СПФ не работает

Работает. Опишите подробнее баг. Версия spf. Код.

mOleg писал(а):
да, и еще в случае возникновения исключения течет память, подгребаемая INCLUDED под себя.

Не течёт. Опишите подробнее. Код.

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


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
ygrek писал(а):
mOleg писал(а):кстати, композиция ['] @ CATCH в СПФ не работает
Работает. Опишите подробнее баг. Версия spf. Код.

на любой версии СПФ. (возможно оно будет работать в обработчике исключений? но в обычном случае нет)
<pre>
SP-FORTH - ANS FORTH 94 for Win95/98/Me/NT/2k/XP/Vista
Open source project at http://spf.sf.net
Russian FIG at http://www.forth.org.ru ; Started by A.Cherezov
Version 4.19 Build 004 at 21.Dec.2008
: tt ['] @ CATCH . ;
Ok
0 tt
EXCEPTION! CODE:C0000005 ADDRESS:005525E0 WORD:@
USER DATA: 00331E94 THREAD ID: 00000CD0 HANDLER: 0012EFCC
STACK: (1) 0012FFC8 8054B038 7FFDE000 00000000 00000000 7C816D4F [00000000]
RETURN STACK:
0012EFC8 : 0055516C CATCH
0012EFCC : 0012EFE8
0012EFD0 : 0012FFBC
0012EFD4 : 0056BCA3 tt
0012EFD8 : 00567C5B INTERPRET_
0012EFDC : 00567CE2 INTERPRET
0012EFE0 : 00567F09 MAIN1
0012EFE4 : 0055516C CATCH
0012EFE8 : 0012EFF8
0012EFEC : 0012FFC0
0012EFF0 : 00567F59 QUIT
0012EFF4 : 0055516C CATCH
0012EFF8 : 00000000
0012EFFC : 0012FFC0
0012F000 : 0056B00D ERR-EXIT
0012F004 : 0056BBF6 (INIT)
END OF EXCEPTION REPORT
-1073741819 Ok ( 0 )
</pre>

хотя 8) интересно получается. Работать-то оно работает, да обработчик исключения срабатывает и выдает сообщение, что не очень удобно. То есть таки это не баг, а фича, за которой не видно действия CATCH.

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


Последний раз редактировалось mOleg Вс дек 21, 2008 21:08, всего редактировалось 1 раз.

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

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

это на самом деле не баг, но особенность (никак не задокументированная)
столкнулся, когда прикрутил messages к СПФу.

ygrek писал(а):
mOleg писал(а):да, и еще в случае возникновения исключения течет память, подгребаемая INCLUDED под себя.
Не течёт. Опишите подробнее. Код.

да, действительно, я не прав.

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


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

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

Эта фича помогает баги ловить в программе. Игнорировать системные исключения -- ненормально.
http://spf.sf.net/docs/intro.ru.html#catch
mOleg писал(а):
это на самом деле не баг, но особенность (никак не задокументированная)
столкнулся, когда прикрутил messages к СПФу.

У вас есть прекрасный шанс задокументировать эту особенность (т.к. например я с этой особенностью никогда не сталкивался и вообще не понимаю о чём речь).

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт май 08, 2009 08:04 
Не в сети
Аватара пользователя

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 229
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
mOleg писал(а):
(в реальности два уровня: уровень номеров портов и значений значимых команд, оба могут поддерживаться Фортом)



"(в реальности два уровня: уровень номеров портов и значений и уровень значимых команд, оба могут поддерживаться Фортом)" - так ближе к оригиналу.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширение механизма обработки исключений
СообщениеДобавлено: Вс дек 25, 2016 11:57 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Хорошая идея
Но как реализовать совместимость с остальным без использования ранних наработок?
т.е. чтобы catch и catch( не были связаны между собою.
Надо подумать.
Хочется использовать и то и то, но чтобы они были независимы друг от друга

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширение механизма обработки исключений
СообщениеДобавлено: Ср сен 20, 2017 02:22 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Оставлю тут на размышления
откатные исключения
Основная идея - снятие забот о корректности данных в случае ошибки
Второстепенное - освобождение ресурсов.
Код:
: TEST \ addr u -- ??
['] THROW >R
BASE KEEP \ сохр. зн. переменной
['] EVALUATE CATCH


Этот код в случае ошибки корректно восстановит зн. переменной.
Можно расширить перехват исключений, заточив его под откатность
.
Цитата:
: CATCH:
R> SP@ CELL+ >R EXECUTE DUP IF R> SP! ELSE RDROP THEN
;

: ?THROW DUP IF RDROP ELSE DROP THEN ; \ err --
: CATCH; RDROP 0 ;



_________________
Цель: сделать 64-битную Нову под Винду


Последний раз редактировалось Victor__v Ср сен 20, 2017 02:24, всего редактировалось 1 раз.

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

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


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

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


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

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