Adding support for windows and fixing some errors

This commit is contained in:
Ilusha 2024-01-15 16:35:16 -08:00 committed by IlyaShurupov
parent 2722a25036
commit 34a8d4eafd
84 changed files with 168 additions and 255 deletions

View file

@ -2,5 +2,7 @@
#include "Common.hpp" #include "Common.hpp"
#ifndef ENV_OS_WINDOWS
inline void* operator new(std::size_t aSize, void* aWhere) noexcept { return aWhere; } inline void* operator new(std::size_t aSize, void* aWhere) noexcept { return aWhere; }
inline void* operator new[](std::size_t aSize, void* aWhere) noexcept { return aWhere; } inline void* operator new[](std::size_t aSize, void* aWhere) noexcept { return aWhere; }
#endif

View file

@ -200,7 +200,7 @@ private:
} }
}; };
const ualni size = 1000; const ualni size = 500;
template <typename Alloc> template <typename Alloc>
void testAlloc() { void testAlloc() {
@ -214,7 +214,7 @@ void testAlloc() {
TEST_DEF_STATIC(GlobalHeap) { testAlloc<HeapAllocGlobal>(); } TEST_DEF_STATIC(GlobalHeap) { testAlloc<HeapAllocGlobal>(); }
TEST_DEF_STATIC(Heap) { testAlloc<HeapAlloc>(); } TEST_DEF_STATIC(Heap) { testAlloc<tp::HeapAlloc>(); }
TEST_DEF_STATIC(Chunk) { TEST_DEF_STATIC(Chunk) {
testAlloc<ChunkAlloc<TestStruct, size>>(); testAlloc<ChunkAlloc<TestStruct, size>>();

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "CmdLineInterpreter.hpp" #include "CmdLineInterpreter.hpp"
#define MAX_LINE_LENGTH 1024 #define MAX_LINE_LENGTH 1024

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "CommandLine.hpp" #include "CommandLine.hpp"
using namespace tp; using namespace tp;

View file

@ -4,6 +4,7 @@
#include "Map.hpp" #include "Map.hpp"
#include "Tokenizer.hpp" #include "Tokenizer.hpp"
namespace tp { namespace tp {
extern ModuleManifest gModuleCommandLine; extern ModuleManifest gModuleCommandLine;

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "Tests.hpp" #include "Tests.hpp"
using namespace tp; using namespace tp;

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "CmdLineInterpreter.hpp" #include "CmdLineInterpreter.hpp"
#include "Tests.hpp" #include "Tests.hpp"

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "Tests.hpp" #include "Tests.hpp"
int main() { int main() {

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "LocalConnection.hpp" #include "LocalConnection.hpp"
#include "bindings/Disk.hpp" #include "bindings/Disk.hpp"

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "LocalConnection.hpp" #include "LocalConnection.hpp"
#include "Testing.hpp" #include "Testing.hpp"

View file

@ -1,15 +1,15 @@
#include "NewPlacement.hpp"
#include "Buffer2D.hpp" #include "Buffer2D.hpp"
#include "Testing.hpp" #include "Testing.hpp"
#include "Tests.hpp" #include "Tests.hpp"
#include "HeapAllocator.hpp"
using namespace tp; using namespace tp;
const ualni size = 1000; const ualni size = 1000;
TEST_DEF_STATIC(Simple1) { TEST_DEF_STATIC(Simple1) {
Buffer2D<int, HeapAlloc> buff; Buffer2D<int, tp::HeapAlloc> buff;
buff.reserve({ 4, 4 }); buff.reserve({ 4, 4 });
buff.set({ 2, 2 }, 5); buff.set({ 2, 2 }, 5);
TEST(buff.get({ 2, 2 }) == 5); TEST(buff.get({ 2, 2 }) == 5);

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "Buffer.hpp" #include "Buffer.hpp"
#include "Testing.hpp" #include "Testing.hpp"
#include "Tests.hpp" #include "Tests.hpp"
@ -9,7 +7,7 @@ using namespace tp;
const ualni size = 1000; const ualni size = 1000;
TEST_DEF_STATIC(Simple1) { TEST_DEF_STATIC(Simple1) {
Buffer<TestClass, HeapAlloc> buff; Buffer<TestClass, tp::HeapAlloc> buff;
TEST(buff.size() == 0); TEST(buff.size() == 0);
for (auto i : Range(size * 10)) { for (auto i : Range(size * 10)) {
buff.append(TestClass(i)); buff.append(TestClass(i));
@ -21,7 +19,7 @@ TEST_DEF_STATIC(Simple1) {
} }
TEST_DEF_STATIC(Simple2) { TEST_DEF_STATIC(Simple2) {
Buffer<TestClass, HeapAlloc> buff(size); Buffer<TestClass, tp::HeapAlloc> buff(size);
TEST(buff.size() == size); TEST(buff.size() == size);
for (auto i : Range(size * 10)) for (auto i : Range(size * 10))
buff.append(TestClass(i)); buff.append(TestClass(i));

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "Archiver.hpp" #include "Archiver.hpp"
#include "Testing.hpp" #include "Testing.hpp"
#include "Tests.hpp" #include "Tests.hpp"
@ -7,7 +5,7 @@
using namespace tp; using namespace tp;
TEST_DEF_STATIC(SimpleReference) { TEST_DEF_STATIC(SimpleReference) {
tp::List<TestClass, HeapAlloc> list = { TestClass(1), TestClass(2), TestClass(3), TestClass(4) }; tp::List<TestClass, tp::HeapAlloc> list = { TestClass(1), TestClass(2), TestClass(3), TestClass(4) };
list.pushBack(TestClass(5)); list.pushBack(TestClass(5));
list.pushFront(TestClass(0)); list.pushFront(TestClass(0));
@ -24,7 +22,7 @@ TEST_DEF_STATIC(SimpleReference) {
} }
TEST_DEF_STATIC(SimplePointer) { TEST_DEF_STATIC(SimplePointer) {
tp::List<TestClass*, HeapAlloc> list = { new TestClass(1), new TestClass(2), new TestClass(3), new TestClass(4) }; tp::List<TestClass*, tp::HeapAlloc> list = { new TestClass(1), new TestClass(2), new TestClass(3), new TestClass(4) };
list.pushBack(new TestClass(5)); list.pushBack(new TestClass(5));
list.pushFront(new TestClass(0)); list.pushFront(new TestClass(0));
@ -45,8 +43,8 @@ TEST_DEF_STATIC(SimplePointer) {
} }
TEST_DEF_STATIC(Copy) { TEST_DEF_STATIC(Copy) {
tp::List<TestClass, HeapAlloc> list = { TestClass(1), TestClass(2), TestClass(3), TestClass(4) }; tp::List<TestClass, tp::HeapAlloc> list = { TestClass(1), TestClass(2), TestClass(3), TestClass(4) };
tp::List<TestClass, HeapAlloc> list2 = list; tp::List<TestClass, tp::HeapAlloc> list2 = list;
TEST_EQUAL(list, list2); TEST_EQUAL(list, list2);
@ -55,7 +53,7 @@ TEST_DEF_STATIC(Copy) {
} }
TEST_DEF_STATIC(Serialization) { TEST_DEF_STATIC(Serialization) {
tp::List<TestClass, HeapAlloc> list = { TestClass(1), TestClass(2), TestClass(3), TestClass(4) }; tp::List<TestClass, tp::HeapAlloc> list = { TestClass(1), TestClass(2), TestClass(3), TestClass(4) };
ArchiverExample<1024, false> write; ArchiverExample<1024, false> write;
ArchiverExample<1024, true> read; ArchiverExample<1024, true> read;

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "Archiver.hpp" #include "Archiver.hpp"
#include "Map.hpp" #include "Map.hpp"
#include "Testing.hpp" #include "Testing.hpp"
@ -8,7 +6,7 @@
using namespace tp; using namespace tp;
TEST_DEF_STATIC(SimpleReference) { TEST_DEF_STATIC(SimpleReference) {
tp::Map<tp::ualni, TestClass, HeapAlloc> map; tp::Map<tp::ualni, TestClass, tp::HeapAlloc> map;
for (auto i : Range(1000, 100000)) { for (auto i : Range(1000, 100000)) {
map.put(i, TestClass(i)); map.put(i, TestClass(i));
@ -42,7 +40,7 @@ TEST_DEF_STATIC(SimpleReference) {
} }
TEST_DEF_STATIC(SimplePointer) { TEST_DEF_STATIC(SimplePointer) {
tp::Map<tp::ualni, TestClass*, HeapAlloc> map; tp::Map<tp::ualni, TestClass*, tp::HeapAlloc> map;
for (auto i : Range(1000)) { for (auto i : Range(1000)) {
map.put(i, new TestClass(i)); map.put(i, new TestClass(i));
@ -80,13 +78,13 @@ TEST_DEF_STATIC(SimplePointer) {
} }
TEST_DEF_STATIC(Copy) { TEST_DEF_STATIC(Copy) {
tp::Map<tp::ualni, TestClass, HeapAlloc> map; tp::Map<tp::ualni, TestClass, tp::HeapAlloc> map;
for (auto i : Range(10)) { for (auto i : Range(10)) {
map.put(i, TestClass(i)); map.put(i, TestClass(i));
} }
tp::Map<tp::ualni, TestClass, HeapAlloc> map2 = map; tp::Map<tp::ualni, TestClass, tp::HeapAlloc> map2 = map;
TEST_EQUAL(map, map2); TEST_EQUAL(map, map2);
@ -95,7 +93,7 @@ TEST_DEF_STATIC(Copy) {
} }
TEST_DEF_STATIC(SaveLoad) { TEST_DEF_STATIC(SaveLoad) {
tp::Map<tp::ualni, TestClass, HeapAlloc> map; tp::Map<tp::ualni, TestClass, tp::HeapAlloc> map;
for (auto i : Range(10)) { for (auto i : Range(10)) {
map.put(i, TestClass(i)); map.put(i, TestClass(i));

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "Testing.hpp" #include "Testing.hpp"
#include "Tests.hpp" #include "Tests.hpp"
#include "Tree.hpp" #include "Tree.hpp"
@ -7,7 +5,7 @@
using namespace tp; using namespace tp;
TEST_DEF_STATIC(Simple) { TEST_DEF_STATIC(Simple) {
AvlTree<AvlNumericKey<alni>, TestClass, HeapAlloc> tree; AvlTree<AvlNumericKey<alni>, TestClass, tp::HeapAlloc> tree;
TEST(tree.size() == 0); TEST(tree.size() == 0);
TEST(tree.head() == nullptr); TEST(tree.head() == nullptr);
@ -24,7 +22,7 @@ TEST_DEF_STATIC(Simple) {
} }
TEST_DEF_STATIC(Persistance) { TEST_DEF_STATIC(Persistance) {
AvlTree<AvlNumericKey<alni>, TestClass, HeapAlloc> tree; AvlTree<AvlNumericKey<alni>, TestClass, tp::HeapAlloc> tree;
const auto size = 1000; const auto size = 1000;

View file

@ -1,3 +1,18 @@
# find_package(ALSA REQUIRED)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(CMAKE_PREFIX_PATH "../../ModulesWindowsLibraries/glew-2.1.0")
find_package(GLEW REQUIRED)
set(GLEW_LIB ${GLEW_STATIC_LIBRARY_RELEASE} opengl32.lib PARENT_SCOPE)
set(PORTAUDIO_INCLUDE_DIR "../../ModulesWindowsLibraries/portaudio/include" PARENT_SCOPE)
set(PORTAUDIO_LIB "../../ModulesWindowsLibraries/portaudio_build/Debug/portaudio" PARENT_SCOPE)
else()
find_package(GLEW REQUIRED)
set(GLEW_LIB ${GLEW_LIBRARIES} GL PARENT_SCOPE)
set(PORTAUDIO_LIB portaudio PARENT_SCOPE)
endif()
#add_subdirectory(glew/build/cmake/) #add_subdirectory(glew/build/cmake/)
#target_compile_definitions(glew_s PUBLIC GLEW_NO_GLU) #target_compile_definitions(glew_s PUBLIC GLEW_NO_GLU)

View file

@ -1,11 +1,8 @@
project(Graphics) project(Graphics)
find_package(GLEW REQUIRED)
### ---------------------- Externals --------------------- ### ### ---------------------- Externals --------------------- ###
set(BINDINGS_INCLUDE ../Externals/glfw/include ../Externals/glew/include) set(BINDINGS_INCLUDE ../Externals/glfw/include ${GLEW_INCLUDE_DIR})
set(BINDINGS_LIBS glfw Imgui Nanovg ${GLEW_LIBRARIES} GL) set(BINDINGS_LIBS glfw Imgui Nanovg ${GLEW_LIB})
### ---------------------- Static Library --------------------- ### ### ---------------------- Static Library --------------------- ###
file(GLOB SOURCES "./private/*.cpp" "./private/*/*.cpp") file(GLOB SOURCES "./private/*.cpp" "./private/*/*.cpp")

View file

@ -65,7 +65,7 @@ namespace tp {
TAB = 258, TAB = 258,
BACKSPACE = 259, BACKSPACE = 259,
INSERT = 260, INSERT = 260,
DELETE = 261, DELETE_KEY = 261,
RIGHT = 262, RIGHT = 262,
LEFT = 263, LEFT = 263,
DOWN = 264, DOWN = 264,

View file

@ -1,11 +1,8 @@
project(LibraryViewer) project(LibraryViewer)
find_package(ALSA REQUIRED)
find_package(GLEW REQUIRED)
### ---------------------- Externals --------------------- ### ### ---------------------- Externals --------------------- ###
set(BINDINGS_INCLUDE ../Externals/glfw/include ../Externals/glew/include) set(BINDINGS_INCLUDE ../Externals/glfw/include ${GLEW_INCLUDE_DIR} ${PORTAUDIO_INCLUDE_DIR})
set(BINDINGS_LIBS glfw Imgui Nanovg ${GLEW_LIBRARIES} GL portaudio) set(BINDINGS_LIBS glfw Imgui Nanovg ${GLEW_LIB} ${ALSA_LIBRARY} ${PORTAUDIO_LIB})
### ---------------------- Static Library --------------------- ### ### ---------------------- Static Library --------------------- ###
file(GLOB SOURCES "./private/*.cpp" "./private/*/*.cpp") file(GLOB SOURCES "./private/*.cpp" "./private/*/*.cpp")
@ -22,4 +19,5 @@ file(COPY "applications/Font.ttf" DESTINATION "${CMAKE_BINARY_DIR}/${PROJECT_NAM
### -------------------------- Applications -------------------------- ### ### -------------------------- Applications -------------------------- ###
add_executable(libView ./applications/Entry.cpp) add_executable(libView ./applications/Entry.cpp)
target_link_libraries(libView ${PROJECT_NAME} ${ALSA_LIBRARY}) target_link_libraries(libView ${PROJECT_NAME})

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "Player.hpp" #include "Player.hpp"
#include "GUI.hpp" #include "GUI.hpp"

View file

@ -1,4 +1,3 @@
#include "NewPlacement.hpp"
#include "Player.hpp" #include "Player.hpp"
#include "Buffer.hpp" #include "Buffer.hpp"
#include "Multithreading.hpp" #include "Multithreading.hpp"

View file

@ -1,8 +1,10 @@
#include "Streamer.hpp" #include "Streamer.hpp"
#ifndef ENV_OS_WINDOWS
typedef u_int8_t uint8_t; typedef u_int8_t uint8_t;
typedef u_int16_t uint16_t; typedef u_int16_t uint16_t;
typedef u_int32_t uint32_t; typedef u_int32_t uint32_t;
#endif
#define DR_FLAC_IMPLEMENTATION #define DR_FLAC_IMPLEMENTATION
#include "dr_flac.h" #include "dr_flac.h"

View file

@ -5,7 +5,7 @@ file(GLOB SOURCES "./private/*.cpp")
file(GLOB HEADERS "./public/*.hpp") file(GLOB HEADERS "./public/*.hpp")
add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADERS}) add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADERS})
target_include_directories(${PROJECT_NAME} PUBLIC ./public/) target_include_directories(${PROJECT_NAME} PUBLIC ./public/)
target_link_libraries(${PROJECT_NAME} PUBLIC Utils) target_link_libraries(${PROJECT_NAME} PUBLIC Allocators)
### -------------------------- Tests -------------------------- ### ### -------------------------- Tests -------------------------- ###
enable_testing() enable_testing()

View file

@ -2,10 +2,9 @@
/// whoaoao wtf /// whoaoao wtf
#include "MathCommon.hpp" #include "MathCommon.hpp"
#include "Allocators.hpp"
#include "ContainersCommon.hpp" static tp::ModuleManifest* sModuleDependencies[] = { &tp::gModuleAllocators, nullptr };
static tp::ModuleManifest* sModuleDependencies[] = { &tp::gModuleContainers, nullptr };
tp::ModuleManifest tp::gModuleMath = ModuleManifest("Math", nullptr, nullptr, sModuleDependencies); tp::ModuleManifest tp::gModuleMath = ModuleManifest("Math", nullptr, nullptr, sModuleDependencies);

View file

@ -1,7 +1,7 @@
#include "Topology.hpp" #include "Topology.hpp"
void* operator new(std::size_t, void* in) { return in; } #include "NewPlacement.hpp"
using namespace tp; using namespace tp;

View file

@ -6,7 +6,7 @@ using namespace tp;
TEST_DEF(ComplexNumber) { TEST_DEF(ComplexNumber) {
TEST((ComplexCart{ 3, 4 }.mod() == 5)); TEST((ComplexCart{ 3, 4 }.mod() == 5));
TEST((ComplexCart{ 1, 1 }.arg() == 0.7853981633974483)); TEST((abs(ComplexCart{ 1, 1 }.arg() - 0.7853981633974483) < 0.001));
TEST((ComplexCart{ 3, 4 }.norm2() == 25)); TEST((ComplexCart{ 3, 4 }.norm2() == 25));
{ {

View file

@ -6,7 +6,7 @@
#include "compiler/function.h" #include "compiler/function.h"
#include "strings.h" #include "Strings.hpp"
namespace obj { namespace obj {

View file

@ -1,5 +1,4 @@
#include "NewPlacement.hpp"
#include "Window.hpp" #include "Window.hpp"
#include "GUI.h" #include "GUI.h"

View file

@ -1,5 +1,4 @@
#include "compiler/constants.h" #include "compiler/constants.h"
#include "NewPlacement.hpp"
#include "primitives/methodobject.h" #include "primitives/methodobject.h"
#include "primitives/primitives.h" #include "primitives/primitives.h"

View file

@ -1,5 +1,4 @@
#include "compiler/expression.h" #include "compiler/expression.h"
#include "NewPlacement.hpp"
using namespace obj; using namespace obj;
using namespace BCgen; using namespace BCgen;
@ -64,30 +63,30 @@ ExpressionFunc::ExpressionFunc(tp::String id) :
Expression(Type::FUNC), Expression(Type::FUNC),
mFuncId(id) {} mFuncId(id) {}
ExpressionConst::ExpressionConst(tp::String val) : ExpressionConst::ExpressionConst(tp::String val) :
Expression(Type::CONST), Expression(Type::CONST_EXPR),
mConstType(STR), mConstType(STR),
str(val) {} str(val) {}
ExpressionConst::ExpressionConst(const char* val) : ExpressionConst::ExpressionConst(const char* val) :
Expression(Type::CONST), Expression(Type::CONST_EXPR),
mConstType(STR), mConstType(STR),
str(val) {} str(val) {}
ExpressionConst::ExpressionConst(tp::int4 val) : ExpressionConst::ExpressionConst(tp::int4 val) :
Expression(Type::CONST), Expression(Type::CONST_EXPR),
mConstType(INT), mConstType(INT),
integer(val) {} integer(val) {}
ExpressionConst::ExpressionConst(tp::flt4 val) : ExpressionConst::ExpressionConst(tp::flt4 val) :
Expression(Type::CONST), Expression(Type::CONST_EXPR),
mConstType(FLT), mConstType(FLT),
floating(val) {} floating(val) {}
ExpressionConst::ExpressionConst(tp::alni val) : ExpressionConst::ExpressionConst(tp::alni val) :
Expression(Type::CONST), Expression(Type::CONST_EXPR),
mConstType(INT), mConstType(INT),
integer(val) {} integer(val) {}
ExpressionConst::ExpressionConst(tp::alnf val) : ExpressionConst::ExpressionConst(tp::alnf val) :
Expression(Type::CONST), Expression(Type::CONST_EXPR),
mConstType(FLT), mConstType(FLT),
floating(val) {} floating(val) {}
ExpressionConst::ExpressionConst(bool val) : ExpressionConst::ExpressionConst(bool val) :
Expression(Type::CONST), Expression(Type::CONST_EXPR),
mConstType(BOOL), mConstType(BOOL),
boolean(val) {} boolean(val) {}

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "compiler/function.h" #include "compiler/function.h"
#include "primitives/methodobject.h" #include "primitives/methodobject.h"
@ -305,7 +303,7 @@ void FunctionDefinition::EvalExpr(Expression* expr) {
inst(Instruction(OpCode::LOAD_LOCAL, mConstants.get(local->mLocalId))); inst(Instruction(OpCode::LOAD_LOCAL, mConstants.get(local->mLocalId)));
break; break;
} }
case Expression::Type::CONST: case Expression::Type::CONST_EXPR:
{ {
auto constobj = (ExpressionConst*) expr; auto constobj = (ExpressionConst*) expr;
switch (constobj->mConstType) { switch (constobj->mConstType) {
@ -384,7 +382,7 @@ tp::alni instSize(const Instruction& inst) {
out += inst.mParamBytes; out += inst.mParamBytes;
return out; return out;
} }
case Instruction::ArgType::CONST: case Instruction::ArgType::CONST_ARG:
{ {
out += 2; out += 2;
if (inst.mConstData2) { if (inst.mConstData2) {
@ -516,7 +514,7 @@ void FunctionDefinition::generateByteCode(ByteCode& out) {
writeParam(out, idx, (tp::int1*) &inst.mParam, inst.mParamBytes); writeParam(out, idx, (tp::int1*) &inst.mParam, inst.mParamBytes);
break; break;
} }
case Instruction::ArgType::CONST: case Instruction::ArgType::CONST_ARG:
{ {
writeConst(out, idx, (tp::uint2) inst.mConstData->mConstIdx); writeConst(out, idx, (tp::uint2) inst.mConstData->mConstIdx);
if (inst.mConstData2) { if (inst.mConstData2) {

View file

@ -1,6 +1,5 @@
#include "compiler/instruction.h" #include "compiler/instruction.h"
#include "NewPlacement.hpp"
using namespace obj; using namespace obj;
using namespace tp; using namespace tp;
@ -21,14 +20,14 @@ Instruction::Instruction(ConstObject* constData) :
Instruction::Instruction(OpCode op, ConstObject* constData) : Instruction::Instruction(OpCode op, ConstObject* constData) :
mOp(op), mOp(op),
mConstData(constData), mConstData(constData),
mArgType(ArgType::CONST), mArgType(ArgType::CONST_ARG),
mInstType(InstType::EXEC) {} mInstType(InstType::EXEC) {}
Instruction::Instruction(OpCode op, ConstObject* constData, ConstObject* constData2) : Instruction::Instruction(OpCode op, ConstObject* constData, ConstObject* constData2) :
mOp(op), mOp(op),
mConstData(constData), mConstData(constData),
mConstData2(constData2), mConstData2(constData2),
mArgType(ArgType::CONST), mArgType(ArgType::CONST_ARG),
mInstType(InstType::EXEC) {} mInstType(InstType::EXEC) {}
Instruction::Instruction(OpCode op, tp::alni param, tp::alni nBytes) : Instruction::Instruction(OpCode op, tp::alni param, tp::alni nBytes) :

View file

@ -1,5 +1,4 @@
#include "compiler/statement.h" #include "compiler/statement.h"
#include "NewPlacement.hpp"
using namespace obj; using namespace obj;
using namespace BCgen; using namespace BCgen;
@ -76,7 +75,7 @@ StatementClassDef::StatementClassDef(tp::String class_id, StatementScope* scope)
StatementFuncDef* obj::BCgen::StmDefFunc(tp::String id, tp::InitialierList<tp::String> args, tp::InitialierList<Statement*> stms) { return new StatementFuncDef(id, args, stms); } StatementFuncDef* obj::BCgen::StmDefFunc(tp::String id, tp::InitialierList<tp::String> args, tp::InitialierList<Statement*> stms) { return new StatementFuncDef(id, args, stms); }
StatementLocalDef* obj::BCgen::StmDefLocal(tp::String id, Expression* value) { StatementLocalDef* obj::BCgen::StmDefLocal(tp::String id, Expression* value) {
if (value->mType == Expression::Type::CONST) { if (value->mType == Expression::Type::CONST_EXPR) {
return new StatementLocalDef(id, (ExpressionConst*) value); return new StatementLocalDef(id, (ExpressionConst*) value);
} }

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "Tokenizer.hpp" #include "Tokenizer.hpp"
#include "compiler/function.h" #include "compiler/function.h"

View file

@ -1,7 +1,5 @@
#include "NewPlacement.hpp"
#include "core/object.h" #include "core/object.h"
#include "primitives/classobject.h" #include "primitives/classobject.h"

View file

@ -1,6 +1,5 @@
#include "NewPlacement.hpp"
#include "core/object.h" #include "core/object.h"
#include "primitives/nullobject.h" #include "primitives/nullobject.h"

View file

@ -1,6 +1,5 @@
#include "HeapAllocatorGlobal.hpp" #include "HeapAllocatorGlobal.hpp"
#include "NewPlacement.hpp"
#include "core/scriptsection.h" #include "core/scriptsection.h"

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "core/typegroups.h" #include "core/typegroups.h"
#include "core/object.h" #include "core/object.h"

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "core/typemethods.h" #include "core/typemethods.h"
#include "primitives/floatobject.h" #include "primitives/floatobject.h"

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "interpreter/callstack.h" #include "interpreter/callstack.h"
#include "interpreter/bytecode.h" #include "interpreter/bytecode.h"

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "interpreter/interpreter.h" #include "interpreter/interpreter.h"
#include "primitives/primitives.h" #include "primitives/primitives.h"

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "interpreter/operandsstack.h" #include "interpreter/operandsstack.h"
using namespace obj; using namespace obj;

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "interpreter/scopestack.h" #include "interpreter/scopestack.h"
using namespace obj; using namespace obj;

View file

@ -1,7 +1,6 @@
#include "primitives/boolobject.h" #include "primitives/boolobject.h"
#include "NewPlacement.hpp"
using namespace obj; using namespace obj;
using namespace tp; using namespace tp;

View file

@ -1,6 +1,3 @@
#pragma once
#include "NewPlacement.hpp"
#include "primitives/classobject.h" #include "primitives/classobject.h"
#include "primitives/dictobject.h" #include "primitives/dictobject.h"

View file

@ -1,6 +1,5 @@
#include "primitives/colorobject.h" #include "primitives/colorobject.h"
#include "NewPlacement.hpp"
using namespace obj; using namespace obj;
using namespace tp; using namespace tp;

View file

@ -1,6 +1,3 @@
#pragma once
#include "NewPlacement.hpp"
#include "primitives/dictobject.h" #include "primitives/dictobject.h"
#include "primitives/stringobject.h" #include "primitives/stringobject.h"

View file

@ -1,8 +1,5 @@
#pragma once
#include "primitives/enumobject.h" #include "primitives/enumobject.h"
#include "NewPlacement.hpp"
#include <malloc.h> #include <malloc.h>

View file

@ -1,7 +1,4 @@
#pragma once
#include "primitives/floatobject.h" #include "primitives/floatobject.h"
#include "NewPlacement.hpp"
using namespace obj; using namespace obj;
using namespace tp; using namespace tp;

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "primitives/interpreterobject.h" #include "primitives/interpreterobject.h"
#include "primitives/linkobject.h" #include "primitives/linkobject.h"
#include "primitives/methodobject.h" #include "primitives/methodobject.h"

View file

@ -1,8 +1,4 @@
#pragma once
#include "NewPlacement.hpp"
#include "primitives/intobject.h" #include "primitives/intobject.h"
using namespace obj; using namespace obj;

View file

@ -1,8 +1,5 @@
#pragma once
#include "primitives/linkobject.h" #include "primitives/linkobject.h"
#include "NewPlacement.hpp"
using namespace obj; using namespace obj;
using namespace tp; using namespace tp;

View file

@ -1,8 +1,4 @@
#pragma once
#include "NewPlacement.hpp"
#include "primitives/intobject.h" #include "primitives/intobject.h"
#include "primitives/listobject.h" #include "primitives/listobject.h"

View file

@ -1,6 +1,3 @@
#pragma once
#include "NewPlacement.hpp"
#include "compiler/function.h" #include "compiler/function.h"
#include "core/scriptsection.h" #include "core/scriptsection.h"

View file

@ -1,7 +1,4 @@
#pragma once
#include "NewPlacement.hpp"
#include "primitives/nullobject.h" #include "primitives/nullobject.h"

View file

@ -1,7 +1,4 @@
#pragma once
#include "NewPlacement.hpp"
#include "primitives/stringobject.h" #include "primitives/stringobject.h"

View file

@ -1,8 +1,5 @@
#pragma once
#include "primitives/typeobject.h" #include "primitives/typeobject.h"
#include "NewPlacement.hpp"
#include "primitives/nullobject.h" #include "primitives/nullobject.h"
using namespace obj; using namespace obj;

View file

@ -7,7 +7,8 @@
namespace obj { namespace obj {
namespace BCgen { namespace BCgen {
struct ConstObject { class ConstObject {
public:
obj::Object* mObj = NULL; obj::Object* mObj = NULL;
tp::alni mConstIdx = 0; tp::alni mConstIdx = 0;
@ -16,7 +17,8 @@ namespace obj {
}; };
struct ConstObjectsPool { class ConstObjectsPool {
public:
tp::Map<tp::String, ConstObject*> mMethods; tp::Map<tp::String, ConstObject*> mMethods;
tp::Map<tp::String, ConstObject*> mStrings; tp::Map<tp::String, ConstObject*> mStrings;
tp::Map<tp::alni, ConstObject*> mIntegers; tp::Map<tp::alni, ConstObject*> mIntegers;
@ -36,6 +38,7 @@ namespace obj {
ConstObject* registerObject(obj::Object* obj); ConstObject* registerObject(obj::Object* obj);
void save(tp::Buffer<ConstData>& out); void save(tp::Buffer<ConstData>& out);
ConstObjectsPool() = default;
~ConstObjectsPool(); ~ConstObjectsPool();
}; };
}; };

View file

@ -18,7 +18,7 @@ namespace obj {
NONE, NONE,
NEW, NEW,
LOCAL, LOCAL,
CONST, CONST_EXPR,
CHILD, CHILD,
CALL, CALL,
ARIPHM, ARIPHM,

View file

@ -10,16 +10,17 @@
namespace obj { namespace obj {
namespace BCgen { namespace BCgen {
struct ConstObject; class ConstObject;
struct Instruction { class Instruction {
public:
OpCode mOp = OpCode::NONE; OpCode mOp = OpCode::NONE;
enum class ArgType : tp::ualni { enum class ArgType : tp::ualni {
NO_ARG, NO_ARG,
PARAM, PARAM,
CONST, CONST_ARG,
} mArgType = ArgType::NO_ARG; } mArgType = ArgType::NO_ARG;
enum class InstType : tp::ualni { enum class InstType : tp::ualni {

View file

@ -1,5 +1,5 @@
#pragma once #pragma once
#include "NewPlacement.hpp"
#include "compiler/statement.h" #include "compiler/statement.h"
#include "compiler/expression.h" #include "compiler/expression.h"

View file

@ -1,5 +1,4 @@
#include "NewPlacement.hpp"
#include "Testing.hpp" #include "Testing.hpp"
#include "primitives/primitives.h" #include "primitives/primitives.h"

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "Testing.hpp" #include "Testing.hpp"
#include "core/object.h" #include "core/object.h"

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "Testing.hpp" #include "Testing.hpp"
#include "compiler/function.h" #include "compiler/function.h"

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "Testing.hpp" #include "Testing.hpp"
#include "core/object.h" #include "core/object.h"

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "CommandLine.hpp" #include "CommandLine.hpp"
#include "Parser.hpp" #include "Parser.hpp"

View file

@ -1,5 +1,4 @@
#include "CLR.hpp" #include "CLR.hpp"
#include "NewPlacement.hpp"
using namespace tp; using namespace tp;

View file

@ -1,6 +1,5 @@
#include "CfGrammar.hpp" #include "CfGrammar.hpp"
#include "NewPlacement.hpp"
#include "Timing.hpp" #include "Timing.hpp"

View file

@ -1,6 +1,4 @@
#include "NewPlacement.hpp"
#include "CfGrammar.hpp" #include "CfGrammar.hpp"
#include "Tokenizer.hpp" #include "Tokenizer.hpp"

View file

@ -1,6 +1,4 @@
#include "Parser.hpp" #include "Parser.hpp"
#include "NewPlacement.hpp"
#include "Tokenizer.hpp" #include "Tokenizer.hpp"
using namespace tp; using namespace tp;

View file

@ -1,5 +1,4 @@
#include "NewPlacement.hpp"
#include "Parser.hpp" #include "Parser.hpp"
#include "Testing.hpp" #include "Testing.hpp"

View file

@ -1,5 +1,4 @@
#include "NewPlacement.hpp"
#include "Parser.hpp" #include "Parser.hpp"
#include "Testing.hpp" #include "Testing.hpp"

View file

@ -1,5 +1,4 @@
#include "NewPlacement.hpp"
#include "Parser.hpp" #include "Parser.hpp"
#include "Testing.hpp" #include "Testing.hpp"

View file

@ -9,6 +9,10 @@
#define STB_IMAGE_WRITE_IMPLEMENTATION #define STB_IMAGE_WRITE_IMPLEMENTATION
#include "stb_image_write.h" #include "stb_image_write.h"
#include <iostream>
#include <thread>
#include <chrono>
using namespace tp; using namespace tp;
void writeImage(const RayTracer::RenderBuffer& output, const char* name) { void writeImage(const RayTracer::RenderBuffer& output, const char* name) {
@ -37,22 +41,19 @@ void writeImage(const RayTracer::RenderBuffer& output, const char* name) {
} }
} }
static void* printStatus(void* arg) { void printStatus(const halnf* percentage) {
auto percentage = (const halnf*) arg;
auto old = *percentage; auto old = *percentage;
while (*percentage < 0.99f) { while (*percentage < 0.99f) {
sleep(500); std::this_thread::sleep_for(std::chrono::milliseconds(500));
if (old != *percentage && (*percentage - old) > 0.01) { if (old != *percentage && (*percentage - old) > 0.01) {
printf("Progress - %f\n", (*percentage) * 100); std::cout << "Progress - " << (*percentage) * 100 << std::endl;
old = *percentage; old = *percentage;
} }
} }
pthread_exit(NULL);
} }
void renderCommand(const String& scenePath) { void renderCommand(const String& scenePath) {
Scene scene; Scene scene;
RayTracer::RenderSettings settings; RayTracer::RenderSettings settings;
loadScene(scene, scenePath, settings); loadScene(scene, scenePath, settings);
@ -60,16 +61,9 @@ void renderCommand(const String& scenePath) {
RayTracer::OutputBuffers output; RayTracer::OutputBuffers output;
RayTracer rayt; RayTracer rayt;
pthread_t my_thread; std::thread statusThread(printStatus, &rayt.mProgress.percentage);
int ret;
printf("\nStarting Render:\n\n"); std::cout << "\nStarting Render:\n\n";
ret = pthread_create(&my_thread, NULL, &printStatus, &rayt.mProgress.percentage);
if (ret != 0) {
printf("Error: pthread_create() failed\n");
exit(EXIT_FAILURE);
}
auto start = get_time(); auto start = get_time();
@ -77,9 +71,9 @@ void renderCommand(const String& scenePath) {
auto end = get_time(); auto end = get_time();
pthread_join(my_thread, NULL); statusThread.join();
printf("\nRender finished with average render time per sample - %i (ms)\n", end - start); std::cout << "\nRender finished with average render time per sample - " << (end - start) << " (ms)\n";
writeImage(output.normals, "normals.png"); writeImage(output.normals, "normals.png");
writeImage(output.color, "color.png"); writeImage(output.color, "color.png");

View file

@ -1,6 +1,5 @@
#include "MathCommon.hpp" #include "MathCommon.hpp"
#include "NewPlacement.hpp"
#include "CommandLine.hpp" #include "CommandLine.hpp"
#include "Module.hpp" #include "Module.hpp"
@ -48,10 +47,10 @@ ModuleManifest* sDependencies[] = { &gModuleMath, &gModuleCommandLine, &gModuleC
ModuleManifest tp::gModuleRayTracer = ModuleManifest("RayTracer", nullptr, nullptr, sDependencies); ModuleManifest tp::gModuleRayTracer = ModuleManifest("RayTracer", nullptr, nullptr, sDependencies);
void RayTracer::castRay(const Ray& ray, RayCastData& out, alnf far) { void RayTracer::castRay(const Ray& ray, RayCastData& out, alnf farVal) {
out.hit = false; out.hit = false;
far *= far; farVal *= farVal;
for (auto obj : mScene->mObjects) { for (auto obj : mScene->mObjects) {
for (auto trig : obj->mCache.TrigCaches) { for (auto trig : obj->mCache.TrigCaches) {
@ -60,13 +59,13 @@ void RayTracer::castRay(const Ray& ray, RayCastData& out, alnf far) {
auto dist = (trig->getHitPos() - ray.pos).length2(); auto dist = (trig->getHitPos() - ray.pos).length2();
if (far > dist && dist > EPSILON) { if (farVal > dist && dist > EPSILON) {
out.trig = &trig.data(); out.trig = &trig.data();
out.hitPos = trig->getHitPos(); out.hitPos = trig->getHitPos();
out.obj = &obj.data(); out.obj = &obj.data();
out.hit = true; out.hit = true;
far = dist; farVal = dist;
} }
} }
} }

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "Logging.hpp" #include "Logging.hpp"
#include <cstdio> #include <cstdio>

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "Strings.hpp" #include "Strings.hpp"
#include "Tests.hpp" #include "Tests.hpp"

View file

@ -1,5 +1,3 @@
#include "NewPlacement.hpp"
#include "StringLogic.hpp" #include "StringLogic.hpp"
#include "Tests.hpp" #include "Tests.hpp"

View file

@ -7,6 +7,11 @@
#include "Utils.hpp" #include "Utils.hpp"
#include "Map.hpp" #include "Map.hpp"
#ifdef ENV_OS_WINDOWS
#undef min
#undef max
#endif
namespace tp { namespace tp {
extern ModuleManifest gModuleTokenizer; extern ModuleManifest gModuleTokenizer;
@ -100,7 +105,7 @@ namespace tp {
Range<tAlphabetType> getAlphabetRange() const { Range<tAlphabetType> getAlphabetRange() const {
tAlphabetType start = 0, end = 0; tAlphabetType start = 0, end = 0;
Range<tAlphabetType> all_range = { std::numeric_limits<tAlphabetType>::min(), std::numeric_limits<tAlphabetType>::max() }; Range<tAlphabetType> all_range(std::numeric_limits<tAlphabetType>::min(), std::numeric_limits<tAlphabetType>::max());
bool first = true; bool first = true;
for (auto vertex : mVertices) { for (auto vertex : mVertices) {

View file

@ -1,10 +1,11 @@
#include "NewPlacement.hpp" // #include "NewPlacement.hpp"
#include "Testing.hpp" #include "Testing.hpp"
#include "Tokenizer.hpp" #include "Tokenizer.hpp"
#include <cstdio> #include <cstdio>
#include <iostream>
#define LOG(val) // std::cout << #val << " " #define LOG(val) std::cout << #val << " "
using namespace tp; using namespace tp;

View file

@ -13,6 +13,7 @@ void initializeCallStackCapture() { gCSCapture = new (malloc(sizeof(CallStackCap
void deinitializeCallStackCapture() { void deinitializeCallStackCapture() {
gCSCapture->~CallStackCapture(); gCSCapture->~CallStackCapture();
free(gCSCapture); free(gCSCapture);
gCSCapture = nullptr;
} }
ualni CallStackCapture::CallStack::getDepth() const { ualni CallStackCapture::CallStack::getDepth() const {
@ -70,6 +71,8 @@ CallStackCapture::CallStackCapture() {
} }
const CallStackCapture::CallStack* CallStackCapture::getSnapshot() { const CallStackCapture::CallStack* CallStackCapture::getSnapshot() {
MODULE_SANITY_CHECK(gModuleUtils)
if (mBuffLoad > mBuffLen) { if (mBuffLoad > mBuffLen) {
static CallStack cs; static CallStack cs;
cs.frames[0] = 0; cs.frames[0] = 0;
@ -229,4 +232,10 @@ void CallStackCapture::platformWriteDebugSymbols(FramePointer frame, DebugSymbol
std::strcpy(out->file, "unresolved"); std::strcpy(out->file, "unresolved");
std::strcpy(out->function, "unresolved"); std::strcpy(out->function, "unresolved");
} }
void CallStackCapture::printSnapshot(const CallStack* snapshot) {
printf("CallStack: \n");
printf("Call stack debugging is not supported on this platform");
printf("\n");
}
void CallStackCapture::logAll() { printf("Call stack debugging is not supported on this platform"); }
#endif #endif

View file

@ -1,16 +1,16 @@
#pragma once #pragma once
#include <pthread.h> #include <mutex>
namespace tp { namespace tp {
class Mutex { class Mutex {
pthread_mutex_t mMutex{}; std::mutex mMutex;
public: public:
Mutex() = default; Mutex() = default;
void lock() { pthread_mutex_lock(&mMutex); } void lock() { mMutex.lock(); }
void unlock() { pthread_mutex_unlock(&mMutex); } void unlock() { mMutex.unlock(); }
}; };
} }