Ginger Bill
763cd2649d
Fix index assignment rules for indirection
2017-02-14 12:21:02 +00:00
Ginger Bill
bd27c24fab
Use a global to store the build context information
2017-02-12 21:27:13 +00:00
Ginger Bill
282f8bb06f
Fix issue #23
2017-02-12 11:41:06 +00:00
Ginger Bill
b9ed546ce0
Record type field names
2017-02-12 11:31:04 +00:00
Ginger Bill
e1fdd675ce
v0.1.0
...
Added:
* Dynamic Arrays `[...]Type`
* Dynamic Maps `map[Key]Value`
* Dynamic array and map literals
* Custom struct alignemnt `struct #align 8 { bar: i8 }`
* Allow `_` in numbers
* Variadic `append`
* fmt.sprint*
* Entities prefixes with an underscore do not get exported on imports
* Overloaded `free` for pointers, slices, strings, dynamic arrays, and dynamic maps
* enum types have an implict `names` field, a []string of all the names in that enum
Removed:
* Maybe/option types
* immutable variables
* Remove `type` keyword and other "reserved" keywords
* `compile_assert` and `assert`return the value of the condition for semantic reasons
Changed:
* thread_local -> #thread_local
* #include -> #load
* Files only get checked if they are actually used
* match x in y {} // For type match statements
* Version numbering now starts from 0.1.0 and uses the convention:
- major.minor.patch
Fixes:
* Many fmt.* fixes
To come very Soon™:
* Linux and OS X builds (unofficial ones do exist already)
2017-02-11 21:20:57 +00:00
Ginger Bill
4306345ff1
Dynamic array syntax [...]Type; make entities private with a prefix of _; fix extension checking
2017-02-11 17:33:23 +00:00
Ginger Bill
346aa5f71c
Only check files that have been truly imported.
2017-02-11 15:50:24 +00:00
Ginger Bill
73d6a55f5c
Remove need for type keyword
2017-02-10 16:12:14 +00:00
Ginger Bill
f18ae89931
Remove Maybe type; Enum names
2017-02-10 14:59:18 +00:00
Ginger Bill
454d0b5cf5
Fix global maps and initialize the preload types before
2017-02-07 18:13:37 +00:00
Ginger Bill
219ca0ac46
Map type info and fmt printing
2017-02-07 00:10:58 +00:00
Ginger Bill
5796c41357
map immutable fields: count, capacity, allocator
2017-02-06 22:53:48 +00:00
Ginger Bill
8cfae17535
map literals
2017-02-06 22:19:32 +00:00
Ginger Bill
df78b8ad3e
Make checking map key exists optional
2017-02-06 21:31:27 +00:00
Ginger Bill
f11d73ffaa
map string keys and for iterator
2017-02-06 20:54:51 +00:00
Ginger Bill
c126339090
dynamic map insertion and lookup
2017-02-06 20:23:51 +00:00
Ginger Bill
9f2d9b596d
Nearly implement dynamics map, missing insertion
2017-02-06 01:21:23 +00:00
Ginger Bill
00c7489157
Begin writing dynamic map procs and fix using bug in IR
2017-02-05 23:52:01 +00:00
Ginger Bill
b1562edccf
Add types.odin; Begin work on map
2017-02-05 18:17:55 +00:00
Ginger Bill
2a5b674d33
Custom struct alignment
2017-02-05 15:19:30 +00:00
Ginger Bill
7944b7714f
Add build guards around compiling part of the code.
2017-02-01 21:00:32 +00:00
Ginger Bill
205f4664f8
Update code from OSX merge to be consistent with the rest of the code
...
Remove some dead code whilst I was here too :P
2017-02-01 20:59:14 +00:00
Ginger Bill
4e7082a68d
Change internals of context; Disable immutable
2017-02-01 17:52:55 +00:00
Ginger Bill
502e63b9c5
Remove dead code
2017-01-30 23:10:44 +00:00
Ginger Bill
34150385d8
Change vector memory layout and operations; for in vector.
2017-01-30 22:31:34 +00:00
Ginger Bill
0ca1b4612c
Allow _ in floats
2017-01-29 23:13:50 +00:00
Ginger Bill
9e143a38ce
sprint*, variadic append works correctly now.
2017-01-29 21:29:10 +00:00
Ginger Bill
43be91bca3
Variadic append
2017-01-29 20:48:08 +00:00
Ginger Bill
984e36a151
Dynamic arrays
2017-01-29 20:15:16 +00:00
Ginger Bill
ec9c8fb8a4
Update README.md
2017-01-29 14:45:12 +00:00
Ginger Bill
3e79ec4aef
Fix untyped to any assignments. Fixed crash when arguments with no value are passed
2017-01-29 14:27:55 +00:00
Ginger Bill
e86c990b75
Overloaded free; 3 dotted ellipsis
2017-01-28 20:16:18 +00:00
Ginger Bill
31aacd5bf4
Fix parsing for block/if expression within if/for/etc. statements
2017-01-27 23:02:55 +00:00
Ginger Bill
92453369c5
Remove while loop and readd c-style for loops i.e. all loops are just for
2017-01-27 17:43:42 +00:00
Ginger Bill
832009f33a
in keyword for for and match type
2017-01-27 16:34:58 +00:00
Ginger Bill
d3d3bfd455
Fix utf8 stuff, Allow _ in numbers, Begin writing next demo code.
2017-01-27 12:43:01 +00:00
Ginger Bill
ce3582fd89
Remove case sensitivity for libraries on windows
2017-01-26 20:06:22 +00:00
Ginger Bill
e3e16f5d05
Library names - Only link with used foreign libraries
2017-01-26 20:00:16 +00:00
Ginger Bill
f47f25f942
Fix pointer differences (issue #11 ); remove #dll_import
2017-01-26 17:39:44 +00:00
Ginger Bill
e85458919c
Basic float printing
2017-01-26 15:38:35 +00:00
Ginger Bill
b59a052e32
Change casting syntax: cast(T)x transmute(T)x et al.
2017-01-25 19:19:25 +00:00
Ginger Bill
12498b2d39
Fix issue #8 - https://github.com/gingerBill/Odin/issues/8
2017-01-20 11:23:46 +00:00
Ginger Bill
6d93aa429f
Fix issue #10
2017-01-20 00:21:40 +00:00
Ginger Bill
3f023509a7
using immutable thread_local on variable declarations
2017-01-19 20:03:10 +00:00
Ginger Bill
563b1e2b28
immutable field prefix
2017-01-19 19:02:44 +00:00
Ginger Bill
4603d2525e
Closed range ... (both inclusive); Type comparisons with == and !=
2017-01-19 11:29:15 +00:00
Ginger Bill
2af9fb79dc
Change cast syntax, int(x), []byte(s), (^int)(p)
2017-01-17 23:36:07 +00:00
Ginger Bill
367d307dc4
Fix conversion of untyped integers to pointers
2017-01-17 20:27:14 +00:00
Ginger Bill
cb59c1cf08
Comma for all field separators; Overloaded procedures follow exportation rules
2017-01-17 18:47:38 +00:00
Ginger Bill
383f5b55ad
Best viable overloading procedure algorithm; no_alias; call expr style casts
2017-01-17 15:20:11 +00:00
Ginger Bill
6dc6b6f8aa
Err on ambiguous overloaded calls
2017-01-15 20:43:28 +00:00
Ginger Bill
ac736aa4ec
Procedure overloading
2017-01-15 19:55:04 +00:00
Ginger Bill
6fe25badf0
Bug fix: comparisons with shifts
2017-01-15 12:00:13 +00:00
Ginger Bill
c29d433e38
Handle enums correctly with printf
2017-01-08 23:19:50 +00:00
Ginger Bill
ff473e8342
"Old style" enums
...
name and value information
`count`, `min_value`, `max_value` constants
2017-01-08 20:24:12 +00:00
Ginger Bill
659e5359b2
fmt.printf - Go style due to runtime type safety
2017-01-08 01:10:55 +00:00
Ginger Bill
d9ce0b9da0
File reorganization for checker system.
2017-01-07 12:01:52 +00:00
Ginger Bill
703e1aa2bc
Fix core library; Disable adding entity definitions for blank identifiers
2017-01-07 11:44:42 +00:00
Ginger Bill
b1e35b6da3
Fix array pointer as iterators; Remove stack allocations in startup_runtime
2017-01-06 15:47:07 +00:00
Ginger Bill
fc1af0a04b
Fix build error caused by invalid iterator types in for
2017-01-05 23:50:44 +00:00
Ginger Bill
4afb3f8fa4
Fix line comments at the end of file
2017-01-05 22:35:32 +00:00
Ginger Bill
207b252f23
Fix checking termination of a procedure
2017-01-05 22:32:19 +00:00
Ginger Bill
1356dfeec2
Fix SUBSYSTEM for link.exe
2017-01-05 21:58:24 +00:00
Ginger Bill
d025791462
v0.0.5a
2017-01-05 21:46:09 +00:00
Ginger Bill
b07ee9ec23
Fix problem with odin build
2017-01-05 21:43:36 +00:00
Ginger Bill
915b5cdab7
Rename llir -> ir
2017-01-04 11:24:32 +00:00
Ginger Bill
c8f99b360f
Fix init_arena_from_context
2017-01-03 20:35:47 +00:00
Ginger Bill
b76f6a8c27
Removed capacity arguments from new_slice and slice_ptr
2017-01-03 20:31:14 +00:00
Ginger Bill
cff1b3dff6
v0.0.5
...
Fix enumerations to so they work as integers in indices; Add llir_opt.c and llir_print.c
2017-01-03 20:07:46 +00:00
Ginger Bill
883dd0642c
Change prev ssa to llir;
2017-01-03 19:34:06 +00:00
Ginger Bill
40f5dd56f7
Fix for interval upper bound check
2017-01-03 19:22:08 +00:00
Ginger Bill
70d4ca00df
while; range is now for; remove ++ and --
2017-01-03 19:11:12 +00:00
Ginger Bill
a86896e4d3
Interval expressions in range
2017-01-03 18:02:13 +00:00
Ginger Bill
a3883a178c
range statement
2017-01-02 18:47:47 +00:00
Ginger Bill
ce89a1428e
Fix parameter/field lists and #import #include syntax
2017-01-02 00:26:28 +00:00
Ginger Bill
9202bd1b06
Nearly finished Jai-like declarations
2017-01-01 20:41:10 +00:00
Ginger Bill
a48e0c7179
Begin transition to Jai-like syntax
2017-01-01 19:08:03 +00:00
Ginger Bill
3f1195cd03
More declaration differentiation in semantic stage e.g. make only variables and constants
2017-01-01 18:18:43 +00:00
Ginger Bill
311b5cb6e2
Add enum type info and fix enum casting
2017-01-01 16:58:38 +00:00
Ginger Bill
6fef74317c
Bring back enum but using iota
2017-01-01 16:18:50 +00:00
Ginger Bill
0c6775ca14
Fix give expressions
2016-12-30 22:52:43 +00:00
Ginger Bill
6748f305db
select to phi in if expression
2016-12-30 16:31:04 +00:00
Ginger Bill
2ecafda1d3
if expression
2016-12-30 16:21:45 +00:00
Ginger Bill
23d32f34e5
Block Expressions and give
2016-12-30 15:45:10 +00:00
Ginger Bill
d714bece47
Handle calling conventions correctly
2016-12-22 23:06:31 +00:00
Ginger Bill
923b039cf6
Fix anonymous procedures and their dependencies
2016-12-21 15:20:33 +00:00
Ginger Bill
d0e1efe622
Generic (grouped) declarations: var, let, const, type, import, include
2016-12-20 18:58:17 +00:00
Ginger Bill
478d63424f
Remove enum for favour of Go-style enumerations
2016-12-19 14:03:59 +00:00
Ginger Bill
ac1566762b
Golang style enumerations with iota
2016-12-19 13:18:20 +00:00
Ginger Bill
f5eeecaca5
Begin generic declarations for lists of specifications
2016-12-19 11:56:45 +00:00
Ginger Bill
77e219d442
Change var decl syntax
...
`var x int;` from `x: int;`
2016-12-18 22:32:18 +00:00
Ginger Bill
4c10fbdcd4
Change record field syntax
2016-12-18 22:23:34 +00:00
Ginger Bill
e370337f97
var/const decl; remove : from parameter lists
2016-12-18 21:50:14 +00:00
Ginger Bill
5217eb55b4
Change of proc and type declaration syntax to "prefix" style
...
`proc name()` from `name :: proc()`
2016-12-18 20:34:55 +00:00
Ginger Bill
062a2c63e1
Very minor style changes
2016-12-18 16:17:45 +00:00
Ginger Bill
b957365b0d
Merge branch 'master' of https://github.com/gingerBill/Odin
...
# Conflicts:
# src/ssa_print.c
2016-12-17 10:26:07 +00:00
Ginger Bill
625b98eac4
Fix issue with printing invalid IR for nested unions
...
(GitHub #4 )
2016-12-17 10:23:28 +00:00
Ginger Bill
0f809989e3
Fix issue with printing invalid IR for nested unions
...
(GitHub #4 )
2016-12-17 10:22:38 +00:00
Ginger Bill
d4457e9fa4
Minor changes
2016-12-16 20:18:23 +00:00
Ginger Bill
9634b28b07
Add atomic.odin, sync.odin, sys/windows.odin
2016-12-16 17:21:39 +00:00