Если кому-то нужно, я тут написал модуль, который некоторую информацию о системе из реестра цапает. Также я сделал обработку исключений на всякий случай Собственно вот: SystemInfo_2017g-16d-12m.rar (6,9 КБ) В тестере можно глянуть, как ошибки обрабатывать и какие методы есть в модуле. Все методы являются статическими, но зависят от реестра - я тут заметил, что после последних обновлений Win10 некоторые ключи переместились, поэтому пришлось исправлять => следите за этим при пользовании ) Всем добра:grinning:
Мы это отключили, поскольку было много желающих сделать наоборот
Я вот не понимаю таких (которые просили отключить) людей, зачем убирать опции? Ну не нравится - не пользуйся, другим то может нравится
Нет, вы не поняли, опции не было. Была баганутая фича, которая мало кому была нужна. А опция это настройка позволяющая у себя отключить.
Ааа, вон оно как) Я просто в школе мельком на PascalABC увидал эту штуку, а потом думал, что её убрали зачем-то (ну или забыли включить во время разработки PascalABC.net)
В Джулии есть Base и Core. По умолчанию к пользовательскому модулю подключаются Base и Core, но можно назначить свой модуль «голым» (baremodule
) и будет только Core с каким-то совсем минимальным минимумом. Я, правда, не смог найти выделенный список того, что там есть (тут вперемешку Base и Core). Если нужно что-то отдельное из Base, его можно явно импортировать.
Мы считаем, что к любой программе у нас добавляются только средства Core. Это прежде всего средства ввода-вывода. Кто-то может их считать Base, но это его частное мнение. Если говорить более просто, добавляется только то, что при недобавлении дестабилизировало бы компилятор.
В начале PABCSystem есть константа:
__IS_SYSTEM_MODULE = true;
Она нигде далее не используется, и из за того что находится в области интерфейса вместо области реализации - передаётся основной программе и всем модулям. Какой в ней смысл?
Она используется компилятором
А в раздел реализации никак? Внутренние константы передавать всему - не хорошо. И кстати:
//Маркер того, что это системный модуль
///--
const
END_OF_LINE_SYMBOL = #10;
__IS_SYSTEM_MODULE = true;
///--
в данном случае влияет только на строчку const
, то есть ни на что.
Короче, всех вывести во внутренний дворик и расстрелять!. Невиновных потом реабилитировать. Посмертно.
Не могу сказать. Разработчик, это делавший, больше не в команде. Надо разбираться. Мы вообще рассчитывали на помощь сообщества в таких случаях. Код открытый всё-таки
Если я перенесу эту строчку в раздел реализации, откомпилирую и закину новый 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
?
Я уже ответил - не знаю
Я скачал архив с гитхаба, распаковал его, заменил PABCSystem.pas
на новый в 3 местах(всё что нашло Ctrl+F). Затем запустил _GenerateAllSetups
из корневого каталога.
Что не так? На гитхабе не все файлы нужные для генерации релиза?
Посмотрите, где у Вас Студия установлена
Вы имеете в виду что надо все файлы с гитхаба закинуть в C:\Program Files (x86)\PascalABC.NET\
?
Нет. Посмотрите путь, где у Вас Студия установлена. И сравните с путём в bat-файле