Михаил писал(а):
Локальные модули. Очень правильное расширение. Странно, что ни в одной из существующих реализаций этого не сделали.
в модуле-2 было. потом пропало. полагаю, в процессе фирменного виртовского упрощения.
Михаил писал(а):
За исключением объявления объектов и методов.
про них и речь.
Михаил писал(а):
Считаю, что такие объявления должны быть исключительно глобальными.
неудобно для walk pattern. когда у нас есть итератор, принимающий на вход нечто вроде:
Код:
TYPE
Walker = ABSTRACT RECORD END;
PROCEDURE (VAR self: Walker) Do*, NEW, ABSTRACT;
обычно `Do` здесь имеет смысл только в конкретной процедуре, и мусорить в глобальный нэймспейс этим неохота.
Михаил писал(а):
Вот, ещё. Очень непривычно выглядит Ваш вариант именования модулей - имя : имя : … имя. Может все таки двоеточие ‘:’ заменить на привычный слеж ‘/‘ ???.
как выше сказал поняш — это из OO2C. на самом деле в плане синтаксиса без разницы, что там ставить: двоеточие, слэш, точку. я сделал двоеточие потому что немного использовал OO2C, и привык. вообще, в одной из древних осей (rx, кажется, или vms) пути как раз двоеточием разделялись. будем считать, что это оммаж.
SovietPony писал(а):
Михаил писал(а):
Локальные модули. Очень правильное расширение. Странно, что ни в одной из существующих реализаций этого не сделали.
Хз. Сомнительное. Это примерно как с декларацией переменных по месту: вроде и полезно, но если уже нужно, то это знак жыра в процедуре и её надо разделить на кусочки.
По ощущениям режим видимости default из жабы был бы лучше ("публично внутри пакета").
в том и беда, что не делится из-за видимости. а для новой видимости у меня тупо сигилы закончились: плюс, минус, снежинка — заняты. если делать дефолтом «пакет видит всё» — то получаются и вложенности как у жабы: надо что-то лучше спрятать — рожаем подпакет. потом подпакет подпакета.
у меня ещё один скрытый мотив есть: `INCLUDE`. в O/Ur оно имеется. с вложеными модулями можно расширить инклюд параметрами типов (по сути, тупая замена токенов, как в сишных макросах) — и у нас будут бесплатные генерики. криво, но при наличии отстутствия остальной оберон-системы — допустимый хак, я считаю.