Снегопат
https://snegopat.ru/forum/

Изучение реборна: вопросы и пожелания
https://snegopat.ru/forum/viewtopic.php?f=3&t=720
Страница 1 из 1

Автор:  syuzyov [ 21 июн 2016, 23:22 ]
Заголовок сообщения:  Изучение реборна: вопросы и пожелания

В ходе изучения реборна повились некоторые вопросы и предложения, начну с общего.
- Как лучше оформлять иши и предложения? https://snegopat.ru/main/reportlist? Или http://snegopat.ru:9005/ticket?
- Если случайно доведется сделать что-то полезное, pull requests принимаются? Если да, то какой регламент? Какие требования?

Автор:  syuzyov [ 21 июн 2016, 23:32 ]
Заголовок сообщения:  Re: Изучение реборна: вопросы и пожелания

По репо:
- Не совсем понятны "двойные стандарты" для вывода js-скриптов в репо: имхо или все аддины должны иметь list-описания, или должна быть возможность выводить аддины со всеми пооддерживаемыми расширениями. В любом случае кажется полезным для RepoSystem поддержать возможность указания нескольких расширений в mskForAuto. Для себя сделал так:
Код:
class RepoSystem {
    ...
    processRootFolder(maskForAuto: string, isStd: boolean) {
+       var masksArray = maskForAuto.split(/\s*;\s*/);
+       for (var maskidx = 0; maskidx < masksArray.length; maskidx++) {
            var files = FindFiles(this.root.path, masksArray[maskidx], false);
            for (var idx = 0; idx < files.Count(); idx++) {
                var file = files.Get(idx);
                if (file.Exist() && file.IsFile()) {
                    this.processScriptFile(file, this.root, isStd);
                }
            }
+       }
    }

Автор:  syuzyov [ 21 июн 2016, 23:36 ]
Заголовок сообщения:  Re: Изучение реборна: вопросы и пожелания

Для списка доступных аддинов нет кнопки "Обновить", что очень неудобно при отладке и разработке. Жить конечно и так можно, но хочется удобства.

Автор:  syuzyov [ 21 июн 2016, 23:39 ]
Заголовок сообщения:  Re: Изучение реборна: вопросы и пожелания

Для списка аддинов напрашивается кнопка "Новый", по которой будет запрошено описание для нового скрипта (поля engine, uname, dname и т.д. в человеческом виде), затем сгенерирован текст шаблона скрипта, с сохранением в develop или custom на выбор.

Автор:  syuzyov [ 21 июн 2016, 23:45 ]
Заголовок сообщения:  Re: Изучение реборна: вопросы и пожелания

По лоадерам:
- Напрашивается вынесение лоадеров в отдельный класс (еще желательно и в отдельный каталог в фс): до меня суть лоадеров как сущности дошла только после дополнительных разъяснений. Не думаю, что найдется много гениев, все схватывающих на лету, а порог для понимания реборна и так достаточно высокий оказался.

Автор:  syuzyov [ 21 июн 2016, 23:47 ]
Заголовок сообщения:  Re: Изучение реборна: вопросы и пожелания

- Реализовать вызов стандартных лоадеров ровно так, как должен был бы регистрироваться любой новый лоадер. Не уверен, что понял все правильно, но мне показалось, что они регистрируются способом, не отраженным в документации.

Автор:  syuzyov [ 21 июн 2016, 23:54 ]
Заголовок сообщения:  Re: Изучение реборна: вопросы и пожелания

Остальное пока придержу :)

Автор:  syuzyov [ 23 июн 2016, 23:01 ]
Заголовок сообщения:  Re: Изучение реборна: вопросы и пожелания

syuzyov писал(а):
По лоадерам:
- Напрашивается вынесение лоадеров в отдельный класс (еще желательно и в отдельный каталог в фс): до меня суть лоадеров как сущности дошла только после дополнительных разъяснений. Не думаю, что найдется много гениев, все схватывающих на лету, а порог для понимания реборна и так достаточно высокий оказался.

По мере изучения as-части все встало на свои места - я просто не понимал, что сделано в dll, а что в as, сейчас уже более-менее ориентируюсь (понял, что сам дурак :) ).
Можешь еще кратенько описать схему загрузки снегопата? В целом порядок такой: starter.exe -> snegopat.dll, -> as. Хотелось бы понять, какие модули и функции в as дергаются при загрузке dll, и в каком порядке, ну то есть получить общее представление о том, когда и где as начинает работать. В первую очередь хотелось бы понять, откуда начинается исполнение as вообще. Это, конечно, не горит, пока приоритет - адаптация односкриптовой обертки.

Автор:  syuzyov [ 24 июн 2016, 14:00 ]
Заголовок сообщения:  Re: Изучение реборна: вопросы и пожелания

Цитата:
Можешь еще кратенько описать схему загрузки снегопата?

В связи с появлением отладчика as вопрос снимается, спасибо.

Автор:  orefkov [ 24 июн 2016, 15:25 ]
Заголовок сообщения:  Re: Изучение реборна: вопросы и пожелания

Ну, всё-равно коротенько опишу.
Стартер запускает 1С, внедряя туда inject.dll. Инжектор, если 1С запускается в режиме конфигуратора, загружает snegopat.dll. Если 1С запускает дочерний процесс с именами 1cv8.exe, 1cv8s.exe, 1cv8c.exe, 1cestart.exe - снова внедряет туда себя же. Потому многие антивиры на него и ругались.

snegopat.dll при загрузке начинает через WinAPI отслеживать создание процессом окон, и когда создается окно с классом V8NewLocalFrameBaseWnd (это окно заставки 1С):
- отключает мониторинг создания окон
- подцепляет к окну заставки свою надпись
- инициализирует движок AS
- регистрирует в движке AS свою реализацию API для работы из AS со строками (тип string), с COM (Variant, Dispatch и т.п.), ActiveScript Engine.
- обработав файлы *.v из core\v8api, создает для движка AS прослойку для вызовов методов из 1Сных дллок
- загружает все файлы *.as из каталогов core\engine и mods в единый модуль на AS и компилит его. В процессе компиляции для глобальных объектов AS, имеющих конструкторы - они вызываются.
- вызывает функцию main из этого скомпиленного модуля.
Всё остальное уже рулится через AS.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/