Проблема в том, что много кода продублировано, и переводить желательно синхронно. Примерный план:
* выявляем дублированные куски
* устраняем дублирование, где уместно, например, для констант sfType...
* где дублирование осталось, создаём N файлов переводов параллельно
Перевод модуля Reflection и связанных с ним
Re: Перевод модуля Reflection и связанных с ним
Какие модули правим, а какие - нет?
* Reflection = Рефлексия
* PodrobnajaPechatq = МетаПечать
* FoxIntermediateBackend/LisIntermediateBackend - не трогаем
* PCP.Mod (skipScope) - не трогаем
* ГрКодоступ..ПишиПеременные = Reflection..WriteVariables и иже
* LisInterpreterSymbols (sfProcedure, sfVariable) - вроде является клиентом рефлексии, можно не переводить
Вроде всё.
* Reflection = Рефлексия
* PodrobnajaPechatq = МетаПечать
* FoxIntermediateBackend/LisIntermediateBackend - не трогаем
* PCP.Mod (skipScope) - не трогаем
* ГрКодоступ..ПишиПеременные = Reflection..WriteVariables и иже
* LisInterpreterSymbols (sfProcedure, sfVariable) - вроде является клиентом рефлексии, можно не переводить
Вроде всё.
Последний раз редактировалось БудДен 20.05.23 11:45, всего редактировалось 1 раз.
Re: Перевод модуля Reflection и связанных с ним
Устраняем дублирование sfTypeBoolean и иже с ними:
* ✓ PodrobnajaPechatq - просто выкидываем везде свои константы и заменяем на константы из Reflection (подменяем прямо в местах использования)
* ✓ *IntermediateBackend - то же. Возникает зависимость от Reflection, ну и пусть.
После этого:
* ✓ (верю) убеждаемся, что эти константы определены только в одном месте
* ✓заводим или откапываем файл перевода для Reflection
* (нет - выкинул сами константы) переносим переводы констант в него
* ✓ переходим к поиску дублирующихся процедур (и там уже будут частично дублирующиеся файлы переводов)
* ✓ PodrobnajaPechatq - просто выкидываем везде свои константы и заменяем на константы из Reflection (подменяем прямо в местах использования)
* ✓ *IntermediateBackend - то же. Возникает зависимость от Reflection, ну и пусть.
После этого:
* ✓ (верю) убеждаемся, что эти константы определены только в одном месте
* ✓заводим или откапываем файл перевода для Reflection
* (нет - выкинул сами константы) переносим переводы констант в него
* ✓ переходим к поиску дублирующихся процедур (и там уже будут частично дублирующиеся файлы переводов)
Последний раз редактировалось БудДен 25.05.23 00:54, всего редактировалось 2 раза.
Re: Перевод модуля Reflection и связанных с ним
Остановился на том, что подтянул англоязычную ветку (main) до уровня русскоязычной, под Linux64. Теперь надо (в анголязычной ветке) переделать константы. Видимо, модуль рефлексии надо бы разбить на два, одна будет "образом рефлексии" и для компилятора должно быть достаточно её, а вторая будет давать реальный доступ к опасным возможностям.
Re: Перевод модуля Reflection и связанных с ним
Всё вроде перевелось, но обнаружилась взаимосвязь с модулем Heaps/Кучи. То ли перевод надо будет доделать, то ли заново делать. Посмотрим. Там важные элементы среды выполнения, у которых были плохие названия, вроде я работал над их улучшением и теперь они расползлись между МетаПечатью и Кучами. Возможно, придётся переделать (такое часто бывает).
Потом надо будет переименовать модули так, чтобы имена файлов совпадали с именами из русской версии.
Потом надо будет переименовать модули так, чтобы имена файлов совпадали с именами из русской версии.
Re: Перевод модуля Reflection и связанных с ним
Переименовываю, но ещё сколько-то осталось. А уже пора спать.