Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 17:30

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 122 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 9  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 27, 2010 10:40 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
обращаю внимание Хищника - форк интересен открытым исходником и наличем доступного автора


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 27, 2010 10:49 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
WingLion писал(а):
да, именно так!
Ну, и остальные варианты с алиасами для путей абсолютных - не должны пропадать

я так понимаю, что тогда надо четко задать порядок поиска, причем, сначала должно искаться относительно текущего исходного файла, а потом только относительно того места, где лежит исполнимый файл. Иначе гарантирована проблема с одинаковыми именами.


WingLion писал(а):
mOleg писал(а): ща подумаю, как лучше это сделать.
типа, как стек контекста -
стек путей поиска с добавлением/исключением при подключении файла/ попадании на конец подключаемого файла

дело в том, что стек источников уже имеется, можно убедиться, набрав:

SOURCE-NAME TYPE

;)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 27, 2010 11:25 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
короче, есть очень простой вариант:

\ подключить библиотеку с путем, относительно текущего подключаемого файла
\ не актит при работе в консоли!!!
: rel/ ( --> ) ParseFileName <# HOLDS SOURCE-NAME CUT-PATH HOLDS #} INCLUDED ;

дальше в файле пишем:

rel/ lib-a/some.f

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 27, 2010 11:46 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
дело в том, что стек источников уже имеется, можно убедиться, набрав:

SOURCE-NAME TYPE


Убедился. Только стек источников - это немного другое, нежели стек путей поиска

Стек источников для вложенных инклюдов нужен

А стек путей поиска нужен для удобства этих самых инклюдов в разветвленном проекте

кстати, тут подумалось, что собственно стек путей особо и не нужен, если путь есть в стеке источников его надо только оттуда выковырять и поиск с него начинать.

mOleg писал(а):
: rel/ ( --> ) ParseFileName <# HOLDS SOURCE-NAME CUT-PATH HOLDS #} INCLUDED ;


Возможно это оно и есть, если CUT-PATH из строки "STDIN" делает текущую папку

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 27, 2010 12:02 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
WingLion писал(а):
Убедился. Только стек источников - это немного другое, нежели стек путей поиска

совсем-совсем чуточку ;)

WingLion писал(а):
Стек источников для вложенных инклюдов нужен
А стек путей поиска нужен для удобства этих самых инклюдов в разветвленном проекте

1+1=10 :lol:
они, источники, представлены обычно своим именем, в том числе, содержащим место, в котором они лежат.
То есть, то, что нужно для определения относительного пути. Этим моментом я и воспользовался.

WingLion писал(а):
кстати, тут подумалось, что собственно стек путей особо и не нужен, если путь есть в стеке источников его надо только оттуда выковырять и поиск с него начинать.

именна! надо взять путь у последнего источника: SOURCE-NAME CUT-PATH и добавить к нему относительный путь к нужной либе.

WingLion писал(а):
mOleg писал(а): : rel/ ( --> ) ParseFileName <# HOLDS SOURCE-NAME CUT-PATH HOLDS #} INCLUDED ;
Возможно это оно и есть, если CUT-PATH из строки "STDIN" делает текущую папк

ну, во-первых, в консоли можно rel/ не пользовать, а пользовать обычный ./path/name.src
во-вторых, при желании можно ловить этот самый STDIN и вместо него подставлять ./
второй вариант мне нравится меньше ;)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн мар 29, 2010 10:49 
Не в сети
Аватара пользователя

Зарегистрирован: Вт сен 11, 2007 11:07
Сообщения: 187
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
вопрос писал(а):
ещё вот так (Борланд С++)
Q. What is a configuration file?
A. A configuration file tells Borland C++ what options to use as
defaults and where to look for its library and header files.


зря ты это приплёл. давай взглянем, например, хотя бы сюда:
http://stackoverflow.com/questions/179213/c-include-semantics
очень хороший ответ начинается со слов: '1. The include "" pattern is compiler-dependent'
но какой бы вариант ты не рассмотрел (1.a, 1.b, 1.c) оно так или иначе будет напоминать то, что хочет WingLion

там можно ещё глянуть соображения по пункту 2. ответа, где в том числе изгалаются опасения mOleg'a

как поступать с форком по итогу в данном случае - разговор отдельный, но то, что предлагает WingLion смысл имеет.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 30, 2010 19:24 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
garbler писал(а):
как поступать с форком по итогу в данном случае - разговор отдельный

вроде, решили в пользу rel/ и root/
в первом случае адресация относительно текущей папки подключаемого исходника (при любой вложенности папок)
во втором - относительно места расположения бинарного файл.
А NOTFOUND удален, чтобы небыло разночтений (то есть он есть, но подключается во внешней либе, т.е. вынесен из ядра).

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 31, 2010 17:17 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
mOleg писал(а):
вроде, решили в пользу rel/ и root/

В последней версии это есть?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 31, 2010 17:18 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
_Harry писал(а):
В последней версии это есть?

Я сегодня постараюсь дописать документацию и выложу.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 31, 2010 21:04 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
как и обещал, сборочку выложил
добавил описание работы (простенькое), надеюсь его хватит.
include.txt писал(а):
в данной Форт-системе примен оригинальный способ подключения исходных текстов.
В ядре системы по умолчанию имеется только слово INCLUDED, которое используется
следующим образом:

s" file.name" INCLUDED

указанный файл, если его размер не превышает размера свободной оперативной
памяти загружается целиком и транслируется. Если в памяти места не достаточно,
то файл транслируется построчно. Подключение файлов возможно по абсолютному
пути, а так же по относительному, т.е .\file.name относительно текущей папки.
Контроля повторного подключения исходных текстов при этом не производится,
поэтому о невозможности повторного подключения файла придется заботиться в
начале подключаемого файла, например:

?EXISTS WORDNAME \EOF

то есть, если слово WORDNAME найдено в контексте (!!!) считать весь текст
до конца файла коментарием, а если слово не обнаружено, текст до конца строки
игнорируется. Дополнительно смотрите слова ?WORD ADMIT ?ABSENT

Для более удобной работы с путями существует ./lib/util/path.fts
позволяющая задавать пути от каталога в котором находится исполнимый файл:
root/ path/file.name
а так же относительно текущей подключаемой библиотеки:
rel/ path/file.name
и кроме того path: позволяющего создавать свои короткие пути:
s" proj/name/" path: proj/
с последующим использованием в виде:
proj/ file.name

короткие пути для папок в .\lib\ определены в .\lib\ways.fts

Кроме того, имеется механизм, позволяющий подключать только уникальные
библиотеки описанным выше образом. Т.е. в начале каждого файла исходного
текста достаточно перечислить необходимые подключаемые библиотеки, и при
этом быть уверенным, что если библиотека уже загружена, повторного
подключения происходить не будет.
Для этого подключается ./lib/util/libraryes.fts
в последствии подключенные библиотеки можно увидеть с помощью слова LIBS

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 06, 2010 16:35 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
mOleg писал(а):
как и обещал, сборочку выложил

"...Случилось страшное..." :weep;
Файлы подключаемые через root/ и rel/
подключаются повторно :shock:
Это так задумано или ???

P.S.
Кстати неплохо было бы чтобы path: понимал rel/ и root/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 06, 2010 16:43 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
_Harry писал(а):
Файлы подключаемые через root/ и rel/
подключаются повторно
Это так задумано или ???

Да, действительно, ща буду править.

_Harry писал(а):
Кстати неплохо было бы чтобы path: понимал rel/ и root/

это как? можно подробнее?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 06, 2010 17:16 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
mOleg писал(а):
_Harry писал(а):
Кстати неплохо было бы чтобы path: понимал rel/ и root/

это как? можно подробнее?


s" rel/ MyRelPath\....." path: relpath/

s" root/ MyRootPath\....." path: rootpath/ - хотя это просто то что уже есть :roll:
а вот относительный короткий путь наверно был бы удобен.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 06, 2010 18:20 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
исправление повторного подключения привожу тут. Текст надо в path.fts заменить на следующий:

path.fts писал(а):
<pre>
\ 2008-03-07 ~mOleg
\ Сopyright [C] 2008 mOleg mOlegg@ya.ru
\ более короткая ссылка на библиотеки

?EXISTS path>/ \EOF

\ привести все '\' в '/'
: path>/ ( asc # --> asc # ) DDUP
OVER +
BEGIN DDUP < WHILE
DUP C@ [CHAR] \ = IF [CHAR] / OVER C! THEN
<C
REPEAT DDROP ;

ALSO ROOT DEFINITIONS

\ искать файл исходника относительно места расположения исполнимого файла
: root/ ( / file.src --> )
ParseFileName <# HOLDS ModuleDirName CUT-PATH HOLDS #}
path>/ INCLUDED ;

RECENT

root/ ./lib/util/libraryes.fts
root/ ./lib/stack/ladd.fts

VECT ON-LIB-NAME

ALSO HIDDEN DEFINITIONS

\ добавить к указанному пути внутри ./lib/ имя источника
: libpath+ ( asc # / file.ext --> asc # )
NEXT-WORD
DDUP S>L
<| s" ./" KEEPS DSWAP KEEPS KEEPS |>
\ AddLocation DDUP ?library IF DDROP ELSE LoadLibrary THEN
Requires
ON-LIB-NAME -lFrame
;

ALSO ROOT DEFINITIONS

\ создает слово, ищущее lib.ext в пути ./lib/path/
: path: ( "path" / lib.ext --> ) : SLIT, COMPILE libpath+ [COMPILE] ; ;

\ : ~ln ( l: [frame] # --> ) lFrame> TYPE CR ;
\ : ~req ['] ~ln IS ON-LIB-NAME ;

\ подключение исходника по относительному от текущего источника пути
: rel/ ( --> )
ParseFileName <# HOLDS SOURCE-NAME CUT-PATH HOLDS #}
path>/ Requires ;

0 WARNING CHANGE

\ искать файл исходника относительно места расположения исполнимого файла
: root/ ( / file.src --> )
ParseFileName <# HOLDS ModuleDirName CUT-PATH HOLDS #}
path>/ Requires ;

WARNING !

PREVIOUS RECENT

\EOF примеры:

s" lib/" path: lib/
s" lib/add/" path: add/

add/ for-next.fts
lib/ ex.fts

</pre>

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 06, 2010 20:35 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
_Harry писал(а):
s" rel/ MyRelPath\....." path: relpath/

именно в таком виде не получится, нужно как минимум не s" а к примеру p"
хотя, если думать дальше, то кавычки вобщем-то вообще не обязательны. корче, тут лучше подумать над синтаксисом аккуратно.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 122 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 9  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 41


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB