Снегопат

Обсуждение Снегопата
Текущее время: 22 ноя 2024, 18:34

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
СообщениеДобавлено: 21 июн 2016, 23:22 
Не в сети

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


Последний раз редактировалось syuzyov 21 июн 2016, 23:40, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 июн 2016, 23:32 
Не в сети

Зарегистрирован: 28 окт 2015, 08:17
Сообщения: 36
По репо:
- Не совсем понятны "двойные стандарты" для вывода 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);
                }
            }
+       }
    }


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 июн 2016, 23:36 
Не в сети

Зарегистрирован: 28 окт 2015, 08:17
Сообщения: 36
Для списка доступных аддинов нет кнопки "Обновить", что очень неудобно при отладке и разработке. Жить конечно и так можно, но хочется удобства.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 июн 2016, 23:39 
Не в сети

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 июн 2016, 23:45 
Не в сети

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 июн 2016, 23:47 
Не в сети

Зарегистрирован: 28 окт 2015, 08:17
Сообщения: 36
- Реализовать вызов стандартных лоадеров ровно так, как должен был бы регистрироваться любой новый лоадер. Не уверен, что понял все правильно, но мне показалось, что они регистрируются способом, не отраженным в документации.


Последний раз редактировалось syuzyov 22 июн 2016, 00:43, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 июн 2016, 23:54 
Не в сети

Зарегистрирован: 28 окт 2015, 08:17
Сообщения: 36
Остальное пока придержу :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2016, 23:01 
Не в сети

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июн 2016, 14:00 
Не в сети

Зарегистрирован: 28 окт 2015, 08:17
Сообщения: 36
Цитата:
Можешь еще кратенько описать схему загрузки снегопата?

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июн 2016, 15:25 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
Ну, всё-равно коротенько опишу.
Стартер запускает 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.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB