From ce66b658c44cc4948058966f79ea0c90c4b6b524 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sun, 29 Sep 2019 07:44:39 -0700 Subject: [PATCH] Mintest revisions --- BeefBuild/BeefProj.toml | 4 +- BeefTools/TestDLL/TestDLL.cpp | 21 ++++++++ IDE/BeefProj.toml | 2 +- IDE/mintest/BeefProj.toml | 8 ++- IDE/mintest/BeefSpace.toml | 3 -- IDE/mintest/src/main.bf | 45 ++++++++++++++-- IDE/mintest/src/main3.bf | 99 ++++++++++++++++------------------- 7 files changed, 117 insertions(+), 65 deletions(-) diff --git a/BeefBuild/BeefProj.toml b/BeefBuild/BeefProj.toml index d47ee99c..f0680fc5 100644 --- a/BeefBuild/BeefProj.toml +++ b/BeefBuild/BeefProj.toml @@ -16,8 +16,8 @@ TargetName = "$(ProjectName)_d" OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64_d.lib Rpcrt4.lib Ole32.lib" CLibType = "Dynamic" BeefLibType = "DynamicDebug" -DebugCommandArguments = "-help" -DebugWorkingDirectory = "c:\\Beef_website\\BeefTools\\BeefInstall" +DebugCommandArguments = "-run" +DebugWorkingDirectory = "c:\\temp\\Hello" EnvironmentVars = ["_NO_DEBUG_HEAP=1"] PreprocessorMacros = ["DEBUG", "CLI"] diff --git a/BeefTools/TestDLL/TestDLL.cpp b/BeefTools/TestDLL/TestDLL.cpp index 8aa10750..6661e997 100644 --- a/BeefTools/TestDLL/TestDLL.cpp +++ b/BeefTools/TestDLL/TestDLL.cpp @@ -118,4 +118,25 @@ __declspec(dllexport) void Test3(int a, int b) //printf("Hey!\n"); + + +} + +static long __stdcall SEHFilter(LPEXCEPTION_POINTERS lpExceptPtr) +{ + printf("SEHFilter!\n"); + return 0; +} + +extern "C" +__declspec(dllexport) void TestSEH() +{ + if (::MessageBoxA(NULL, "DO IT?", "Crash?", MB_YESNO) == IDNO) + return; + + ::SetUnhandledExceptionFilter(SEHFilter); + + int* iPtr = nullptr; + *iPtr = 1; + //printf("Hey!\n"); } \ No newline at end of file diff --git a/IDE/BeefProj.toml b/IDE/BeefProj.toml index 0c78d4d2..73ad54d9 100644 --- a/IDE/BeefProj.toml +++ b/IDE/BeefProj.toml @@ -26,7 +26,7 @@ OptimizationLevel = "O0" TargetDirectory = "$(WorkspaceDir)/dist" TargetName = "BeefIDE_d" OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64_d.lib" -DebugCommandArguments = "-proddir=C:\\Beef\\IDE" +DebugCommandArguments = "-workspace=c:\\Beef\\IDE" DebugWorkingDirectory = "c:\\Beef\\IDE\\Tests\\EmptyTest" EnvironmentVars = ["_NO_DEBUG_HEAP=1"] diff --git a/IDE/mintest/BeefProj.toml b/IDE/mintest/BeefProj.toml index 31f48e53..8190bc6f 100644 --- a/IDE/mintest/BeefProj.toml +++ b/IDE/mintest/BeefProj.toml @@ -7,9 +7,12 @@ StartupObject = "Hey.Dude.Bro.TestClass" DefaultNamespace = "Mintest" Aliases = ["corlib"] +[Platform.Windows] +Description = "Mintest" + [Configs.Debug.Win64] CLibType = "Static" -BeefLibType = "DynamicDebug" +BeefLibType = "Static" StackSize = 4194304 DebugCommandArguments = "hey=\"yo man\" zag= zoogles boof stoopers \"\"\"abc efg\"\"\"" DebugWorkingDirectory = ".\\" @@ -24,6 +27,7 @@ CLibType = "Static" BeefLibType = "Static" [Configs.Release.Win64] +OtherLinkFlags = "$(LinkFlags) C:\\Beef\\BeefTools\\TestDLL\\x64\\Debug\\TestDLL.lib" DebugCommandArguments = "hey=\"yo man\" zag= zoogles boof stoopers \"abc efg\"" [Configs.Release.WinFart] @@ -66,4 +70,4 @@ Path = "../../../temp/test.txt" [[ProjectFolder.Items]] Type = "Folder" Path = "../../../temp/borf" -Source = ["a.txt"] \ No newline at end of file +Source = ["a.txt"] diff --git a/IDE/mintest/BeefSpace.toml b/IDE/mintest/BeefSpace.toml index fc86df7b..e105e041 100644 --- a/IDE/mintest/BeefSpace.toml +++ b/IDE/mintest/BeefSpace.toml @@ -33,10 +33,7 @@ AllocStackTraceDepth = 0 IntermediateType = "ObjectAndIRCode" [Configs.Release.Win64] -Toolset = "LLVM" BfSIMDSetting = "SSE3" -BfOptimizationLevel = "O3" -LTOType = "Thin" AllocStackTraceDepth = 0 IntermediateType = "ObjectAndIRCode" COptimizationLevel = "O3" diff --git a/IDE/mintest/src/main.bf b/IDE/mintest/src/main.bf index 3d1c822c..d3c2675b 100644 --- a/IDE/mintest/src/main.bf +++ b/IDE/mintest/src/main.bf @@ -11,13 +11,12 @@ // Zoop //using IDE; using System; -using System.Threading; +//using System.Threading; using System.Collections.Generic; using System.Diagnostics; -using System.Diagnostics; using System.Collections.Generic; using System.Collections; -using System.Reflection; +using System.Threading; // Disable unused variable warning #pragma warning disable 168 @@ -180,8 +179,43 @@ namespace Hey.Dude.Bro *a = 123; } + public static int32 SEHHandler(void* ptr) + { + PrintF("SEH Handler at root\n"); + //Thread.Sleep(15000); + return 0; + } + + [CRepr, CLink] + public static extern void* SetUnhandledExceptionFilter(function int32(void* p) func); + public static int Main(String[] args) { + //Test2(1, 2, 3, 4); + //int a = Fartso; + +#if ZLOG + PrintF("HEY!"); +#endif + List iList = scope .(); + for (int i < 1000) + { + iList.Add("Zpops"); + } + + bool b = false; + + //File file; + int len = args.Count; + + int zog = 123; + + int a = 0x1122334455667788; + + void* prev = SetUnhandledExceptionFilter(=> SEHHandler); + PrintF("Prev: %p\n", prev); + + //TestA(); Blurg.Hey(); for (int i < 100) @@ -192,6 +226,11 @@ namespace Hey.Dude.Bro return 1; } + + public static this() + { + //Runtime.TestCrash(); + } } } diff --git a/IDE/mintest/src/main3.bf b/IDE/mintest/src/main3.bf index 981e9635..a495e617 100644 --- a/IDE/mintest/src/main3.bf +++ b/IDE/mintest/src/main3.bf @@ -137,16 +137,34 @@ class Testo } } -class Blurg +class Norg { - delegate void() mFuncA; - delegate void() mFuncB; + public String mVal; + public int32 mA; + public int32 mB; - int mA = 123; + public int32 GetIt(int32 a, int32 b, int32 c) mut + { + return a + b + c + mA; + } + + public static int32 GetIt(Blurg bl, int32 a, int32 b, int32 c) + { + return a + b + c + bl.mA; + } +} + +struct Blurg +{ + public String mVal; + public int32 mA; + public int32 mB; public this() { - + mVal = "z"; + mA = 111; + mB = 222; } void TestIt(String a, String b) @@ -161,7 +179,7 @@ class Blurg static void Test(int a, int b) { - + PrintF("a0"); } static void Test(int a, int b, int c) @@ -169,63 +187,36 @@ class Blurg } - public static void Use(T val) where T : IFaceA + + public static int32 Hey() { - IFaceA.Fart(); - } + Result res = .Ok(123); - public static void Hey() - { - Loop: - for (int i < 10) + Florg fl = .(); + + let f2 = fl; + //defer f2.Dispose(); + + using (var f = fl) { - defer - { - //for () - JLoop: for (int j < 5) - { - //continue Loop; - } - - //break JLoop; - - int z = 3; - - /*void Zorg() - { - - } - - Zorg();*/ - //return; - - //break Loop; - } + } - - defer - { - scope:: Testo(); - - int i = 0; - if (i == 0) - scope:: Testo(); - if (i == 1) - scope:: Testo(); - } - - - int aaaaaa = 123; - if (aaaaaa == 123) - return;//A - - int bbbbbbb = 222; - return;//B + return 123; } } +struct Florg +{ + int mA = 123; + + public void Dispose() mut + { + + } +} + class CustomAlloc { public void* Alloc(int size, int align)