Releases: EvilBeaver/OneScript
v2.0.0
Версия 2.0.0
Версия нового поколения, основанная на современной платформе .NET.
За счет этого обеспечивается кроссплатформенность без использования Mono на Linux и MacOS.
Требования по адаптации
За счет новой базовой платформы, потеряна бинарная совместимость с существующими внешними компонентами (dll).
Требуется перекомпиляция компоненты под новую версию .net, как минимум, под слой совместимости netstandard 2.0
Изменения по сравнению с ознакомительной версией 2.0.0-rc.10
- Уточнена консольная справка по режимам работы
- Исправлена лишняя остановка отладчиком на заголовке цикла Для Каждого
- Исправлены шаги отладчика. Ранее, отладчик ошибочно не останавливался на строке КонецЦикла
- Добавлена поддержка потока в ЗаписьТекста
- Оптимизирована производительность рефлектора
- Оптимизирована производительность компилятора
- Оптимизирована производительность создания таблицы значений
- В отладчике теперь отображаются переменные уровня модуля (ранее отображались только локальные)
- Улучшена совместимость функции СтрНайти с платформой 1С
Большое спасибо @Mr-Rm, @dmpas, @Bayselonarrend за участие в этом релизе!
v1.9.4
Исправления ошибок
- Добавлена проверка типов при записи свойств (#1592)
- Исправлена ошибка "Несовпадение типов" при повторном вызове COM-методов, которые изменяют тип параметра внутри метода. Теперь при передаче параметров по ссылке (ByRef) в COM-объекты корректно обрабатывается изменение типа (например, из Неопределено в Массив) (#1597)
- Улучшена передача объектов в COM-методы: объектные типы теперь передаются без преобразования, что предотвращает потерю данных и ошибки несоответствия типов. Также корректно обрабатываются пропущенные (необязательные) параметры (#1588, #1597)
- Исправлена ошибка доступа по индексу при передаче параметров, которая могла приводить к исключениям при работе с коллекциями (#1590, #1429)
2.0.0-rc.8
Новое в версии 2.0.0-rc.8
- Заменена библиотека DotNetZip на форк ProDotNetZip из-за незакрытой уязвимости CVE-2024-48510
- Существенно ускорена компиляция большого числа модулей. Запуск тяжелых приложений с множеством классов стал намного быстрее.
- Доработан отладчик и сервер отладки, введен новый протокол обмена данными для отказа от BinaryFormatter в рамках перехода на net8
- Изменен формат конфигурации для включения лога отладки. См. каталог установки расширения и файл
VSCode.DebugAdapter.exe.config - Изменен вывод компилятора в случае ошибки. Изменена отметка отметка позиции ошибки в строке. Более точное позиционирование ошибки
Исправление ошибок
- Разрешены комментарии после аннотаций модуля
- Разрешено использование комментариев в строке с директивой Использовать
- Слово Ждать вне асинхронного метода не должно иметь специального значения
v2.0.0-rc.7
Новое в версии 2.0.0-rc.7
- Проведена масштабная доработка ядра в части управления потоками bsl и удаления глобальных статических классов.
- Нумерация версий ошибочно не соответствовала semver в части пре-релизного номера. Нумерация приведена к semver
- Полностью переписан генератор документации OneScriptDocumenter
- ВебСервер учитывает настройку FormOptions в appsettings.json
- Проведена оптимизация экранирования символов в ЗаписьJSON
Исправление ошибок
- Отладчик неверно шагает, не встает на строку КонецПроцедуры/Функции при обработке возврата
- Возвращено поведение загрузчика из версии 1 с приоритетом ключа lib.additional
- TestApp не добавлялся в состав дистрибутива SCD для Windows
- Поведение Соответствия с ключом Неопределено приведено к новым версиям платформы.
- Метод ЧтениеДанных.ПрочитатьБайт не выбрасывает исключение в конце потока
- Исправление английского варианта метода
КаталогПрограммы. Теперь используется совместимое с 1С названиеBinDir. Старый (неверный) вариантProgramDirectoryтакже поддерживаются с выдачей предупреждения
New Contributors
- @Bayselonarrend made their first contribution in #1533
v1.9.3
Новое в версии 1.9.3
Исправление ошибок
- #1478: Исправлена загрузка 32-битных внешних компонент NativeApi из ZIP-архива в 64-битной среде
- #1513: Исправлена прокси-библиотека NativeApi для 32-битной архитектуры
- #1498: Исключение не перехватывает попыткой в случае если была вложенная попытка
- #1409: Сохранять позицию при переводе ДвоичныхДанных в строку
- #1424: Рефлексия свойств у загруженного с контекстом сценария +тест
Доработки ядра (для пользователей, встраивающих oscript в приложения C#)
- Возможность прерывать главный цикл машины
- Фильтр типов при инициализации движка
Благодарности
Традиционная благодарность Михаилу Рыбакину (@Mr-Rm) за поиск и исправление ошибок.
Также, большое спасибо Антону Титовцу (@Bayselonarrend) за поиск ошибок в механизме внешних компонент NativeAPI
v2.0.0-rc6
Версия 2.0.0-rc6
Релиз является тестовым для выпуска финальной версии 2.0
Новые возможности
- Чтение конфигурации Kestrel из appsettings.json
- Добавлены методы явного указания wwwroot и content-root в вебсерере
- Добавлена возможность работы с данными форм в вебсервере.
- Метод для остановки веб-сервера
- Регистрация обработчика прерывания по Ctrl+C, теперь можно подписаться на событие Консоль.CancelKeyPressed.
- Теперь при выбросе исключения с передачей
ИнформацияОбОшибкев качестве параметра, создаётся новаяИнформацияОбОшибкекоторая содержит оригинальную информацию об ошибке в полеПричина - В конструктор ИнформацияОбОшибке, добавлен параметр "Причина" для возможности указания причины текущей ошибки
Исправление ошибок
- Исправлена загрузка 32-битных внешних компонент NativeApi из ZIP-архива в 64-битной среде
- Исправлен возврат объекта внешней компоненты NativeApi из bsl-метода
- Исправлен конфигурационный параметр runtime.default позволяющий выбрать способ исполнения (нативный или классический стековый)
- Исправлено сравнение значений при поиске в коллекцииях значений (строгое сравнение)
- Объект Действие не ломает отображение переменных в отладке
- Исправлена работа ЧтенияДанных из ДвоичныхДанных большого размера
- Некорректный парсинг Асинх и Ждать в обычном контексте
- Исправлена коммутативность сравнения булевых
- Исправлен английский синоним для Консоль.КодировкаВыходногоПотока
- Исправлено Вычислить() с именами параметров процедуры
- И многие другие
Огромное спасибо всем участвовавшим в выпуске релиза!
2.0.0-rc5
Версия 2.0.0-rc5
Релиз является тестовым для выпуска финальной версии 2.0
Новые возможности
- Добавлен встроенный http-сервер на базе Kestrel
- Добавлена функция остановки по условию при отладке
- Реализована возможность фильтрации точек остановы для исключений по тексту ошибки
- Существенно переработана внутренняя реализация "памяти" виртуальной машины
- Движок переведен на платформу .NET 6
- Возможность управления кодировкой дебаг консоли
Исправление ошибок
- fix #1411 расхождение английских алиасов для некоторых методов
- fix #1451: обновление глобального скоупа при загрузке внешнего модуля
- fix #1459: диагностика использования встроенной функции как процедуры
- fix #1441: функциональный вариант Новый с ФиксированнымМассивом +тест
- замена на системные функции
- fix #1429: некорректная привязка номера строки в тексте ошибки к строке исполняемого кода
- fix вывода сообщения об ошибке в условии брэйкпоинта
- fix #1418 отладчик одинаково реагирует на Stop и Disconnect, продолжая выполнение
- fix ошибки потери информации об ошибке при вычислении во фрейме
- fix #1427: исправление раскрутки стека при исключении в Выполнить
- fix #1419: не проверяются типы Перечислений при передаче их параметрами
- Свойство "Символы" было доступно для записи
- fix #1373, #1404 для v2: Ошибки чтения JSON
- fix #1396 В отладчике не показывается переменная, добавленная в "загрузить сценарий", как внешний контекст.
v1.9.2
Новое в версии 1.9.2
- В методе Добавить списка значений, параметр Значение необязательный (совместимость с 1С)
- Исправлено: Если функция Выполнить() обёрнута в Попытку, а в исполняемом коде возникает исключение, то информация об ошибке теряется, и возникает ошибка стека ВМ
- Исправлено: При вызове через COM пропущенные параметры получали значение Неопределено вместо значения по умолчанию
- Исправлено: Неверно работал метод ЧтениеJSON.Пропустить()
- Чтение JsonToken.Undefined сразу выбрасывает исключение
- Уточнены сообщения о неверных данных в json
- Существенно переработан алгоритм чтения JSON см. #1373
v1.9.1
v2.0.0-rc4
Новое в версии 2.0.0-rc4
Новые возможности
- Реализована возможность создавать собственные классы-коллекции, доступные к обходу в цикле Для Каждого
- Добавлена поддержка индексов в ТаблицеЗначений
- В Рефлектор добавлен метод
ИзвестныеТипы()который возвращает все зарегистрированные типы в виде ТаблицыЗначений - Реализован метод
БуферДвоичныхДанных.Разделить() - При вызове метода через Рефлектор контролируется сигнатура метода и количество параметров
- Добавлена возможность управления флагом "TCP_NODELAY" в объекте TcpClient
- Улучшена документация, добавлены инструкции по сборке в файл README
- В библиотеку парсера OneScript.Language добавлены синтаксические конструкции Асинх/Ждать и поддержка меток (Рантаймом не поддержано)
Исправление ошибок
- Исправлены различные ситуации вызова COM-методов, повышена стабильность работы с COM-объектами
- Исправлена ошибка при переопределении строкового представления объектов. В ряде случаев, переопределенное представление приводило к вызову другого метода
- Отладчик неверно работал с индексацией переменных и мог показывать неверные значения
- Для MacOSX и Linux изменено поведение запуска процесса в части разбора командной строки. (Experimental)
- И другие