Плагин lists.spf [15/08/2013 21:40]

Обсуждение программ nnCron и nnCron LITE

Re: Плагин lists.spf

Postby VoidVolker » Sun, 11 Dec 2011, 16:49

На данный момент автоматическая компиляция слов выполняется жутким словом (LIST) - не самое красивое решение. Немного пораскинув мозгами, я вспомнил про автостроки и в результате получилось вот что:
Code: Select all
: (LIST1)
    HERE >R /ListHeader ALLOT       \ Выделяем память для заголовка
    R@ /ListHeader ERASE          \ Очищаем её (в HERE всегда мусор - бага еще от спф)
    R@ -ListAllocate !              \ Сохраняем токены слов для работы с памятью
    R@ -ListFree !
    R@ -ListNodeSize C!
    BL PARSE                        \ a0 u \ Получаем имя и далее просто подставляем его в строки, которые потом интерпретируем
    " VALUE %2OVER%" R> ROT ROT EVALUATE
    " : %2OVER%@   %2OVER% LIST@ ; " EVALUATE
    " : %2OVER%(   %2OVER% [COMPILE] LIST( ; IMMEDIATE " EVALUATE
    " : )%2OVER%   [COMPILE] )LIST ; IMMEDIATE " EVALUATE
    " : %2OVER%!   %2OVER% LIST! ; " EVALUATE
    " : !%2OVER%   %2OVER% !LIST ; " EVALUATE
    " : %2OVER%?   %2SWAP% IN-LIST? ; " EVALUATE
  ;

Думаю, что имеет смысл использовать это решение. Возникает другой вопрос - для работы этого плагина необходимо будет сначала подключать автостроки. Но, на данный момент тут не все так просто. В автостроках нет сборщика мусора(т.к. используется слово S+) от сложения строк. И делать плагины взаимозависимыми не очень хочется.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Плагин lists.spf

Postby VoidVolker » Sun, 11 Dec 2011, 22:18

Ап! Заменил слово (LIST) на автостроковое, старое пока оставил. Теперь для работы плагина необходимо предварительно подключить Autostrings.spf. Добавил еще пару слов:
Code: Select all
: LIST#!   \ ( val_1 ... val_n n list -- ) \ Добавить поочередно n элементов со стека в конец списка list. Значения добавляются начиная с вершины стека в конец списка в порядке очереди.
  OVER IF
    SWAP 0 DO SWAP OVER LIST! LOOP DROP
  ELSE 2DROP THEN
;
 
: #!LIST   \ ( val_1 ... val_n n list -- ) \ Добавить поочередно n элементов со стека в начало списка list. Значения добавляются начиная с вершины стека в начало списка в порядке очереди.
  OVER IF
  SWAP 0 DO SWAP OVER !LIST LOOP DROP
  ELSE 2DROP THEN
;

В случае n=0 будет сделан 2DROP, т.к. цикл DO LOOP выдает исключение, если ему дать два нуля.
На сегодня пока все. Жду отзывов.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Плагин lists.spf

Postby Morituruz » Mon, 12 Dec 2011, 19:43

VoidVolker wrote:Ап! Исправлена бага в LIST-FREE - теперь оно корректно освобождает память, занятую строками и элементами списка.

это я вчера удачно успел стянуть плагин до введения автострок :)
Спасибо, теперь пинг прекрасно работает!
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Плагин lists.spf

Postby VoidVolker » Mon, 12 Dec 2011, 19:58

Moriturus wrote:это я вчера удачно успел стянуть плагин до введения автострок

С автостроками надежнее. Плюс еще несколько дополнительных слов. Так что рекомендую все-таки использовать более свежую версию. К тому же появился повод сделать сборщик мусора для автострок. Тем более, что автостроки тоже довольно полезный плагин.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Плагин lists.spf

Postby VoidVolker » Mon, 12 Dec 2011, 22:56

Ну все, теперь все преграды на использовании автострок в этом плагине преодолены.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Плагин lists.spf

Postby VoidVolker » Thu, 15 Dec 2011, 18:31

Такое впечатления, что я остался один-единственный пользователь ннкрона, который использует свои плагины. О-о
Раз уж все молчат, то я ведь могу сделать вывод, что никто не пользуется и никому оно не надо. А раз не надо - то и выкладывать нет смысла.
Скачали плагин? Использовали в одной/двух/x-задачах? Думаю, не так уже это и сложно - зайти на форум, потратить пару минут и написать отзыв. Хотя бы "Использую. Нравится, жду развития." или "Не смог использовать по такой-то причине. Сломал мозг, пока пытался понять для чего оно вообще надо."
...
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Плагин lists.spf

Postby SeMa » Thu, 15 Dec 2011, 18:38

Мне всегда интересны наработки форумчан (особенно гуру 8) ). Зачастую не хватает времени потестить и/или применить. Насчёт списков: когда-то была нужда, не было понятной реализации; а сейчас, опять же, нет времени... Кроном пользуюсь в основном на работе так что... :axe:
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Плагин lists.spf

Postby Morituruz » Thu, 15 Dec 2011, 22:57

VoidVolker wrote:Такое впечатления, что я остался один-единственный пользователь ннкрона, который использует свои плагины. О-о
Раз уж все молчат, то я ведь могу сделать вывод, что никто не пользуется и никому оно не надо.

Что в этом удивительного? Тут вообще форум не особо активный, это не наша вина.
VoidVolker wrote:Раз уж все молчат, то я ведь могу сделать вывод, что никто не пользуется и никому оно не надо.

Ну вы же сами всё должны понимать - зачем трогать то, что и так работает? Вот мне это также не особо нужно, как вам nncron64 :)
VoidVolker wrote:Не смог использовать по такой-то причине.

Например списочки у меня прекрасно стали работать, но мне не очень нравится идея, что ради них нужно ещё один прицеп со словами подключать.

Главный вопрос: если я подключу автостроки, мне не нужно будет переделывать уже существующие задачи?
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Плагин lists.spf

Postby AlikasS » Fri, 16 Dec 2011, 15:09

в конечном варианте не пробовал, но отложил (скачал) для дальнейшего использования.
есть планы, но лень...
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Плагин lists.spf

Postby VoidVolker » Fri, 16 Dec 2011, 15:39

Moriturus wrote:Главный вопрос: если я подключу автостроки, мне не нужно будет переделывать уже существующие задачи?

Нет.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Плагин lists.spf

Postby AlikasS » Fri, 16 Dec 2011, 15:41

VoidVolker wrote:Такое впечатления, что я остался один-единственный пользователь ннкрона, который использует свои плагины. О-о
Раз уж все молчат, то я ведь могу сделать вывод, что никто не пользуется и никому оно не надо. А раз не надо - то и выкладывать нет смысла.
Скачали плагин? Использовали в одной/двух/x-задачах? Думаю, не так уже это и сложно - зайти на форум, потратить пару минут и написать отзыв. Хотя бы "Использую. Нравится, жду развития." или "Не смог использовать по такой-то причине. Сломал мозг, пока пытался понять для чего оно вообще надо."
...

вот интересует вопрос, где свои наработки кроме форума можно зафиксировать (выложить) что бы они в форуме не пропали
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Плагин lists.spf

Postby VoidVolker » Fri, 16 Dec 2011, 17:21

AlikasS wrote:от интересует вопрос, где свои наработки кроме форума можно зафиксировать (выложить) что бы они в форуме не пропали

Для сети лучший вариант - купить пространство и вычислительные мощности на сервере в дата-центре. В сторону бесплатных хостингов лучше даже не смотреть. Форум пока на месте и в ближайшее время вроде не планирует никуда пропадать.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Плагин lists.spf

Postby VoidVolker » Wed, 21 Dec 2011, 17:24

Ап! Исправлен ошибка в словах #!LIST и LIST#!, возникающая при работе со строковыми списками.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Плагин lists.spf

Postby VoidVolker » Wed, 21 Dec 2011, 18:51

Ап! Исправлено еще несколько ошибок, в том числе в слове listname( и добавлены новые слова:
LIST-- ( list -- ) Инициализировать пошаговый итератор первым элементом.
LIST[ ( -- list-pos ) Начать добавление элементов в список.
]LIST ( list-pos j*i list -- ) Закончить добавление элементов в список. Слово вычисляет число элементов, рказавшихся на стеке после слова LIST[ и добавляет их все в список в том порядке, в котором они следовали на стеке.

Использовать так:
Code: Select all
list[ 1 2 3 4 5 ]list
stringlist[ " string1" " string2"  " string3" ]stringlist

Или так:
Code: Select all
LIST[ 1 2 3 4 5 list ]LIST
LIST[ " string1" " string2"  " string3" stringlist ]LIST


И да, плагин выходит из статуса бета-версии.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Плагин lists.spf

Postby Morituruz » Wed, 21 Dec 2011, 19:01

VoidVolker wrote:И да, плагин выходит из статуса бета-версии.

ннкрон ругается на ошибку в строчке 204
Update: надо было автостроки повыше листов добавить :)
И почему вы упорно не добавляете -ROT в плагин?
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

PreviousNext

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests

cron