TITLE

21 messages Options
Embed this post
Permalink
1 2
Andrey Cherezov

TITLE

Reply Threaded More More options
Print post
Permalink
Привет!

SP-FORTH - ANS FORTH 94 for Win95/98/ME/NT/2000/XP

По-моему, пора заменить на Win9x/ME/NT/200x/XP/Vista
либо просто на Win32 или Windows? :)


Aleksej Saushev

Re: TITLE

Reply Threaded More More options
Print post
Permalink
  Здравствуй!

Andrey Cherezov <[hidden email]> writes:

> SP-FORTH - ANS FORTH 94 for Win95/98/ME/NT/2000/XP
>
> По-моему, пора заменить на Win9x/ME/NT/200x/XP/Vista
> либо просто на Win32 или Windows? :)

Если честно, то знающие люди утверждают, что ANS требует
некоторой документации, которая в SPF отсутствует.
Так что "ANS" это не более чем соответствие части стандарта.
yGREK Heretix

Re: TITLE

Reply Threaded More More options
Print post
Permalink

> > SP-FORTH - ANS FORTH 94 for Win95/98/ME/NT/2000/XP
> >
> > По-моему, пора заменить на Win9x/ME/NT/200x/XP/Vista
> > либо просто на Win32 или Windows? :)

Win32 лучше
И заодно предлагаю ещё реорганизовать version, т.е. сам номер версии
перенести в исходники, а номер локального билда хранить в локальном
файле (не на cvs).

> Если честно, то знающие люди утверждают, что ANS требует
> некоторой документации, которая в SPF отсутствует.
> Так что "ANS" это не более чем соответствие части стандарта.

И правда есть такое
http://forth.sourceforge.net/standard/dpans/dpans4.htm

Ну там не так уж и много на первый взгляд. Можно оформить. Всё равно
ведь периодически такие вопросы возникают.
Набросок в /docs/ans.en.mdt
Я беру первый раздел implementation defined options. Кто хочет помочь -
там ещё два раздела - подключайтесь.

--
ygrek




attachment0 (187 bytes) Download Attachment
Ruvim Pinka

Re: TITLE

Reply Threaded More More options
Print post
Permalink
Привет!

On 3/27/07, ygrek <[hidden email]> wrote:

> > > SP-FORTH - ANS FORTH 94 for Win95/98/ME/NT/2000/XP
> > >
> > > По-моему, пора заменить на Win9x/ME/NT/200x/XP/Vista
> > > либо просто на Win32 или Windows? :)
>
> Win32 лучше
Win32 Family
Win32 Family Operating Systems :)

> И заодно предлагаю ещё реорганизовать version, т.е. сам номер версии
> перенести в исходники,
А чем файл VERSION не исходник?

> а номер локального билда хранить в локальном файле (не на cvs).
Непонятно... а на него будут ссылки какие-то?

--
Ruvim
yGREK Heretix

Re: TITLE

Reply Threaded More More options
Print post
Permalink

> > И заодно предлагаю ещё реорганизовать version, т.е. сам номер версии
> > перенести в исходники,
> А чем файл VERSION не исходник?

VERSION.SPF подходит. Но сейчас проблема в том что в нём хранится два
разных смысла - 418001, где 418 - версия ядра, а 001 это номер билда.
При этом номер билда _автоматически_ увеличивается при сборке. Т.е. это
и есть разница между билдом и версией - автоматическое увеличение
первого. Но так как version.spf лежит в cvs - это доставляет неудобства
тем что он постоянно отмечается как Modified и провоцирует коммит.

> > а номер локального билда хранить в локальном файле (не на cvs).
> Непонятно... а на него будут ссылки какие-то?

Я вижу так например
VERSION.SPF содержит 418 и находится под CVS контролем
BUILD.SPF содержит 1 и не лежит в CVS

при сборке номер билда увеличивается - 2, 3, итд :)
а номер версии меняется только _вручную_ при сборке для релиза.

--
ygrek



attachment0 (187 bytes) Download Attachment
Ruvim Pinka

Re: TITLE

Reply Threaded More More options
Print post
Permalink
On 3/27/07, ygrek <[hidden email]> wrote:

> Но так как version.spf лежит в cvs - это доставляет неудобства
> тем что он постоянно отмечается как Modified и провоцирует коммит.

да, есть такой момент, согласен.
 (я сборки делаю в другом каталоге)

> Я вижу так например
> VERSION.SPF содержит 418 и находится под CVS контролем
> BUILD.SPF содержит 1 и не лежит в CVS
>
> при сборке номер билда увеличивается - 2, 3, итд :)
> а номер версии меняется только _вручную_ при сборке для релиза.

Хорошо, но тогда при отсутствии этого файла BUILD.SPF все должно
работать без ошибок -- или файл автоматически создается, или просто не
используется.

Да, тогда в этот файл еще было бы хорошо дополнительный таг прописывать :)
Чтобы получилось типа: Version 4.18 Build ruv.14 at 23.Mar.2007

--
Ruvim
Andrey Cherezov

Re: TITLE

Reply Threaded More More options
Print post
Permalink
In reply to this post by Aleksej Saushev
Добрый день, Aleksej Saushev!

Ваше сообщение от 27.03.2007 6:24:
> Если честно, то знающие люди утверждают, что ANS требует
> некоторой документации, которая в SPF отсутствует.
> Так что "ANS" это не более чем соответствие части стандарта.
>  
Как человек знающий, скажу, что shall - это не must. И informative annex
в dpans описывает опциональные части.
Необходимый минимум для  права написания "ANS" в SPF есть с 1994 года (с
SPF/2.5), включая необходимые части документации.

А если учесть, что исходники в открытом продукте можно считать частью
документации... То тем более.
Там же не указан язык, на котором это должно документироваться. Для
западных пользователей, например, язык форт наверняка понятнее русского
языка ;)

Претензии принимаются от авторов ANS, а от остальных фортеров
принимаются патчи и дополнения.


Aleksej Saushev

Re: TITLE

Reply Threaded More More options
Print post
Permalink
In reply to this post by Ruvim Pinka
"Ruvim Pinka" <[hidden email]> writes:

> On 3/27/07, ygrek <[hidden email]> wrote:
>
>> Но так как version.spf лежит в cvs - это доставляет неудобства
>> тем что он постоянно отмечается как Modified и провоцирует коммит.
>
> да, есть такой момент, согласен.
>  (я сборки делаю в другом каталоге)
>
>> Я вижу так например
>> VERSION.SPF содержит 418 и находится под CVS контролем
>> BUILD.SPF содержит 1 и не лежит в CVS
>>
>> при сборке номер билда увеличивается - 2, 3, итд :)
>> а номер версии меняется только _вручную_ при сборке для релиза.
>
> Хорошо, но тогда при отсутствии этого файла BUILD.SPF все должно
> работать без ошибок -- или файл автоматически создается, или просто не
> используется.

Я поддерживаю ygrek: дерево исходников не должно изменяться автоматически.

> Да, тогда в этот файл еще было бы хорошо дополнительный таг прописывать :)
> Чтобы получилось типа: Version 4.18 Build ruv.14 at 23.Mar.2007

Я бы предложил использовать средства CVS: $Id$, например.
Тогда и номер сборки не понадобится.

С этим порядковым номером есть и другие проблемы: он изменяется
всегда, несмотря даже на то, что ничего не менялось.
Andrey Cherezov

Re: TITLE

Reply Threaded More More options
Print post
Permalink
Добрый день, Aleksej Saushev!

Ваше сообщение от 27.03.2007 20:12:
> Я бы предложил использовать средства CVS: $Id$, например.
> Тогда и номер сборки не понадобится.
>  
Да, в ForthScript, например, номер версии так и поддерживался
: PROG-NAME
\  " {ProgName @ COUNT}/{ProgVersion @ COUNT}" STR@
  S" ForthScripter/$Id: cgi.f,v 1.25 2004/12/02 02:08:29 spf Exp $"
;
(до тех пор пока не возникла некоторая десинхронизация с CVS из-за
сильной связки последних его версий с Eserv)
> С этим порядковым номером есть и другие проблемы: он изменяется
> всегда, несмотря даже на то, что ничего не менялось.
>  
Но сам по себе он не меняется. Зачем запускать перекомпиляцию, если
ничего не менялось?


Aleksej Saushev

Re: TITLE

Reply Threaded More More options
Print post
Permalink
  Здравствуй!

Andrey Cherezov <[hidden email]> writes:

> Добрый день, Aleksej Saushev!
>
> Ваше сообщение от 27.03.2007 20:12:
>> Я бы предложил использовать средства CVS: $Id$, например.
>> Тогда и номер сборки не понадобится.
>>  
> Да, в ForthScript, например, номер версии так и поддерживался
> : PROG-NAME
> \  " {ProgName @ COUNT}/{ProgVersion @ COUNT}" STR@
>   S" ForthScripter/$Id: cgi.f,v 1.25 2004/12/02 02:08:29 spf Exp $"
> ;
> (до тех пор пока не возникла некоторая десинхронизация с CVS из-за
> сильной связки последних его версий с Eserv)
>> С этим порядковым номером есть и другие проблемы: он изменяется
>> всегда, несмотря даже на то, что ничего не менялось.
>>  
> Но сам по себе он не меняется. Зачем запускать перекомпиляцию, если
> ничего не менялось?

Всё же, он не должен меняться, если просто запустить пересборку.
Просто потому, что пересборка не означает, что-то поменялось.

Вопрос "зачем пересобирать, если ничего не менялось" вообще странный:
допустим, я не помню, собирается ли система после того, что я что-то
несколько раз подряд менял. Разумеется, я могу это проверить и другим
способом, но сейчас проще пересобрать. Тем более, что это прямой
способ, а не косвенный, и даёт однозначный ответ на вопрос.
Andrey Cherezov

Re: TITLE

Reply Threaded More More options
Print post
Permalink
Добрый день, Aleksej Saushev!

Ваше сообщение от 28.03.2007 20:43:
> Всё же, он не должен меняться, если просто запустить пересборку.
> Просто потому, что пересборка не означает, что-то поменялось.
>
> Вопрос "зачем пересобирать, если ничего не менялось" вообще странный:
> допустим, я не помню, собирается ли система после того, что я что-то
> несколько раз подряд менял. Разумеется, я могу это проверить и другим
> способом, но сейчас проще пересобрать. Тем более, что это прямой
> способ, а не косвенный, и даёт однозначный ответ на вопрос.
>  
Вот и изменение номера сборки - это счетчик компиляций, а не единый номер
версии исходников. Для различения номеров исходников у нас есть CVS/SVN,
а этот номер - номер билда, ему логично увеличиваться при каждой компиляции.
Exe может меняться при перекомпиляции, даже если исходники не менялись,
т.к. процесс компиляции может зависеть и от окружения, и от собственно
компилятора.

Поэтому идея игрека правильная - пусть в номере сборки сосуществуют два
номера -
номер исходников и номер компиляции, как старшая и младшая часть числа.


Yuriy Zhilovets

Вложенная компиляция

Reply Threaded More More options
Print post
Permalink
In reply to this post by Andrey Cherezov
Привет всем!

Как можно проводить вложенную компиляцию, то есть во время компиляции
скомпилировать другое слова? Что для этого надо сохранять и восстанавливать?

Ю. Жиловец



yGREK Heretix

Re: TITLE

Reply Threaded More More options
Print post
Permalink
In reply to this post by Andrey Cherezov

 version.spf удалён из cvs контроля и содержит теперь число - номер
билда. В spf.f добавлена константа - SPF-KERNEL-VERSION - её менять
руками перед выпуском релиза.

--
ygrek


attachment0 (187 bytes) Download Attachment
Andrey Cherezov

SPF/4 for Unix

Reply Threaded More More options
Print post
Permalink
Привет!

Оказывается SPF4 прекрасно работает под Wine (эмулятор винды под Unix)!
Что-то раньше не приходило в голову запустить :) Сегодня попробовал под
FreeBSD.

SPF4 работает вообще без проблем, включая многопоточность.
Eserv начинает работать, но вскоре сталкивается с нереализованными
под Wine функциями (бегут всякие fixme_такая-то-функция:stub).
Aleksej Saushev

Re: SPF/4 for Unix

Reply Threaded More More options
Print post
Permalink
  Здравствуй!

Andrey Cherezov <[hidden email]> writes:

> Оказывается SPF4 прекрасно работает под Wine (эмулятор винды под Unix)!

Это неправда и очень большая неправда.

> Что-то раньше не приходило в голову запустить :) Сегодня попробовал под
> FreeBSD.

> SPF4 работает вообще без проблем, включая многопоточность.

Особенно про многопоточность.
Я всё думаю, как бы написать про то, чтобы посмотрели, где
мутексы лишний раз отпираются. Я могу тестировать сколько влезет.

> Eserv начинает работать, но вскоре сталкивается с нереализованными
> под Wine функциями (бегут всякие fixme_такая-то-функция:stub).
azekeprofit

Re: Вложенная компиляция

Reply Threaded More More options
Print post
Permalink
In reply to this post by Yuriy Zhilovets


Как можно проводить вложенную компиляцию, то есть во время компиляции
скомпилировать другое слова? Что для этого надо сохранять и восстанавливать?

Именно такой задачи не стояло но может поможет: ~profit\lib\compile2Heap.f ( обсуждение на форуме)?

Ruvim Pinka

Re: Вложенная компиляция

Reply Threaded More More options
Print post
Permalink
In reply to this post by Yuriy Zhilovets
On 3/30/07, Yuriy Zhilovets <[hidden email]> wrote:
> Как [...] во время компиляции скомпилировать другое слова?

Стандартного способа нету.

В обычном SPF4  \ REQUIRE AHEAD  lib/include/tools.f

: foo 1 . AHEAD [ SMUDGE ( теперь foo видимо)  : bar 2 . ; HIDE (
теперь bar НЕвидимо ) ] THEN 3 . ; ( теперь и bar видимо )

foo
1 3 Ok
bar
2 Ok

Если второе слово откладывать в другое хранилище, то не нужно AHEAD
... THEN, но конфликт по ячейке C-SMUDGE остается.

Слово NAMING, из состава компилятора ~pinka/spf/compiler/index.f,  не
завязанно на C-SMUDGE и предоставляет путь, который в сыром виде
выглядет так:

TEMP-WORDLIST VALUE tmp

:NONAME 1 .
  [ GET-CURRENT tmp SET-CURRENT
    :NONAME 2 . ; `bar NAMING-
  SET-CURRENT ]
  3 .
; `foo NAMING-

foo
1 3  Ok
tmp::bar
2  Ok

То бишь, имя слову (определению) дается постфиксно, после определения.
Вариант именования NAMED vs NAMING vs еще вариант?

--
Ruvim
Andrey Cherezov

Re: SPF/4 for Unix

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

Ваше сообщение от 31.03.2007 21:28:
Оказывается SPF4 прекрасно работает под Wine (эмулятор винды под Unix)!
    
Это неправда и очень большая неправда.
  
Для таких обвинений нужны доказательства.
Особенно про многопоточность.
Я всё думаю, как бы написать про то, чтобы посмотрели, где
мутексы лишний раз отпираются. 
Мутексы не входят в ядро SPF. Моё сообщение было "SPF работает, а
SPF с либами (Eserv) - не очень работает".
Я могу тестировать сколько влезет.
  
Баг в студию!
Aleksej Saushev

Re: SPF/4 for Unix

Reply Threaded More More options
Print post
Permalink
  Здравствуй!

Andrey Cherezov <[hidden email]> writes:

> Ваше сообщение от 31.03.2007 21:28:
>
>         Оказывается SPF4 прекрасно работает под Wine (эмулятор винды под Unix)!
>
>     Это неправда и очень большая неправда.
>
> Для таких обвинений нужны доказательства.
>
>     Особенно про многопоточность.
>     Я всё думаю, как бы написать про то, чтобы посмотрели, где
>     мутексы лишний раз отпираются.
>
> Мутексы не входят в ядро SPF. Моё сообщение было "SPF
> работает, а
> SPF с либами (Eserv) - не очень работает".
>
>     Я могу тестировать сколько влезет.
>
> Баг в студию!

Location: http://bugs.winehq.org/show_bug.cgi?id=7312

Я проверял и на текущем (4.18). То же самое.
Andrey Cherezov

Re: SPF/4 for Unix

Reply Threaded More More options
Print post
Permalink
Добрый день, Aleksej Saushev!

Ваше сообщение от 02.04.2007 22:18:
>>         Оказывается SPF4 прекрасно работает под Wine (эмулятор винды под Unix)!
>>     Это неправда и очень большая неправда.
>> Для таких обвинений нужны доказательства.
>>    
> Location: http://bugs.winehq.org/show_bug.cgi?id=7312
> Я проверял и на текущем (4.18). То же самое.
>  
Это проблема не в SPF (в ядре не используются мутексы) и не в wine (см.
ниже),
а скорее всего в libpthread или её конкретной сборке.

%uname -v
FreeBSD 6.1-RELEASE-p11

%wine --version
wine-0.9.32

%wine spf4.exe
SP-FORTH - ANS FORTH 94 for Win95/98/ME/NT/2000/XP
Open source project at http://spf.sf.net
Russian FIG at http://www.forth.org.ru ; Started by A.Cherezov
Version 4.18 Build 001 at 01.Dec.2006

WORDS

DONE           INIT           (INIT)         SPF-INIT?      ;..
..:            ...            SPF-INI        TITLE          (TITLE)
EXC-DUMP1      STACK-ADDR.    IN-EXCEPTION   USER-EXIT      PROCESS-INIT
ERR-EXIT       USER-INIT      POOL-INIT      AT-PROCESS-STARTING
AT-THREAD-STARTING            MAINX          OPTIONS        SAVE
RESOURCES-SIZE RESOURCES-RVA  IMAGE-BASE     IMAGE-SIZE     IMAGE-BEGIN
[...]
Words: 880
 Ok
:NONAME 1000 0 DO I . 100 PAUSE LOOP ; TASK: TEST1
 Ok
TEST1 START
 Ok
0 1 2 3 4
[...]
983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999
 Ok


1 2