1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-07 19:18:19 +02:00

Bug fixes, installer, [Export]

Fixed a bunch of bugs in aggregate const initializers
Fixed ZIP bugs
Fixed a compilation case where we change protection while reifying a type
Added another project kind - Dynamic Library
Added [Export] for DLL method exporting
Fixed some issues of things being  generated as __NOINLINE incorrectly
Fixed an issue with module extensions with not-yet-demanded on-demand methods
Started adding Installer
This commit is contained in:
Brian Fiete 2019-08-27 08:04:41 -07:00
parent efa22e51fb
commit 09016c8dc0
135 changed files with 3615 additions and 2337 deletions

View file

@ -405,7 +405,7 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
VD_Solution = <?xml version="1.0" encoding="utf-16"?>|§r|§n<DocumentsSolution xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">|§r|§n <m_persistedPinnedDocumentGroupLabels>|§r|§n <string>X86</string>|§r|§n </m_persistedPinnedDocumentGroupLabels>|§r|§n</DocumentsSolution>
SolutionGuid = {460361DC-9F40-4AE7-B647-82D5D69B70DC}
VD_Solution = <?xml version="1.0" encoding="utf-16"?>|§r|§n<DocumentsSolution xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">|§r|§n <m_persistedPinnedDocumentGroupLabels>|§r|§n <string>X86</string>|§r|§n </m_persistedPinnedDocumentGroupLabels>|§r|§n</DocumentsSolution>
EndGlobalSection
EndGlobal

View file

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.IO;
using Beefy.gfx;

View file

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Diagnostics;
using Beefy.gfx;
using Beefy.sys;

View file

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Reflection;
using System.Threading;
using System.IO;

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Reflection;
using System.Diagnostics;

View file

@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
using Beefy.widgets;
using Beefy;

View file

@ -1,5 +1,4 @@
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.Text;
using System.IO;

View file

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using Beefy.utils;
using Beefy.geom;
using System.Diagnostics;

View file

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using Beefy.utils;
using System.Diagnostics;

View file

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using Beefy;
using Beefy.utils;

View file

@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using Beefy;

View file

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace Beefy.gfx
{

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace Beefy.gfx
{

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Reflection;
using System.Diagnostics;

View file

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using Beefy.gfx;
namespace Beefy.res

View file

@ -4,7 +4,6 @@ using System.Text;
using System.Reflection;
using Beefy.utils;
using Beefy.gfx;
using System.Runtime.InteropServices;
namespace Beefy.res
{

View file

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using Beefy;
namespace Beefy.res

View file

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using Beefy;
namespace Beefy.res

View file

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using Beefy;
namespace Beefy.res

View file

@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Text;
using Beefy.widgets;
using Beefy;
using System.Runtime.InteropServices;
namespace Beefy.sys
{

View file

@ -82,6 +82,7 @@ namespace Beefy.theme.dark
public ~this()
{
Debug.Assert(mHasClosed);
Detach();
}
@ -187,11 +188,6 @@ namespace Beefy.theme.dark
if (mWidgetWindow != null)
{
WidgetWindow.sOnMouseDown.Remove(scope => HandleMouseDown, true);
WidgetWindow.sOnMouseWheel.Remove(scope => HandleMouseWheel, true);
WidgetWindow.sOnMenuItemSelected.Remove(scope => HandleSysMenuItemSelected, true);
WidgetWindow.sOnKeyDown.Remove(scope => HandleKeyDown, true);
mWidgetWindow.Close();
}
mCloseEvent();
@ -249,6 +245,18 @@ namespace Beefy.theme.dark
Close();
}
protected override void RemovedFromWindow()
{
base.RemovedFromWindow();
Debug.Assert(mHasClosed);
WidgetWindow.sOnMouseDown.Remove(scope => HandleMouseDown, true);
WidgetWindow.sOnMouseWheel.Remove(scope => HandleMouseWheel, true);
WidgetWindow.sOnMenuItemSelected.Remove(scope => HandleSysMenuItemSelected, true);
WidgetWindow.sOnKeyDown.Remove(scope => HandleKeyDown, true);
}
}
static class DarkTooltipManager

View file

@ -1,5 +1,4 @@
using System;
using System.Runtime.InteropServices;
namespace Beefy.utils
{

View file

@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
namespace Beefy.utils

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Text;
using Beefy.gfx;
using System.Runtime.InteropServices;
namespace Beefy.widgets
{

View file

@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Text;
using System.Threading;

View file

@ -852,7 +852,7 @@ namespace Beefy.widgets
newSelection = GetRoot();
while (newSelection.mChildAreaHeight > 0)
{
newSelection = GetRoot().mChildItems[GetRoot().mChildItems.Count - 1];
newSelection = newSelection.mChildItems[newSelection.mChildItems.Count - 1];
}
case KeyCode.PageUp:
int32 numIterations = (int32)(mScrollContentContainer.mHeight / selectedItem.mSelfHeight);

View file

@ -277,33 +277,6 @@ namespace System
public bool Profile;
}
namespace Runtime.InteropServices
{
public enum CallingConvention
{
Winapi = 1,
Cdecl = 2,
StdCall = 3,
ThisCall = 4,
FastCall = 5,
Default = Cdecl
}
[AttributeUsage(AttributeTargets.Method /*3*/)]
public struct DllImportAttribute : Attribute
{
public this(String dllName)
{
CallingConvention = .Default;
CLink = false;
}
public CallingConvention CallingConvention;
public bool CLink;
}
}
public struct ImportAttribute : Attribute
{
public this(String libName)
@ -311,6 +284,11 @@ namespace System
}
}
public struct ExportAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.StaticField | AttributeTargets.Field, .NotInherited)]
public struct ThreadStaticAttribute : Attribute
{

View file

@ -261,7 +261,7 @@ namespace System.Collections.Generic
return -1;
}
private int FindEntryAlt<TOther>(TOther key) where TOther : IOpEquals<TKey>, IHashable
private int FindEntryWith<TAltKey>(TAltKey key) where TAltKey : IOpEquals<TKey>, IHashable
{
if (mBuckets != null)
{
@ -545,6 +545,20 @@ namespace System.Collections.Generic
return false;
}
public bool TryGetWith<TAltKey>(TAltKey key, out TKey matchKey, out TValue value) where TAltKey : IOpEquals<TKey>, IHashable
{
int_cosize i = (int_cosize)FindEntryWith(key);
if (i >= 0)
{
matchKey = mEntries[i].mKey;
value = mEntries[i].mValue;
return true;
}
matchKey = default(TKey);
value = default(TValue);
return false;
}
public TValue GetValueOrDefault(TKey key)
{
int_cosize i = (int_cosize)FindEntry(key);

View file

@ -1,5 +1,4 @@
using System;
using System.Runtime.InteropServices;
namespace System.Collections.Generic
{

View file

@ -8,7 +8,6 @@ namespace System {
using System;
using System.Threading;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using System.Diagnostics.Contracts;

View file

@ -6,7 +6,6 @@ namespace System
{
using System;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using System.Diagnostics.Contracts;
using System.Diagnostics;

View file

@ -6,7 +6,6 @@ namespace System.Globalization
{
using System;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using System.Diagnostics.Contracts;
using System.Diagnostics;

View file

@ -8,7 +8,6 @@ namespace System {
using System.Globalization;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
using System.Diagnostics.Contracts;

View file

@ -3,7 +3,6 @@
// The original source was submitted to https://github.com/Microsoft/referencesource
using System;
using System.Runtime.InteropServices;
namespace System.IO
{

View file

@ -1,5 +1,4 @@
using System.IO;
using System.Runtime.InteropServices;
namespace System
{

View file

@ -1,7 +1,6 @@
using System.Reflection;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace System

View file

@ -399,11 +399,11 @@ namespace System
}
}
public int GetHashCode()
static int GetHashCode(char8* ptr, int length)
{
int charsLeft = mLength;
int charsLeft = length;
int hash = 0;
char8* curPtr = Ptr;
char8* curPtr = ptr;
let intSize = sizeof(int);
while (charsLeft >= intSize)
{
@ -422,6 +422,11 @@ namespace System
return hash;
}
public int GetHashCode()
{
return GetHashCode(Ptr, mLength);
}
public override void ToString(String strBuffer)
{
strBuffer.Append(this);
@ -2495,7 +2500,7 @@ namespace System
}
}
public struct StringView : Span<char8>, IFormattable, IPrintable
public struct StringView : Span<char8>, IFormattable, IPrintable, IOpEquals<String>, IHashable
{
public this()
{
@ -2579,6 +2584,11 @@ namespace System
}
}
public int GetHashCode()
{
return String.[Friend]GetHashCode(mPtr, mLength);
}
public override void ToString(String strBuffer)
{
strBuffer.Append(mPtr, mLength);
@ -2840,11 +2850,13 @@ namespace System
return String.UnQuoteString(Ptr, Length, outString);
}
[NoDiscard]
public StringView Substring(int pos)
{
return .(this, pos);
}
[NoDiscard]
public StringView Substring(int pos, int length)
{
return .(this, pos, length);

View file

@ -34,7 +34,6 @@ namespace System {
using System.Globalization;
using System.IO;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
using System.Text;
using System.Threading;

View file

@ -1,7 +1,6 @@
#if BF_PLATFORM_WINDOWS
using System.IO;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.Text;
@ -9,7 +8,6 @@ namespace System
{
class Windows
{
public struct COM_IUnknown
{
public enum ClsContext : uint32
@ -1245,6 +1243,9 @@ namespace System
public static extern IntBool GetFileMUIPath(uint32 dwFlags, char16* pcwszFilePath, char16* pwszLanguage, uint32* pcchLanguage,
char16* pwszFileMUIPath, uint32* pcchFileMUIPath, uint64* pululEnumerator);
[CLink, StdCall]
public static extern HInstance LoadLibraryW(char16* libFileName);
[CLink, StdCall]
public static extern HInstance LoadLibraryExW(char16* libFileName, HModule hFile, uint32 dwFlags);

View file

@ -1,6 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug Static CStatic|Win32">
<Configuration>Debug Static CStatic</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug Static CStatic|x64">
<Configuration>Debug Static CStatic</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug Static|Win32">
<Configuration>Debug Static</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug Static|x64">
<Configuration>Debug Static</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
@ -9,6 +25,22 @@
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Static CStatic|Win32">
<Configuration>Release Static CStatic</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Static CStatic|x64">
<Configuration>Release Static CStatic</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Static|Win32">
<Configuration>Release Static</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Static|x64">
<Configuration>Release Static</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
@ -31,12 +63,36 @@
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
@ -44,6 +100,20 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
@ -51,6 +121,20 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<ItemGroup>
<ClCompile Include="..\..\BeefySysLib\Common.cpp" />
<ClCompile Include="..\..\BeefySysLib\platform\win\CrashCatcher.cpp" />
@ -66,55 +150,119 @@
<ClCompile Include="..\gperftools\src\base\sysinfo.cc" />
<ClCompile Include="..\gperftools\src\central_freelist.cc">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\gperftools\src\heap-profile-table.cc">
</ClCompile>
<ClCompile Include="..\gperftools\src\page_heap.cc">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\gperftools\src\sampler.cc">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\gperftools\src\span.cc">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\gperftools\src\static_vars.cc">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\gperftools\src\symbolize.cc">
</ClCompile>
<ClCompile Include="..\gperftools\src\tcmalloc.cc">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\gperftools\src\tc_common.cc">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\gperftools\src\thread_cache.cc">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\gperftools\src\unity_tcmalloc_obj.cc" />
<ClCompile Include="..\gperftools\src\unity_tcmalloc_raw.cc" />
@ -124,9 +272,17 @@
</ClCompile>
<ClCompile Include="..\gperftools\src\internal_logging.cc">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\gperftools\src\base\logging.cc">
</ClCompile>
@ -135,12 +291,28 @@
<ClCompile Include="..\gperftools\src\malloc_extension.cc">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">
</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">
</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">
</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">
</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">
</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">
</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\gperftools\src\malloc_hook.cc">
</ClCompile>
@ -160,9 +332,17 @@
</ClCompile>
<ClCompile Include="..\gperftools\src\stack_trace_table.cc">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\gperftools\src\base\spinlock.cc">
</ClCompile>
@ -240,45 +420,152 @@
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\BeefRT.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\BeefRT.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\BeefRT.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\BeefRT.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\BeefRT.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\BeefRT.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\BeefRT.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\BeefRT.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\BeefRT.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\BeefRT.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\BeefRT.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\BeefRT.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>Beef$(BeefFilesVersion)Dbg64_d</TargetName>
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">
<TargetName>Beef$(BeefFilesVersion)Dbg64_ssd</TargetName>
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">
<TargetName>Beef$(BeefFilesVersion)Dbg64_sd</TargetName>
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>Beef$(BeefFilesVersion)Dbg64</TargetName>
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">
<TargetName>Beef$(BeefFilesVersion)Dbg64_ss</TargetName>
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
<TargetName>Beef$(BeefFilesVersion)Dbg64_s</TargetName>
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
<TargetName>Beef$(BeefFilesVersion)Dbg32_d</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
<TargetName>Beef$(BeefFilesVersion)Dbg32_ssd</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
<TargetName>Beef$(BeefFilesVersion)Dbg32_sd</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
<TargetName>Beef$(BeefFilesVersion)Dbg32</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
<TargetName>Beef$(BeefFilesVersion)Dbg32_ss</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
<TargetName>Beef$(BeefFilesVersion)Dbg32_s</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BP_DISABLED;BF_NO_BFAPP;BFRT_DYNAMIC;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>BFRTDBG;BP_DISABLED;BF_NO_BFAPP;BFRT_DYNAMIC;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;../;../..;../../BeefySysLib/third_party;../../BeefySysLib;../../BeefySysLib/platform/win;../gperftools/src;../gperftools/src/windows</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<BaseAddress>0x00DB0000</BaseAddress>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<FixedBaseAddress>
</FixedBaseAddress>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BFRTDBG;BP_DISABLED;BF_NO_BFAPP;BFRT_DYNAMIC;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;../;../..;../../BeefySysLib/third_party;../../BeefySysLib;../../BeefySysLib/platform/win;../gperftools/src;../gperftools/src/windows</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<BaseAddress>0x00DB0000</BaseAddress>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<FixedBaseAddress>
</FixedBaseAddress>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BFRTDBG;BP_DISABLED;BF_NO_BFAPP;BFRT_DYNAMIC;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;../;../..;../../BeefySysLib/third_party;../../BeefySysLib;../../BeefySysLib/platform/win;../gperftools/src;../gperftools/src/windows</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -295,7 +582,7 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BP_DISABLED;BF_NO_BFAPP;BFRT_DYNAMIC;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>BFRTDBG;BP_DISABLED;BF_NO_BFAPP;BFRT_DYNAMIC;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;../;../..;../../BeefySysLib/third_party;../../BeefySysLib;../../BeefySysLib/platform/win;../gperftools/src;../gperftools/src/windows</AdditionalIncludeDirectories>
<DisableSpecificWarnings>
</DisableSpecificWarnings>
@ -313,6 +600,54 @@
</BaseAddress>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static CStatic|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BFRTDBG;BP_DISABLED;BF_NO_BFAPP;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;../;../..;../../BeefySysLib/third_party;../../BeefySysLib;../../BeefySysLib/platform/win;../gperftools/src;../gperftools/src/windows</AdditionalIncludeDirectories>
<DisableSpecificWarnings>
</DisableSpecificWarnings>
<SupportJustMyCode>false</SupportJustMyCode>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<OutputFile>$(SolutionDir)\ide\dist\$(TargetName).dll</OutputFile>
<ImportLibrary>$(SolutionDir)\ide\dist\$(TargetName).lib</ImportLibrary>
<FixedBaseAddress>false</FixedBaseAddress>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<BaseAddress>
</BaseAddress>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BFRTDBG;BP_DISABLED;BF_NO_BFAPP;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;../;../..;../../BeefySysLib/third_party;../../BeefySysLib;../../BeefySysLib/platform/win;../gperftools/src;../gperftools/src/windows</AdditionalIncludeDirectories>
<DisableSpecificWarnings>
</DisableSpecificWarnings>
<SupportJustMyCode>false</SupportJustMyCode>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<OutputFile>$(SolutionDir)\ide\dist\$(TargetName).dll</OutputFile>
<ImportLibrary>$(SolutionDir)\ide\dist\$(TargetName).lib</ImportLibrary>
<FixedBaseAddress>false</FixedBaseAddress>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<BaseAddress>
</BaseAddress>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -321,9 +656,50 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>BP_DISABLED;BF_NO_BFAPP;BFRT_DYNAMIC;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>BFRTDBG;BP_DISABLED;BF_NO_BFAPP;BFRT_DYNAMIC;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;../;../..;../../BeefySysLib/third_party;../../BeefySysLib;../../BeefySysLib/platform/win;../gperftools/src;../gperftools/src/windows</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>BFRTDBG;BP_DISABLED;BF_NO_BFAPP;BFRT_DYNAMIC;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;../;../..;../../BeefySysLib/third_party;../../BeefySysLib;../../BeefySysLib/platform/win;../gperftools/src;../gperftools/src/windows</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>BFRTDBG;BP_DISABLED;BF_NO_BFAPP;BFRT_DYNAMIC;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;../;../..;../../BeefySysLib/third_party;../../BeefySysLib;../../BeefySysLib/platform/win;../gperftools/src;../gperftools/src/windows</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -340,7 +716,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>BP_DISABLED;BF_NO_BFAPP;BFRT_DYNAMIC;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>BFRTDBG;BP_DISABLED;BF_NO_BFAPP;BFRT_DYNAMIC;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;../;../..;../../BeefySysLib/third_party;../../BeefySysLib;../../BeefySysLib/platform/win;../gperftools/src;../gperftools/src/windows</AdditionalIncludeDirectories>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@ -354,6 +730,50 @@
<ImportLibrary>$(SolutionDir)\ide\dist\$(TargetName).lib</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static CStatic|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>BFRTDBG;BP_DISABLED;BF_NO_BFAPP;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;../;../..;../../BeefySysLib/third_party;../../BeefySysLib;../../BeefySysLib/platform/win;../gperftools/src;../gperftools/src/windows</AdditionalIncludeDirectories>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<OutputFile>$(SolutionDir)\ide\dist\$(TargetName).dll</OutputFile>
<ImportLibrary>$(SolutionDir)\ide\dist\$(TargetName).lib</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>BFRTDBG;BP_DISABLED;BF_NO_BFAPP;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;../;../..;../../BeefySysLib/third_party;../../BeefySysLib;../../BeefySysLib/platform/win;../gperftools/src;../gperftools/src/windows</AdditionalIncludeDirectories>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<OutputFile>$(SolutionDir)\ide\dist\$(TargetName).dll</OutputFile>
<ImportLibrary>$(SolutionDir)\ide\dist\$(TargetName).lib</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View file

@ -478,6 +478,7 @@
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SupportJustMyCode>false</SupportJustMyCode>
<BufferSecurityCheck>false</BufferSecurityCheck>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -497,6 +498,7 @@
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SupportJustMyCode>false</SupportJustMyCode>
<BufferSecurityCheck>false</BufferSecurityCheck>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -516,6 +518,7 @@
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<SupportJustMyCode>false</SupportJustMyCode>
<BufferSecurityCheck>false</BufferSecurityCheck>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -534,7 +537,7 @@
<DisableSpecificWarnings>
</DisableSpecificWarnings>
<SupportJustMyCode>false</SupportJustMyCode>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<LanguageStandard>stdcpp17</LanguageStandard>
<BufferSecurityCheck>false</BufferSecurityCheck>
</ClCompile>

View file

@ -2,23 +2,15 @@
#define HEAPHOOK
#include <stdio.h>
//#include <crtdefs.h>
#include <malloc.h>
#include <stdlib.h>
#include <string.h>
//#include <intrin.h>
//#define OBJECT_GUARD_END_SIZE 8
#define OBJECT_GUARD_END_SIZE 0
//#define BF_USE_STOMP_ALLOC 1
//extern "C"
//{
//#include "gperftools/stacktrace.h"
//}
#ifdef _MSC_VER
#include <intrin.h>
#pragma intrinsic(_ReturnAddress)
@ -36,8 +28,8 @@
USING_NS_BF;
#ifdef BF_PLATFORM_WINDOWS
bf::System::Runtime::BfRtCallbacks gBfRtCallbacks;
BfRtFlags gBfRtFlags = (BfRtFlags)0;
bf::System::Runtime::BfRtCallbacks gBfRtDbgCallbacks;
BfRtFlags gBfRtDbgFlags = (BfRtFlags)0;
#endif
namespace bf
@ -47,8 +39,6 @@ namespace bf
class Object;
class Exception;
//System::Threading::Thread* gMainThread;
class Internal
{
public:
@ -169,7 +159,7 @@ Beefy::StringT<0> gDbgErrorString;
extern DbgRawAllocData sEmptyAllocData;
extern DbgRawAllocData sObjectAllocData;
#define SETUP_ERROR(str, skip) gDbgErrorString = str; gBfRtCallbacks.DebugMessageData_SetupError(str, skip)
#define SETUP_ERROR(str, skip) gDbgErrorString = str; gBfRtDbgCallbacks.DebugMessageData_SetupError(str, skip)
#ifdef BF_PLATFORM_WINDOWS
#define BF_CAPTURE_STACK(skipCount, outFrames, wantCount) (int)RtlCaptureStackBackTrace(skipCount, wantCount, (void**)outFrames, NULL)
@ -198,10 +188,15 @@ void bf::System::Runtime::Dbg_Init(int version, int flags, BfRtCallbacks* callba
BfpSystem_FatalError(StrFormat("BeefDbg build version '%d' does not match requested version '%d'", BFRT_VERSION, version).c_str(), "BEEF FATAL ERROR");
}
gBfRtCallbacks = *callbacks;
gBfRtFlags = (BfRtFlags)flags;
if (gBfRtDbgCallbacks.Alloc != NULL)
{
BfpSystem_FatalError(StrFormat("BeefDbg already initialized. Multiple executable modules in the same process cannot dynamically link to the Beef debug runtime.").c_str(), "BEEF FATAL ERROR");
}
gBfRtDbgCallbacks = *callbacks;
gBfRtDbgFlags = (BfRtFlags)flags;
#ifdef BF_GC_SUPPORTED
gGCDbgData.mDbgFlags = gBfRtFlags;
gGCDbgData.mDbgFlags = gBfRtDbgFlags;
#endif
}
@ -215,8 +210,8 @@ void* bf::System::Runtime::Dbg_GetCrashInfoFunc()
void Internal::Dbg_MarkObjectDeleted(bf::System::Object* object)
{
BF_ASSERT((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
if ((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0)
BF_ASSERT((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
if ((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0)
object->mObjectFlags = (BfObjectFlags)((object->mObjectFlags & ~BfObjectFlag_StackAlloc) | BfObjectFlag_Deleted);
#ifdef BF_GC_SUPPORTED
gBFGC.ObjectDeleteRequested(object);
@ -293,10 +288,10 @@ intptr Internal::Dbg_PrepareStackTrace(intptr baseAllocSize, intptr maxStackTrac
bf::System::Object* Internal::Dbg_ObjectAlloc(bf::System::Reflection::TypeInstance* typeInst, intptr size)
{
BF_ASSERT((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
BF_ASSERT((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
Object* result;
int allocSize = BF_ALIGN(size, typeInst->mInstAlign);
uint8* allocBytes = (uint8*)BfObjectAllocate(allocSize, typeInst->GetType());
uint8* allocBytes = (uint8*)BfObjectAllocate(allocSize, typeInst->_GetType());
// int dataOffset = (int)(sizeof(intptr) * 2);
// memset(allocBytes + dataOffset, 0, size - dataOffset);
result = (bf::System::Object*)allocBytes;
@ -322,7 +317,7 @@ bf::System::Object* Internal::Dbg_ObjectAlloc(bf::System::ClassVData* classVData
intptr allocSize = size;
bool largeAllocInfo = false;
if ((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0)
if ((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0)
{
if (maxStackTraceDepth > 1)
{
@ -343,7 +338,7 @@ bf::System::Object* Internal::Dbg_ObjectAlloc(bf::System::ClassVData* classVData
#endif
bf::System::Object* result;
if ((gBfRtFlags & BfRtFlags_LeakCheck) != 0)
if ((gBfRtDbgFlags & BfRtFlags_LeakCheck) != 0)
{
allocSize = BF_ALIGN(allocSize, align);
uint8* allocBytes = (uint8*)BfObjectAllocate(allocSize, classVData->mType);
@ -362,21 +357,21 @@ bf::System::Object* Internal::Dbg_ObjectAlloc(bf::System::ClassVData* classVData
sAllocSizes[classVData->mType->mTypeId] += size;
result = (bf::System::Object*)(allocPtr + 16);
#else
if ((gBfRtFlags & BfRtFlags_DebugAlloc) != 0)
if ((gBfRtDbgFlags & BfRtFlags_DebugAlloc) != 0)
{
uint8* allocBytes = (uint8*)BfRawAllocate(allocSize, &sObjectAllocData, NULL, 0);
result = (bf::System::Object*)allocBytes;
}
else
{
uint8* allocBytes = (uint8*)gBfRtCallbacks.Alloc(allocSize);
uint8* allocBytes = (uint8*)gBfRtDbgCallbacks.Alloc(allocSize);
result = (bf::System::Object*)allocBytes;
}
#endif
}
#ifndef BFRT_NODBGFLAGS
if ((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0)
if ((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0)
{
// The order is very important here-
// Once we set mDbgAllocInfo, the memory will be recognized by the GC as being a valid object.
@ -429,7 +424,7 @@ bf::System::Object* Internal::Dbg_ObjectAlloc(bf::System::ClassVData* classVData
void Internal::Dbg_ObjectStackInit(bf::System::Object* result, bf::System::ClassVData* classVData)
{
BF_ASSERT((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
BF_ASSERT((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
result->mClassVData = (intptr)classVData | (intptr)BfObjectFlag_StackAlloc;
#ifndef BFRT_NODBGFLAGS
@ -468,7 +463,7 @@ static void SetupDbgAllocInfo(bf::System::Object* result, intptr origSize)
void Internal::Dbg_ObjectCreated(bf::System::Object* result, intptr size, bf::System::ClassVData* classVData)
{
BF_ASSERT((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
BF_ASSERT((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
#ifndef BFRT_NODBGFLAGS
BF_ASSERT_REL((result->mClassVData & ~(BfObjectFlag_Allocated | BfObjectFlag_Mark3)) == (intptr)classVData);
result->mDbgAllocInfo = (intptr)BF_RETURN_ADDRESS;
@ -477,7 +472,7 @@ void Internal::Dbg_ObjectCreated(bf::System::Object* result, intptr size, bf::Sy
void Internal::Dbg_ObjectCreatedEx(bf::System::Object* result, intptr origSize, bf::System::ClassVData* classVData)
{
BF_ASSERT((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
BF_ASSERT((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
#ifndef BFRT_NODBGFLAGS
BF_ASSERT_REL((result->mClassVData & ~(BfObjectFlag_Allocated | BfObjectFlag_Mark3)) == (intptr)classVData);
SetupDbgAllocInfo(result, origSize);
@ -486,7 +481,7 @@ void Internal::Dbg_ObjectCreatedEx(bf::System::Object* result, intptr origSize,
void Internal::Dbg_ObjectAllocated(bf::System::Object* result, intptr size, bf::System::ClassVData* classVData)
{
BF_ASSERT((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
BF_ASSERT((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
result->mClassVData = (intptr)classVData;
#ifndef BFRT_NODBGFLAGS
result->mDbgAllocInfo = (intptr)BF_RETURN_ADDRESS;
@ -495,14 +490,14 @@ void Internal::Dbg_ObjectAllocated(bf::System::Object* result, intptr size, bf::
void Internal::Dbg_ObjectAllocatedEx(bf::System::Object* result, intptr origSize, bf::System::ClassVData* classVData)
{
BF_ASSERT((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
BF_ASSERT((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
result->mClassVData = (intptr)classVData;
SetupDbgAllocInfo(result, origSize);
}
void Internal::Dbg_ObjectPreDelete(bf::System::Object* object)
{
BF_ASSERT((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
BF_ASSERT((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
#ifndef BFRT_NODBGFLAGS
const char* errorPtr = NULL;
@ -539,7 +534,7 @@ void Internal::Dbg_ObjectPreDelete(bf::System::Object* object)
errorStr += StrFormat(" (%s)0x%@\n", typeName.c_str(), object);
SETUP_ERROR(errorStr.c_str(), 2);
BF_DEBUG_BREAK();
gBfRtCallbacks.DebugMessageData_Fatal();
gBfRtDbgCallbacks.DebugMessageData_Fatal();
return;
}
#endif
@ -547,7 +542,7 @@ void Internal::Dbg_ObjectPreDelete(bf::System::Object* object)
void Internal::Dbg_ObjectPreCustomDelete(bf::System::Object* object)
{
BF_ASSERT((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
BF_ASSERT((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0);
const char* errorPtr = NULL;
@ -566,7 +561,7 @@ void Internal::Dbg_ObjectPreCustomDelete(bf::System::Object* object)
errorStr += StrFormat(" (%s)0x%@\n", typeName.c_str(), object);
SETUP_ERROR(errorStr.c_str(), 2);
BF_DEBUG_BREAK();
gBfRtCallbacks.DebugMessageData_Fatal();
gBfRtDbgCallbacks.DebugMessageData_Fatal();
return;
}
}

View file

@ -34,7 +34,7 @@
#include "gc.h"
#ifdef BF_GC_SUPPORTED
#include <fstream>
#include "BeefySysLib/Common.h"
#include "BeefySysLib/BFApp.h"
@ -180,12 +180,12 @@ void BFGC::MarkMembers(bf::System::Object* obj)
if (((obj->mObjectFlags & BF_OBJECTFLAG_DELETED) != 0) && (!mMarkingDeleted))
{
mMarkingDeleted = true;
gBfRtCallbacks.Object_GCMarkMembers(obj);
gBfRtDbgCallbacks.Object_GCMarkMembers(obj);
mMarkingDeleted = false;
}
else
{
gBfRtCallbacks.Object_GCMarkMembers(obj);
gBfRtDbgCallbacks.Object_GCMarkMembers(obj);
}
}
@ -636,7 +636,7 @@ BFGC::BFGC()
mGCThread = NULL;
gGCDbgData.mDbgFlags = gBfRtFlags;
gGCDbgData.mDbgFlags = gBfRtDbgFlags;
ThreadCache::InitTSD();
if (UNLIKELY(Static::pageheap() == NULL)) ThreadCache::InitModule();
gGCDbgData.mObjRootPtr = Static::pageheap()->pagemap_.root_;
@ -767,7 +767,7 @@ void BFCheckObjectSize(bf::System::Object* obj, int size)
void BFGC::ConservativeScan(void* startAddr, int length)
{
if ((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) == 0)
if ((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) == 0)
return;
BFLOG2(GCLog::EVENT_CONSERVATIVE_SCAN, (intptr)startAddr, (intptr)startAddr + length);
@ -877,7 +877,7 @@ bool BFGC::HandlePendingGCData()
void BFGC::SweepSpan(tcmalloc_obj::Span* span, int expectedStartPage)
{
if ((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) == 0)
if ((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) == 0)
return;
if (span->location != tcmalloc_obj::Span::IN_USE)
@ -980,7 +980,7 @@ void BFGC::SweepSpan(tcmalloc_obj::Span* span, int expectedStartPage)
mSweepInfo.mLeakObjects.push_back(obj);
}
BFLOG2(GCLog::EVENT_LEAK, (intptr)obj, (intptr)obj->GetType());
BFLOG2(GCLog::EVENT_LEAK, (intptr)obj, (intptr)obj->_GetType());
#ifdef BF_GC_LOG_ENABLED
gGCLog.Write();
#endif
@ -1160,8 +1160,8 @@ void BFGC::ProcessSweepInfo()
//TODO: Testing!
//OutputDebugStrF(gDbgErrorString.c_str());
gBfRtCallbacks.SetErrorString(gDbgErrorString.c_str());
gBfRtCallbacks.DebugMessageData_SetupError(errorStr.c_str(), 1);
gBfRtDbgCallbacks.SetErrorString(gDbgErrorString.c_str());
gBfRtDbgCallbacks.DebugMessageData_SetupError(errorStr.c_str(), 1);
BF_DEBUG_BREAK();
}
@ -1614,7 +1614,7 @@ void BFGC::FinishCollect()
{
//OutputDebugStrF("Collected %d objects\n", mFinalizeList.size());
if ((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) == 0)
if ((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) == 0)
return;
mLastFreeCount = 0;
@ -1711,7 +1711,7 @@ void BFGC::FinishCollect()
{
// Temporarily remove object flags so GetType() won't fail
obj->mObjectFlags = BfObjectFlag_None;
bf::System::Type* type = obj->GetType();
bf::System::Type* type = obj->_GetType();
//auto pairVal = sizeMap.insert(std::make_pair(type, 0));
//int newSize = pairVal.first->second + objSize;
int* sizePtr = NULL;
@ -2046,7 +2046,7 @@ void BFGC::ObjReportHandleSpan(tcmalloc_obj::Span* span, int expectedStartPage,
int objectFlags = obj->mObjectFlags;
if ((objectFlags & BF_OBJECTFLAG_DELETED) == 0)
{
bf::System::Type* type = obj->GetType();
bf::System::Type* type = obj->_GetType();
//auto pairVal = sizeMap.insert(std::make_pair(type, 0));
//int newSize = pairVal.first->second + elementSize;
//pairVal.first->second = newSize;

View file

@ -436,15 +436,7 @@ namespace bf
{
private:
BFRT_EXPORT static void Init();
BFRT_EXPORT static void Run();
static void MarkAllStaticMembers()
{
gBfRtCallbacks.GC_MarkAllStaticMembers();
}
static bool CallRootCallbacks()
{
return gBfRtCallbacks.GC_CallRootCallbacks();
}
BFRT_EXPORT static void Run();
BFRT_EXPORT static void ReportTLSMember(intptr tlsIndex, void* ptr, void* markFunc);
BFRT_EXPORT static void StopCollecting();
BFRT_EXPORT static void AddStackMarkableObject(Object* obj);
@ -460,11 +452,11 @@ namespace bf
//static void ToLeakString(Object* obj, String* strBuffer);
static void DoMarkAllStaticMembers()
{
MarkAllStaticMembers();
BFRTCALLBACKS.GC_MarkAllStaticMembers();
}
static bool DoCallRootCallbacks()
{
return CallRootCallbacks();
return BFRTCALLBACKS.GC_CallRootCallbacks();
}
BFRT_EXPORT static void SetAutoCollectPeriod(intptr periodMS);
BFRT_EXPORT static void SetCollectFreeThreshold(intptr freeBytes);

View file

@ -1,4 +1,3 @@
#define _WIN32_WINNT _WIN32_WINNT_WIN8
// This spits out interesting stats periodically to the console
@ -74,7 +73,7 @@ void BFGC::RawInit()
void BFGC::RawMarkSpan(tcmalloc_raw::Span* span, int expectedStartPage)
{
if ((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) == 0)
if ((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) == 0)
return;
if (span->location != tcmalloc_raw::Span::IN_USE)
@ -278,7 +277,7 @@ void BFGC::RawReportHandleSpan(tcmalloc_raw::Span* span, int expectedStartPage,
if (rawAllocData->mType != NULL)
{
int typeSize;
if ((gBfRtFlags & BfRtFlags_ObjectHasDebugFlags) != 0)
if ((gBfRtDbgFlags & BfRtFlags_ObjectHasDebugFlags) != 0)
typeSize = rawAllocData->mType->mSize;
else
typeSize = ((bf::System::Type_NOFLAGS*)rawAllocData->mType)->mSize;
@ -449,8 +448,8 @@ void BFGC::RawShutdown()
BF_ASSERT(mSweepInfo.mLeakCount > 0);
gBfRtCallbacks.SetErrorString(gDbgErrorString.c_str());
gBfRtCallbacks.DebugMessageData_SetupError(errorStr.c_str(), 0);
gBfRtDbgCallbacks.SetErrorString(gDbgErrorString.c_str());
gBfRtDbgCallbacks.DebugMessageData_SetupError(errorStr.c_str(), 0);
BF_DEBUG_BREAK();
}
else

View file

@ -121,8 +121,16 @@ namespace bf
}
}
extern bf::System::Runtime::BfRtCallbacks gBfRtCallbacks;
extern BfRtFlags gBfRtFlags;
#ifdef BFRTDBG
#define BFRTCALLBACKS gBfRtDbgCallbacks
#define BFRTFLAGS gBfRtDbgFlags
#else
#define BFRTCALLBACKS gBfRtCallbacks
#define BFRTFLAGS gBfRtFlags
#endif
extern bf::System::Runtime::BfRtCallbacks BFRTCALLBACKS;
extern BfRtFlags BFRTFLAGS;
namespace bf
{
@ -155,9 +163,9 @@ namespace bf
};
#endif
Type* GetType()
Type* _GetType()
{
return gBfRtCallbacks.Object_GetType(this);
return BFRTCALLBACKS.Object_GetType(this);
}
Type* GetTypeSafe()
@ -275,7 +283,7 @@ namespace bf
const char* CStr()
{
return gBfRtCallbacks.String_ToCStr(this);
return BFRTCALLBACKS.String_ToCStr(this);
}
};
}

View file

@ -261,6 +261,11 @@ void bf::System::Runtime::Init(int version, int flags, BfRtCallbacks* callbacks)
BfpSystem_Init(BFP_VERSION, sysInitFlags);
BfpSystem_AddCrashInfoFunc(GetCrashInfo);
if (gBfRtCallbacks.Alloc != NULL)
{
BfpSystem_FatalError(StrFormat("BeefRT already initialized. Multiple executable modules in the same process cannot dynamically link to the Beef runtime.").c_str(), "BEEF FATAL ERROR");
}
if (version != BFRT_VERSION)
{
BfpSystem_FatalError(StrFormat("BeefRT build version '%d' does not match requested version '%d'", BFRT_VERSION, version).c_str(), "BEEF FATAL ERROR");

View file

@ -4,19 +4,19 @@ USING_NS_BF;
Beefy::String bf::System::Object::GetTypeName()
{
String* strObj = gBfRtCallbacks.String_Alloc();
Type* type = GetType();
gBfRtCallbacks.Type_GetFullName(type, strObj);
String* strObj = BFRTCALLBACKS.String_Alloc();
Type* type = _GetType();
BFRTCALLBACKS.Type_GetFullName(type, strObj);
Beefy::String str = strObj->CStr();
gBfRtCallbacks.Object_Delete(strObj);
BFRTCALLBACKS.Object_Delete(strObj);
return str;
}
Beefy::String bf::System::Type::GetFullName()
{
String* strObj = gBfRtCallbacks.String_Alloc();
gBfRtCallbacks.Type_GetFullName(this, strObj);
String* strObj = BFRTCALLBACKS.String_Alloc();
BFRTCALLBACKS.Type_GetFullName(this, strObj);
Beefy::String str = strObj->CStr();
gBfRtCallbacks.Object_Delete(strObj);
BFRTCALLBACKS.Object_Delete(strObj);
return str;
}

View file

@ -70,27 +70,27 @@ namespace bf
static Thread* Alloc()
{
return gBfRtCallbacks.Thread_Alloc();
return BFRTCALLBACKS.Thread_Alloc();
}
BfInternalThread* GetInternalThread()
{
return gBfRtCallbacks.Thread_GetInternalThread(this);
return BFRTCALLBACKS.Thread_GetInternalThread(this);
}
BfDbgInternalThread* Dbg_GetInternalThread()
{
return (BfDbgInternalThread*)gBfRtCallbacks.Thread_GetInternalThread(this);
return (BfDbgInternalThread*)BFRTCALLBACKS.Thread_GetInternalThread(this);
}
void SetInternalThread(BfInternalThread* internalThread)
{
gBfRtCallbacks.Thread_SetInternalThread(this, internalThread);
BFRTCALLBACKS.Thread_SetInternalThread(this, internalThread);
}
int GetMaxStackSize()
{
return gBfRtCallbacks.Thread_GetMaxStackSize(this);
return BFRTCALLBACKS.Thread_GetMaxStackSize(this);
}
};
}

View file

@ -1,11 +0,0 @@
FileVersion = 1
[Project]
Name = "BeefInstall"
StartupObject = "BeefInstall.Program"
[ProjectFolder]
[[ProjectFolder.Items]]
Type = "Source"
Path = "../../IDE/src/util/Zip.bf"

View file

@ -1,6 +0,0 @@
FileVersion = 1
Projects = {BeefInstall = {Path = "."}}
Unlocked = ["corlib"]
[Workspace]
StartupProject = "BeefInstall"

View file

@ -1,136 +0,0 @@
FileVersion = 1
LastConfig = "Debug"
LastPlatform = "Win64"
RecentFilesList = ["c:\\Beef\\BeefTools\\BeefInstall\\src\\Program.bf", "c:\\Beef\\IDE\\src\\util\\Zip.bf", "c:\\beef\\BeefLibs\\corlib\\src\\System\\String.bf"]
[MainWindow]
X = 148
Y = 85
Width = 1724
Height = 1830
[MainDockingFrame]
Type = "DockingFrame"
SplitType = 2
[[MainDockingFrame.DockedWidgets]]
RequestedWidth = 350.0
RequestedHeight = 200.0
SizePriority = 200.0
Type = "DockingFrame"
SplitType = 1
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
RequestedWidth = 200.0
RequestedHeight = 200.0
Type = "TabbedView"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
Active = true
TabLabel = "Workspace"
TabWidth = 115.0
Type = "ProjectPanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
IsFillWidget = true
Permanent = true
RequestedWidth = 150.0
RequestedHeight = 150.0
SizePriority = 150.0
DefaultDocumentsTabbedView = true
Type = "TabbedView"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "String.bf"
TabWidth = 89.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\BeefLibs\\corlib\\src\\System\\String.bf"
CursorPos = 41778
VertPos = 24600.0
ProjectName = "corlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Zip.bf"
TabWidth = 63.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\IDE\\src\\util\\Zip.bf"
CursorPos = 3000
VertPos = 540.0
ProjectName = "BeefInstall"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
Active = true
TabLabel = "Program.bf"
TabWidth = 96.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\BeefTools\\BeefInstall\\src\\Program.bf"
CursorPos = 1398
ProjectName = "BeefInstall"
[[MainDockingFrame.DockedWidgets]]
RequestedWidth = 250.0
RequestedHeight = 250.0
Type = "DockingFrame"
SplitType = 1
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
RequestedWidth = 250.0
RequestedHeight = 250.0
SizePriority = 0.5
Type = "TabbedView"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Memory"
TabWidth = 99.0
Type = "MemoryPanel"
AutoResize = "Auto_Mul8"
RequestedWidth = 300.0
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Watch"
TabWidth = 86.0
Type = "WatchPanel"
Columns = [{Width = 200.0}, {Width = 200.0}, {Width = 200.0}]
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
Active = true
TabLabel = "Auto"
TabWidth = 77.0
Type = "AutoWatchPanel"
Columns = [{Width = 200.0}, {Width = 200.0}, {Width = 200.0}]
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
RequestedWidth = 250.0
RequestedHeight = 250.0
SizePriority = 0.5
Type = "TabbedView"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Find Results"
TabWidth = 119.0
Type = "FindResultsPanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Threads"
TabWidth = 97.0
Type = "ThreadPanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Call Stack"
TabWidth = 105.0
Type = "CallStackPanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Immediate"
TabWidth = 111.0
Type = "ImmediatePanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
Active = true
TabLabel = "Output"
TabWidth = 90.0
Type = "OutputPanel"
[DebuggerDisplayTypes.""]
IntDisplayType = "Default"
MmDisplayType = "Default"

View file

@ -0,0 +1,25 @@
FileVersion = 1
[Project]
Name = "Stub"
StartupObject = "BIStub.Program"
[Configs.Debug.Win64]
TargetDirectory = "$(WorkspaceDir)/../dist"
TargetName = "$(ProjectName)_d"
BeefLibType = "Static"
[Configs.Release.Win64]
TargetDirectory = "$(WorkspaceDir)/../dist"
[Configs.Paranoid.Win64]
TargetDirectory = "$(WorkspaceDir)/../dist"
[Configs.Test.Win64]
TargetDirectory = "$(WorkspaceDir)/../dist"
[ProjectFolder]
[[ProjectFolder.Items]]
Type = "Source"
Path = "../../../IDE/src/util/Zip.bf"

View file

@ -0,0 +1,11 @@
FileVersion = 1
Projects = {Stub = {Path = "."}}
Unlocked = ["corlib"]
[Workspace]
StartupProject = "Stub"
[Configs.Debug.Win64]
AllocType = "CRT"
EnableObjectDebugFlags = false
IntermediateType = "ObjectAndIRCode"

View file

@ -1,6 +1,7 @@
using System;
using System.IO;
namespace BeefInstall
namespace System.Windows
{
class CabFile
{

View file

@ -0,0 +1,236 @@
using System;
namespace System.Windows
{
class PEFile
{
public const uint16 PE_MACHINE_X86 = 0x14c;
public const uint16 PE_MACHINE_X64 = 0x8664;
[CRepr]
public struct PEHeader
{
public uint16 e_magic; // Magic number
public uint16 e_cblp; // uint8s on last page of file
public uint16 e_cp; // Pages in file
public uint16 e_crlc; // Relocations
public uint16 e_cparhdr; // Size of header in paragraphs
public uint16 e_minalloc; // Minimum extra paragraphs needed
public uint16 e_maxalloc; // Maximum extra paragraphs needed
public uint16 e_ss; // Initial (relative) SS value
public uint16 e_sp; // Initial SP value
public uint16 e_csum; // Checksum
public uint16 e_ip; // Initial IP value
public uint16 e_cs; // Initial (relative) CS value
public uint16 e_lfarlc; // File address of relocation table
public uint16 e_ovno; // Overlay number
public uint16[4] e_res; // Reserved uint16s
public uint16 e_oemid; // OEM identifier (for e_oeminfo)
public uint16 e_oeminfo; // OEM information; e_oemid specific
public uint16[10] e_res2; // Reserved uint16s
public int32 e_lfanew; // File address of new exe header
};
[CRepr]
public struct PEFileHeader
{
public uint16 mMachine;
public uint16 mNumberOfSections;
public uint32 mTimeDateStamp;
public uint32 mPointerToSymbolTable;
public uint32 mNumberOfSymbols;
public uint16 mSizeOfOptionalHeader;
public uint16 mCharacteristics;
};
[CRepr]
public struct PEImportObjectHeader
{
public uint16 mSig1;
public uint16 mSig2;
public uint16 mVersion;
public uint16 mMachine;
public uint32 mTimeDateStamp;
public uint32 mDataSize;
public uint16 mHint;
public uint16 mType;
};
[CRepr]
public struct PEDataDirectory
{
public uint32 mVirtualAddress;
public uint32 mSize;
};
[CRepr]
public struct PEOptionalHeader32
{
//
// Standard fields.
//
public uint16 mMagic;
public uint8 mMajorLinkerVersion;
public uint8 mMinorLinkerVersion;
public uint32 mSizeOfCode;
public uint32 mSizeOfInitializedData;
public uint32 mSizeOfUninitializedData;
public uint32 mAddressOfEntryPoint;
public uint32 mBaseOfCode;
public uint32 mBaseOfData;
//
// NT additional fields.
//
public uint32 mImageBase;
public uint32 mSectionAlignment;
public uint32 mFileAlignment;
public uint16 mMajorOperatingSystemVersion;
public uint16 mMinorOperatingSystemVersion;
public uint16 mMajorImageVersion;
public uint16 mMinorImageVersion;
public uint16 mMajorSubsystemVersion;
public uint16 mMinorSubsystemVersion;
public uint32 mReserved1;
public uint32 mSizeOfImage;
public uint32 mSizeOfHeaders;
public uint32 mCheckSum;
public uint16 mSubsystem;
public uint16 mDllCharacteristics;
public uint32 mSizeOfStackReserve;
public uint32 mSizeOfStackCommit;
public uint32 mSizeOfHeapReserve;
public uint32 mSizeOfHeapCommit;
public uint32 mLoaderFlags;
public uint32 mNumberOfRvaAndSizes;
public PEDataDirectory[16] mDataDirectory;
};
[CRepr]
public struct PEOptionalHeader64
{
//
// Standard fields.
//
public uint16 mMagic;
public uint8 mMajorLinkerVersion;
public uint8 mMinorLinkerVersion;
public uint32 mSizeOfCode;
public uint32 mSizeOfInitializedData;
public uint32 mSizeOfUninitializedData;
public uint32 mAddressOfEntryPoint;
public uint32 mBaseOfCode;
//
// NT additional fields.
//
public uint64 mImageBase;
public uint32 mSectionAlignment;
public uint32 mFileAlignment;
public uint16 mMajorOperatingSystemVersion;
public uint16 mMinorOperatingSystemVersion;
public uint16 mMajorImageVersion;
public uint16 mMinorImageVersion;
public uint16 mMajorSubsystemVersion;
public uint16 mMinorSubsystemVersion;
public uint32 mReserved1;
public uint32 mSizeOfImage;
public uint32 mSizeOfHeaders;
public uint32 mCheckSum;
public uint16 mSubsystem;
public uint16 mDllCharacteristics;
public uint64 mSizeOfStackReserve;
public uint64 mSizeOfStackCommit;
public uint64 mSizeOfHeapReserve;
public uint64 mSizeOfHeapCommit;
public uint32 mLoaderFlags;
public uint32 mNumberOfRvaAndSizes;
public PEDataDirectory[16] mDataDirectory;
};
[CRepr]
struct PE_NTHeaders32
{
uint32 mSignature;
PEFileHeader mFileHeader;
PEOptionalHeader32 mOptionalHeader;
};
[CRepr]
public struct PE_NTHeaders64
{
public uint32 mSignature;
public PEFileHeader mFileHeader;
public PEOptionalHeader64 mOptionalHeader;
};
const int IMAGE_SIZEOF_SHORT_NAME = 8;
[CRepr]
public struct PESectionHeader
{
public char8[IMAGE_SIZEOF_SHORT_NAME] mName;
public uint32 mVirtualSize;
public uint32 mVirtualAddress;
public uint32 mSizeOfRawData;
public uint32 mPointerToRawData;
public uint32 mPointerToRelocations;
public uint32 mPointerToLineNumbers;
public uint16 mNumberOfRelocations;
public uint16 mNumberOfLineNumbers;
public uint32 mCharacteristics;
};
[CRepr]
struct COFFRelocation
{
uint32 mVirtualAddress;
uint32 mSymbolTableIndex;
uint16 mType;
};
[CRepr]
struct PE_SymInfo
{
[Union]
public struct Name
{
public char8[8] mName;
public int32[2] mNameOfs;
}
public Name mName;
/*union
{
char mName[8];
int32 mNameOfs[2];
};*/
public int32 mValue;
public uint16 mSectionNum;
public uint16 mType;
public int8 mStorageClass;
public int8 mNumOfAuxSymbols;
};
[CRepr]
struct PE_SymInfoAux
{
public uint32 mLength;
public uint16 mNumberOfRelocations;
public uint16 mNumberOfLinenumbers;
public uint32 mCheckSum;
public uint16 mNumber;
public uint8 mSelection;
public char8 mUnused;
public char8 mUnused2;
public char8 mUnused3;
};
}
}

View file

@ -0,0 +1,179 @@
using System;
using IDE.Util;
using System.IO;
using System.Windows;
namespace BIStub
{
class Program
{
bool mFailed;
void Fail(StringView str)
{
if (mFailed)
return;
mFailed = true;
Windows.MessageBoxA(default, scope String..AppendF("ERROR: {}", str), "FATAL ERROR", Windows.MB_ICONHAND);
}
bool HandleCommandLineParam(String key, String value)
{
return false;
}
void UnhandledCommandLine(String key, String value)
{
}
void ParseCommandLine(String[] args)
{
for (var str in args)
{
int eqPos = str.IndexOf('=');
if (eqPos == -1)
{
if (!HandleCommandLineParam(str, null))
UnhandledCommandLine(str, null);
}
else
{
var cmd = scope String(str, 0, eqPos);
var param = scope String(str, eqPos + 1);
if (!HandleCommandLineParam(cmd, param))
UnhandledCommandLine(cmd, param);
}
}
}
Result<void> ExtractTo(ZipFile zipFile, StringView destDir, StringView subStr)
{
String fileName = scope .();
String destPath = scope .();
for (int i < zipFile.GetNumFiles())
{
ZipFile.Entry entry = scope .();
if (zipFile.SelectEntry(i, entry) case .Err)
continue;
fileName.Clear();
entry.GetFileName(fileName);
if (!fileName.StartsWith(subStr))
continue;
destPath.Clear();
destPath.Append(destDir);
destPath.Append('/');
destPath.Append(fileName);
if (entry.IsDirectory)
{
if (Directory.CreateDirectory(destPath) case .Err)
return .Err;
}
else
{
if (entry.ExtractToFile(destPath) case .Err)
return .Err;
}
}
return .Ok;
}
void CheckPE()
{
let module = Windows.GetModuleHandleW(null);
uint8* moduleData = (uint8*)(int)module;
PEFile.PEHeader* header = (.)moduleData;
PEFile.PE_NTHeaders64* hdr64 = (.)(moduleData + header.e_lfanew);
if (hdr64.mFileHeader.mMachine == PEFile.PE_MACHINE_X64)
{
int fileEnd = 0;
for (int sectIdx < hdr64.mFileHeader.mNumberOfSections)
{
PEFile.PESectionHeader* sectHdrHead = (.)((uint8*)(hdr64 + 1)) + sectIdx;
fileEnd = Math.Max(fileEnd, sectHdrHead.mPointerToRawData + sectHdrHead.mSizeOfRawData);
}
}
}
public function void InstallFunc(StringView dest, StringView filter);
public function int ProgressFunc();
public function void CancelFunc();
public function void StartFunc(InstallFunc installFunc, ProgressFunc progressFunc, CancelFunc cancelFunc);
static void UI_Install(StringView dest, StringView filter)
{
}
static int UI_GetProgress()
{
return 0;
}
static void UI_Cancel()
{
}
void StartUI(StringView dir)
{
String destLib = scope .();
destLib.Append(dir);
destLib.Append("/../dist/StubUI_d.dll");
var lib = Windows.LoadLibraryW(destLib.ToScopedNativeWChar!());
if (lib.IsInvalid)
{
Fail(scope String()..AppendF("Failed to load installer UI '{}'", destLib));
return;
}
StartFunc startFunc = (.)Windows.GetProcAddress(lib, "Start");
if (startFunc == null)
{
Fail(scope String()..AppendF("Failed to initialize installer UI '{}'", destLib));
return;
}
startFunc(=> UI_Install, => UI_GetProgress, => UI_Cancel);
}
void Run()
{
String cwd = scope .();
Directory.GetCurrentDirectory(cwd);
StartUI(cwd);
CheckPE();
ZipFile zipFile = scope .();
zipFile.Open(@"c:\\temp\\build_1827.zip");
ExtractTo(zipFile, @"c:\temp\unzip", .());
CabFile cabFile = scope .();
cabFile.Init();
cabFile.Copy();
}
static int Main(String[] args)
{
Program pg = new Program();
pg.ParseCommandLine(args);
pg.Run();
delete pg;
return 0;
}
}
}

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,24 @@
FileVersion = 1
Dependencies = {corlib = "*", Beefy2D = "*"}
[Project]
Name = "StubUI"
TargetType = "BeefDynLib"
StartupObject = "Program"
DefaultNamespace = "BIStubUI"
[Configs.Debug.Win64]
TargetDirectory = "$(WorkspaceDir)/../dist"
TargetName = "$(ProjectName)_d"
OtherLinkFlags = "$(LinkFlags) BeefySysLib64_d.lib"
PostBuildCmds = ["Sleep(1000)", "cmd.exe /c echo Hey!", "CopyFilesIfNewer(\"$(WorkspaceDir)/../../../IDE/dist/BeefySysLib*.*\", \"$(WorkspaceDir)/../dist\")"]
DebugCommand = "$(WorkspaceDir)\\..\\dist\\Stub_d.exe"
[Configs.Release.Win64]
TargetDirectory = "$(WorkspaceDir)/../dist"
[Configs.Paranoid.Win64]
TargetDirectory = "$(WorkspaceDir)/../dist"
[Configs.Test.Win64]
TargetDirectory = "$(WorkspaceDir)/../dist"

View file

@ -0,0 +1,10 @@
FileVersion = 1
Projects = {StubUI = {Path = "."}, Beefy2D = "*"}
Unlocked = ["corlib"]
[Workspace]
StartupProject = "StubUI"
[Configs.Debug.Win64]
AllocType = "CRT"
IntermediateType = "ObjectAndIRCode"

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,41 @@
using System;
using Beefy;
using Beefy.widgets;
namespace BIStubUI
{
class BIApp : BFApp
{
public function void InstallFunc(StringView dest, StringView filter);
public function int ProgressFunc();
public function void CancelFunc();
public InstallFunc mInstallFunc;
public ProgressFunc mProgressFunc;
public CancelFunc mCancelFunc;
Widget mRootWidget;
WidgetWindow mMainWindow;
const int cWidth = 700;
const int cHeight = 700;
public override void Init()
{
base.Init();
BFWindow.Flags windowFlags = BFWindow.Flags.Border | BFWindow.Flags.SysMenu | //| BFWindow.Flags.CaptureMediaKeys |
BFWindow.Flags.Caption | BFWindow.Flags.Minimize | BFWindow.Flags.QuitOnClose;
mRootWidget = new Widget();
mMainWindow = new WidgetWindow(null, "Beef Installer", 0, 0, cWidth, cHeight, windowFlags, mRootWidget);
mMainWindow.SetMinimumSize(480, 360);
mMainWindow.mIsMainWindow = true;
}
}
static
{
public static BIApp gApp;
}
}

View file

@ -0,0 +1,38 @@
using System;
using System.Diagnostics;
namespace BIStubUI
{
class Program
{
public static this()
{
Debug.WriteLine("Initializing StubUI");
}
public static ~this()
{
Debug.WriteLine("Deinitializing StubUI");
}
[Export]
public static void Start(BIApp.InstallFunc installFunc, BIApp.ProgressFunc progressFunc, BIApp.CancelFunc cancelFunc)
{
gApp = new BIApp();
gApp.mInstallFunc = installFunc;
gApp.mProgressFunc = progressFunc;
gApp.mCancelFunc = cancelFunc;
gApp.Run();
}
public static void Hello()
{
}
public static int Main(String[] args)
{
return 0;
}
}
}

View file

@ -1,96 +0,0 @@
using System;
using IDE.Util;
using System.IO;
namespace BeefInstall
{
class Program
{
bool HandleCommandLineParam(String key, String value)
{
return false;
}
void UnhandledCommandLine(String key, String value)
{
}
void ParseCommandLine(String[] args)
{
for (var str in args)
{
int eqPos = str.IndexOf('=');
if (eqPos == -1)
{
if (!HandleCommandLineParam(str, null))
UnhandledCommandLine(str, null);
}
else
{
var cmd = scope String(str, 0, eqPos);
var param = scope String(str, eqPos + 1);
if (!HandleCommandLineParam(cmd, param))
UnhandledCommandLine(cmd, param);
}
}
}
Result<void> ExtractTo(ZipFile zipFile, StringView destDir, StringView subStr)
{
String fileName = scope .();
String destPath = scope .();
for (int i < zipFile.GetNumFiles())
{
ZipFile.Entry entry = scope .();
if (zipFile.SelectEntry(i, entry) case .Err)
continue;
fileName.Clear();
entry.GetFileName(fileName);
if (!fileName.StartsWith(subStr))
continue;
destPath.Clear();
destPath.Append(destDir);
destPath.Append('/');
destPath.Append(fileName);
if (entry.IsDirectory)
{
if (Directory.CreateDirectory(destPath) case .Err)
return .Err;
}
else
{
if (entry.ExtractToFile(destPath) case .Err)
return .Err;
}
}
return .Ok;
}
void Run()
{
ZipFile zipFile = scope .();
zipFile.Open(@"c:\\temp\\build_1827.zip");
ExtractTo(zipFile, @"c:\temp\unzip", .());
CabFile cabFile = scope .();
cabFile.Init();
cabFile.Copy();
}
static int Main(String[] args)
{
Program pg = new Program();
pg.ParseCommandLine(args);
pg.Run();
delete pg;
return 0;
}
}
}

View file

@ -247,6 +247,7 @@
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;BFSYSLIB_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>./; ./platform/win/; third_party/agg-2.4/include; third_party/agg-2.4/include/platform/win32; third_party/; third_party/libffi/i686-pc-cygwin; third_party/libffi/i686-pc-cygwin/include; third_party/libffi/include</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<SupportJustMyCode>false</SupportJustMyCode>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>

View file

@ -27,7 +27,7 @@ TargetDirectory = "$(WorkspaceDir)/dist"
TargetName = "BeefIDE_d"
OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64_d.lib BeefySysLib64_d.lib"
CLibType = "Dynamic"
DebugCommandArguments = "-proddir=C:\\Beef\\BeefTools\\BeefInstall"
DebugCommandArguments = "-open=c:\\proj\\TestCPP\\TestCPP.bfdbg"
DebugWorkingDirectory = "c:\\Beef\\IDE\\Tests\\EmptyTest"
EnvironmentVars = ["_NO_DEBUG_HEAP=1"]

View file

@ -1,13 +1,14 @@
FileVersion = 1
LastConfig = "Debug"
LastPlatform = "Win64"
RecentFilesList = ["c:\\beef\\ide\\src\\util\\Zip.bf", "c:\\beef\\ide\\src\\ui\\AutoComplete.bf"]
RecentFilesList = ["c:\\beef\\ide\\src\\IDEApp.bf", "c:\\beef\\IDEHelper\\DebugManager.cpp", "c:\\beef\\IDEHelper\\Compiler\\BfModule.cpp", "c:\\beef\\IDEHelper\\Compiler\\BfCompiler.cpp", "c:\\beef\\ide\\src\\BuildContext.bf", "c:\\beef\\beefrt\\dbg\\gc.cpp", "c:\\beef\\ide\\src\\ScriptManager.bf", "c:\\beef\\ide\\src\\Project.bf", "c:\\beef\\ide\\src\\CommandQueueManager.bf", "c:\\Beef\\BeefLibs\\corlib\\src\\System\\String.bf"]
StepFilters = ["System.StringView.operator System.StringView"]
[MainWindow]
X = 679
Y = 504
Width = 2487
Height = 1554
X = 1021
Y = 227
Width = 2206
Height = 1810
[MainDockingFrame]
Type = "DockingFrame"
@ -41,39 +42,346 @@ DefaultDocumentsTabbedView = true
Type = "TabbedView"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
Active = true
TabLabel = "Zip.bf"
TabWidth = 73.0
TabLabel = "DebugManager.cpp"
TabWidth = 156.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\util\\Zip.bf"
CursorPos = 2802
VertPos = 780.0
FilePath = "c:\\beef\\IDEHelper\\DebugManager.cpp"
CursorPos = 15042
VertPos = 8490.0
ProjectName = "IDEHelper"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "CommandQueueManager.bf"
TabWidth = 205.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\CommandQueueManager.bf"
CursorPos = 896
VertPos = 1170.0
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "ProjectProperties.bf"
TabWidth = 145.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\ui\\ProjectProperties.bf"
CursorPos = 1930
VertPos = 270.0
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "ProjectPanel.bf"
TabWidth = 116.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\ui\\ProjectPanel.bf"
CursorPos = 58964
VertPos = 25350.0
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Directory.bf"
TabWidth = 98.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\IO\\Directory.bf"
CursorPos = 294
ProjectName = "corlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "AutoComplete.bf"
TabWidth = 138.0
TabWidth = 128.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\ui\\AutoComplete.bf"
CursorPos = 3588
VertPos = 2205.0
CursorPos = 5948
VertPos = 3060.0
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Disassembly"
TabWidth = 122.0
Type = "DisassemblyPanel"
TabLabel = "Stopwatch.bf"
TabWidth = 105.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\Diagnostics\\Stopwatch.bf"
CursorPos = 309
ProjectName = "corlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "IComparable.bf"
TabWidth = 120.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\IComparable.bf"
CursorPos = 404
ProjectName = "corlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Dictionary.bf"
TabWidth = 103.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\Collections\\Generic\\Dictionary.bf"
CursorPos = 13141
ProjectName = "corlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Workspace.bf"
TabWidth = 110.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\Workspace.bf"
CursorPos = 10820
VertPos = 5745.0
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Project.bf"
TabWidth = 85.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\Project.bf"
CursorPos = 31286
VertPos = 16875.0
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "gc.cpp"
TabWidth = 69.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\beefrt\\dbg\\gc.cpp"
CursorPos = 29571
VertPos = 16845.0
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "String.bf"
TabWidth = 79.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\String.bf"
CursorPos = 20322
VertPos = 11775.0
ProjectName = "corlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "ImmediatePanel.bf"
TabWidth = 137.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\ui\\ImmediatePanel.bf"
CursorPos = 1248
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "StatusBar.bf"
TabWidth = 98.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\ui\\StatusBar.bf"
CursorPos = 11876
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "ImmediateWidget.bf"
TabWidth = 148.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\ui\\ImmediateWidget.bf"
CursorPos = 10575
VertPos = 4425.0
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "ScriptManager.bf"
TabWidth = 130.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\ScriptManager.bf"
CursorPos = 46372
VertPos = 29080.0
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "ListView.bf"
TabWidth = 91.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\BeefLibs\\Beefy2D\\src\\widgets\\ListView.bf"
CursorPos = 24610
ProjectName = "Beefy2D"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "EditWidget.bf"
TabWidth = 109.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\BeefLibs\\Beefy2D\\src\\widgets\\EditWidget.bf"
CursorPos = 70859
ProjectName = "Beefy2D"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "OpenFileInSolutionDialog.bf"
TabWidth = 191.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\ui\\OpenFileInSolutionDialog.bf"
CursorPos = 3378
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "InstalledProjectDialog.bf"
TabWidth = 171.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\ui\\InstalledProjectDialog.bf"
CursorPos = 2662
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "ClassViewPanel.bf"
TabWidth = 133.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\ui\\ClassViewPanel.bf"
CursorPos = 10536
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "BinaryDataWidget.bf"
TabWidth = 149.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\ui\\BinaryDataWidget.bf"
CursorPos = 87580
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "BfIRBuilder.cpp"
TabWidth = 116.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\IDEHelper\\Compiler\\BfIRBuilder.cpp"
CursorPos = 132547
ProjectName = "IDEHelper"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "BfIRCodeGen.cpp"
TabWidth = 131.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\IDEHelper\\Compiler\\BfIRCodeGen.cpp"
CursorPos = 124783
ProjectName = "IDEHelper"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "memory"
TabWidth = 78.0
Type = "SourceViewPanel"
FilePath = "c:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\VC\\Tools\\MSVC\\14.21.27702\\include\\memory"
CursorPos = 68115
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Verifier.cpp"
TabWidth = 96.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\extern\\llvm-project_8_0_0\\llvm\\lib\\IR\\Verifier.cpp"
CursorPos = 189261
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "BfExprEvaluator.cpp"
TabWidth = 145.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\IDEHelper\\Compiler\\BfExprEvaluator.cpp"
CursorPos = 395532
ProjectName = "IDEHelper"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "BfModule.cpp"
TabWidth = 111.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\IDEHelper\\Compiler\\BfModule.cpp"
CursorPos = 701696
VertPos = 303765.0
ProjectName = "IDEHelper"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Result.bf"
TabWidth = 80.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\Result.bf"
CursorPos = 699
ProjectName = "corlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "LegacyPassManager.cpp"
TabWidth = 173.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\extern\\llvm-project_8_0_0\\llvm\\lib\\IR\\LegacyPassManager.cpp"
CursorPos = 56552
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "LexicalScopes.cpp"
TabWidth = 135.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\extern\\llvm-project_8_0_0\\llvm\\lib\\CodeGen\\LexicalScopes.cpp"
CursorPos = 6263
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "TimeZoneInfo.bf"
TabWidth = 124.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\TimeZoneInfo.bf"
CursorPos = 118021
ProjectName = "corlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Windows.bf"
TabWidth = 98.0
Type = "SourceViewPanel"
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\Windows.bf"
CursorPos = 40234
ProjectName = "corlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Platform.cpp"
TabWidth = 104.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\BeefySysLib\\platform\\win\\Platform.cpp"
CursorPos = 59719
ProjectName = "BeefySysLib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "BfCompiler.bf"
TabWidth = 108.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\Compiler\\BfCompiler.bf"
CursorPos = 7397
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "BfCompiler.cpp"
TabWidth = 118.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\IDEHelper\\Compiler\\BfCompiler.cpp"
CursorPos = 181147
VertPos = 82605.0
ProjectName = "IDEHelper"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "WinDebugger.cpp"
TabWidth = 135.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\IDEHelper\\WinDebugger.cpp"
CursorPos = 120268
ProjectName = "Debugger64"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "BuildContext.bf"
TabWidth = 117.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\BuildContext.bf"
CursorPos = 3642
VertPos = 1395.0
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
Active = true
TabLabel = "IDEApp.bf"
TabWidth = 88.0
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\src\\IDEApp.bf"
CursorPos = 320852
VertPos = 158655.0
ProjectName = "IDE"
[[MainDockingFrame.DockedWidgets]]
RequestedWidth = 250.0
RequestedHeight = 553.0
RequestedHeight = 408.0
Type = "DockingFrame"
SplitType = 1
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
RequestedWidth = 250.0
RequestedHeight = 250.0
SizePriority = 0.443346
SizePriority = 0.4483547
Type = "TabbedView"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
@ -99,7 +407,7 @@ TabLabel = "Watch"
TabWidth = 86.0
Type = "WatchPanel"
Columns = [{Width = 306.0}, {Width = 675.0}, {Width = 200.0}]
Items = [""]
Items = ["this", "instIdx", "mcBlock", "bfProject", "gApp", ""]
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Auto"
@ -110,7 +418,7 @@ Columns = [{Width = 200.0}, {Width = 442.0}, {Width = 200.0}]
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
RequestedWidth = 910.0
RequestedHeight = 793.0
SizePriority = 0.203422
SizePriority = 0.1984133
Type = "TabbedView"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
@ -146,6 +454,31 @@ TabLabel = "Output"
TabWidth = 90.0
Type = "OutputPanel"
[[Breakpoints]]
File = "c:\\Beef\\extern\\llvm-project_8_0_0\\llvm\\lib\\IR\\Verifier.cpp"
Line = 4875
Column = 6
[[Breakpoints]]
File = "c:\\Beef\\extern\\llvm-project_8_0_0\\llvm\\lib\\IR\\Verifier.cpp"
Line = 214
Column = 4
[[Breakpoints]]
File = "c:\\beef\\ide\\src\\Workspace.bf"
Line = 661
Column = 3
[[Bookmarks]]
File = "c:\\beef\\ide\\src\\BuildContext.bf"
Line = 465
Column = 6
[[Bookmarks]]
File = "c:\\beef\\ide\\src\\BuildContext.bf"
Line = 465
Column = 6
[DebuggerDisplayTypes.""]
IntDisplayType = "Default"
IntDisplayType = "Hexadecimal"
MmDisplayType = "Default"

View file

@ -0,0 +1,5 @@
FileVersion = 1
[Project]
Name = "BugW001"
StartupObject = "BugW001.Program"

View file

@ -0,0 +1,8 @@
FileVersion = 1
Projects = {BugW001 = {Path = "."}}
[Workspace]
StartupProject = "BugW001"
[Configs.Debug.Win64]
BfOptimizationLevel = "O0"

View file

@ -0,0 +1,9 @@
# This tests extensions on Result<void*>, where the void* operator would be double-declared in the IR
ShowFile("src/Program.bf")
GotoText("//Main_Start")
ToggleBreakpoint()
RunWithCompiling()
ToggleCommentAt("Result_Get")
Compile()

View file

@ -0,0 +1,18 @@
#pragma warning disable 168
using System;
namespace BugW001
{
class Program
{
static void Main()
{
//Main_Start
Result<void*> result = .();
/*Result_Get
void* vp = result;
*/
}
}
}

View file

@ -10,6 +10,7 @@ IntermediateType = "ObjectAndIRCode"
ConfigSelections = {mintest2 = {Enabled = false}}
[Configs.Debug.Win64]
BfOptimizationLevel = "O0"
IntermediateType = "ObjectAndIRCode"
COptimizationLevel = "Og"

View file

@ -291,33 +291,6 @@ namespace System
public bool Profile;
}
namespace Runtime.InteropServices
{
public enum CallingConvention
{
Winapi = 1,
Cdecl = 2,
StdCall = 3,
ThisCall = 4,
FastCall = 5,
Default = Cdecl
}
[AttributeUsage(AttributeTargets.Method /*3*/)]
public struct DllImportAttribute : Attribute
{
public this(String dllName)
{
CallingConvention = .Default;
CLink = false;
}
public CallingConvention CallingConvention;
public bool CLink;
}
}
public struct ImportAttribute : Attribute
{
public this(String libName)
@ -325,6 +298,11 @@ namespace System
}
}
public struct ExportAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.StaticField | AttributeTargets.Field, .NotInherited)]
public struct ThreadStaticAttribute : Attribute
{

View file

@ -7,7 +7,6 @@
#endif
using System;
using System.Runtime;
using System.Diagnostics;
using System.Diagnostics.Contracts;
using System.Threading;

View file

@ -1,5 +1,4 @@
using System;
using System.Runtime.InteropServices;
namespace System.Collections
{

View file

@ -19,7 +19,6 @@ namespace System
///#if GENERICS_WORK
/// using System.Numerics;
///#endif
using System.Runtime.InteropServices;
using System.Diagnostics.Contracts;
public struct Double : double, IHashable, IOpComparable, IOpNegatable, ICanBeNaN /*: IComparable, IFormattable, IConvertible

View file

@ -16,7 +16,6 @@ namespace System
{
//This class contains only static members and doesn't require serialization.
using System;
using System.Runtime;
using System.Diagnostics.Contracts;
using System.Diagnostics;

View file

@ -1,6 +1,5 @@
using System.Reflection;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace System

View file

@ -20,7 +20,6 @@
namespace System.Threading
{
using System;
using System.Runtime;
using System.Threading;
using System.Diagnostics.Contracts;
using System.Diagnostics;

View file

@ -1,387 +0,0 @@
LastConfig = "Debug"
LastPlatform = "Win64"
RecentFilesList = ["c:\\beef\\ide\\mintest\\src\\main2.cs", "c:\\beef\\ide\\mintest\\src\\main3.cs", "c:\\beef\\ide\\mintest\\src\\main.cs", "c:\\beef\\ide\\mintest\\minlib\\src\\System\\String.cs", "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Collections\\Generic\\List.bf", "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Array.cs", "c:\\beef\\ide\\mintest\\minlib\\src\\System\\IComparable.cs", "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Collections\\Generic\\Dictionary.bf", "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Object.cs", "Disassembly"]
[MainWindow]
X = 128
Y = 166
Width = 2434
Height = 1847
[MainDockingFrame]
Type = "DockingFrame"
SplitType = 2
[[MainDockingFrame.DockedWidgets]]
RequestedWidth = 250.000000
RequestedHeight = 1133.000000
SizePriority = 1133.000000
Type = "DockingFrame"
SplitType = 1
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
RequestedWidth = 263.000000
RequestedHeight = 250.000000
SizePriority = 0.000000
Type = "TabbedView"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Workspace"
TabWidth = 95.000000
Type = "ProjectPanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
IsFillWidget = true
RequestedWidth = 1639.000000
RequestedHeight = 150.000000
SizePriority = 1639.000000
DefaultDocumentsTabbedView = true
Type = "TabbedView"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Contracts.cs"
TabWidth = 110.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Diagnostics\\Contracts\\Contracts.cs"
CursorPos = 2270
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "internal.cpp"
TabWidth = 108.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\beefrt\\rt\\internal.cpp"
CursorPos = 20281
VertPos = 0.000000
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "main4.cs"
TabWidth = 90.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\mintest2\\src\\main4.cs"
CursorPos = 182
VertPos = 0.000000
ProjectName = "mintest2"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Internal.cs"
TabWidth = 98.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Internal.cs"
CursorPos = 2881
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Array.cs"
TabWidth = 86.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Array.cs"
CursorPos = 608
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Variant.cs"
TabWidth = 96.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Variant.cs"
CursorPos = 4292
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "String.cs"
TabWidth = 89.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\String.cs"
CursorPos = 10914
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Runtime.bf"
TabWidth = 102.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Runtime.bf"
CursorPos = 2021
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "List.bf"
TabWidth = 74.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Collections\\Generic\\List.bf"
CursorPos = 9410
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Event.bf"
TabWidth = 86.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Event.bf"
CursorPos = 743
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "IEnumerator.cs"
TabWidth = 125.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Collections\\IEnumerator.cs"
CursorPos = 464
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Type.cs"
TabWidth = 83.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Type.cs"
CursorPos = 1538
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Disassembly"
TabWidth = 112.000000
Type = "DisassemblyPanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Object.cs"
TabWidth = 93.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Object.cs"
CursorPos = 452
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "main2.cs"
TabWidth = 90.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\src\\main2.cs"
CursorPos = 2845
VertPos = 3060.000000
ProjectName = "mintest"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "main3.cs"
TabWidth = 90.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\src\\main3.cs"
CursorPos = 1954
VertPos = 0.000000
ProjectName = "mintest"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "main.cs"
TabWidth = 83.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\src\\main.cs"
CursorPos = 4383
VertPos = 0.000000
ProjectName = "mintest"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Nullable.cs"
TabWidth = 103.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Nullable.cs"
CursorPos = 623
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "GC.cs"
TabWidth = 72.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\GC.cs"
CursorPos = 1934
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "testdll.cpp"
TabWidth = 100.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\beeftools\\testdll\\testdll.cpp"
CursorPos = 939
VertPos = 0.000000
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "stdio.h"
TabWidth = 79.000000
Type = "SourceViewPanel"
FilePath = "c:\\program files (x86)\\windows kits\\10\\include\\10.0.16299.0\\ucrt\\stdio.h"
CursorPos = 27765
VertPos = 0.000000
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Profiler.bf"
TabWidth = 96.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Diagnostics\\Profiler.bf"
CursorPos = 450
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Dictionary.bf"
TabWidth = 113.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\Collections\\Generic\\Dictionary.bf"
CursorPos = 3575
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "IComparable.cs"
TabWidth = 130.000000
Type = "SourceViewPanel"
FilePath = "c:\\beef\\ide\\mintest\\minlib\\src\\System\\IComparable.cs"
CursorPos = 75
VertPos = 0.000000
ProjectName = "minlib"
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
RequestedWidth = 291.000000
RequestedHeight = 250.000000
SizePriority = 0.000000
Type = "TabbedView"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Properties"
TabWidth = 90.000000
Type = "PropertiesPanel"
[[MainDockingFrame.DockedWidgets]]
RequestedWidth = 250.000000
RequestedHeight = 540.000000
SizePriority = 0.000000
Type = "DockingFrame"
SplitType = 1
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
RequestedWidth = 920.000000
RequestedHeight = 250.000000
SizePriority = 0.396523
Type = "TabbedView"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Auto"
TabWidth = 150.000000
Type = "AutoWatchPanel"
Items = ["args", "str", ""]
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs.Columns]]
Width = 225.000000
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs.Columns]]
Width = 498.000000
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs.Columns]]
Width = 275.000000
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Watch"
TabWidth = 150.000000
Type = "WatchPanel"
Items = ["args", "z", ""]
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs.Columns]]
Width = 264.000000
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs.Columns]]
Width = 984.000000
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs.Columns]]
Width = 275.000000
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Memory"
TabWidth = 150.000000
Type = "MemoryPanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Breakpoints"
TabWidth = 150.000000
Type = "BreakpointPanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
RequestedWidth = 777.000000
RequestedHeight = 250.000000
SizePriority = 0.603477
Type = "TabbedView"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Threads"
TabWidth = 150.000000
Type = "ThreadPanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Immediate"
TabWidth = 150.000000
Type = "ImmediatePanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Output"
TabWidth = 150.000000
Type = "OutputPanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Find Results"
TabWidth = 150.000000
Type = "FindResultsPanel"
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
TabLabel = "Call Stack"
TabWidth = 150.000000
Type = "CallStackPanel"
[[Bookmarks]]
File = "c:\\beef\\IDE\\mintest\\main.cs"
Line = 306
Column = 3
[[Bookmarks]]
File = "c:\\beef\\IDE\\mintest\\main.cs"
Line = 56
Column = 2
[[Bookmarks]]
File = "c:\\beef\\IDE\\mintest\\main2.cs"
Line = 8
Column = 0
[[Bookmarks]]
File = "c:\\beef\\IDE\\mintest\\main3.cs"
Line = 177
Column = 2
[DebuggerDisplayTypes]
[DebuggerDisplayTypes.""]
IntDisplayType = "Hexadecimal"
MmDisplayType = "Default"
[[StepFilters]]
Filter = "System::Internal::ThrowIndexOutOfRange"
[[StepFilters]]
Filter = "BfObjectStackInit"
[[StepFilters]]
Filter = "[].this"
[[StepFilters]]
Filter = "std::basic_string<>::basic_string<>"
[[StepFilters]]
Filter = "System.StringView.this"
[[StepFilters]]
Filter = "TestA::TestA"

View file

@ -15,7 +15,6 @@ using System;
using System.Threading;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Collections.Generic;
using System.Collections;
@ -178,13 +177,18 @@ namespace Hey.Dude.Bro
public static int Main(String[] args)
{
while (true)
Blurg.Hey();
/*while (true)
{
int a = 0;
}
int* iPtr = null;
*iPtr = 123;
*iPtr = 123;*/
GC.SetAutoCollectPeriod(20);
Thread.Sleep(1000);
String str = scope .("Boops!");
int len = str.GetLength();
@ -196,7 +200,7 @@ namespace Hey.Dude.Bro
//Thread.Sleep(500);
Test2(1, 2, 3, 4);
//Test2(1, 2, 3, 4);
thread.Join();

View file

@ -0,0 +1,7 @@
class Snorf
{
struct Bloog
{
int mA;
}
}

View file

@ -80,13 +80,6 @@ class ClassF : ClassE
}
class Snorf
{
public static void Borf(ClassD cd)
{
cd.Poo();
}
}
[NoDiscard("Use this value!")]
struct TestStruct
@ -97,70 +90,33 @@ struct TestStruct
class Blurg
{
public static void UseTS(TestStruct ts)
[Export, CLink, StdCall]
public static void Poof()
{
int c = ts.mA;
PrintF("Poofs!\n");
}
[NoDiscard("Why you no use me?")]
public static int UseMe()
[Export, CLink, StdCall]
public static void Poof2()
{
return 999;
}
public static TestStruct UseIt()
{
return .();
}
mixin FartOut(int a)
{
a = 0;
//let c = 1;
//c = 3;
//int b = 123;
//int c = 99;
PrintF("Poofs2!\n");
}
public static void Hey()
{
mixin Fart(int a)
{
//a = 0;
//int b = 123;
//int c = 99;
}
Snorf sn = scope .();
/*int c = 222;
Fart!(c);*/
Result<void*> voidPtrResult = default;
//int __CRASH_AUTOVARIABLE__ = 123;
//UseIt();
//UseMe();
//int a;
//void* val = voidPtrResult;
for (int i < 10)
{
int a = 0;
}
//Result<TestStruct> ts = .Ok(.());
TestStruct ts = .();
ts.mA = 111;
ts.mB = 222;
UseTS(ts);
//let val = ts.Get();
//Snorf.Bloog bl = .();
ClassD cd = null;
//let str = cd.mStr;
#if A || B
ClassC cc = scope .();
#endif
//Poof();
}
}

1062
IDE/src/BuildContext.bf Normal file

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.IO;
using Beefy.widgets;

View file

@ -5,7 +5,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using Beefy.widgets;
using IDE.Compiler;

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Threading;
using System.Diagnostics;
using Beefy.widgets;

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Diagnostics;
using Beefy.widgets;
using Beefy.utils;

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using Beefy.utils;
using System.Diagnostics;
using System.Threading;

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace IDE.Compiler

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace IDE.Compiler
{

View file

@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace IDE.Compiler

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using Beefy.gfx;
using Beefy.theme.dark;
using System.IO;

View file

@ -1,5 +1,4 @@
using System;
using System.Runtime.InteropServices;
using IDE;
namespace Debugger

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Diagnostics;
using Beefy.utils;
using IDE.util;

Some files were not shown because too many files have changed in this diff Show more