Quantcast

Ошибка оптимизатора?

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Ошибка оптимизатора?

oda-2
Здравствуйте.
Вроде бы оптимизатор мне одно слово портит.
Там в цикле стоит R> 1+ R> -счетчик листьев в дереве. В одном из
тестов результат неверный. Но если этот фрагмент разбавить
каким-нибудь мусором (вроде R> DUP . 1+ R>), то результат
становится правильным.
Если кто-то занимается этим оптимизатором, и это ему надо, могу
сбросить более подробную информацию.
Если что, SP-FORTH версии 4.19 Build 001 at 14.Jan.2008


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ошибка оптимизатора?

ygrek-3
On Sun, 22 Feb 2009 06:17:07 +0600
Oda <[hidden email]> wrote:

> Здравствуйте.
> Вроде бы оптимизатор мне одно слово портит.
> Там в цикле стоит R> 1+ R> -счетчик листьев в дереве. В одном из
> тестов результат неверный. Но если этот фрагмент разбавить
> каким-нибудь мусором (вроде R> DUP . 1+ R>), то результат
> становится правильным.

Приведите (желательно минимальный) код для повторения.

--
 ~ygrek

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ошибка оптимизатора?

oda-2
ygrek пишет:
> Приведите (желательно минимальный) код для повторения.

: TEST 255 >R R> 1+ >R R> ;

DIS-OPT
: TEST2 255 >R R> 1+ >R R> ;
SET-OPT

TEST . CR   \ result=0
TEST2 . CR  \ result=256



------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ошибка оптимизатора?

ygrek-3
On Mon, 23 Feb 2009 01:59:34 +0600
Oda <[hidden email]> wrote:

> : TEST 255 >R R> 1+ >R R> ;
>
> DIS-OPT
> : TEST2 255 >R R> 1+ >R R> ;
> SET-OPT
>
> TEST . CR   \ result=0
> TEST2 . CR  \ result=256

Спасибо.
Ошибка в правиле 282, исправлено в macroopt.f 1.64
http://spf.cvs.sourceforge.net/viewvc/spf/src/macroopt.f?r1=1.63&r2=1.64

--
 ~ygrek

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev

attachment0 (204 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ошибка оптимизатора?

Andrey Cherezov
Добрый день, ygrek!

Ваше сообщение от 23.02.2009 23:38:
> Спасибо.
> Ошибка в правиле 282, исправлено в macroopt.f 1.64
> http://spf.cvs.sourceforge.net/viewvc/spf/src/macroopt.f?r1=1.63&r2=1.64
>  
Мне вот тоже, наконец, посчастливилось столкнуться с подозрениями на
оптимизатор,
но пока не удалось свести эту проблему до маленького показательного кусочка.
См.
http://acweb.cvs.sourceforge.net/viewvc/acweb/src/proto/http/wiki.f?r1=1.1&r2=1.2
diff на 93й строке (этот wiki.f скомпилируется и без acweb'а, в таком
режиме проблема
также проявляется).

P.S. Собственно на остальной код wiki.f лучше не смотреть, чтобы не
получить моральную
травму. Это быстрая грязная замена для wackowiki, написанная за один
присест (теперь на
сайте www.eserv.ru PHP вытравлен до конца), когда-нибудь в будущем
причешу код и
адаптирую на замену и phpwiki на wiki.forth.org.ru.

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

wiki

ygrek-3
On Wed, 04 Mar 2009 13:29:05 +0200
Andrey Cherezov <[hidden email]> wrote:

> P.S. Собственно на остальной код wiki.f лучше не смотреть, чтобы не
> получить моральную
> травму. Это быстрая грязная замена для wackowiki, написанная за один
> присест (теперь на
> сайте www.eserv.ru PHP вытравлен до конца), когда-нибудь в будущем
> причешу код и
> адаптирую на замену и phpwiki на wiki.forth.org.ru.

Забавное совпадение -- я тоже недавно простую вику нарисовал (и конвертнул статьи).
http://ygrek.org.ua/exec/wiki.cgi?page_name=MainPage

--
 ~ygrek

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev

attachment0 (204 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: wiki

Andrey Cherezov
Добрый день, ygrek!

Ваше сообщение от 05.03.2009 8:51:
адаптирую на замену и phpwiki на wiki.forth.org.ru.
    
Забавное совпадение -- я тоже недавно простую вику нарисовал (и конвертнул статьи).
http://ygrek.org.ua/exec/wiki.cgi?page_name=MainPage
  
А совпадение потому, что доколе можно терпеть отсутствие форт-вики.
На днях исполняется 10 лет forth.org.ru, а вики все нет.
И вот эта нужда нагнеталась-нагнеталась, и разрядилась сразу через два громоотвода :)

Хорошо, что вовремя открылось. В моей вике ведь ничего кроме "renderer'а" нет -
страницы берутся из базы старой ваковики и рисуются, и всё. Остальные вики-механизмы
я теперь могу у тебя списать :) А адаптацией под phpwiki мне теперь вообще не нужно
заниматься, т.к. ты как раз wiki.forth.org.ru взял за основу, т.е. уже готово. Отлично!

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ошибка оптимизатора?

ygrek-3
In reply to this post by Andrey Cherezov
On Wed, 04 Mar 2009 13:29:05 +0200
Andrey Cherezov <[hidden email]> wrote:

> Мне вот тоже, наконец, посчастливилось столкнуться с подозрениями на
> оптимизатор,
> но пока не удалось свести эту проблему до маленького показательного кусочка.
> См.
> http://acweb.cvs.sourceforge.net/viewvc/acweb/src/proto/http/wiki.f?r1=1.1&r2=1.2
> diff на 93й строке (этот wiki.f скомпилируется и без acweb'а, в таком
> режиме проблема
> также проявляется).

Портится слово SWAP за две строчки до [ DIS-OPT ]
По-видимому в -EBPCLR (macrooopt.f), но понять причину не удалось -- не
понятно что происходит, что вообще делает это слово.. Если бы были
комментарии -- было бы проще.

--
 ~ygrek

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev

attachment0 (204 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ошибка оптимизатора?

Andrey Cherezov
Добрый день, ygrek!

Ваше сообщение от 05.03.2009 22:11:
http://acweb.cvs.sourceforge.net/viewvc/acweb/src/proto/http/wiki.f?r1=1.1&r2=1.2
diff на 93й строке (этот wiki.f скомпилируется и без acweb'а, в таком 
режиме проблема также проявляется).
    
Портится слово SWAP за две строчки до [ DIS-OPT ]
По-видимому в -EBPCLR (macrooopt.f), но понять причину не удалось -- не
понятно что происходит, что вообще делает это слово.. Если бы были
комментарии -- было бы проще.
  
Это слово WIKIPAIR ищет пару - закрывающую строчку вики-разметки.
Т.е. S" **" WIKI будет искать правую границу <strong>-выделения. Там ниже в слове WIKIMARK куча наглядных примеров его использования.
Собственно в точке сбоя обрабатывается ситуация, когда пара не найдена - печатается "not paired" и предполагает, что это опечатка или старорежимная конструкция, когда  искомым закрытием является не пара, а конец строки. В общем, если пара не найдена, то ищется конец строки. И вот тут при включенном оптимизаторе сбоит.
Пример для сбоя:

"  проверка ** для DIS-OPT
или оптимизатора" STR@ WIKI2HTML TYPE CR

Если убрать "[ DIS-OPT ]" в WIKIPAIR, то будет exception. А без оптимизатора нормально -

** - not paired проверка <strong> для DIS-OPT <br />
</strong>или оптимизатора


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ошибка оптимизатора?

ygrek-3
On Thu, 05 Mar 2009 22:41:42 +0200
Andrey Cherezov <[hidden email]> wrote:

> Это слово WIKIPAIR ищет пару - закрывающую строчку вики-разметки.
> Т.е. S" **" WIKI будет искать правую границу <strong>-выделения. Там
> ниже в слове WIKIMARK куча наглядных примеров его использования.
> Собственно в точке сбоя обрабатывается ситуация, когда пара не найдена -
> печатается "not paired" и предполагает, что это опечатка или
> старорежимная конструкция, когда  искомым закрытием является не пара, а
> конец строки. В общем, если пара не найдена, то ищется конец строки. И
> вот тут при включенном оптимизаторе сбоит.

Э.. Я имел ввиду комментарии в макроопте :)
Дамп правильного/неправильного кода у меня есть, и строки в macroopt.f
которые за это отвечает -- вычислил. А дальше что делать -- непонятно.

--
 ~ygrek

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev

attachment0 (204 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ошибка оптимизатора?

Andrey Cherezov
Добрый день, ygrek!

Ваше сообщение от 05.03.2009 23:19:
> Э.. Я имел ввиду комментарии в макроопте :)
>  
:-))
> Дамп правильного/неправильного кода у меня есть, и строки в macroopt.f
> которые за это отвечает -- вычислил. А дальше что делать -- непонятно.
>  
Может отключить эту строчку? И написать комментарий, за что :)

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ошибка оптимизатора?

Andrey Cherezov
Добрый день!

Моё сообщение от 05.03.2009 23:56:
Дамп правильного/неправильного кода у меня есть, и строки в macroopt.f
которые за это отвечает -- вычислил. А дальше что делать -- непонятно.  
    
Может отключить эту строчку? И написать комментарий, за что :)
  
Отзываю своё предложение :)
Сегодня Миша починил оптимизатор, вики работает, всем участникам спасибо за помощь!

-------- Исходное сообщение --------
Тема: [Spf-commits] src macroopt.f,1.64,1.65
Дата: Fri, 06 Mar 2009 11:33:30 +0000
От: mak [hidden email]
Modified Files:
	macroopt.f 
Log Message:
CALL in -EBPCLR

Index: macroopt.f
===================================================================
      DUP @ W@ 6D8D = IF DROP EXIT THEN
+     DUP @ W@ 15FF = IF DROP EXIT THEN \ CALL [x]
      DUP @ C@ E8   = IF DROP EXIT THEN \ CALL


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ошибка оптимизатора?

Mihail Maksimov-2
In reply to this post by ygrek-3
Hi ygrek


 > Портится слово SWAP за две строчки до [ DIS-OPT ]
 >По-видимому в -EBPCLR (macrooopt.f), но понять причину не удалось --
непонятно что происходит, что >вообще делает это слово.. Если бы были
 >комментарии -- было бы проще.

  -EBPCLR удаляет лишние операторы записывающие на стек данных .
  (операторы индекс при  EBP которых равен значению OFF-EBP)
там нехватало отсечь косвенный CALL .

http://spf.cvs.sourceforge.net/viewvc/spf/src/macroopt.f?r1=1.65&r2=1.66


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Loading...