Browse Source

Cleanup root directory

Ginger Bill 8 years ago
parent
commit
2aa402f462
8 changed files with 3 additions and 128 deletions
  1. 2 4
      .gitignore
  2. 1 1
      README.md
  3. 0 55
      compile_time_execution_problems.md
  4. 0 25
      libs.txt
  5. BIN
      logo-slim.png
  6. 0 21
      roadmap.md
  7. 0 4
      run.bat
  8. 0 18
      todo.md

+ 2 - 4
.gitignore

@@ -252,7 +252,5 @@ paket-files/
 
 # Project Specific
 *.sln
-!misc/llvm-bim/lli.exe
-!misc/llvm-bim/opt.exe
-builds
-bin
+builds/
+bin/

+ 1 - 1
README.md

@@ -1,4 +1,4 @@
-<img src="logo-slim.png" alt="Odin logo" height="74">
+<img src="misc/logo-slim.png" alt="Odin logo" height="74">
 
 # The Odin Programming Language
 

+ 0 - 55
compile_time_execution_problems.md

@@ -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)
-* ???

+ 0 - 25
libs.txt

@@ -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 ^

BIN
logo-slim.png


+ 0 - 21
roadmap.md

@@ -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

+ 0 - 4
run.bat

@@ -1,4 +0,0 @@
-@echo off
-
-
-rem call clang -c -emit-llvm -DGB_IMPLEMENTATION -DGB_DEF=GB_DLL_EXPORT ..\src\gb\gb.h

+ 0 - 18
todo.md

@@ -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
-