spf - some batteries included

classic Classic list List threaded Threaded
24 messages Options
12
Reply | Threaded
Open this post in threaded view
|

spf - some batteries included

ygrek-3
Привет,
 
  В devel есть много полезных расширений, которые используются очень часто - когда о них узнаёшь. Для самых базовых вещей - но тем не менее спасает от изобретания велосипедов. Например : ~pinka/samples/2005/lib/{append-file.f,lay-path.f,replace-str.f,spli-white.f}, ~ac/lib/string/{uppercase.f,compare-u.f}, ~pinka/lib/mask.f, ~ac/lib/str5.f, ~pinka/spf/string-equal.f, ~pinka/samples/2006/core/trans/nf-ext.f итд. Т.е. не сильно системно-зависимые либы которые часто используются - фактически формируют стандартный расширенный вариант spf.
  Но. Банально - набирать к ним пути - замаешься. Особенно если это скрипт - в котором кода на 5 мин писать, но перед этим 10 минут лазить по каталогам выискивать либы. Это раздражает. Это создаёт препятствия при использования spf для скриптинга. Естетсвенно для себя я давно сделал сборную солянку ~ygrek/lib/script.f которая решает эти проблемы - для меня. Предалагаю же расширить этот подход для всех.
  Положить в lib файлик(или несколько - по темам) в который собрать некофликтные часто-используемые базовые либы (как те что перечислены выше). Именно для целей скриптинга (впрочем даже в бОльших программах это пригодится). Плюс это будет служить целям стандартизации - фактически формировать общепринятый набор слов - этакий аналог standard lib в других языках.
  Из собственного опыта - смотрю "раннее" своё творчество - много лишнего кода - просто потому что не знал о существующих наработках.

--

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev

attachment0 (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

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

Для решению всего этого я и предлагал своё решение по категоризации devel.xml:

http://www.nabble.com/Re%3A-devel.xml-p12811468.html

Тут и стандартизация, тут и короткие и более "говорящие" пути, тут и готовый для развертывания "вчера" вариант.
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

Ruvim Pinka
Привет!

Да, полностью разделяю мнение, что пути набирать — замаешься, и это раздражает. Я тоже использую готовые наборы, а не каждый раз вспоминаю что там и где. Положить пару-тройку таких наборов в lib — мысль стоящая. Например, какой-нибудь strings.f собирает все функции работы со стандартными строками.
Но, это будет полезно лишь тем, кому уже хорошо известны соответствующие лексиконы. Другим же все-равно придется муторно лазить по файлам с реализациями. Эта проблема остается и в решении через дерево categorised от Азамата.
Поэтому, требуется человеческая спецификация на лексикон и каждое (интерфейсное) слово в нем — для каждого лексикона-библиотеки, который часто используются и хорошо себя зарекомендовал. Спецификация отдельно от реализации! Далее, как это вижу я, каждый такой лексикон получает глобально-уникальное имя (как в xmlns). Также, уникальные имена получают и частые связки (bundle) лексиконов. Лексиконы подключаюся по их уникальным именам. Связь с конкретными файлами-реализациями устанавливается в подсистеме поддержки данного механизма. Такой подход дает независимость от форт-системы, структуры каталогов и прочих особенностей (а значит, и лучшую переносимость).


On Dec 16, 2007 3:12 PM, azekeProfit <[hidden email]> wrote: 
Откуда мне помнить какой это год был?..
Приходится смотреть. Строго говоря и заставлять помнить и кто это написал
(~ac, ~pinka) для того чтобы подключить библиотеку -- тоже излишне.

Да, излишне. Живой поиск рулит (мечтательно :)

Для решению всего этого я и предлагал своё решение по категоризации
я думаю, что
1. авто-сгенереному дереву categorised в несколько сот файлов в репозитории не место;
2. но, ведь не каждый его сгенерит себе, поэтому его использование для библиотек вызовет затруднения.

--
Ruvim
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

Ruvim Pinka
On Dec 16, 2007 7:41 PM, Ruvim Pinka <[hidden email]> wrote:
 
Другим же все-равно придется муторно лазить по файлам с реализациями. Эта проблема остается и в решении через дерево categorised от Азамата.

Кстати, по docs/devel.xml лазить удобней, чем по categorised, т.к. переход к реализация делается в один клик :) 

--
Ruvim
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

Andrey Cherezov
In reply to this post by ygrek-3
Добрый день, ygrek!

Ваше сообщение от 16.12.2007 12:59:
>   Но. Банально - набирать к ним пути - замаешься. Особенно если это скрипт - в котором кода на 5 мин писать, но перед этим 10 минут лазить по каталогам выискивать либы. Это раздражает. Это создаёт препятствия при использования spf для скриптинга. Естетсвенно для себя я давно сделал сборную солянку ~ygrek/lib/script.f которая решает эти проблемы - для меня. Предалагаю же расширить этот подход для всех.
>  
Мы ведь это уже обсуждали. Причем как раз с тобой. По результатам этого
обсуждения ты и сделал http://wiki.forth.org.ru/SPF_DEVEL
(последний до удаления вариант
http://wiki.forth.org.ru/SPF_DEVEL?version=22), где основные либы в
виде, готовом для включения в исходник.
Я в качестве расширенного сборника REQUIRE-ссылок использую
acWEB/src/index.f

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

ygrek-3

> Мы ведь это уже обсуждали. Причем как раз с тобой. По результатам этого
> обсуждения ты и сделал http://wiki.forth.org.ru/SPF_DEVEL
> (последний до удаления вариант
> http://wiki.forth.org.ru/SPF_DEVEL?version=22), где основные либы в
> виде, готовом для включения в исходник.
> Я в качестве расширенного сборника REQUIRE-ссылок использую
> acWEB/src/index.f

Это другое. devel.xml - хорошо, как справочник. А устоявшиеся лексиконы
должны быть доступны удобно и быстро. Факт тот что при работе например
с файлами мне понадобится большая часть слов из соответствующего
лексикона. Т.е. это есть критерий их формирования - частота
использования.

Задача разбивается на две
- формирование сборников в виде файлов-паков (список REQUIRE'ов и
только) в lib
- введение слов для подключения этих файлов не привязываясь к путям.

Мне самой большой выгодой от этой идеи видится именно
стандартизация лексиконов.
Правильные вещи должны делаться просто чтобы провоцировать
правильные решения.

--

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev

attachment0 (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

Ruvim Pinka
Привет!
в lib/ добавлены: strings.f files.f abstractions.f spf4level2.f spf4level3.f
Состав и имена обсуждаемы. Закомментированный варианты являются претендентами.

On 12/18/07, ygrek <[hidden email]> wrote:
> устоявшиеся лексиконы
> должны быть доступны удобно и быстро.

> Задача разбивается на две
> - формирование сборников в виде файлов-паков (список REQUIRE'ов и
> только) в lib
> - введение слов для подключения этих файлов не привязываясь к путям.

Для начала хотя бы и с путями (типа, lib/package.f ).

--
Ruvim
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

ygrek-3
Привет,

> в lib/ добавлены: strings.f files.f abstractions.f spf4level2.f spf4level3.f
> Состав и имена обсуждаемы. Закомментированный варианты являются претендентами.

ИМХО лучше корень lib не загромождать, а все паки сложить в отдельный
каталог например lib/pack или lib/std
По именам - слишком длинные :)
Например - abstractions (не знаю как переименовать правда...)
spf4level* - spf4 избыточно - и так ведь репозиторий spf, лучше убрать
и сократится путь.
совсем minor - множественное/единственное число - по-моему более логично
единственное.

--

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev

attachment0 (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

Ruvim Pinka
On 12/24/07, ygrek <[hidden email]> wrote:

> ИМХО лучше корень lib не загромождать, а все паки сложить в отдельный
> каталог например lib/pack или lib/std
> По именам - слишком длинные :)
> Например - abstractions (не знаю как переименовать правда...)
> spf4level* - spf4 избыточно - и так ведь репозиторий spf, лучше убрать
> и сократится путь.
> совсем minor - множественное/единственное число - по-моему более логично
> единственное.

1. тогда даже лучше каталог рядом с lib.
2. abstraction длинное, но лучшего и короче я тоже не нашел (сокращения отмел).
3. префикс "spf4" — чтобы отделить spf-специфичный код от
неспецифичного. Возможно,  это и неоправданно.
4. если в отдельном каталоге, то хорошо и в единственном (без -s).

--
Ruvim
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

Ruvim Pinka
Привет!

Включены pack/level2.f и pack/level3.f (взяты все либы из первой
экспериментальной версии паков в lib и она будет удалена). На данный
момент эти паки полезны для быстрого прототипирования, набросков:
чтобы просто тупо подключить level3 и сразу испытывать код, не выбирая
кучу обычных библиотек по одной.

Состав, имена, грануляция — обсуждаемы.


--
Ruvim
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

ygrek-3

> Включены pack/level2.f и pack/level3.f (взяты все либы из первой
> экспериментальной версии паков в lib и она будет удалена). На данный
> момент эти паки полезны для быстрого прототипирования, набросков:
> чтобы просто тупо подключить level3 и сразу испытывать код, не выбирая
> кучу обычных библиотек по одной.
>
> Состав, имена, грануляция — обсуждаемы.

Получилось пересечение - я передвинул часть файлов в lib/std
ИМХО темаическое разбиение надо. А level'ы уже включают их.

--

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev

attachment0 (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

ygrek-3
On Thu, 27 Dec 2007 16:25:39 +0200
ygrek <[hidden email]> wrote:

>
> > Включены pack/level2.f и pack/level3.f (взяты все либы из первой
> > экспериментальной версии паков в lib и она будет удалена). На данный
> > момент эти паки полезны для быстрого прототипирования, набросков:
> > чтобы просто тупо подключить level3 и сразу испытывать код, не выбирая
> > кучу обычных библиотек по одной.
> >
> > Состав, имена, грануляция — обсуждаемы.
>
> Получилось пересечение - я передвинул часть файлов в lib/std
> ИМХО темаическое разбиение надо. А level'ы уже включают их.
Вообщем это к тому, что надо оставить какой-то один вариант.
Мне spf/lib/std нравится больше. Рувим за spf/pack
Поэтому нужно мнение большинства :)
Или это больше никого не волнует?

--

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev

attachment0 (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

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

Ваше сообщение от 30.12.2007 22:56:
Включены pack/level2.f и pack/level3.f (взяты все либы из первой
экспериментальной версии паков в lib и она будет удалена). На данный
      
Получилось пересечение - я передвинул часть файлов в lib/std
ИМХО темаическое разбиение надо. А level'ы уже включают их.
    
Вообщем это к тому, что надо оставить какой-то один вариант. 
Мне spf/lib/std нравится больше. Рувим за spf/pack
Поэтому нужно мнение большинства :
Pack был в корне spf? Лучше в lib.
А вот std или pack - как-то оба не самоописательны, по-моему.
В std я бы ожидал увидеть что-то про стандарт, а в pack упаковщик.
В самих файлах из "самоназваний" встречаются levels и lexicons.
Можно сократить оба слова до интригующего "le" - в смысле так
и назвать каталог - каждый сассоциирует его по-своему :)


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

Ruvim Pinka
On 12/31/07, Andrey Cherezov <[hidden email]> wrote:
> Можно сократить оба слова до интригующего "le" - в смысле так
> и назвать каталог - каждый сассоциирует его по-своему :)
ок, убедили: ничего не имею против lib/le/

--
Ruvim

PS всех с Наступающим! :)
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

ygrek-3

> > Можно сократить оба слова до интригующего "le" - в смысле так
> > и назвать каталог - каждый сассоциирует его по-своему :)
> ок, убедили: ничего не имею против lib/le/

хм, согласен в принципе. Надо только в readme это описать :)
Давайте сделаем так. Чтобы в релизе 4.19 не было неустаканенных либ -
сейчас удалим оба каталога, а после релиза вернём lib/le

Есть идеи по поводу
http://sourceforge.net/tracker/index.php?func=detail&aid=1862262&group_id=17919&atid=117919
?

--

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev

attachment0 (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

ygrek-3

> Есть идеи по поводу
> http://sourceforge.net/tracker/index.php?func=detail&aid=1862262&group_id=17919&atid=117919
> ?

~ac/lib/string/compare-u.f
 Ok
S" 2DROP" S" RDROP" COMPARE-U
 Ok ( 0 )

Собственно если посмотреть на реализацию COMPARE-U то всё становится понятно.

CHAR 2 . CHAR R . CHAR r .
50 82 114

--

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev

attachment0 (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

ygrek-3
On Sun, 6 Jan 2008 15:22:17 +0200
ygrek <[hidden email]> wrote:

> ~ac/lib/string/compare-u.f
>  Ok
> S" 2DROP" S" RDROP" COMPARE-U
>  Ok ( 0 )

Вариант

REQUIRE CHAR-UPPERCASE ~ac/lib/string/uppercase.f
REQUIRE /TEST ~profit/lib/testing.f

: COMPARE-U ( a1 u1 a2 u2 -- ? )
  SWAP >R >R
  R@ <> IF DROP 2R> 2DROP TRUE EXIT THEN
  R> R> SWAP 0
  ?DO 2DUP I + C@ CHAR-UPPERCASE SWAP I + C@ CHAR-UPPERCASE <> IF 2DROP UNLOOP TRUE EXIT THEN
  LOOP 2DROP FALSE ;

/TEST

REQUIRE TESTCASES ~ygrek/lib/testcase.f

TESTCASES compare-u

(( S" 2DROP" S" RDROP" COMPARE-U -> TRUE ))
(( S" rDROP" S" RDROP" COMPARE-U -> FALSE ))
(( S" " S" " COMPARE-U -> FALSE ))
(( S" 2DROP" S" 2DRO" COMPARE-U -> TRUE ))
(( S" SeArCh-woRDLiSt" S" SEARCH-WORDLIST" COMPARE-U -> FALSE ))

END-TESTCASES

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev

attachment0 (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

Ruvim Pinka
Привет!

On 1/6/08, ygrek <[hidden email]> wrote:
> > ~ac/lib/string/compare-u.f
> >  Ok
> > S" 2DROP" S" RDROP" COMPARE-U
> >  Ok ( 0 )
Какая качественная давняя ошибка ;)

> Вариант
> : COMPARE-U ( a1 u1 a2 u2 -- ? )
По хорошему, это слово должно возвращать -1|0|1 — что бы оно могло
быть использовано для сортировки так же, как COMPARE

Другой вариант: для caseins.f достаточно EQUAL-U или UEQUAL
(нечувствительный к регистру вариант от EQUAL, или от CEQUAL, если
требуется подчеркнуть, что счетчик в символах).

--
Ruvim
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

Andrey Cherezov
In reply to this post by ygrek-3
Добрый день, ygrek!

Ваше сообщение от 06.01.2008 15:22:
Есть идеи по поводу 
http://sourceforge.net/tracker/index.php?func=detail&aid=1862262&group_id=17919&atid=117919
?
    
~ac/lib/string/compare-u.f
 Ok
S" 2DROP" S" RDROP" COMPARE-U
 Ok ( 0 )
  
ygrek> если же заменить 2DROP на DROP DROP то всё ок

Не понял, в чем связь. Кодогенератор где-то использует COMPARE-U?
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: spf - some batteries included

Ruvim Pinka
Привет!

On 1/7/08, Andrey Cherezov <[hidden email]> wrote:

> > S" 2DROP" S" RDROP" COMPARE-U
> >  Ok ( 0 )
> ygrek> если же заменить 2DROP на DROP DROP то всё ок
>
> Не понял, в чем связь. Кодогенератор где-то использует COMPARE-U?

Нет. Просто, в caseins.f в слове UDIGIT откладывается код RDROP вместо 2DROP.
Ошибка в COMPARE-U + CASE-INS ON (используется COMPARE-U при поиске в
словарях) + при просмотре списка RDROP предшествует 2DROP (и из-за
ошибки совпадает с ним).

spf lib/ext/caseins.f
' RDROP .
5599408  Ok
' 2DROP .
5599408  Ok

--
Ruvim
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
12