Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 01:22

...
Google Search
Forth-FAQ Spy Grafic

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




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

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


А зачем в резюме бред-то писать? :(

Прописывание путей в ini - это неправильный подход, когда перед компиляцией исходников требуются танцы с бубном вокруг форта.

в конце концов, форт для программиста или программист для форта?

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


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
я думаю, нелогично задавать какие-либо ограничения на пути поиска - может приводить к совершенно неожиданным проблемам.
Предположим, у нас есть не одна версия продукта, мы хотим провести мини- эксперимент - подверсию, в простом случае мы создаем папку, называем её "мини_эксп_26.03.10" и просто копируем туда весь проект ... и ?
и тут нам бы провести эксперимент, выяснить, что и как и оставить папку - вдруг ещё понадобится. Дак вот нет - нужно ведь править все пути


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

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

Там, как раз речь о том, чтобы никаких путей править не приходилось!
Скопировал проект в другую папку и все! А в исходниках используются только _относительные_ пути! Относительно корня исходника, а не вокруг марсианской венеры...

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

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


Последний раз редактировалось WingLion Сб мар 27, 2010 00:20, всего редактировалось 1 раз.

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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
ещё вот так (Борланд С++)
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.


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

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

Речь не о C++, а о форте... при чем конкретной реализации!

И о том, что программист _НЕ ДОЛЖЕН_ делать ту работу, которую может делать компьютер!

Вот, представим себе дерево проектов:
Код:
project
    subproject1
        subsubproject1
        subsubproject2
    subproject2
        subsubproject4
        subsubproject3
    subproject3
        subsubproject5
        subsubproject999


В каждом проекте все подгрузки файлов происходят относительно корня проекта.

И представьте себе этот самый борланд, которому по каждому (под)проекту надо все опции мышизмом устанавливать.
Мало того, что руки устанут, так еще и пропустить что-нибудь можно очень легко!

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


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
пытаюсь посмотреть ещё компиляторы - не С++ - как же там сделано?
вот СПФ :o

Цитата:
Пути поиска файлов для INCLUDED

S" file.f" INCLUDED будет искать в перечисленных ниже местах в именно таком порядке
короткое имя файла file.f (т.е. в текущем каталоге)
PATH_TO_SPF.EXE/devel/file.f (т.о. удобно использовать чужие наработки),
PATH_TO_SPF.EXE/file.f (так подключаются стандартные либы и другие файлы из поставки SPF).

Если требуется указать больше путей поиска (например использовать форт код разделяемый между системами, или неважно - любой код вне дерева каталогов SPF который не может быть адресован относительно текущего файла), то можно либо переопределить FIND-FULLNAME (который VECT) либо использовать внешнюю либу - ~ygrek/spf/included.f.

TODO: Вынести отдельно

Тогда потребуется только прописать в spf4.ini
~ygrek/spf/included.f
with: my_path\
S" my path with spaces/" with

и все файлы будут искаться в my_path в дополнение к описанному выше алгоритму (my_path может быть как абсолютным так и относительно spf.exe).

что тут не так?


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

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


Не так в первую очередь то, что "я про фому, а вы про ерему" :(

Речь не о чистом SPF, а о Fork-е, в котором поиск файлов перекопан на корню...

И хочется, чтобы он был докопан, если не до алмазов, то хотя бы до прозрачных стеклышек

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


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

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


Не так в первую очередь то, что "я про фому, а вы про ерему" :(

Речь не о чистом SPF, а о Fork-е, в котором поиск файлов перекопан на корню...

И хочется, чтобы он был докопан, если не до алмазов, то хотя бы до прозрачных стеклышек

Так я не против. Дело за mOleg'om


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

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

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

может все-таки проще так?:

.\lib\util\path.fts \ обычно подключается в ini файле.
s" winglion\\lib" path: wl/

и дальше подключаешь свои либы:

wl/ libname.frt

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

а вообще работа с библиотеками вынесена из ядра в
util/ libraryes.fts

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


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

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


A это то тут при чем? :(


mOleg писал(а):
может все-таки проще так?:

.\lib\util\path.fts \ обычно подключается в ini файле.
s" winglion\\lib" path: wl/


Это совсем не проще. Это расчет на то, что у меня проект только один, и ничем другим я заниматься не смогу, когда пути настроены под него. Если же в настройки путей разные проекты натолкать, тогда да, начнется дурацкая проблема из-за одноименных файлов, в разных проектах, которые будут грузиться не так как надо, а как попало :(


mOleg писал(а):
и дальше подключаешь свои либы:

wl/ libname.frt


В исходниках я свои либы подключаю не брезгуя нормальными путями

Вот, например, мой файл make.f той програмы, которой я вчера занимался:

Код:
  libs\includes.f

  target\inits.f
  target\mifgen.f
  target\target.f
  target\equinox.f

  src\myprog.f

MIF-GEN

BYE


Пути относительно корня проекта. Внутри includes.f
встречаются строчки типа:
branch/ doloop.fts
memory/ cmove.fts
которые нормально отрабатываются так как надо

А вот, если бы в target.f вставить строчку вроде
addons\labels.f
тогда и начинаются пляски с нот-фаундами.
Хотя, при запуске Fork-a изнутри папки target для тестирования того, что же я там написал, addons\labels.f
прекрасно загружается без всякого прописывания путей где-то в ini.

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


Относительные пути внутри проекта прописываются.
А прописывать абсолютные пути - это изврат. Потому что проект у меня постоянно перемещается.
из одной папки в другую, из другой в третью, из третьей в папку на соседнем компе в 25 минутах ходьбы от дома и т.д. и т.п.

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

mOleg писал(а):
а вообще работа с библиотеками вынесена из ядра в
util/ libraryes.fts


Опять же, речь не о библиотеках сейчас. Библиотеки форка нормально грузятся, по "полным (или алиасным) путям".
Речь о том, что файлы проекта должны быть доступны без каких-либо правок, если проект переносится в другую папку, на другой диск/комп и т.д. т.п.

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


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

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

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

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

WingLion писал(а):
mOleg писал(а): может все-таки проще так?:
.\lib\util\path.fts \ обычно подключается в ini файле.
s" winglion\\lib" path: wl/

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

ты тут не понял (мне так кажется).
Давай на примере.
У тебя есть проект и у него есть отдельный каталог:
project-a
в нутри него есть главный подключаемый файл и несколько папок с библиотеками:
.\lib-a
.\lib-b
.\main.f
ты хочешь, чтобы тебе было просто подключать как файлы из библиотек компилятора так и из своих lib-a и lib-b

я предлагаю в начале файла main.f написать:
s" .\\project" path: proj\

и дальше писать:
proj\ lib-a\some.f
proj\ lib-b\another.f

либо, еще более короткий вариант:
s" .\\project\\lib-a" path: lib-a\
s" .\\project\\lib-b" path: lib-b\

и дальше подключать все:
lib-a\ some.f
lib-b\ another.f

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

Относительные пути внутри проекта прописываются.
А прописывать абсолютные пути - это изврат. Потому что проект у меня постоянно перемещается.
из одной папки в другую, из другой в третью, из третьей в папку на соседнем компе в 25 минутах ходьбы от дома и т.д. и т.п.

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

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


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

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

0. строим тестовую структуру папок:

c:\forth\example\ - корневая папка данного примера
c:\forth\example\target\ - папка некоего "подпроекта", который я в проект example просто скопировал
c:\forth\example\target\addons\ - дополнительная папка, "собственность" подпроекта

эксперимент 1
1. в папку addons\ я помещаю файл labels.f в котором одна строка

Код:
s" файл labels.f загрузился нормально" TYPE

запуск
c:\forth\example\target\addons\> c:\forth\fork\fork.exe labels.f

( строку запуска пишу с указанием текущей папки для ясности)

получаю результат - напечатанная строчка:

файл labels.f загрузился нормально

2. в папке c:\forth\example\target\ делаю файл test.f
в котором пишу:

addons\labels.f

запускаю из папки target:

c:\forth\example\target\> c:\forth\fork\fork.exe test.f

получаю то же самое

теперь перехожу в папку

c:\forth\example\ и запускаю

c:\forth\example\> c:\forth\fork\fork.exe target\test.f

addons/labels.f
Ошибка: Системе не удается найти указанный путь.

если я в корне проекта напишу исходник, в котором есть строчка:

target\test.f

будет тот же вылет...

если использовать

s" addons\labels.f " includes в файле test.f

будет то же самое.

Теперь о том, почему мне такая ситуация не нравится?

1. Я протестировал свой исходник (проект, что в папке target\) он работает как надо, когда файлы вызываются из его корня.
2. Мне понадобилось его подключить к другому проекту, но не так, чтобы там выпистывать абсолютные пути, ( к тому же они сейчас и не сработают, потому что внутри подключаемого проекта пути относительные ) И надо, чтобы это происходило без каких либо проблем, когда подключаемый проект уже отлажен и работает сам по себе.

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


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

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


И в куче других подпроектов, которые я захочу к корневому проекту подключить простым копированием сорцов :(

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


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

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

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


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

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

да, именно так!
Ну, и остальные варианты с алиасами для путей абсолютных - не должны пропадать

mOleg писал(а):
ща подумаю, как лучше это сделать.


типа, как стек контекста -
стек путей поиска с добавлением/исключением при подключении файла/ попадании на конец подключаемого файла

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


Последний раз редактировалось WingLion Сб мар 27, 2010 10:33, всего редактировалось 1 раз.

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

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


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

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


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

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