Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Модули. Версия 2 #204

Open
pasaran opened this issue Aug 20, 2013 · 0 comments
Open

Модули. Версия 2 #204

pasaran opened this issue Aug 20, 2013 · 0 comments
Labels

Comments

@pasaran
Copy link
Owner

pasaran commented Aug 20, 2013

Хочется переделать схему подключения модулей.

Директива module остается, но с такими изменениями:

  • Если она отсутствует, то в файл foo.yate автоматически добавляется module "foo".
  • Если в файле присутствует module "foo", то имя файла должно быть foo.yate.
  • Если в файле присутствует module "foo/bar", то имя файла должно быть bar.yate и этот файл должен располагаться в папке foo. И т.д.

Директива import использует список папок, в которых нужно искать модули.
Его можно будет задать через специальный ключик. Как-то так:

yate -I .:foo/bar:/usr/share/yate test.yate

(вопрос: должна ли текущая папка автоматически попадать в этот список? видимо да, если он не задан?)

Ну и дальше строка из import "..." резолвится в файл. Этот файл ищется последовательно во всех указанных в -I папках.

В результате не нужно будет при компиляции указывать отдельным параметром .obj файлы и не нужно будет отдельно компилировать то, что импортится.
Встречаем import — ищем нужный файл, компилируем (если еще нет). Все.

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

На клиенте имя модуля по-прежнему будет использовать как ключ. Просто он будет соответствовать имени файла на файлсистеме.

Отдельный вопрос. Можно ли сделать так, что директива module будет не нужна совсем. Например:

yate -I. foo/bar.yate

и в foo/bar.yate не указан module "foo/bar" — но мы можем вычислить его автоматически по идее. Резолвим имя файла относительно указанные в -I директорий и все.
С другой стороны, явное задание, наверное лучше.

Еще вопрос. Должно ли совпадать то, что написано в module и import?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant