EvilBeaver / OneScript

Исполняющая среда скриптов на языке 1С
http://oscript.io
Mozilla Public License 2.0
481 stars 107 forks source link

Урезанная сборка OS2 для использования в конечных продуктах #1467

Open Bayselonarrend opened 1 month ago

Bayselonarrend commented 1 month ago

Описание задачи

Если есть простой способ это сделать, то добавить вариант сборки OneScript 2.0 с исключением различных дев dll по типу дебаггера, диагностик и пр. Это было бы удобно для включения независимых сборок OS в состав пакетов и установщиков конечных продуктов, для которых 90 мб это ту мач

Опишите решение Создавать zip/deb/rpm OneScript-а с уменьшенным набором dll и весом, файлы которого можно было бы положить рядом с библиотекой уже в своем zip/deb/rpm и получить полноценный варез

Дополнительная информация Если бы еще можно было по коду скрипта определять набор используемых dll - вообще было бы супер)

EvilBeaver commented 1 month ago

Есть нугет-пакеты с отдельно дебаггером, отдельно стандартной библиотекой и т.п. Не очень понял цель - что нужно получить? Малый дистрибутив это FDD-вариант, около 10 Мб

Bayselonarrend commented 1 month ago

Не очень понял цель - что нужно получить?

Малый (скорее меньший, чем обычный) дистрибутив, но не FDD)

Bayselonarrend commented 1 month ago

Условно, у меня есть, например, deb пакет, который при распаковке кладет следующее:

  1. /usr/share/{имя приложения}/bin - тут лежит oscript
  2. /usr/share/{имя приложения}/lib - тут лежат нужные .os
  3. /usr/bin/{имя приложения} - тут просто .sh, который запускает oscriptом из п.1 .os из п.2

Но oscript из п1, если класть его какой он сейчас, очень большой. В rc-4 он как бы еще 70 мб - 30 в пакете, но rc-5 уже под сотку. Я из него конечно ASP вырезал и стало меньше) Но просто стало интересно, есть ли возможность вырезать из него что-нибудь такое, что используется только при разработке, но не нужно если подразумевается только запуск

EvilBeaver commented 4 weeks ago

есть ли возможность вырезать из него что-нибудь такое, что используется только при разработке, но не нужно если подразумевается только запуск

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

Bayselonarrend commented 4 weeks ago

Технически, можно удалить любые dll, которые не используются в рантайме, а только упомянуты в зависимостях

А где можно посмотреть какие есть какие?