You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Директива 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?
The text was updated successfully, but these errors were encountered:
Хочется переделать схему подключения модулей.
Директива
module
остается, но с такими изменениями:foo.yate
автоматически добавляетсяmodule "foo"
.module "foo"
, то имя файла должно бытьfoo.yate
.module "foo/bar"
, то имя файла должно бытьbar.yate
и этот файл должен располагаться в папкеfoo
. И т.д.Директива
import
использует список папок, в которых нужно искать модули.Его можно будет задать через специальный ключик. Как-то так:
(вопрос: должна ли текущая папка автоматически попадать в этот список? видимо да, если он не задан?)
Ну и дальше строка из
import "..."
резолвится в файл. Этот файл ищется последовательно во всех указанных в-I
папках.В результате не нужно будет при компиляции указывать отдельным параметром
.obj
файлы и не нужно будет отдельно компилировать то, что импортится.Встречаем
import
— ищем нужный файл, компилируем (если еще нет). Все.Плюс можно будет скомпилировать сразу пачку файлов, независимо от того, кто что импортирует.
На клиенте имя модуля по-прежнему будет использовать как ключ. Просто он будет соответствовать имени файла на файлсистеме.
Отдельный вопрос. Можно ли сделать так, что директива
module
будет не нужна совсем. Например:и в
foo/bar.yate
не указанmodule "foo/bar"
— но мы можем вычислить его автоматически по идее. Резолвим имя файла относительно указанные в-I
директорий и все.С другой стороны, явное задание, наверное лучше.
Еще вопрос. Должно ли совпадать то, что написано в
module
иimport
?The text was updated successfully, but these errors were encountered: