Замечания и предложения

Если кому-то нужно, я тут написал модуль, который некоторую информацию о системе из реестра цапает. Также я сделал обработку исключений на всякий случай :slight_smile: Собственно вот: SystemInfo_2017g-16d-12m.rar (6,9 КБ) В тестере можно глянуть, как ошибки обрабатывать и какие методы есть в модуле. Все методы являются статическими, но зависят от реестра - я тут заметил, что после последних обновлений Win10 некоторые ключи переместились, поэтому пришлось исправлять => следите за этим при пользовании ) Всем добра:grinning:

Мы это отключили, поскольку было много желающих сделать наоборот

3 лайка

Я вот не понимаю таких (которые просили отключить) людей, зачем убирать опции? Ну не нравится - не пользуйся, другим то может нравится :worried:

Нет, вы не поняли, опции не было. Была баганутая фича, которая мало кому была нужна. А опция это настройка позволяющая у себя отключить.

Ааа, вон оно как) Я просто в школе мельком на PascalABC увидал эту штуку, а потом думал, что её убрали зачем-то (ну или забыли включить во время разработки PascalABC.net)

@Admin

В Джулии есть Base и Core. По умолчанию к пользовательскому модулю подключаются Base и Core, но можно назначить свой модуль «голым» (baremodule) и будет только Core с каким-то совсем минимальным минимумом. Я, правда, не смог найти выделенный список того, что там есть (тут вперемешку Base и Core). Если нужно что-то отдельное из Base, его можно явно импортировать.

1 лайк

Мы считаем, что к любой программе у нас добавляются только средства Core. Это прежде всего средства ввода-вывода. Кто-то может их считать Base, но это его частное мнение. Если говорить более просто, добавляется только то, что при недобавлении дестабилизировало бы компилятор.

1 лайк

В начале PABCSystem есть константа: __IS_SYSTEM_MODULE = true; Она нигде далее не используется, и из за того что находится в области интерфейса вместо области реализации - передаётся основной программе и всем модулям. Какой в ней смысл?

Она используется компилятором

А в раздел реализации никак? Внутренние константы передавать всему - не хорошо. И кстати:

//Маркер того, что это системный модуль
///--
const
  END_OF_LINE_SYMBOL = #10;
  __IS_SYSTEM_MODULE = true;

///-- в данном случае влияет только на строчку const, то есть ни на что.

Короче, всех вывести во внутренний дворик и расстрелять!. Невиновных потом реабилитировать. Посмертно.

1 лайк

Не могу сказать. Разработчик, это делавший, больше не в команде. Надо разбираться. Мы вообще рассчитывали на помощь сообщества в таких случаях. Код открытый всё-таки

1 лайк

Если я перенесу эту строчку в раздел реализации, откомпилирую и закину новый psu куда надо - я найду все возможные ошибки или что ещё тестировать надо?

Трудно сказать. Надо по крайней мере пересобрать проект, запустив GenerateAllSetups.bat. Потом, если тесты пройдет, - надо поработать какое-то время со средой - всё ли в порядке

Вот что в коде:

        internal bool IsSystemUnit
        {
            get
            {
                TreeConverter.SymbolInfo si = namespaces[0].findFirstOnlyInNamespace(TreeConverter.compiler_string_consts.system_unit_marker);

Надо проверить дебаггером, что такое namespaces[0] - и если эта строчка будет верно работать после переноса (что вряд ли), - то да - можно переносить

А как насчёт or ModuleName = 'PABCSystem'?)) Тоже костыль но не такой ужасный. А ещё, для чего нужен IsSystemUnit?

Я уже ответил - не знаю

1 лайк

Я скачал архив с гитхаба, распаковал его, заменил PABCSystem.pas на новый в 3 местах(всё что нашло Ctrl+F). Затем запустил _GenerateAllSetups из корневого каталога.

Что не так? На гитхабе не все файлы нужные для генерации релиза?

Посмотрите, где у Вас Студия установлена

Вы имеете в виду что надо все файлы с гитхаба закинуть в C:\Program Files (x86)\PascalABC.NET\?

Нет. Посмотрите путь, где у Вас Студия установлена. И сравните с путём в bat-файле