Commit Graph

  • 5271adb82f Interpreter - Structs and Arrays Ginger Bill 2016-10-30 23:48:32 +00:00
  • 0ffe4b600d Interpreter - call internal procedures Ginger Bill 2016-10-30 19:20:47 +00:00
  • ca311c4a59 Begin work on the Interpreter Ginger Bill 2016-10-30 17:49:30 +00:00
  • 3ec67853e1 Minor Entity refactor Ginger Bill 2016-10-30 13:20:45 +00:00
  • 09f39ae2cc Better constant strings for SSA; Fix Type_Info Ginger Bill 2016-10-26 20:10:32 +01:00
  • aed7a83f5b Code reorganization - Separate files and slice refactoring Ginger Bill 2016-10-26 15:05:41 +01:00
  • 6996df4104 Fix double declarations with enum bug Ginger Bill 2016-10-26 12:00:40 +01:00
  • a5c1e83ce4 Fix Type_Info bug overwriting type_info data. Ginger Bill 2016-10-23 22:50:15 +01:00
  • b454371f3b Separation of certain instructions for better clarity. Ginger Bill 2016-10-23 15:57:59 +01:00
  • bd5d095de4 Separate ssa_struct_gep and ssa_array_gep procedures Ginger Bill 2016-10-23 14:46:52 +01:00
  • f60dc7b0a7 Minor Style Fixes Ginger Bill 2016-10-22 19:41:58 +01:00
  • a675d3f94d union_cast Ginger Bill 2016-10-16 21:31:06 +01:00
  • b9719df0ad Fix exact value bug when updating expressions Ginger Bill 2016-10-16 00:26:53 +01:00
  • 79af939522 Update ImplicitValue "architecture" Ginger Bill 2016-10-15 22:30:58 +01:00
  • f3209584a3 Add Pointer Arithmetic Ginger Bill 2016-10-12 17:51:36 +01:00
  • f5318c46d1 Implicit Values: context; Fix lvalue selector assignments; Fix offset_of* for using fields. Ginger Bill 2016-10-10 10:27:50 +01:00
  • 90babbfbf3 Very Basic Profiling Ginger Bill 2016-10-09 20:14:32 +01:00
  • 5bffa4ee79 SSA - Dominator Tree Builder Ginger Bill 2016-10-09 16:03:23 +01:00
  • 2e0b260d3a SSA - Basic block optimizations Ginger Bill 2016-10-09 11:46:14 +01:00
  • e299c3693e SSA Phi Node Support Ginger Bill 2016-10-08 22:03:40 +01:00
  • b705fa7f22 Change from gbArray(T) to Array<T> Ginger Bill 2016-10-08 20:37:31 +01:00
  • a5c6340316 "Maybe-fy" operator Ginger Bill 2016-10-08 10:01:29 +01:00
  • c5d20d2eef Demaybe operator ? Ginger Bill 2016-10-07 09:41:38 +01:00
  • f40482aa29 Maybe types; value, ok := maybe_value(x) Ginger Bill 2016-10-06 23:30:22 +01:00
  • 50301557b2 Untyped nil Ginger Bill 2016-10-06 17:11:17 +01:00
  • fee504636f Code clean up of call arguments Ginger Bill 2016-10-03 23:28:37 +01:00
  • f6589d9814 Refactor: Remove dead code Ginger Bill 2016-10-02 21:45:24 +01:00
  • 264fc1e1f3 Allow for constants of compound types Ginger Bill 2016-10-01 00:02:00 +01:00
  • 9aa9007d8f Include other core libs. Ginger Bill 2016-09-30 23:35:06 +01:00
  • 17ab23f1f0 Const Aggregate Literals for IR; Module path fix Ginger Bill 2016-09-30 23:34:32 +01:00
  • c6aac264fa Begin work on const llvm aggregate literals Ginger Bill 2016-09-30 20:38:46 +01:00
  • 04b5d8c132 using on indexable field; Auto deref for (Index|Slice)Expr Ginger Bill 2016-09-29 00:42:26 +01:00
  • 6e39a42c8a Demo 004 Ginger Bill 2016-09-28 21:25:14 +01:00
  • 5f6b0942f4 Update Standard Library; Fix Type_Info for integers Ginger Bill 2016-09-28 00:07:03 +01:00
  • 6088cbeddb Fix: double declaration in SSA Ginger Bill 2016-09-27 19:47:27 +01:00
  • f6bbd8a4c2 Fix minimal dependency for nested entities Ginger Bill 2016-09-27 18:12:46 +01:00
  • 006741908b Remove #define DISPLAY_TIMING Ginger Bill 2016-09-27 15:30:10 +01:00
  • b593332942 Minimal Dependency Map: Only build what is needed Ginger Bill 2016-09-27 15:28:44 +01:00
  • 349badcf17 Nested procedures are declared inline but bodies checked later Ginger Bill 2016-09-24 23:48:03 +01:00
  • 70f3361a34 Bug Fixes: some assertions; variable inits; Remove some dead code Ginger Bill 2016-09-24 22:55:17 +01:00
  • ff229054a1 Any order declarations at procedure scope (except variables) Ginger Bill 2016-09-24 10:23:46 +01:00
  • db6abb9706 Fix returns of tuple Ginger Bill 2016-09-23 20:40:42 +01:00
  • fa7d7938e1 Fix push_* with better defer system Ginger Bill 2016-09-23 19:45:45 +01:00
  • a31bab5aae Unicode file loading; push_allocator & push_context Ginger Bill 2016-09-23 14:59:58 +01:00
  • ee0aa7b9de Fix assert; exporting rules Ginger Bill 2016-09-22 23:18:29 +01:00
  • 2e506b7e6e Demo 003 Ginger Bill 2016-09-22 21:32:25 +01:00
  • 6907951f1e Fix type info generation The problem: entry's index != entry->value in info_type_map But I was assuming this Ginger Bill 2016-09-22 13:34:14 +01:00
  • 664c2cd7a5 Fix enum type comparison; Start demo 003 code Ginger Bill 2016-09-21 23:26:31 +01:00
  • 33bd3f635f Remove the need for clang Replaced by: opt -> llc -> link Ginger Bill 2016-09-21 18:31:01 +01:00
  • 0e2347e582 Filename as default import name; as .; as _; panic() Ginger Bill 2016-09-21 14:46:56 +01:00
  • 31c11a5037 Sort enum entities; Remove sprint* from fmt.odin Ginger Bill 2016-09-20 09:33:29 +01:00
  • 59b0cf61ef fmt improvement; Minor refactoring Ginger Bill 2016-09-19 23:59:26 +01:00
  • 3b266b194f enum_to_string fix; enum count, min_value, max_value Ginger Bill 2016-09-19 22:26:07 +01:00
  • 9561dc33ce enum_to_string Ginger Bill 2016-09-19 21:33:52 +01:00
  • bbc9739f5c Core library and Better name mangling for files Ginger Bill 2016-09-19 11:51:21 +01:00
  • 828095afd1 Better name mangler for SSA generation TODO: Define better name mangling rules and allow for explicit name overload Ginger Bill 2016-09-18 21:44:22 +01:00
  • 2d6171f3e5 #import search rule: relative then core/ Ginger Bill 2016-09-17 22:42:09 +01:00
  • 67694c0df0 VarDecl and ConstDecl split; error, warning, et al. now global Ginger Bill 2016-09-17 11:39:08 +01:00
  • eb424bb315 #import and #load #import - imported entities will not get exported #load - loaded entities will get exported Ginger Bill 2016-09-16 19:46:48 +01:00
  • 968de5aae8 Call expression, either handle all or ignore all results. Ginger Bill 2016-09-16 11:38:20 +01:00
  • 807256dea4 ssa - alloca all variables at the very start Ginger Bill 2016-09-15 18:58:29 +01:00
  • b6cb4f4d14 #file #line directives Ginger Bill 2016-09-15 00:53:00 +01:00
  • bd365e5176 Fix namespacing issues for #import; allow using ImportName Ginger Bill 2016-09-14 22:58:24 +01:00
  • 79f575ae8e #import "" as namespace Ginger Bill 2016-09-14 19:35:13 +01:00
  • bb109b47d6 Basic module system (only file namespacing) Ginger Bill 2016-09-14 14:16:01 +01:00
  • a60e6bedd9 Begin work on modules - No codegen!!! Ginger Bill 2016-09-14 12:00:04 +01:00
  • 1147e17c13 Fix addressing modes for selectors Ginger Bill 2016-09-13 23:09:46 +01:00
  • 817ae643c5 Remove len(), cap() and replace with selectors; fix defer in match Ginger Bill 2016-09-13 12:11:52 +01:00
  • 59fb74d2a2 Fix array bounds checking Ginger Bill 2016-09-12 23:16:06 +01:00
  • d4ba6b5466 Slice and substring bounds checking Ginger Bill 2016-09-12 15:10:15 +01:00
  • 9ff4a8b5ab Switchable array bounds checking Ginger Bill 2016-09-12 14:41:36 +01:00
  • 687e78d5dd Some global init cleanup; volatile types Ginger Bill 2016-09-12 12:05:38 +01:00
  • 7509cdceb8 Default struct member reordering for minimal size Rule: largest members to smallest; if same size, order in source order Ginger Bill 2016-09-10 11:24:50 +01:00
  • 6979678ff9 Begin reording of struct members by default. Ginger Bill 2016-09-09 23:33:54 +01:00
  • 1ca752ce04 Remove duplicates in type info data. Ginger Bill 2016-09-09 19:48:28 +01:00
  • 56dd12c54c Fix match statements for the new AstNodeArray type Ginger Bill 2016-09-08 18:28:18 +01:00
  • c6d02e4778 Fix missing type_info with manual linear search Ginger Bill 2016-09-08 00:23:14 +01:00
  • 3d02f8a5fd Slice variadic expansion .. Ginger Bill 2016-09-07 22:42:38 +01:00
  • 50aeea1c2e Remove AstNode linked lists and replace with arrays Ginger Bill 2016-09-07 21:59:03 +01:00
  • 7ba13a18a3 Basic variadic print procedure Ginger Bill 2016-09-07 19:23:00 +01:00
  • 2c4193a242 any type Ginger Bill 2016-09-07 15:15:10 +01:00
  • 61fcfd6f3d Begin Type_Info Missing stuff in records, procedures, and tuples Ginger Bill 2016-09-07 14:03:17 +01:00
  • 455820fc84 Speed up SSA generation and clang compilation Ginger Bill 2016-09-05 18:42:42 +01:00
  • ae72b3c5bd Tagged unions memory layout change; begin demo 002 Ginger Bill 2016-09-04 22:50:17 +01:00
  • c2e3c3801a Type match statement for tagged unions Ginger Bill 2016-09-04 16:16:17 +01:00
  • cdd8eadda1 Fix type system in SSA generation Removes a lot of dodgy things Still needs to be tested a lot and better refactored Ginger Bill 2016-09-03 22:07:16 +01:00
  • 7f884ed251 Start implementing Tagged Unions Ginger Bill 2016-09-03 18:18:45 +01:00
  • 11205f968a Typesafe variadic procedures Ginger Bill 2016-09-03 12:41:03 +01:00
  • e1a6775661 Runtime assert Ginger Bill 2016-09-02 15:51:48 +01:00
  • 25e9b9bc87 min, max, abs Ginger Bill 2016-09-02 14:14:12 +01:00
  • fa09d805e2 Match statements; Type System change (Type_Record for all sum and product types) Ginger Bill 2016-09-01 20:38:44 +01:00
  • ff6e21cb87 Fix subtype polymorphism Ginger Bill 2016-08-31 18:29:51 +01:00
  • 5399463d9d down_cast Ginger Bill 2016-08-31 00:52:19 +01:00
  • cda0234d48 Subtyping Polymorphic arguments; using procedure parameters Ginger Bill 2016-08-30 23:32:04 +01:00
  • a06f70d5d9 Better using; foreign system libraries; optional semicolons Ginger Bill 2016-08-30 18:39:29 +01:00
  • 0eaf7bd830 Begin "Everything's a namespace" Ginger Bill 2016-08-30 00:04:14 +01:00
  • 593563d8ea new, new_slice, delete Ginger Bill 2016-08-28 01:06:42 +01:00
  • ae75ab169b Pointer arithmetic builtin procedures Ginger Bill 2016-08-27 11:05:08 +01:00
  • 3a189b9c1c Save before Demo 001 Ginger Bill 2016-08-25 19:52:51 +01:00
  • f93cf3827b Change rune literals to #rune "C" Ginger Bill 2016-08-25 00:23:04 +01:00