diff --git a/.gitignore b/.gitignore index 0d9ed25f0..8421c3560 100644 --- a/.gitignore +++ b/.gitignore @@ -252,7 +252,5 @@ paket-files/ # Project Specific *.sln -!misc/llvm-bim/lli.exe -!misc/llvm-bim/opt.exe -builds -bin +builds/ +bin/ diff --git a/README.md b/README.md index 83ae9c7a2..b3c98afbd 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Odin logo +Odin logo # The Odin Programming Language diff --git a/compile_time_execution_problems.md b/compile_time_execution_problems.md deleted file mode 100644 index 8cfeca4e4..000000000 --- a/compile_time_execution_problems.md +++ /dev/null @@ -1,55 +0,0 @@ -# Compile Time Execution Problems (Metaprogramming) -2016-11-02 - -## Memory and Types - -Compile time execution (CTE) is a stage of the compiler which runs any Odin code the -user requests before the creation of the executable. The data modified and generated -by this stage will be used as the initialization data for the _compiled_ code. - -The CTE stage is an interpreter running the generated _single static assignment_ (SSA) -tree for the requested code. When using the memory generated by the interpreter for the -compiled code, there are a few problems. The main problem being: pointers will point -to invalid memory addresses. This is becaused the memory space of the interpreter is -completely different to the memory space of the executable (compiled code). - -The table below presents which data types are safe for transferal and which are not. - -Key: - -* Y - Yes -* N - No -* D - Dependent on elements -* ? - Highly depends on a lot of factors (most likely no) - -| Type | Safe? | -|-----------|------------------------------------------------------------------------| -| boolean | Y | -| integer | Y | -| float | Y | -| pointer | N - Maybe safe if never changed | -| string | Y - Even though (ptr+int) interally, still safe to convert to constant | -| any | N - (ptr+ptr) | -| array | D | -| vector | Y - Elements can only be boolean, integer, or float (thus safe) | -| slice | N - Internally (ptr+int+int) | -| maybe | D | -| struct | D | -| enum | Y | -| union | N - (blob+int) | -| raw_union | N - ^^^ | -| tuple | D | -| proc | ? - Need to solve the next problem | - - -## Calling procedures (external and internal) - -If all the procedures are only from within the code itself, i.e. not a loaded pointer, -then it is "safe". However, calling external procedures and passing procedures from the -interpreter to external programs _will_ cause problems as many of the procedures are not -stored in _real_ memory. This causes numerous problems. - -**TODO:** - -* Look at how other languages solve this problem (e.g. LUA) -* ??? diff --git a/libs.txt b/libs.txt deleted file mode 100644 index f13b0fcc0..000000000 --- a/libs.txt +++ /dev/null @@ -1,25 +0,0 @@ -LLVMX86Disassembler.lib ^ -LLVMX86AsmParser.lib ^ -LLVMX86CodeGen.lib ^ -LLVMSelectionDAG.lib ^ -LLVMAsmPrinter.lib ^ -LLVMCodeGen.lib ^ -LLVMTarget.lib ^ -LLVMScalarOpts.lib ^ -LLVMInstCombine.lib ^ -LLVMInstrumentation.lib ^ -LLVMProfileData.lib ^ -LLVMTransformUtils.lib ^ -LLVMBitWriter.lib ^ -LLVMAnalysis.lib ^ -LLVMX86Desc.lib ^ -LLVMObject.lib ^ -LLVMMCParser.lib ^ -LLVMBitReader.lib ^ -LLVMMCDisassembler.lib ^ -LLVMX86Info.lib ^ -LLVMX86AsmPrinter.lib ^ -LLVMMC.lib ^ -LLVMX86Utils.lib ^ -LLVMCore.lib ^ -LLVMSupport.lib ^ diff --git a/logo-slim.png b/logo-slim.png deleted file mode 100644 index 2b70e6a0c..000000000 Binary files a/logo-slim.png and /dev/null differ diff --git a/roadmap.md b/roadmap.md deleted file mode 100644 index 83fbbb695..000000000 --- a/roadmap.md +++ /dev/null @@ -1,21 +0,0 @@ -# Odin Roadmap - -Not in any particular order - -* Custom backend to replace LLVM - - Improve SSA design to accommodate for lowering to a "bytecode" - - SSA optimizations - - COFF generation - - linker -* Type safe "macros" -* Documentation generator for "Entities" -* Multiple architecture support -* Inline assembly -* Linking options - - Executable - - Static/Dynamic Library -* Debug information - - pdb format too -* Command line tooling -* Compiler internals: - - Big numbers library diff --git a/run.bat b/run.bat deleted file mode 100644 index b3fb31397..000000000 --- a/run.bat +++ /dev/null @@ -1,4 +0,0 @@ -@echo off - - -rem call clang -c -emit-llvm -DGB_IMPLEMENTATION -DGB_DEF=GB_DLL_EXPORT ..\src\gb\gb.h diff --git a/todo.md b/todo.md deleted file mode 100644 index ab35c7830..000000000 --- a/todo.md +++ /dev/null @@ -1,18 +0,0 @@ -# Todo - -## Checker -* Cyclic Type Checking - - type A: struct { b: B; }; type B: struct { a: A; }; - - ^ Should be illegal as it's a cyclic definition -* Big numbers library - - integer - - rational - - real - -## Codegen -* Debug info - -## Command Line Tool -* Begin!!! -* Choose/determine architecture -