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

13 messages Options
Embed this post
Permalink
oda-2

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

Reply Threaded More More options
Print post
Permalink
Здравствуйте.
Вроде бы оптимизатор мне одно слово портит.
Там в цикле стоит 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
ygrek-3

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

Reply Threaded More More options
Print post
Permalink
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
oda-2

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

Reply Threaded More More options
Print post
Permalink
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
ygrek-3

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

Reply Threaded More More options
Print post
Permalink
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
Andrey Cherezov

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

Reply Threaded More More options
Print post
Permalink
Добрый день, 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
ygrek-3

wiki

Reply Threaded More More options
Print post
Permalink
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
Andrey Cherezov

Re: wiki

Reply Threaded More More options
Print post
Permalink
Some javascript/style in this post has been disabled (why?)
Добрый день, 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
ygrek-3

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

Reply Threaded More More options
Print post
Permalink
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
Andrey Cherezov

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

Reply Threaded More More options
Print post
Permalink
Some javascript/style in this post has been disabled (why?)
Добрый день, 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
ygrek-3

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

Reply Threaded More More options
Print post
Permalink
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
Andrey Cherezov

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

Reply Threaded More More options
Print post
Permalink
Добрый день, 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
Andrey Cherezov

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

Reply Threaded More More options
Print post
Permalink
Some javascript/style in this post has been disabled (why?)
Добрый день!

Моё сообщение от 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
Mihail Maksimov-2

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

Reply Threaded More More options
Print post
Permalink
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