mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 03:52:19 +02:00
Fixes from macOS, first working build
This commit is contained in:
parent
2e84b4229c
commit
67ee302451
19 changed files with 237 additions and 107 deletions
|
@ -166,7 +166,7 @@ BootApp::BootApp()
|
||||||
|
|
||||||
#ifdef BF_PLATFORM_WINDOWS
|
#ifdef BF_PLATFORM_WINDOWS
|
||||||
mTargetTriple = "x86_64-pc-windows-msvc";
|
mTargetTriple = "x86_64-pc-windows-msvc";
|
||||||
#elif defined BF_PLATFORM_OSX
|
#elif defined BF_PLATFORM_MACOS
|
||||||
mTargetTriple = "x86_64-apple-macosx10.14.0";
|
mTargetTriple = "x86_64-apple-macosx10.14.0";
|
||||||
#else
|
#else
|
||||||
mTargetTriple = "x86_64-unknown-linux-gnu";
|
mTargetTriple = "x86_64-unknown-linux-gnu";
|
||||||
|
|
|
@ -25,10 +25,28 @@ DebugWorkingDirectory = "c:\\beef\\ide\\mintest"
|
||||||
EnvironmentVars = ["_NO_DEBUG_HEAP=1"]
|
EnvironmentVars = ["_NO_DEBUG_HEAP=1"]
|
||||||
PreprocessorMacros = ["DEBUG", "CLI"]
|
PreprocessorMacros = ["DEBUG", "CLI"]
|
||||||
|
|
||||||
|
[Configs.Debug.macOS]
|
||||||
|
TargetDirectory = "$(WorkspaceDir)/../IDE/dist"
|
||||||
|
TargetName = "$(ProjectName)_d"
|
||||||
|
OtherLinkFlags = "./libBeefRT_d.dylib ./libIDEHelper_d.dylib ./libBeefySysLib_d.dylib ../../extern/llvm_linux_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDemangle.a -Wl,-rpath -Wl,."
|
||||||
|
CLibType = "Dynamic"
|
||||||
|
DebugCommandArguments = "-proddir=..\\ -config=Debug -platform=Win64"
|
||||||
|
DebugWorkingDirectory = "$(WorkspaceDir)/../IDE/dist"
|
||||||
|
PreprocessorMacros = ["DEBUG", "CLI"]
|
||||||
|
|
||||||
|
[Configs.Release.macOS]
|
||||||
|
TargetDirectory = "$(WorkspaceDir)/../IDE/dist"
|
||||||
|
OtherLinkFlags = "./libBeefRT.dylib ./libIDEHelper.dylib ./libBeefySysLib.dylib ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDemangle.a -Wl,-rpath -Wl,."
|
||||||
|
CLibType = "Dynamic"
|
||||||
|
DebugCommandArguments = "-proddir=..\\ -config=Debug -platform=Win64"
|
||||||
|
DebugWorkingDirectory = "$(WorkspaceDir)/../IDE/dist"
|
||||||
|
PreprocessorMacros = ["CLI"]
|
||||||
|
|
||||||
|
|
||||||
[Configs.Debug.Linux64]
|
[Configs.Debug.Linux64]
|
||||||
TargetDirectory = "$(WorkspaceDir)/../IDE/dist"
|
TargetDirectory = "$(WorkspaceDir)/../IDE/dist"
|
||||||
TargetName = "$(ProjectName)_d"
|
TargetName = "$(ProjectName)_d"
|
||||||
OtherLinkFlags = "./libBeefRT_d.so ./libIDEHelper_d.so ./libBeefySysLib_d.so ../../extern/llvm_linux_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDemangle.a -ltinfo -Wl,-rpath -Wl,."
|
OtherLinkFlags = "./libBeefRT_d.so ./libIDEHelper_d.so ./libBeefySysLib_d.so ../../extern/llvm_linux_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDemangle.a -ltinfo -Wl,-rpath -Wl,$ORIGIN"
|
||||||
CLibType = "Dynamic"
|
CLibType = "Dynamic"
|
||||||
DebugCommandArguments = "-proddir=..\\ -config=Debug -platform=Win64"
|
DebugCommandArguments = "-proddir=..\\ -config=Debug -platform=Win64"
|
||||||
DebugWorkingDirectory = "$(WorkspaceDir)/../IDE/dist"
|
DebugWorkingDirectory = "$(WorkspaceDir)/../IDE/dist"
|
||||||
|
@ -36,7 +54,7 @@ PreprocessorMacros = ["DEBUG", "CLI"]
|
||||||
|
|
||||||
[Configs.Release.Linux64]
|
[Configs.Release.Linux64]
|
||||||
TargetDirectory = "$(WorkspaceDir)/../IDE/dist"
|
TargetDirectory = "$(WorkspaceDir)/../IDE/dist"
|
||||||
OtherLinkFlags = "./libBeefRT.so ./libIDEHelper.so ./libBeefySysLib.so ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDemangle.a -ltinfo -Wl,-rpath -Wl,."
|
OtherLinkFlags = "./libBeefRT.so ./libIDEHelper.so ./libBeefySysLib.so ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDemangle.a -ltinfo -Wl,-rpath -Wl,$ORIGIN"
|
||||||
CLibType = "Dynamic"
|
CLibType = "Dynamic"
|
||||||
DebugCommandArguments = "-proddir=..\\ -config=Debug -platform=Win64"
|
DebugCommandArguments = "-proddir=..\\ -config=Debug -platform=Win64"
|
||||||
DebugWorkingDirectory = "$(WorkspaceDir)/../IDE/dist"
|
DebugWorkingDirectory = "$(WorkspaceDir)/../IDE/dist"
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#endif
|
#endif
|
||||||
#include "windows/config.h"
|
#include "windows/config.h"
|
||||||
#include "windows/gperftools/tcmalloc.h"
|
#include "windows/gperftools/tcmalloc.h"
|
||||||
#elif defined BF_PLATFORM_OSX
|
#elif defined BF_PLATFORM_MACOS
|
||||||
#include "osx/config.h"
|
#include "osx/config.h"
|
||||||
#include "osx/gperftools/tcmalloc.h"
|
#include "osx/gperftools/tcmalloc.h"
|
||||||
#elif defined BF_PLATFORM_IOS
|
#elif defined BF_PLATFORM_IOS
|
||||||
|
|
|
@ -76,8 +76,10 @@ bool Thread::GetIsThreadPoolThread()
|
||||||
|
|
||||||
bool Thread::JoinInternal(int millisecondsTimeout)
|
bool Thread::JoinInternal(int millisecondsTimeout)
|
||||||
{
|
{
|
||||||
bool success = BfpThread_WaitFor(GetInternalThread()->mThreadHandle, millisecondsTimeout);
|
auto internalThread = GetInternalThread();
|
||||||
//((BFInternalThread*) thread)->ClrState(Threading::ThreadState::WaitSleepJoin);
|
if (internalThread == NULL)
|
||||||
|
return true;
|
||||||
|
bool success = BfpThread_WaitFor(internalThread->mThreadHandle, millisecondsTimeout);
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -176,6 +178,8 @@ void Thread::ManualThreadInit()
|
||||||
{
|
{
|
||||||
#ifdef BF_THREAD_TLS
|
#ifdef BF_THREAD_TLS
|
||||||
sCurrentThread = this;
|
sCurrentThread = this;
|
||||||
|
#else
|
||||||
|
BfpTLS_SetValue(BfTLSManager::sInternalThreadKey, this);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
BfInternalThread* internalThread = SetupInternalThread();
|
BfInternalThread* internalThread = SetupInternalThread();
|
||||||
|
@ -207,6 +211,8 @@ void Thread::SetStackStart(void* ptr)
|
||||||
void Thread::InternalFinalize()
|
void Thread::InternalFinalize()
|
||||||
{
|
{
|
||||||
auto internalThread = GetInternalThread();
|
auto internalThread = GetInternalThread();
|
||||||
|
if (internalThread == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
bool wantsJoin = false;
|
bool wantsJoin = false;
|
||||||
//
|
//
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#ifdef BF_PLATFORM_WINDOWS
|
#ifdef BF_PLATFORM_WINDOWS
|
||||||
#include "windows/config.h"
|
#include "windows/config.h"
|
||||||
#include "windows/gperftools/tcmalloc.h"
|
#include "windows/gperftools/tcmalloc.h"
|
||||||
#elif defined BF_PLATFORM_OSX
|
#elif defined BF_PLATFORM_MACOS
|
||||||
#include "osx/config.h"
|
#include "osx/config.h"
|
||||||
#include "osx/gperftools/tcmalloc.h"
|
#include "osx/gperftools/tcmalloc.h"
|
||||||
#elif defined BF_PLATFORM_IOS
|
#elif defined BF_PLATFORM_IOS
|
||||||
|
|
|
@ -27,6 +27,8 @@
|
||||||
#include <cxxabi.h>
|
#include <cxxabi.h>
|
||||||
#include <random>
|
#include <random>
|
||||||
|
|
||||||
|
#include <mach-o/dyld.h>
|
||||||
|
|
||||||
USING_NS_BF;
|
USING_NS_BF;
|
||||||
|
|
||||||
|
|
||||||
|
@ -293,6 +295,48 @@ static Array<CrashInfoFunc> gCrashInfoFuncs;
|
||||||
static String gCmdLine;
|
static String gCmdLine;
|
||||||
static String gExePath;
|
static String gExePath;
|
||||||
|
|
||||||
|
typedef struct _Unwind_Context _Unwind_Context; // opaque
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
_URC_NO_REASON = 0,
|
||||||
|
_URC_OK = 0,
|
||||||
|
_URC_FOREIGN_EXCEPTION_CAUGHT = 1,
|
||||||
|
_URC_FATAL_PHASE2_ERROR = 2,
|
||||||
|
_URC_FATAL_PHASE1_ERROR = 3,
|
||||||
|
_URC_NORMAL_STOP = 4,
|
||||||
|
_URC_END_OF_STACK = 5,
|
||||||
|
_URC_HANDLER_FOUND = 6,
|
||||||
|
_URC_INSTALL_CONTEXT = 7,
|
||||||
|
_URC_CONTINUE_UNWIND = 8,
|
||||||
|
_URC_FAILURE = 9
|
||||||
|
} _Unwind_Reason_Code;
|
||||||
|
|
||||||
|
typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)(struct _Unwind_Context *, void *);
|
||||||
|
extern "C" _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *);
|
||||||
|
extern "C" uintptr_t _Unwind_GetIP(struct _Unwind_Context *context);
|
||||||
|
|
||||||
|
static String gUnwindExecStr;
|
||||||
|
static int gUnwindIdx = 0;
|
||||||
|
|
||||||
|
static _Unwind_Reason_Code UnwindHandler(struct _Unwind_Context* context, void* ref)
|
||||||
|
{
|
||||||
|
gUnwindIdx++;
|
||||||
|
if (gUnwindIdx < 2)
|
||||||
|
return _URC_NO_REASON;
|
||||||
|
|
||||||
|
dl_info dyldInfo;
|
||||||
|
void* addr = (void*)_Unwind_GetIP(context);
|
||||||
|
gUnwindExecStr += StrFormat(" %p", addr);
|
||||||
|
return _URC_NO_REASON;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool FancyBacktrace()
|
||||||
|
{
|
||||||
|
gUnwindExecStr += StrFormat("atos -p %d", getpid());
|
||||||
|
_Unwind_Backtrace(&UnwindHandler, NULL);
|
||||||
|
return system(gUnwindExecStr.c_str()) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void Crashed()
|
static void Crashed()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
@ -315,6 +359,8 @@ static void Crashed()
|
||||||
fprintf(stderr, "%s", debugDump.c_str());
|
fprintf(stderr, "%s", debugDump.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!FancyBacktrace())
|
||||||
|
{
|
||||||
void* array[64];
|
void* array[64];
|
||||||
size_t size;
|
size_t size;
|
||||||
char** strings;
|
char** strings;
|
||||||
|
@ -327,6 +373,7 @@ static void Crashed()
|
||||||
fprintf(stderr, "%s\n", strings[i]);
|
fprintf(stderr, "%s\n", strings[i]);
|
||||||
|
|
||||||
free(strings);
|
free(strings);
|
||||||
|
}
|
||||||
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
@ -377,6 +424,7 @@ BFP_EXPORT void BFP_CALLTYPE BfpSystem_SetCommandLine(int argc, char** argv)
|
||||||
|
|
||||||
char* cwd = getcwd(NULL, 0);
|
char* cwd = getcwd(NULL, 0);
|
||||||
gExePath = GetAbsPath(relPath, cwd);
|
gExePath = GetAbsPath(relPath, cwd);
|
||||||
|
|
||||||
free(cwd);
|
free(cwd);
|
||||||
|
|
||||||
for (int i = 0; i < argc; i++)
|
for (int i = 0; i < argc; i++)
|
||||||
|
@ -501,6 +549,19 @@ BFP_EXPORT void BFP_CALLTYPE BfpSystem_GetCommandLine(char* outStr, int* inOutSt
|
||||||
|
|
||||||
BFP_EXPORT void BFP_CALLTYPE BfpSystem_GetExecutablePath(char* outStr, int* inOutStrSize, BfpSystemResult* outResult)
|
BFP_EXPORT void BFP_CALLTYPE BfpSystem_GetExecutablePath(char* outStr, int* inOutStrSize, BfpSystemResult* outResult)
|
||||||
{
|
{
|
||||||
|
//printf("Setting BfpSystem_GetExecutablePath %s %p\n", gExePath.c_str(), &gExePath);
|
||||||
|
|
||||||
|
if (gExePath.IsEmpty())
|
||||||
|
{
|
||||||
|
char path[4096];
|
||||||
|
uint32_t size = sizeof(path);
|
||||||
|
if (_NSGetExecutablePath(path, &size) == 0)
|
||||||
|
gExePath = path;
|
||||||
|
|
||||||
|
// When when running with a './file', we end up with an annoying '/./' in our path
|
||||||
|
gExePath.Replace("/./", "/");
|
||||||
|
}
|
||||||
|
|
||||||
TryStringOut(gExePath, outStr, inOutStrSize, (BfpResult*)outResult);
|
TryStringOut(gExePath, outStr, inOutStrSize, (BfpResult*)outResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1101,6 +1162,8 @@ BFP_EXPORT bool BFP_CALLTYPE BfpThread_WaitFor(BfpThread* thread, int waitMS)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (thread == NULL)
|
||||||
|
BF_FATAL("Invalid thread with non-infinite wait");
|
||||||
return BfpEvent_WaitFor(thread->mDoneEvent, waitMS);
|
return BfpEvent_WaitFor(thread->mDoneEvent, waitMS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1505,12 +1568,14 @@ BFP_EXPORT BfpFile* BFP_CALLTYPE BfpFile_Create(const char* inName, BfpFileCreat
|
||||||
if ((createFlags & BfpFileCreateFlag_Pipe) != 0)
|
if ((createFlags & BfpFileCreateFlag_Pipe) != 0)
|
||||||
{
|
{
|
||||||
name = "/tmp/" + name;
|
name = "/tmp/" + name;
|
||||||
|
|
||||||
if ((createKind == BfpFileCreateKind_CreateAlways) ||
|
if ((createKind == BfpFileCreateKind_CreateAlways) ||
|
||||||
(createKind == BfpFileCreateKind_CreateIfNotExists))
|
(createKind == BfpFileCreateKind_CreateIfNotExists))
|
||||||
{
|
{
|
||||||
for (int pass = 0; pass < 2; pass++)
|
for (int pass = 0; pass < 2; pass++)
|
||||||
{
|
{
|
||||||
int result = mknod(name.c_str(), S_IFIFO | ALLPERMS, 0);
|
int result = mknod(name.c_str(), S_IFIFO | 0666, 0);
|
||||||
|
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1821,13 +1886,23 @@ BFP_EXPORT void BFP_CALLTYPE BfpFile_Copy(const char* oldPath, const char* newPa
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fd_to = open(newPath, O_WRONLY | O_CREAT | O_EXCL, 0666);
|
int flags = O_WRONLY | O_CREAT;
|
||||||
|
if (copyKind == BfpFileCopyKind_IfNotExists)
|
||||||
|
flags |= O_EXCL;
|
||||||
|
|
||||||
|
fd_to = open(newPath, flags, 0666);
|
||||||
if (fd_to < 0)
|
if (fd_to < 0)
|
||||||
|
{
|
||||||
|
if (errno == EEXIST)
|
||||||
{
|
{
|
||||||
OUTRESULT(BfpFileResult_AlreadyExists);
|
OUTRESULT(BfpFileResult_AlreadyExists);
|
||||||
goto out_error;
|
goto out_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OUTRESULT(BfpFileResult_UnknownError);
|
||||||
|
goto out_error;
|
||||||
|
}
|
||||||
|
|
||||||
while (nread = read(fd_from, buf, sizeof buf), nread > 0)
|
while (nread = read(fd_from, buf, sizeof buf), nread > 0)
|
||||||
{
|
{
|
||||||
char *out_ptr = buf;
|
char *out_ptr = buf;
|
||||||
|
|
|
@ -58,8 +58,6 @@ typedef int16_t int16;
|
||||||
typedef int8_t int8;
|
typedef int8_t int8;
|
||||||
typedef unsigned int uint;
|
typedef unsigned int uint;
|
||||||
|
|
||||||
#define BF_PLATFORM_LINUX
|
|
||||||
#define BF_PLATFORM_NAME "BF_PLATFORM_LINUX"
|
|
||||||
//#define BF_PLATFORM_SDL
|
//#define BF_PLATFORM_SDL
|
||||||
|
|
||||||
#define NOP
|
#define NOP
|
||||||
|
@ -67,13 +65,8 @@ typedef unsigned int uint;
|
||||||
//#define BF_NOTHROW noexcept
|
//#define BF_NOTHROW noexcept
|
||||||
#define BF_NOTHROW
|
#define BF_NOTHROW
|
||||||
|
|
||||||
#ifdef BF64
|
typedef intptr_t intptr;
|
||||||
typedef int64 intptr;
|
typedef uintptr_t uintptr;
|
||||||
typedef uint64 uintptr;
|
|
||||||
#else
|
|
||||||
typedef int32 intptr;
|
|
||||||
typedef uint32 uintptr;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef wchar_t* BSTR;
|
typedef wchar_t* BSTR;
|
||||||
typedef int HRESULT;
|
typedef int HRESULT;
|
||||||
|
@ -85,6 +78,8 @@ typedef int32 LONG;
|
||||||
typedef pthread_key_t BFTlsKey;
|
typedef pthread_key_t BFTlsKey;
|
||||||
typedef pthread_t BF_THREADID;
|
typedef pthread_t BF_THREADID;
|
||||||
typedef pthread_t BF_THREADHANDLE;
|
typedef pthread_t BF_THREADHANDLE;
|
||||||
|
|
||||||
|
#define BF_HAS_TLS_DECLSPEC
|
||||||
#define BF_TLS_DECLSPEC thread_local
|
#define BF_TLS_DECLSPEC thread_local
|
||||||
|
|
||||||
//:int64 abs(int64 val);
|
//:int64 abs(int64 val);
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include "LinuxCommon.h"
|
#include "LinuxCommon.h"
|
||||||
|
|
||||||
#define BF_PLATFORM_LINUX
|
#define BF_PLATFORM_LINUX
|
||||||
|
#define BF_PLATFORM_NAME "BF_PLATFORM_LINUX"
|
||||||
|
|
||||||
#define BF_IMPORT extern "C"
|
#define BF_IMPORT extern "C"
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
|
|
||||||
USING_NS_BF;
|
USING_NS_BF;
|
||||||
|
|
||||||
|
|
||||||
struct BfpPipeInfo
|
struct BfpPipeInfo
|
||||||
{
|
{
|
||||||
String mPipePath;
|
String mPipePath;
|
||||||
|
@ -1565,7 +1564,7 @@ BFP_EXPORT BfpFile* BFP_CALLTYPE BfpFile_Create(const char* inName, BfpFileCreat
|
||||||
{
|
{
|
||||||
for (int pass = 0; pass < 2; pass++)
|
for (int pass = 0; pass < 2; pass++)
|
||||||
{
|
{
|
||||||
int result = mknod(name.c_str(), S_IFIFO | ALLPERMS, 0);
|
int result = mknod(name.c_str(), S_IFIFO | 0666, 0);
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1876,13 +1875,23 @@ BFP_EXPORT void BFP_CALLTYPE BfpFile_Copy(const char* oldPath, const char* newPa
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fd_to = open(newPath, O_WRONLY | O_CREAT | O_EXCL, 0666);
|
int flags = O_WRONLY | O_CREAT;
|
||||||
|
if (copyKind == BfpFileCopyKind_IfNotExists)
|
||||||
|
flags |= O_EXCL;
|
||||||
|
|
||||||
|
fd_to = open(newPath, flags, 0666);
|
||||||
if (fd_to < 0)
|
if (fd_to < 0)
|
||||||
|
{
|
||||||
|
if (errno == EEXIST)
|
||||||
{
|
{
|
||||||
OUTRESULT(BfpFileResult_AlreadyExists);
|
OUTRESULT(BfpFileResult_AlreadyExists);
|
||||||
goto out_error;
|
goto out_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OUTRESULT(BfpFileResult_UnknownError);
|
||||||
|
goto out_error;
|
||||||
|
}
|
||||||
|
|
||||||
while (nread = read(fd_from, buf, sizeof buf), nread > 0)
|
while (nread = read(fd_from, buf, sizeof buf), nread > 0)
|
||||||
{
|
{
|
||||||
char *out_ptr = buf;
|
char *out_ptr = buf;
|
||||||
|
|
|
@ -55,8 +55,6 @@ typedef int16_t int16;
|
||||||
typedef int8_t int8;
|
typedef int8_t int8;
|
||||||
typedef unsigned int uint;
|
typedef unsigned int uint;
|
||||||
|
|
||||||
#define BF_PLATFORM_LINUX
|
|
||||||
#define BF_PLATFORM_NAME "BF_PLATFORM_LINUX"
|
|
||||||
//#define BF_PLATFORM_SDL
|
//#define BF_PLATFORM_SDL
|
||||||
|
|
||||||
#define NOP
|
#define NOP
|
||||||
|
|
|
@ -5,7 +5,8 @@
|
||||||
#include "../darwin/DarwinCommon.h"
|
#include "../darwin/DarwinCommon.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#define BF_PLATFORM_OSX
|
#define BF_PLATFORM_MACOS
|
||||||
|
#define BF_PLATFORM_NAME "BF_PLATFORM_MACOS"
|
||||||
|
|
||||||
#define BF_IMPORT extern "C"
|
#define BF_IMPORT extern "C"
|
||||||
|
|
||||||
|
|
BIN
IDE/.DS_Store
vendored
Normal file
BIN
IDE/.DS_Store
vendored
Normal file
Binary file not shown.
|
@ -171,9 +171,15 @@ namespace IDE
|
||||||
|
|
||||||
//String error = scope String();
|
//String error = scope String();
|
||||||
|
|
||||||
bool isExe = project.mGeneralOptions.mTargetType != Project.TargetType.BeefLib;
|
TestManager.ProjectInfo testProjectInfo = null;
|
||||||
|
if (gApp.mTestManager != null)
|
||||||
|
testProjectInfo = gApp.mTestManager.GetProjectInfo(project);
|
||||||
|
|
||||||
|
bool isExe = (project.mGeneralOptions.mTargetType != Project.TargetType.BeefLib) || (testProjectInfo != null);
|
||||||
if (isExe)
|
if (isExe)
|
||||||
{
|
{
|
||||||
|
CopyLibFiles(targetPath, workspaceOptions, options);
|
||||||
|
|
||||||
String linkLine = scope String(isDebug ? "-g " : "-g -O2 "); //-O2 -Rpass=inline
|
String linkLine = scope String(isDebug ? "-g " : "-g -O2 "); //-O2 -Rpass=inline
|
||||||
//(doClangCPP ? "-lc++abi " : "") +
|
//(doClangCPP ? "-lc++abi " : "") +
|
||||||
|
|
||||||
|
@ -459,9 +465,9 @@ namespace IDE
|
||||||
String toPath = scope String();
|
String toPath = scope String();
|
||||||
Path.GetDirectoryPath(targetPath, toPath);
|
Path.GetDirectoryPath(targetPath, toPath);
|
||||||
toPath.Append("/", dllName);
|
toPath.Append("/", dllName);
|
||||||
if (File.CopyIfNewer(fromPath, toPath) case .Err)
|
if (File.CopyIfNewer(fromPath, toPath) case .Err(let err))
|
||||||
{
|
{
|
||||||
gApp.OutputLine("Failed to copy lib file {0}", fromPath);
|
gApp.OutputLine("Failed to copy lib file '{0}' to '{1}'", fromPath, toPath);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -1048,8 +1054,6 @@ namespace IDE
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
CopyLibFiles(targetPath, workspaceOptions, options);
|
|
||||||
|
|
||||||
String objectsArg = scope String();
|
String objectsArg = scope String();
|
||||||
var argBuilder = scope IDEApp.ArgBuilder(objectsArg, workspaceOptions.mToolsetType != .GNU);
|
var argBuilder = scope IDEApp.ArgBuilder(objectsArg, workspaceOptions.mToolsetType != .GNU);
|
||||||
for (var bfFileName in bfFileNames)
|
for (var bfFileName in bfFileNames)
|
||||||
|
|
|
@ -7178,7 +7178,11 @@ namespace IDE
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!startInfo.mFileName.IsEmpty)
|
if (!startInfo.mFileName.IsEmpty)
|
||||||
|
{
|
||||||
OutputLine("Executing: {0} {1}", startInfo.mFileName, showArgs);
|
OutputLine("Executing: {0} {1}", startInfo.mFileName, showArgs);
|
||||||
|
if ((mVerbosity >= .Diagnostic) && (useArgsFile != .None))
|
||||||
|
OutputLine("Arg file contents: {0}", args);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
OutputLine("Executing: {0}", showArgs);
|
OutputLine("Executing: {0}", showArgs);
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,13 +45,13 @@ namespace IDE
|
||||||
scope AutoBeefPerf("SpellChecker.Init");
|
scope AutoBeefPerf("SpellChecker.Init");
|
||||||
|
|
||||||
mLangPath = new String(langPath);
|
mLangPath = new String(langPath);
|
||||||
|
|
||||||
mNativeSpellChecker = SpellChecker_Create(langPath);
|
mNativeSpellChecker = SpellChecker_Create(langPath);
|
||||||
if (mNativeSpellChecker == null)
|
if (mNativeSpellChecker == null)
|
||||||
return .Err;
|
return .Err;
|
||||||
|
|
||||||
String fileName = scope String();
|
String fileName = scope String();
|
||||||
GetUserDirectFileName(fileName);
|
GetUserDirectFileName(fileName);
|
||||||
//if (File.ReadLines(fileName) case .Ok(var lineEnumeratorVal))
|
|
||||||
|
|
||||||
let streamReader = scope StreamReader();
|
let streamReader = scope StreamReader();
|
||||||
if (streamReader.Open(fileName) case .Ok)
|
if (streamReader.Open(fileName) case .Ok)
|
||||||
|
|
|
@ -17551,6 +17551,7 @@ void BfExprEvaluator::PerformBinaryOperation(BfType* resultType, BfIRValue convL
|
||||||
case BfBinaryOp_RightShift:
|
case BfBinaryOp_RightShift:
|
||||||
mResult = BfTypedValue(mModule->mBfIRBuilder->CreateShr(convLeftValue, convRightValue, resultType->IsSigned()), resultType);
|
mResult = BfTypedValue(mModule->mBfIRBuilder->CreateShr(convLeftValue, convRightValue, resultType->IsSigned()), resultType);
|
||||||
return;
|
return;
|
||||||
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8028,10 +8028,15 @@ bool BfModule::CanImplicitlyCast(BfTypedValue typedVal, BfType* toType, BfCastFl
|
||||||
}
|
}
|
||||||
else if (toType->IsSigned())
|
else if (toType->IsSigned())
|
||||||
{
|
{
|
||||||
|
if (toType->mSize == 8) // int64
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
{
|
||||||
int64 minVal = -(1LL << (8 * toType->mSize - 1));
|
int64 minVal = -(1LL << (8 * toType->mSize - 1));
|
||||||
int64 maxVal = (1LL << (8 * toType->mSize - 1)) - 1;
|
int64 maxVal = (1LL << (8 * toType->mSize - 1)) - 1;
|
||||||
if ((srcVal >= minVal) && (srcVal <= maxVal))
|
if ((srcVal >= minVal) && (srcVal <= maxVal))
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (toType->mSize == 8) // ulong
|
else if (toType->mSize == 8) // ulong
|
||||||
{
|
{
|
||||||
|
@ -9155,12 +9160,17 @@ BfIRValue BfModule::CastToValue(BfAstNode* srcNode, BfTypedValue typedVal, BfTyp
|
||||||
}
|
}
|
||||||
else if (toType->IsSigned())
|
else if (toType->IsSigned())
|
||||||
{
|
{
|
||||||
|
if (toType->mSize == 8) // int64
|
||||||
|
explicitCast = true;
|
||||||
|
else
|
||||||
|
{
|
||||||
int64 minVal = -(1LL << (8 * toType->mSize - 1));
|
int64 minVal = -(1LL << (8 * toType->mSize - 1));
|
||||||
int64 maxVal = (1LL << (8 * toType->mSize - 1)) - 1;
|
int64 maxVal = (1LL << (8 * toType->mSize - 1)) - 1;
|
||||||
if ((srcVal >= minVal) && (srcVal <= maxVal))
|
if ((srcVal >= minVal) && (srcVal <= maxVal))
|
||||||
explicitCast = true;
|
explicitCast = true;
|
||||||
}
|
}
|
||||||
else if (toType->mSize == 8) // ulong
|
}
|
||||||
|
else if (toType->mSize == 8) // uint64
|
||||||
{
|
{
|
||||||
if (srcVal >= 0)
|
if (srcVal >= 0)
|
||||||
explicitCast = true;
|
explicitCast = true;
|
||||||
|
@ -9703,10 +9713,16 @@ BfIRValue BfModule::CastToValue(BfAstNode* srcNode, BfTypedValue typedVal, BfTyp
|
||||||
|
|
||||||
if ((castFlags & BfCastFlags_SilentFail) == 0)
|
if ((castFlags & BfCastFlags_SilentFail) == 0)
|
||||||
{
|
{
|
||||||
const char* errStr = explicitCast ?
|
if (mIgnoreErrors)
|
||||||
|
return BfIRValue();
|
||||||
|
|
||||||
|
const char* errStrF = explicitCast ?
|
||||||
"Unable to cast '%s' to '%s'" :
|
"Unable to cast '%s' to '%s'" :
|
||||||
"Unable to implicitly cast '%s' to '%s'";
|
"Unable to implicitly cast '%s' to '%s'";
|
||||||
auto error = Fail(StrFormat(errStr, TypeToString(typedVal.mType).c_str(), TypeToString(toType).c_str()), srcNode);
|
|
||||||
|
String errStr = StrFormat(errStrF, TypeToString(typedVal.mType).c_str(), TypeToString(toType).c_str());
|
||||||
|
printf("Err: %s\n", errStr.c_str());
|
||||||
|
auto error = Fail(errStr, srcNode);
|
||||||
if ((error != NULL) && (srcNode != NULL))
|
if ((error != NULL) && (srcNode != NULL))
|
||||||
{
|
{
|
||||||
if ((mCompiler->IsAutocomplete()) && (mCompiler->mResolvePassData->mAutoComplete->CheckFixit((srcNode))))
|
if ((mCompiler->IsAutocomplete()) && (mCompiler->mResolvePassData->mAutoComplete->CheckFixit((srcNode))))
|
||||||
|
|
|
@ -14,7 +14,9 @@ ConfigSelections = {TestsB = {Config = "Test"}}
|
||||||
|
|
||||||
[Configs.Test.Linux64]
|
[Configs.Test.Linux64]
|
||||||
IntermediateType = "ObjectAndIRCode"
|
IntermediateType = "ObjectAndIRCode"
|
||||||
COptimizationLevel = "O2"
|
ConfigSelections = {TestsB = {Config = "Test"}}
|
||||||
|
|
||||||
|
[Configs.Test.macOS]
|
||||||
ConfigSelections = {TestsB = {Config = "Test"}}
|
ConfigSelections = {TestsB = {Config = "Test"}}
|
||||||
|
|
||||||
[Configs.TestFail.Win64]
|
[Configs.TestFail.Win64]
|
||||||
|
|
|
@ -63,7 +63,7 @@ fi
|
||||||
echo Building BeefBuild_bootd
|
echo Building BeefBuild_bootd
|
||||||
../../jbuild_d/Debug/bin/BeefBoot --out="BeefBuild_bootd" --src=../src --src=../../BeefBuild/src --src=../../BeefLibs/corlib/src --src=../../BeefLibs/Beefy2D/src --define=CLI --define=DEBUG --startup=BeefBuild.Program --linkparams="./libBeefRT_d.$LIBEXT ./libIDEHelper_d.$LIBEXT ./libBeefySysLib_d.$LIBEXT ../../extern/llvm_linux_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDemangle.a $LINKOPTS"
|
../../jbuild_d/Debug/bin/BeefBoot --out="BeefBuild_bootd" --src=../src --src=../../BeefBuild/src --src=../../BeefLibs/corlib/src --src=../../BeefLibs/Beefy2D/src --define=CLI --define=DEBUG --startup=BeefBuild.Program --linkparams="./libBeefRT_d.$LIBEXT ./libIDEHelper_d.$LIBEXT ./libBeefySysLib_d.$LIBEXT ../../extern/llvm_linux_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDemangle.a $LINKOPTS"
|
||||||
echo Building BeefBuild_d
|
echo Building BeefBuild_d
|
||||||
./BeefBuild_bootd -clean -proddir=../../BeefBuild -config=Debug -platform=Linux64
|
./BeefBuild_bootd -clean -proddir=../../BeefBuild -config=Debug
|
||||||
#./BeefBuild_d -proddir=../../TestApp
|
#./BeefBuild_d -proddir=../../TestApp
|
||||||
#../../TestApp/build/Debug_Linux64/TestApp/TestApp
|
#../../TestApp/build/Debug_Linux64/TestApp/TestApp
|
||||||
echo Testing IDEHelper/Tests in BeefBuild_d
|
echo Testing IDEHelper/Tests in BeefBuild_d
|
||||||
|
@ -72,9 +72,9 @@ echo Testing IDEHelper/Tests in BeefBuild_d
|
||||||
### RELEASE ###
|
### RELEASE ###
|
||||||
|
|
||||||
echo Building BeefBuild_boot
|
echo Building BeefBuild_boot
|
||||||
../../jbuild/Release/bin/BeefBoot --out="BeefBuild_boot" --src=../src --src=../../BeefBuild/src --src=../../BeefLibs/corlib/src --src=../../BeefLibs/Beefy2D/src --define=CLI --define=DEBUG --startup=BeefBuild.Program --linkparams="./libBeefRT.$LIBEXT ./libIDEHelper.$LIBEXT ./libBeefySysLib.$LIBEXT ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDemangle.a $LINKOPTS -Wl,-rpath -Wl,\$ORIGIN"
|
../../jbuild/Release/bin/BeefBoot --out="BeefBuild_boot" --src=../src --src=../../BeefBuild/src --src=../../BeefLibs/corlib/src --src=../../BeefLibs/Beefy2D/src --define=CLI --define=DEBUG --startup=BeefBuild.Program --linkparams="./libBeefRT.$LIBEXT ./libIDEHelper.$LIBEXT ./libBeefySysLib.$LIBEXT ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDemangle.a $LINKOPTS"
|
||||||
echo Building BeedBuild
|
echo Building BeedBuild
|
||||||
./BeefBuild_boot -clean -proddir=../../BeefBuild -config=Release -platform=Linux64
|
./BeefBuild_boot -clean -proddir=../../BeefBuild -config=Release
|
||||||
#./BeefBuild_d -proddir=../../TestApp
|
#./BeefBuild_d -proddir=../../TestApp
|
||||||
#../../TestApp/build/Debug_Linux64/TestApp/TestApp
|
#../../TestApp/build/Debug_Linux64/TestApp/TestApp
|
||||||
echo Testing IDEHelper/Tests in BeefBuild
|
echo Testing IDEHelper/Tests in BeefBuild
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue