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

Реализовать поддержку модулей типа R #90

Closed
Mazdaywik opened this issue Mar 19, 2017 · 1 comment
Closed
Assignees
Labels

Comments

@Mazdaywik
Copy link
Member

Эта задача — подзадача для #76.

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

  • Формирование модулей типа R:
    • Поддержка опций --makelib и -R — формирование файла из RASL без префикса.
  • Загрузка при запуске:
    • Поддержка ключа --reference и комментариев //REFERENCE в утилите srmake-core.
    • Поддержка ключа --reference в srefc-core, запись блока REFERENCE в RASL.
    • Алгоритм поиска динамически загружаемых модулей в рантайме. Вероятно, потребуется некоторая переменная окружения, содержащая пути поиска по умолчанию.
    • С точки зрения загрузки RASL больших изменений не потребуется, поскольку выборочную выгрузку модуля делать не надо.
  • Загрузка во время выполнения:
    • Потребуется поддержка выгрузки модулей на уровне рантайма. Вероятное решение — счётчик ссылок для каждой функции для правильного освобождения памяти. Под эту схему, вероятнее всего, удастся подвести и замыкания, которые тоже станут дескрипторами функций.
    • Потребуется разработка и реализация API динамической загрузки. Тут образцом послужит API динамической загрузки POSIX.
@Mazdaywik Mazdaywik added the task label Mar 19, 2017
@Mazdaywik Mazdaywik added this to the Рефал-5λ milestone Mar 19, 2017
@Mazdaywik Mazdaywik self-assigned this Mar 19, 2017
Mazdaywik added a commit that referenced this issue May 21, 2017
Что изменилось в srmake-core:
* Во-первых, понимаются все новые опции командной строки.
* Во-вторых, извлекаются из файлов ключи //PREFIX и //REFERENCE.
* В-третьих, правильным образом формируется командная строка для srefc-core
  (который на данном этапе игнорирует новые опции).

Ссылки на задачи #89 и #90 добавлены, поскольку в них предполагалось
реализовать, соответственно, //PREFIX и //REFERENCE.
@Mazdaywik
Copy link
Member Author

Задача полностью выполнена.

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