From 75425d6d2e7f88ba51737a2c7513dbac9fba15a7 Mon Sep 17 00:00:00 2001 From: Mikhalkovich Stanislav Date: Tue, 17 May 2022 16:02:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=B3=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0=20=D0=BA=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8E=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8=D0=BD=D0=B0?= =?UTF-8?q?=20=D1=83=D1=87=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D1=81=D0=BA=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=BA=D0=BE=D0=BD=D1=82=D1=80=D0=BE=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Configuration/GlobalAssemblyInfo.cs | 2 +- Configuration/Version.defs | 2 +- .../Algorithms/Recursion/Golomb.pas | 12 ++++++++ .../PascalABCParserNewSaushkin/ABCPascal.cs | 2 +- .../ABCPascalYacc.cs | 2 +- Parsers/PascalABCParserNewSaushkin/PABC.ymc | 1 + PluginsSupport/Interfaces.cs | 6 +++- Release/pabcversion.txt | 2 +- ReleaseGenerators/PascalABCNET_version.nsh | 2 +- .../DS/RunManager/RunManager.cs | 3 +- .../DS/VisualEnvironmentCompiler.cs | 4 +-- VisualPascalABCNET/Workbench/RunService.cs | 28 +++++++++++++++++-- 12 files changed, 53 insertions(+), 13 deletions(-) create mode 100644 InstallerSamples/Algorithms/Recursion/Golomb.pas diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index 2e6f076eb..7c7acf741 100644 --- a/Configuration/GlobalAssemblyInfo.cs +++ b/Configuration/GlobalAssemblyInfo.cs @@ -15,7 +15,7 @@ internal static class RevisionClass public const string Major = "3"; public const string Minor = "8"; public const string Build = "3"; - public const string Revision = "3121"; + public const string Revision = "3123"; public const string MainVersion = Major + "." + Minor; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; diff --git a/Configuration/Version.defs b/Configuration/Version.defs index 005c69cfb..297e54478 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ %MINOR%=8 -%REVISION%=3121 +%REVISION%=3123 %COREVERSION%=3 %MAJOR%=3 diff --git a/InstallerSamples/Algorithms/Recursion/Golomb.pas b/InstallerSamples/Algorithms/Recursion/Golomb.pas new file mode 100644 index 000000000..b8c1d1af9 --- /dev/null +++ b/InstallerSamples/Algorithms/Recursion/Golomb.pas @@ -0,0 +1,12 @@ +// Последовательность Голомба G(n) - это такая единственная неубывающая последовательность +// натуральных чисел, в которой n появляется ровно G(n) раз +// 1 2 2 3 3 4 4 4 5 5 5 6 6 6 6 … +// Без кеширования время выполнения огромное за счет повторяющихся рекурсивных вызовов +[Cache] +function G(n: int64): int64 := n = 1 ? 1 : 1 + G(n - G(G(n - 1))); + +begin + var n := 100000; + (1..n).Sum(i -> G(i)).Print; + Milliseconds.Print; +end. \ No newline at end of file diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs b/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs index a85553632..df353830a 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs @@ -2,7 +2,7 @@ // This CSharp output file generated by Gardens Point LEX // Version: 1.1.3.301 // Machine: DESKTOP-G8V08V4 -// DateTime: 08.05.2022 19:51:09 +// DateTime: 10.05.2022 19:00:28 // UserName: ????????? // GPLEX input file // GPLEX frame file diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs b/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs index 72b78b9a0..4b1e6a81a 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs @@ -2,7 +2,7 @@ // GPPG version 1.3.6 // Machine: DESKTOP-G8V08V4 -// DateTime: 08.05.2022 19:51:10 +// DateTime: 10.05.2022 19:00:28 // UserName: ????????? // Input file diff --git a/Parsers/PascalABCParserNewSaushkin/PABC.ymc b/Parsers/PascalABCParserNewSaushkin/PABC.ymc index 431fca478..142e5a7b3 100644 --- a/Parsers/PascalABCParserNewSaushkin/PABC.ymc +++ b/Parsers/PascalABCParserNewSaushkin/PABC.ymc @@ -358,5 +358,6 @@ script= + diff --git a/PluginsSupport/Interfaces.cs b/PluginsSupport/Interfaces.cs index 0394c8bf0..fcd5471a3 100644 --- a/PluginsSupport/Interfaces.cs +++ b/PluginsSupport/Interfaces.cs @@ -64,7 +64,9 @@ namespace VisualPascalABCPlugins ProcessExited } public delegate void ChangeVisualEnvironmentStateDelegate(VisualEnvironmentState State, object obj); - + // SSM 16/05/22 - RunManager + public delegate void RunnerManagerActionDelegate(string fileName); + public enum SourceLocationAction { SelectAndGotoBeg, @@ -293,6 +295,8 @@ namespace VisualPascalABCPlugins public interface IWorkbenchRunService { + event RunnerManagerActionDelegate Starting; // + event RunnerManagerActionDelegate Exited; // bool IsRun(); bool IsRun(string FileName); bool Run(bool RedirectConsoleIO); diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt index 4ed234109..efe4f8e98 100644 --- a/Release/pabcversion.txt +++ b/Release/pabcversion.txt @@ -1 +1 @@ -3.8.3.3121 +3.8.3.3123 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index f4b3aea02..6c3afb9bc 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.8.3.3121' +!define VERSION '3.8.3.3123' diff --git a/VisualPascalABCNET/DS/RunManager/RunManager.cs b/VisualPascalABCNET/DS/RunManager/RunManager.cs index 1125e1219..ef4294b9f 100644 --- a/VisualPascalABCNET/DS/RunManager/RunManager.cs +++ b/VisualPascalABCNET/DS/RunManager/RunManager.cs @@ -7,6 +7,7 @@ using System.Text; using PascalABCCompiler.Errors; using System.IO; using System.Diagnostics; +using VisualPascalABCPlugins; namespace VisualPascalABC { @@ -204,8 +205,6 @@ namespace VisualPascalABC */ } - - public delegate void RunnerManagerActionDelegate(string fileName); public event RunnerManagerActionDelegate Exited; public event RunnerManagerActionDelegate Starting; diff --git a/VisualPascalABCNET/DS/VisualEnvironmentCompiler.cs b/VisualPascalABCNET/DS/VisualEnvironmentCompiler.cs index 831a4baf5..9f523871c 100644 --- a/VisualPascalABCNET/DS/VisualEnvironmentCompiler.cs +++ b/VisualPascalABCNET/DS/VisualEnvironmentCompiler.cs @@ -90,8 +90,8 @@ namespace VisualPascalABC this.DebugHelper = DebugHelper; DebugHelper.Starting += new DebugHelper.DebugHelperActionDelegate(DebugHelper_Starting); DebugHelper.Exited += new DebugHelper.DebugHelperActionDelegate(DebugHelper_Exited); - RunnerManager.Starting += new RunManager.RunnerManagerActionDelegate(RunnerManager_Starting); - RunnerManager.Exited += new RunManager.RunnerManagerActionDelegate(RunnerManager_Exited); + RunnerManager.Starting += new RunnerManagerActionDelegate(RunnerManager_Starting); + RunnerManager.Exited += new RunnerManagerActionDelegate(RunnerManager_Exited); this.CodeCompletionParserController = WorkbenchServiceFactory.CodeCompletionParserController; this.CodeCompletionParserController.visualEnvironmentCompiler = this; this.UserOptions = UserOptions; diff --git a/VisualPascalABCNET/Workbench/RunService.cs b/VisualPascalABCNET/Workbench/RunService.cs index 62c38f96c..6e335753f 100644 --- a/VisualPascalABCNET/Workbench/RunService.cs +++ b/VisualPascalABCNET/Workbench/RunService.cs @@ -30,12 +30,36 @@ namespace VisualPascalABC private Dictionary RunArgumentsTable = new Dictionary(); bool RunActiveTabPage = false; + // SSM 16/05/22 - добавил чтобы иметь возможность добавлять обработчики во внешнем плагине + public event RunnerManagerActionDelegate Starting + { + add + { + RunnerManager.Starting += value; + } + remove + { + RunnerManager.Starting -= value; + } + } + public event RunnerManagerActionDelegate Exited + { + add + { + RunnerManager.Exited += value; + } + remove + { + RunnerManager.Exited -= value; + } + } + public WorkbenchRunService() { Workbench = WorkbenchServiceFactory.Workbench; RunnerManager = new RunManager(ReadStringRequest); - RunnerManager.Exited += new RunManager.RunnerManagerActionDelegate(RunnerManager_Exited); - RunnerManager.Starting += new RunManager.RunnerManagerActionDelegate(RunnerManager_Started); + RunnerManager.Exited += new RunnerManagerActionDelegate(RunnerManager_Exited); + RunnerManager.Starting += new RunnerManagerActionDelegate(RunnerManager_Started); RunnerManager.OutputStringReceived += new RunManager.TextRecivedDelegate(RunnerManager_OutputStringReceived); RunnerManager.RunnerManagerUnhanledRuntimeException += new RunManager.RunnerManagerUnhanledRuntimeExceptionDelegate(RunnerManager_RunnerManagerUnhanledRuntimeException); DesignerService = WorkbenchServiceFactory.DesignerService;