diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml
index ea0b66d77..1451ca11a 100644
--- a/.github/workflows/sonar.yml
+++ b/.github/workflows/sonar.yml
@@ -11,7 +11,7 @@ jobs:
if: (github.repository == 'EvilBeaver/OneScript' ) && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name)
steps:
- name: Set up JDK 17
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
java-version: 17
distribution: temurin
diff --git a/Build_Core.csproj b/Build.csproj
similarity index 99%
rename from Build_Core.csproj
rename to Build.csproj
index 94e4a1c82..93eb134ab 100644
--- a/Build_Core.csproj
+++ b/Build.csproj
@@ -295,6 +295,7 @@
+
+
diff --git a/Jenkinsfile b/Jenkinsfile
index 94be3b1f1..b964c0e6b 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -58,7 +58,7 @@ pipeline {
bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" src/1Script.sln /t:restore && mkdir doctool"
bat "chcp $outputEnc > nul\r\n dotnet publish src/OneScriptDocumenter/OneScriptDocumenter.csproj -c Release -o doctool"
- bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build_Core.csproj /t:CleanAll;PrepareDistributionFiles;CreateNuget"
+ bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build.csproj /t:CleanAll;PrepareDistributionFiles;CreateNuget"
stash includes: 'tests, built/**', name: 'buildResults'
}
@@ -126,7 +126,7 @@ pipeline {
deleteDir()
}
unstash 'buildResults'
- bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build_Core.csproj /t:Test"
+ bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build.csproj /t:Test"
junit 'tests/*.xml'
}
@@ -136,7 +136,7 @@ pipeline {
stage('Linux testing') {
agent{
docker {
- image 'mcr.microsoft.com/dotnet/sdk:5.0'
+ image 'mcr.microsoft.com/dotnet/sdk:6.0'
label 'linux'
}
}
@@ -187,16 +187,20 @@ pipeline {
unstash 'buildResults'
unstash 'nativeApiSo'
- bat 'xcopy output\\na-proxy\\*64.so built\\linux-64\\bin\\'
+ bat '''
+ chcp 65001 > nul
+ dir output\\na-proxy
+ xcopy output\\na-proxy\\*64.so built\\linux-x64\\bin\\ /F
+ '''.stripIndent()
script
{
if (env.BRANCH_NAME == "preview") {
echo 'Building preview'
- bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build_Core.csproj /t:PackDistributions /p:Suffix=-pre%BUILD_NUMBER%"
+ bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build.csproj /t:PackDistributions /p:Suffix=-pre%BUILD_NUMBER%"
}
else{
- bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build_Core.csproj /t:PackDistributions"
+ bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build.csproj /t:PackDistributions"
}
}
archiveArtifacts artifacts: 'built/**', fingerprint: true
@@ -213,7 +217,7 @@ pipeline {
agent { label 'master' }
steps {
-
+ cleanWs()
unstash 'dist'
unstash 'vsix'
diff --git a/README.md b/README.md
index 7737b5d62..25bf3d5c1 100644
--- a/README.md
+++ b/README.md
@@ -47,10 +47,57 @@ OneScript позволяет создавать и выполнять текст
- выполнить команду `mono ovm.exe use stable`
- перезапустить терминал
-Донастройка Self-Contained варианта поставки (не требующего инсталляции dotnet)
+#### Донастройка Self-Contained варианта поставки (не требующего инсталляции dotnet)
```
chmod +x ./oscript
xattr -d com.apple.quarantine *.dylib oscript
codesign -s - ./oscript
```
+
+
+# Ручная локальная сборка
+
+## Подготовка
+
+Ниже приведены ссылки на дистрибутивы, однако, учтите, что ссылки могут меняться со временем и их актуальность не гарантируется. Нужен dotnet SDK и компилятор C++, скачать можно из любого места, которое нагуглится.
+
+* Установить [MS BuildTools](https://visualstudio.microsoft.com/ru/thank-you-downloading-visual-studio/?sku=buildtools&rel=16), при установке включить таргетинг на .net6, .net4.8, установить компилятор C++.
+
+## Сборка
+
+Запустить Developer Command Prompt (появится в меню Пуск после установки MSBuildTools или Visual Studio). Перейти в каталог репозитория OneScript. Далее приведены команды в консоли Developer Command Prompt
+Сборка выполняется с помощью msbuild. Таргеты:
+
+* CleanAll - очистка результатов предыдущих сборок
+* BuildAll - подготовить файлы для поставки
+* MakeCPP;MakeFDD;MakeSCD;BuildDebugger - отдельные таргеты сборки для подготовки разных типов поставки
+* PrepareDistributionFiles - сборка полных пакетов поставки (включая библиотеки)
+* PackDistributions - подготовка ZIP архивов поставки
+* CreateNuget - создать пакеты для публикации в NuGet
+
+**Параметры сборки**
+
+* VersionPrefix - префикс номера релиза, его основная часть, например, 2.0.0
+* VersionSuffix - суффикс номера, который обычно выступает в качестве произвольного суффикса версионирования по semver, например, beta-786 (необязателен)
+* NoCppCompiler - если True - не установлен компилятор C++, в сборку не будут добавлены компоненты C++ (поддержка NativeApi)
+
+Все поставляемые файлы будут размещены в каталоге `built` в корне репозитория 1Script
+
+### Сборка содержимого дистрибутивов в отдельном каталоге
+
+```bat
+msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles
+```
+
+### Сборка с ручным указанием версии
+
+```bat
+msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles /p:VersionPrefix=2.0.0
+```
+
+### Сборка ZIP-дистрибутивов
+
+```bat
+msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles;PackDistributions /p:VersionPrefix=2.0.0 /p:VersionSuffix=preview223
+```
\ No newline at end of file
diff --git a/install/opm.ospx b/install/opm.ospx
index 661b6ff2b..5fd862e52 100644
Binary files a/install/opm.ospx and b/install/opm.ospx differ
diff --git a/install/package-loader.os b/install/package-loader.os
index ae2b4a3ec..915c41a15 100644
--- a/install/package-loader.os
+++ b/install/package-loader.os
@@ -106,6 +106,9 @@
КаталогиМодулей.Добавить(ОбъединитьПути(Путь, "src", "Модули"));
КаталогиМодулей.Добавить(ОбъединитьПути(Путь, "src", "Modules"));
+ КаталогиВК = Новый Массив;
+ КаталогиВК.Добавить(ОбъединитьПути(Путь, "Components"));
+ КаталогиВК.Добавить(ОбъединитьПути(Путь, "Компоненты"));
Для Каждого мКаталог Из КаталогиКлассов Цикл
@@ -118,6 +121,12 @@
ОбработатьКаталогМодулей(мКаталог, СтандартнаяОбработка, Отказ);
КонецЦикла;
+
+ Для Каждого мКаталог Из КаталогиВК Цикл
+
+ ОбработатьКаталогВК(мКаталог, СтандартнаяОбработка, Отказ);
+
+ КонецЦикла;
КонецПроцедуры
@@ -161,6 +170,75 @@
КонецПроцедуры
+// По соглашению ВК должны лежать в подпапках, названных, как значения перечисления ТипПлатформы.
+// Имя файла, являющегося внешней компонентой должно иметь префикс 1script_
+// Components
+// net4 (фреймворк .net48
+// 1script_barcode.dll
+// dotnet (.net современных версий, он же netcore)
+// 1script_barcode.dll
+// NativeApi
+// Windows_x86
+// 1script_barcode.dll
+// Windows_x86_64
+// 1script_barcode.dll
+// Linux_x86_64
+// 1script_barcode.so
+// остальные не поддерживаются (ЖВПР)
+//
+Процедура ОбработатьКаталогВК(Знач Путь, СтандартнаяОбработка, Отказ)
+
+ СИ = Новый СистемнаяИнформация();
+ МажорнаяВерсия = Лев(СИ.Версия,1);
+
+ Если МажорнаяВерсия = "1" Тогда
+ ОбработатьБиблиотекиCLR(ОбъединитьПути(Путь, "net4"));
+ ИначеЕсли МажорнаяВерсия = "2" Тогда
+ ОбработатьБиблиотекиCLR(ОбъединитьПути(Путь, "dotnet"));
+ Иначе
+ Вывести("Неизвестная мажорная версия системы: " + МажорнаяВерсия);
+ КонецЕсли;
+
+ ОбработатьКомпонентыNativeApi(Путь);
+
+КонецПроцедуры
+
+Процедура ОбработатьБиблиотекиCLR(Путь)
+ КандидатыВКомпоненты = НайтиФайлы(Путь, "1script_*.dll");
+ Для Каждого Кандидат Из КандидатыВКомпоненты Цикл
+ Если Не Кандидат.ЭтоФайл() Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Вывести("Загружаю файл " + Кандидат.Имя);
+ ЗагрузитьБиблиотеку(Кандидат.ПолноеИмя);
+
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура ОбработатьКомпонентыNativeApi(Путь)
+ СИ = Новый СистемнаяИнформация;
+ ИмяПодкаталога = ОбъединитьПути(Путь, Строка(СИ.ТипПлатформы));
+ Вывести("Ищу внешние компоненты в каталоге " + Путь);
+
+ #Если Windows Тогда
+ Расширение = ".dll";
+ #Иначе
+ Расширение = ".so";
+ #КонецЕсли
+
+ КандидатыВКомпоненты = НайтиФайлы(ИмяПодкаталога, "1script_*"+Расширение);
+ Для Каждого Кандидат Из КандидатыВКомпоненты Цикл
+ Если Не Кандидат.ЭтоФайл() Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Вывести("Загружаю файл " + Кандидат.Имя);
+ ПодключитьВнешнююКомпоненту(Кандидат.ПолноеИмя, Кандидат.Имя, ТипВнешнейКомпоненты.Native);
+
+ КонецЦикла;
+КонецПроцедуры
+
Процедура ДобавитьКлассЕслиРанееНеДобавляли(ПутьФайла, ИмяКласса)
Вывести("Добавляю класс, если ранее не добавляли " + ИмяКласса);
Если ВыдаватьОшибкуПриЗагрузкеУжеСуществующихКлассовМодулей Тогда
diff --git a/src/1Script.sln b/src/1Script.sln
index 058492ea8..3f8c681ea 100644
--- a/src/1Script.sln
+++ b/src/1Script.sln
@@ -18,7 +18,7 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D14BF321-348C-46B8-B96A-43A22BA7AC10}"
ProjectSection(SolutionItems) = preProject
oscommon.targets = oscommon.targets
- ..\Build_Core.csproj = ..\Build_Core.csproj
+ ..\Build.csproj = ..\Build.csproj
..\Jenkinsfile = ..\Jenkinsfile
EndProjectSection
EndProject
diff --git a/src/1Script_Mono.sln b/src/1Script_Mono.sln
deleted file mode 100644
index f138cfbd8..000000000
--- a/src/1Script_Mono.sln
+++ /dev/null
@@ -1,165 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2020
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ScriptEngine", "ScriptEngine\ScriptEngine.csproj", "{F062D1D9-D307-492A-A56B-FF3C55F8F6C0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ScriptEngine.HostedScript", "ScriptEngine.HostedScript\ScriptEngine.HostedScript.csproj", "{F09A46BD-5737-45E7-BA60-A47C9F7821A9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "oscript", "oscript\oscript.csproj", "{2590E2BB-CC1F-4775-80ED-451F45C9A4F1}"
- ProjectSection(ProjectDependencies) = postProject
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B} = {795AA2F5-3074-4BC5-A30F-1B6354044D9B}
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StandaloneRunner", "StandaloneRunner\StandaloneRunner.csproj", "{795AA2F5-3074-4BC5-A30F-1B6354044D9B}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D14BF321-348C-46B8-B96A-43A22BA7AC10}"
- ProjectSection(SolutionItems) = preProject
- oscommon.targets = oscommon.targets
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NUnitTests", "NUnitTests\NUnitTests.csproj", "{93ACC849-E7E1-4695-B59D-54B3737E48A6}"
- ProjectSection(ProjectDependencies) = postProject
- {2590E2BB-CC1F-4775-80ED-451F45C9A4F1} = {2590E2BB-CC1F-4775-80ED-451F45C9A4F1}
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9} = {F09A46BD-5737-45E7-BA60-A47C9F7821A9}
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0} = {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B} = {795AA2F5-3074-4BC5-A30F-1B6354044D9B}
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Component", "Component\Component.csproj", "{B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DebugServer", "DebugServer\DebugServer.csproj", "{C979F151-AA29-47E4-B020-3039BA0986D9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OneScript.DebugProtocol", "OneScript.DebugProtocol\OneScript.DebugProtocol.csproj", "{727A498F-BF50-42F8-8523-40C0B5B1B233}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "oscriptTests", "oscriptTest\oscriptTests.csproj", "{69A7869C-203C-4F09-AC3F-04E9B52AD7AB}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{91059C5B-526C-4B81-B106-99DEFF542D1F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HTTPServices", "ASPNETHandler\HTTPServices.csproj", "{B7CD7F52-E387-490E-8F77-E1FB060401B5}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|x86 = Release|x86
- ReleaseNetStandard|Any CPU = ReleaseNetStandard|Any CPU
- ReleaseNetStandard|x86 = ReleaseNetStandard|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}.Debug|x86.Build.0 = Debug|Any CPU
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}.Release|Any CPU.Build.0 = Release|Any CPU
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}.Release|x86.ActiveCfg = Release|Any CPU
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}.Release|x86.Build.0 = Release|Any CPU
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}.ReleaseNetStandard|Any CPU.ActiveCfg = ReleaseNetStandard|Any CPU
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}.ReleaseNetStandard|Any CPU.Build.0 = ReleaseNetStandard|Any CPU
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}.ReleaseNetStandard|x86.ActiveCfg = Release|Any CPU
- {F062D1D9-D307-492A-A56B-FF3C55F8F6C0}.ReleaseNetStandard|x86.Build.0 = Release|Any CPU
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9}.Debug|x86.Build.0 = Debug|Any CPU
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9}.Release|Any CPU.Build.0 = Release|Any CPU
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9}.Release|x86.ActiveCfg = Release|Any CPU
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9}.Release|x86.Build.0 = Release|Any CPU
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9}.ReleaseNetStandard|Any CPU.ActiveCfg = ReleaseNetStandard|Any CPU
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9}.ReleaseNetStandard|Any CPU.Build.0 = ReleaseNetStandard|Any CPU
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9}.ReleaseNetStandard|x86.ActiveCfg = Release|Any CPU
- {F09A46BD-5737-45E7-BA60-A47C9F7821A9}.ReleaseNetStandard|x86.Build.0 = Release|Any CPU
- {2590E2BB-CC1F-4775-80ED-451F45C9A4F1}.Debug|Any CPU.ActiveCfg = Debug|x86
- {2590E2BB-CC1F-4775-80ED-451F45C9A4F1}.Debug|x86.ActiveCfg = Debug|x86
- {2590E2BB-CC1F-4775-80ED-451F45C9A4F1}.Debug|x86.Build.0 = Debug|x86
- {2590E2BB-CC1F-4775-80ED-451F45C9A4F1}.Release|Any CPU.ActiveCfg = Release|x86
- {2590E2BB-CC1F-4775-80ED-451F45C9A4F1}.Release|x86.ActiveCfg = Release|x86
- {2590E2BB-CC1F-4775-80ED-451F45C9A4F1}.Release|x86.Build.0 = Release|x86
- {2590E2BB-CC1F-4775-80ED-451F45C9A4F1}.ReleaseNetStandard|Any CPU.ActiveCfg = ReleaseNetStandard|x86
- {2590E2BB-CC1F-4775-80ED-451F45C9A4F1}.ReleaseNetStandard|x86.ActiveCfg = Release|x86
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B}.Debug|x86.ActiveCfg = Debug|x86
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B}.Debug|x86.Build.0 = Debug|x86
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B}.Release|Any CPU.Build.0 = Release|Any CPU
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B}.Release|x86.ActiveCfg = Release|x86
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B}.Release|x86.Build.0 = Release|x86
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B}.ReleaseNetStandard|Any CPU.ActiveCfg = ReleaseNetStandard|Any CPU
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B}.ReleaseNetStandard|Any CPU.Build.0 = ReleaseNetStandard|Any CPU
- {795AA2F5-3074-4BC5-A30F-1B6354044D9B}.ReleaseNetStandard|x86.ActiveCfg = Release|x86
- {93ACC849-E7E1-4695-B59D-54B3737E48A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {93ACC849-E7E1-4695-B59D-54B3737E48A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {93ACC849-E7E1-4695-B59D-54B3737E48A6}.Debug|x86.ActiveCfg = Debug|Any CPU
- {93ACC849-E7E1-4695-B59D-54B3737E48A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {93ACC849-E7E1-4695-B59D-54B3737E48A6}.Release|Any CPU.Build.0 = Release|Any CPU
- {93ACC849-E7E1-4695-B59D-54B3737E48A6}.Release|x86.ActiveCfg = Release|Any CPU
- {93ACC849-E7E1-4695-B59D-54B3737E48A6}.ReleaseNetStandard|Any CPU.ActiveCfg = ReleaseNetStandard|Any CPU
- {93ACC849-E7E1-4695-B59D-54B3737E48A6}.ReleaseNetStandard|Any CPU.Build.0 = ReleaseNetStandard|Any CPU
- {93ACC849-E7E1-4695-B59D-54B3737E48A6}.ReleaseNetStandard|x86.ActiveCfg = Release|Any CPU
- {B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}.Debug|x86.ActiveCfg = Debug|Any CPU
- {B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}.Release|Any CPU.Build.0 = Release|Any CPU
- {B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}.Release|x86.ActiveCfg = Release|Any CPU
- {B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}.ReleaseNetStandard|Any CPU.ActiveCfg = ReleaseNetStandard|Any CPU
- {B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}.ReleaseNetStandard|Any CPU.Build.0 = ReleaseNetStandard|Any CPU
- {B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}.ReleaseNetStandard|x86.ActiveCfg = Release|Any CPU
- {C979F151-AA29-47E4-B020-3039BA0986D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C979F151-AA29-47E4-B020-3039BA0986D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C979F151-AA29-47E4-B020-3039BA0986D9}.Debug|x86.ActiveCfg = Debug|Any CPU
- {C979F151-AA29-47E4-B020-3039BA0986D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C979F151-AA29-47E4-B020-3039BA0986D9}.Release|Any CPU.Build.0 = Release|Any CPU
- {C979F151-AA29-47E4-B020-3039BA0986D9}.Release|x86.ActiveCfg = Release|Any CPU
- {C979F151-AA29-47E4-B020-3039BA0986D9}.Release|x86.Build.0 = Release|Any CPU
- {C979F151-AA29-47E4-B020-3039BA0986D9}.ReleaseNetStandard|Any CPU.ActiveCfg = ReleaseNetStandard|Any CPU
- {C979F151-AA29-47E4-B020-3039BA0986D9}.ReleaseNetStandard|Any CPU.Build.0 = ReleaseNetStandard|Any CPU
- {C979F151-AA29-47E4-B020-3039BA0986D9}.ReleaseNetStandard|x86.ActiveCfg = Release|Any CPU
- {727A498F-BF50-42F8-8523-40C0B5B1B233}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {727A498F-BF50-42F8-8523-40C0B5B1B233}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {727A498F-BF50-42F8-8523-40C0B5B1B233}.Debug|x86.ActiveCfg = Debug|Any CPU
- {727A498F-BF50-42F8-8523-40C0B5B1B233}.Debug|x86.Build.0 = Debug|Any CPU
- {727A498F-BF50-42F8-8523-40C0B5B1B233}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {727A498F-BF50-42F8-8523-40C0B5B1B233}.Release|Any CPU.Build.0 = Release|Any CPU
- {727A498F-BF50-42F8-8523-40C0B5B1B233}.Release|x86.ActiveCfg = Release|Any CPU
- {727A498F-BF50-42F8-8523-40C0B5B1B233}.Release|x86.Build.0 = Release|Any CPU
- {727A498F-BF50-42F8-8523-40C0B5B1B233}.ReleaseNetStandard|Any CPU.ActiveCfg = ReleaseNetStandard|Any CPU
- {727A498F-BF50-42F8-8523-40C0B5B1B233}.ReleaseNetStandard|Any CPU.Build.0 = ReleaseNetStandard|Any CPU
- {727A498F-BF50-42F8-8523-40C0B5B1B233}.ReleaseNetStandard|x86.ActiveCfg = Release|Any CPU
- {727A498F-BF50-42F8-8523-40C0B5B1B233}.ReleaseNetStandard|x86.Build.0 = Release|Any CPU
- {69A7869C-203C-4F09-AC3F-04E9B52AD7AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {69A7869C-203C-4F09-AC3F-04E9B52AD7AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {69A7869C-203C-4F09-AC3F-04E9B52AD7AB}.Debug|x86.ActiveCfg = Debug|Any CPU
- {69A7869C-203C-4F09-AC3F-04E9B52AD7AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {69A7869C-203C-4F09-AC3F-04E9B52AD7AB}.Release|Any CPU.Build.0 = Release|Any CPU
- {69A7869C-203C-4F09-AC3F-04E9B52AD7AB}.Release|x86.ActiveCfg = Release|Any CPU
- {69A7869C-203C-4F09-AC3F-04E9B52AD7AB}.ReleaseNetStandard|Any CPU.ActiveCfg = ReleaseNetStandard|Any CPU
- {69A7869C-203C-4F09-AC3F-04E9B52AD7AB}.ReleaseNetStandard|Any CPU.Build.0 = ReleaseNetStandard|Any CPU
- {69A7869C-203C-4F09-AC3F-04E9B52AD7AB}.ReleaseNetStandard|x86.ActiveCfg = Release|Any CPU
- {B7CD7F52-E387-490E-8F77-E1FB060401B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B7CD7F52-E387-490E-8F77-E1FB060401B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B7CD7F52-E387-490E-8F77-E1FB060401B5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {B7CD7F52-E387-490E-8F77-E1FB060401B5}.Debug|x86.Build.0 = Debug|Any CPU
- {B7CD7F52-E387-490E-8F77-E1FB060401B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B7CD7F52-E387-490E-8F77-E1FB060401B5}.Release|Any CPU.Build.0 = Release|Any CPU
- {B7CD7F52-E387-490E-8F77-E1FB060401B5}.Release|x86.ActiveCfg = Release|Any CPU
- {B7CD7F52-E387-490E-8F77-E1FB060401B5}.Release|x86.Build.0 = Release|Any CPU
- {B7CD7F52-E387-490E-8F77-E1FB060401B5}.ReleaseNetStandard|Any CPU.ActiveCfg = Release|Any CPU
- {B7CD7F52-E387-490E-8F77-E1FB060401B5}.ReleaseNetStandard|Any CPU.Build.0 = Release|Any CPU
- {B7CD7F52-E387-490E-8F77-E1FB060401B5}.ReleaseNetStandard|x86.ActiveCfg = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {69A7869C-203C-4F09-AC3F-04E9B52AD7AB} = {91059C5B-526C-4B81-B106-99DEFF542D1F}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {A4A871EF-C5A7-478F-907E-31C69A869973}
- EndGlobalSection
-EndGlobal
diff --git a/src/OneScript.Core/Rcw/RcwMembersMetadataCollection.cs b/src/OneScript.Core/Rcw/RcwMembersMetadataCollection.cs
index 826162b36..80386d5c5 100644
--- a/src/OneScript.Core/Rcw/RcwMembersMetadataCollection.cs
+++ b/src/OneScript.Core/Rcw/RcwMembersMetadataCollection.cs
@@ -14,12 +14,12 @@ namespace OneScript.Rcw
public class RcwMembersMetadataCollection where T : RcwMemberMetadata
{
private readonly List _collection = new List();
- private readonly Dictionary _dispIds = new Dictionary();
- private readonly Dictionary _names = new Dictionary(StringComparer.InvariantCultureIgnoreCase);
+ private readonly Dictionary _indexByDispId = new Dictionary();
+ private readonly Dictionary _indexByName = new Dictionary(StringComparer.InvariantCultureIgnoreCase);
- public IReadOnlyDictionary DispatchIds => new ReadOnlyDictionary(_dispIds);
+ public IReadOnlyDictionary ByDispatchId => _indexByDispId;
- public IReadOnlyDictionary Names => new ReadOnlyDictionary(_names);
+ public IReadOnlyDictionary ByName => _indexByName;
public T this[int index] => _collection[index];
@@ -27,15 +27,28 @@ public class RcwMembersMetadataCollection where T : RcwMemberMetadata
public void Add(T item)
{
- if (_dispIds.ContainsKey(item.DispatchId))
+ if (_indexByDispId.TryGetValue(item.DispatchId, out var method))
{
- _names.Add(item.Name, _dispIds[item.DispatchId]);
+ if (method.Name != item.Name)
+ {
+ // добавляют метод, который известен нам, с тем же dispId, но который имеет другое имя
+ _indexByName.Remove(method.Name); // известное нам старое имя этого dispId - инвалидируем
+
+ // добавляемый метод поместим в индекс диспатчей и имен
+ _indexByDispId[item.DispatchId] = item;
+ _indexByName[item.Name] = item;
+ }
+ else
+ {
+ _indexByName[item.Name] = item;
+ }
+
return;
}
_collection.Add(item);
- _dispIds.Add(item.DispatchId, item);
- _names.Add(item.Name, item);
+ _indexByDispId.Add(item.DispatchId, item);
+ _indexByName.Add(item.Name, item);
}
public bool Contains(T item) => _collection.Contains(item);
diff --git a/src/OneScript.Core/Rcw/RcwMetadata.cs b/src/OneScript.Core/Rcw/RcwMetadata.cs
index e4281775d..be04a8e5b 100644
--- a/src/OneScript.Core/Rcw/RcwMetadata.cs
+++ b/src/OneScript.Core/Rcw/RcwMetadata.cs
@@ -128,7 +128,7 @@ private void LoadFuncs(ITypeInfo typeInfo, TYPEATTR typeAttr)
private RcwPropertyMetadata GetOrAddProperty(string propName, int dispId)
{
- if (Properties.Names.TryGetValue(propName, out var md)) return md;
+ if (Properties.ByName.TryGetValue(propName, out var md)) return md;
md = new RcwPropertyMetadata(propName, dispId);
Properties.Add(md);
diff --git a/src/OneScript.StandardLibrary/Binary/GlobalBinaryData.cs b/src/OneScript.StandardLibrary/Binary/GlobalBinaryData.cs
index 458cdd030..04a29e00f 100644
--- a/src/OneScript.StandardLibrary/Binary/GlobalBinaryData.cs
+++ b/src/OneScript.StandardLibrary/Binary/GlobalBinaryData.cs
@@ -21,7 +21,7 @@ namespace OneScript.StandardLibrary.Binary
[GlobalContext(Category = "Процедуры и функции работы с двоичными данными")]
public sealed class GlobalBinaryData : GlobalContextBase
{
- private static byte[] HexStringToByteArray(String hex)
+ private static byte[] HexStringToByteArray(string hex)
{
var newHex = System.Text.RegularExpressions.Regex.Replace(hex, @"[^0-9A-Fa-f]", "");
int numberChars = newHex.Length;
@@ -130,6 +130,17 @@ private static string GetStringFromByteBuffer(byte[] buf, Encoding enc)
return enc.GetString(buf, startPos, buf.Length - startPos);
}
+ private static void CheckAndThrowIfNull(AutoContext obj) where T : AutoContext
+ {
+ if (obj == null)
+ throw RuntimeException.InvalidArgumentType();
+ }
+
+ private static void CheckAndThrowIfNull(AutoContext obj, int argNumber, string argName) where T : AutoContext
+ {
+ if (obj == null)
+ throw RuntimeException.InvalidArgumentType(argNumber, argName);
+ }
public static IAttachableContext CreateInstance()
{
@@ -150,19 +161,19 @@ public static IAttachableContext CreateInstance()
[ContextMethod("СоединитьДвоичныеДанные")]
public BinaryDataContext ConcatenateBinaryData(ArrayImpl array)
{
+ CheckAndThrowIfNull(array);
+
// Сделано на int т.к. BinaryContext.Size имеет тип int;
+ using var stream = new System.IO.MemoryStream();
- using (var stream = new System.IO.MemoryStream())
+ foreach (var cbd in array)
{
-
- foreach (var cbd in array)
- {
- byte[] buffer = ((BinaryDataContext) cbd.AsObject()).Buffer;
- stream.Write(buffer, 0, buffer.Length);
- }
- stream.Position = 0;
- return new BinaryDataContext(stream);
+ byte[] buffer = ((BinaryDataContext)cbd.AsObject()).Buffer;
+ stream.Write(buffer, 0, buffer.Length);
}
+ stream.Position = 0;
+
+ return new BinaryDataContext(stream);
}
///
@@ -174,6 +185,8 @@ public BinaryDataContext ConcatenateBinaryData(ArrayImpl array)
[ContextMethod("РазделитьДвоичныеДанные")]
public ArrayImpl SplitBinaryData(BinaryDataContext data, long size)
{
+ CheckAndThrowIfNull(data, 1, nameof(data));
+
if (size <= 0 || size > Int32.MaxValue)
throw RuntimeException.InvalidNthArgumentValue(2);
@@ -257,9 +270,10 @@ public BinaryDataBuffer GetBinaryDataBufferFromString(string str, IValue encodin
[ContextMethod("ПолучитьСтрокуИзДвоичныхДанных")]
public string GetStringFromBinaryData(BinaryDataContext data, IValue encoding = null)
{
+ CheckAndThrowIfNull(data, 1, nameof(data));
+
// Получаем кодировку
// Из синтаксис помощника если кодировка не задана используем UTF8
-
var enc = (encoding != null) ? TextEncodingEnum.GetEncoding(encoding) : Encoding.UTF8;
return GetStringFromByteBuffer(data.Buffer, enc);
@@ -274,6 +288,8 @@ public string GetStringFromBinaryData(BinaryDataContext data, IValue encoding =
[ContextMethod("ПолучитьСтрокуИзБуфераДвоичныхДанных")]
public string GetStringFromBinaryDataBuffer(BinaryDataBuffer buffer, IValue encoding = null)
{
+ CheckAndThrowIfNull(buffer, 1, nameof(buffer));
+
var enc = (encoding != null) ? TextEncodingEnum.GetEncoding(encoding) : Encoding.UTF8;
return GetStringFromByteBuffer(buffer.Bytes, enc);
@@ -325,6 +341,8 @@ public BinaryDataBuffer GetBinaryDataBufferFromBase64String(string str)
[ContextMethod("ПолучитьBase64СтрокуИзДвоичныхДанных")]
public string GetBase64StringFromBinaryData(BinaryDataContext data)
{
+ CheckAndThrowIfNull(data, 1, nameof(data));
+
return Convert.ToBase64String(data.Buffer, Base64FormattingOptions.InsertLineBreaks);
}
@@ -338,6 +356,8 @@ public string GetBase64StringFromBinaryData(BinaryDataContext data)
[ContextMethod("ПолучитьBase64СтрокуИзБуфераДвоичныхДанных")]
public string GetBase64StringFromBinaryDataBuffer(BinaryDataBuffer buffer)
{
+ CheckAndThrowIfNull(buffer);
+
return Convert.ToBase64String(buffer.Bytes, Base64FormattingOptions.InsertLineBreaks);
}
@@ -349,6 +369,8 @@ public string GetBase64StringFromBinaryDataBuffer(BinaryDataBuffer buffer)
[ContextMethod("ПолучитьДвоичныеДанныеИзBase64ДвоичныхДанных")]
public BinaryDataContext GetBinaryDataFromBase64BinaryData(BinaryDataContext data)
{
+ CheckAndThrowIfNull(data);
+
try
{
var enc = new UTF8Encoding(false,true);
@@ -369,6 +391,8 @@ public BinaryDataContext GetBinaryDataFromBase64BinaryData(BinaryDataContext dat
[ContextMethod("ПолучитьБуферДвоичныхДанныхИзBase64БуфераДвоичныхДанных")]
public BinaryDataBuffer GetBinaryDataBufferFromBase64BinaryDataBuffer(BinaryDataBuffer buffer)
{
+ CheckAndThrowIfNull(buffer);
+
try
{
var enc = new UTF8Encoding(false, true);
@@ -391,6 +415,8 @@ public BinaryDataBuffer GetBinaryDataBufferFromBase64BinaryDataBuffer(BinaryData
[ContextMethod("ПолучитьBase64ДвоичныеДанныеИзДвоичныхДанных")]
public BinaryDataContext GetBase64BinaryDataFromBinaryData(BinaryDataContext data)
{
+ CheckAndThrowIfNull(data);
+
var base64str = Convert.ToBase64String(data.Buffer, Base64FormattingOptions.InsertLineBreaks);
return new BinaryDataContext(Encoding.ASCII.GetBytes(base64str));
}
@@ -405,6 +431,8 @@ public BinaryDataContext GetBase64BinaryDataFromBinaryData(BinaryDataContext dat
[ContextMethod("ПолучитьBase64БуферДвоичныхДанныхИзБуфераДвоичныхДанных")]
public BinaryDataBuffer GetBase64BinaryDataBufferFromBinaryDataBuffer(BinaryDataBuffer buffer)
{
+ CheckAndThrowIfNull(buffer);
+
var base64str = Convert.ToBase64String(buffer.Bytes, Base64FormattingOptions.InsertLineBreaks);
return new BinaryDataBuffer(Encoding.ASCII.GetBytes(base64str));
}
@@ -439,6 +467,8 @@ public BinaryDataBuffer GetBinaryDataBufferFromHexString(string hex)
[ContextMethod("ПолучитьHexСтрокуИзДвоичныхДанных")]
public string GetHexStringFromBinaryData(BinaryDataContext data)
{
+ CheckAndThrowIfNull(data);
+
return BitConverter.ToString(data.Buffer).Replace("-","");
}
@@ -450,6 +480,8 @@ public string GetHexStringFromBinaryData(BinaryDataContext data)
[ContextMethod("ПолучитьHexСтрокуИзБуфераДвоичныхДанных")]
public string GetHexStringFromBinaryDataBuffer(BinaryDataBuffer buffer)
{
+ CheckAndThrowIfNull(buffer);
+
return BitConverter.ToString(buffer.Bytes).Replace("-","");
}
@@ -461,6 +493,8 @@ public string GetHexStringFromBinaryDataBuffer(BinaryDataBuffer buffer)
[ContextMethod("ПолучитьДвоичныеДанныеИзHexДвоичныхДанных")]
public BinaryDataContext GetBinaryDataFromHexBinaryData(BinaryDataContext data)
{
+ CheckAndThrowIfNull(data);
+
return new BinaryDataContext(HexArrayToByteArray(data.Buffer));
}
@@ -472,6 +506,8 @@ public BinaryDataContext GetBinaryDataFromHexBinaryData(BinaryDataContext data)
[ContextMethod("ПолучитьБуферДвоичныхДанныхИзHexБуфераДвоичныхДанных")]
public BinaryDataBuffer GetBinaryDataBufferFromHexBinaryDataBuffer(BinaryDataBuffer buffer)
{
+ CheckAndThrowIfNull(buffer);
+
return new BinaryDataBuffer(HexArrayToByteArray(buffer.Bytes));
}
@@ -507,6 +543,8 @@ public BinaryDataBuffer GetHexBinaryDataBufferFromBinaryDataBuffer(BinaryDataBuf
[ContextMethod("ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных")]
public BinaryDataBuffer GetBinaryDataBufferFromBinaryData(BinaryDataContext data)
{
+ CheckAndThrowIfNull(data);
+
return new BinaryDataBuffer(data.Buffer);
}
@@ -518,6 +556,8 @@ public BinaryDataBuffer GetBinaryDataBufferFromBinaryData(BinaryDataContext data
[ContextMethod("ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных")]
public BinaryDataContext GetBinaryDataFromBinaryDataBuffer(BinaryDataBuffer buffer)
{
+ CheckAndThrowIfNull(buffer);
+
return new BinaryDataContext(buffer.Bytes);
}
diff --git a/src/OneScript.StandardLibrary/NativeApi/NativeApiKernel.cs b/src/OneScript.StandardLibrary/NativeApi/NativeApiKernel.cs
index 1508a5372..ad9020707 100644
--- a/src/OneScript.StandardLibrary/NativeApi/NativeApiKernel.cs
+++ b/src/OneScript.StandardLibrary/NativeApi/NativeApiKernel.cs
@@ -22,7 +22,7 @@ public static bool IsLinux
}
private const String KernelWin = "kernel32.dll";
- private const String KernelLin = "libdl.so";
+ private const String KernelLin = "libdl.so.2";
public static IntPtr LoadLibrary(string filename)
{
diff --git a/src/OneScript.StandardLibrary/Processes/ArgumentsParser.cs b/src/OneScript.StandardLibrary/Processes/ArgumentsParser.cs
index 88e22b283..6000d85ab 100644
--- a/src/OneScript.StandardLibrary/Processes/ArgumentsParser.cs
+++ b/src/OneScript.StandardLibrary/Processes/ArgumentsParser.cs
@@ -1,4 +1,4 @@
-/*----------------------------------------------------------
+/*----------------------------------------------------------
This Source Code Form is subject to the terms of the
Mozilla Public License, v.2.0. If a copy of the MPL
was not distributed with this file, You can obtain one
diff --git a/src/OneScript.StandardLibrary/Processes/ProcessContext.cs b/src/OneScript.StandardLibrary/Processes/ProcessContext.cs
index a0ae09708..abc49605a 100644
--- a/src/OneScript.StandardLibrary/Processes/ProcessContext.cs
+++ b/src/OneScript.StandardLibrary/Processes/ProcessContext.cs
@@ -8,6 +8,7 @@ This Source Code Form is subject to the terms of the
using System;
using System.Diagnostics;
using System.Linq;
+using System.Runtime.InteropServices;
using OneScript.Contexts;
using OneScript.Exceptions;
using OneScript.StandardLibrary.Collections;
@@ -274,14 +275,24 @@ public static ProcessStartInfo PrepareProcessStartupInfo(string cmdLine, string
sInfo.FileName = ExtractExecutableName(cmdLine, out argsPosition);
if (currentDir != null)
sInfo.WorkingDirectory = currentDir;
-
- var arguments = argsPosition >= cmdLine.Length
- ? Array.Empty()
- : new ArgumentsParser(cmdLine[argsPosition..]).GetArguments();
- foreach (var argument in arguments)
+ // Поведение под MacOS и остальные системы различается
+ // Страдает обратная совместимость и неясны до конца синтаксисы.
+ // См. https://github.com/EvilBeaver/OneScript/issues/1299
+ if (!RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
+ {
+ sInfo.Arguments = argsPosition >= cmdLine.Length ? "" : cmdLine.Substring(argsPosition);
+ }
+ else
{
- sInfo.ArgumentList.Add(argument);
+ var arguments = argsPosition >= cmdLine.Length
+ ? Array.Empty()
+ : new ArgumentsParser(cmdLine[argsPosition..]).GetArguments();
+
+ foreach (var argument in arguments)
+ {
+ sInfo.ArgumentList.Add(argument);
+ }
}
return sInfo;
diff --git a/src/OneScriptDocumenter/OneScriptDocumenter.csproj b/src/OneScriptDocumenter/OneScriptDocumenter.csproj
index 225f8a3bd..b97bdd1cb 100644
--- a/src/OneScriptDocumenter/OneScriptDocumenter.csproj
+++ b/src/OneScriptDocumenter/OneScriptDocumenter.csproj
@@ -3,7 +3,7 @@
- netcoreapp3.1
+ net6.0
Exe
OneScript Libraries Documenter
diff --git a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs
index baa80d944..e361f4e9f 100644
--- a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs
+++ b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs
@@ -287,16 +287,15 @@ protected override void VisitMethod(MethodNode methodNode)
methodInfo.SetRuntimeParameters(entryPoint, GetVariableNames(methodCtx));
SymbolBinding binding;
- if (!_ctx.TryFindMethodBinding(signature.MethodName, out _))
+ try
{
binding = _ctx.DefineMethod(methodInfo.ToSymbol());
}
- else
+ catch (CompilerException)
{
AddError(LocalizedErrors.DuplicateMethodDefinition(signature.MethodName), signature.Location);
binding = default;
}
-
_module.MethodRefs.Add(binding);
_module.Methods.Add(methodInfo);
}
diff --git a/src/ScriptEngine/Machine/Contexts/COMWrapperContext.cs b/src/ScriptEngine/Machine/Contexts/COMWrapperContext.cs
index 1d1705cd8..523896b67 100644
--- a/src/ScriptEngine/Machine/Contexts/COMWrapperContext.cs
+++ b/src/ScriptEngine/Machine/Contexts/COMWrapperContext.cs
@@ -316,7 +316,6 @@ protected virtual void Dispose(bool manualDispose)
{
GC.SuppressFinalize(this);
}
-
}
public void Dispose()
diff --git a/src/ScriptEngine/Machine/Contexts/UnmanagedCOMWrapperContext.cs b/src/ScriptEngine/Machine/Contexts/UnmanagedCOMWrapperContext.cs
index 844eae95b..08d4d77dc 100644
--- a/src/ScriptEngine/Machine/Contexts/UnmanagedCOMWrapperContext.cs
+++ b/src/ScriptEngine/Machine/Contexts/UnmanagedCOMWrapperContext.cs
@@ -263,28 +263,28 @@ private void RemapOutputParams(IValue[] arguments, object[] values, ParameterMod
private bool TryFindMethod(string name, out RcwMethodMetadata md)
{
- if (_methods.Names.TryGetValue(name, out md))
+ if (_methods.ByName.TryGetValue(name, out md))
return true;
if (!DispatchUtility.TryGetDispId(Instance, name, out var dispatchId))
return false;
_methods.Add(new RcwMethodMetadata(name, dispatchId, null));
- md = _methods.DispatchIds[dispatchId];
+ md = _methods.ByDispatchId[dispatchId];
return true;
}
private bool TryFindProperty(string name, out RcwPropertyMetadata md)
{
- if (_props.Names.TryGetValue(name, out md))
+ if (_props.ByName.TryGetValue(name, out md))
return true;
if (!DispatchUtility.TryGetDispId(Instance, name, out var dispatchId))
return false;
_props.Add(new RcwPropertyMetadata(name, dispatchId));
- md = _props.DispatchIds[dispatchId];
+ md = _props.ByDispatchId[dispatchId];
return true;
}
diff --git a/src/Tests/OneScript.Core.Tests/ArgumentParserTests.cs b/src/Tests/OneScript.Core.Tests/ArgumentParserTests.cs
index cbca74f67..247713773 100644
--- a/src/Tests/OneScript.Core.Tests/ArgumentParserTests.cs
+++ b/src/Tests/OneScript.Core.Tests/ArgumentParserTests.cs
@@ -1,4 +1,4 @@
-/*----------------------------------------------------------
+/*----------------------------------------------------------
This Source Code Form is subject to the terms of the
Mozilla Public License, v.2.0. If a copy of the MPL
was not distributed with this file, You can obtain one
diff --git a/src/VSCode.DebugAdapter/VSCode.DebugAdapter.csproj b/src/VSCode.DebugAdapter/VSCode.DebugAdapter.csproj
index cc5e71fe0..e06cd92e7 100644
--- a/src/VSCode.DebugAdapter/VSCode.DebugAdapter.csproj
+++ b/src/VSCode.DebugAdapter/VSCode.DebugAdapter.csproj
@@ -3,7 +3,7 @@
- net461
+ net48
Exe
VSCode.DebugAdapter.Program
Debug;Release;LinuxDebug
diff --git a/tests/engine-behaviors.os b/tests/engine-behaviors.os
index f661c603c..01867ddf2 100644
--- a/tests/engine-behaviors.os
+++ b/tests/engine-behaviors.os
@@ -52,7 +52,6 @@
ВсеТесты.Добавить("ТестДолжен_ПроверитьИнформацияОбОшибкеВнеИсключения");
ВсеТесты.Добавить("ТестДолжен_ПроверитьПередачуПараметровПоСсылке");
ВсеТесты.Добавить("ТестДолжен_ПроверитьСравнениеНаБольшеМеньше");
- ВсеТесты.Добавить("ТестДолжен_ПроверитьНевозможностьПереопределенияГлобальногоКонтекста");
Возврат ВсеТесты;
@@ -687,25 +686,8 @@
юТест.ПроверитьКодСОшибкой(
"Массив = Новый Массив(1);
- |Массив2 = Новый Массив(1);
+ |Массив2 = Новый Массив(1);;
|Рез = (Массив <= Массив2);",
Ошибка, "Для одинаковых объектов" );
КонецПроцедуры
-
-Процедура ТестДолжен_ПроверитьНевозможностьПереопределенияГлобальногоКонтекста() Экспорт
-
- Код = "Функция СтрНайти(знач Стр1, знач Стр2)
- | Возврат -1;
- |КонецФункции
- |
- |Рез = СтрНайти(""Ай!"", ""!"");
- |Если Рез < 0 Тогда
- | Сообщить(""Ой!"");
- |КонецЕсли";
-
- юТест.ПроверитьКодСОшибкой(Код, "СтрНайти");
-
- юТест.ПроверитьКодСОшибкой("#native" + Символы.ПС + Код, "СтрНайти");
-
-КонецПроцедуры
diff --git a/tests/native-api.os b/tests/native-api.os
index 1f538d95c..bfebd457f 100644
--- a/tests/native-api.os
+++ b/tests/native-api.os
@@ -21,8 +21,6 @@
ЭтоWindows = Истина;
#ИначеЕсли Linux Тогда
ЭтоWindows = Ложь;
- Каталог = ТекущийСценарий().Каталог + "/native-api/";
- ЗапуститьПриложение(Каталог + "build.sh", Каталог, Истина);
#Иначе
Возврат Новый Массив; // под макос не тестируем
#КонецЕсли