Ginger Bill
d3f63e5903
Change label syntax for for and match from #label name to name:
2017-05-28 15:01:39 +01:00
Ginger Bill
80c034ec7c
Change naming convention from Ada_Like to RustLike
...
Naming Conventions:
In general, PascalCase for types and snake_case for values
Import Name: snake_case (but prefer single word)
Types: PascalCase
Union Variants: PascalCase
Enum Values: PascalCase
Procedures: snake_case
Local Variables: snake_case
Constant Variables: SCREAMING_SNAKE_CASE
2017-05-28 14:47:11 +01:00
Ginger Bill
b41f09b730
Experimental try for ABI for return values on windows
...
It's all done by reverse engineering it. I may be wrong...
2017-05-28 14:11:00 +01:00
Ginger Bill
06185e1769
Try a different ABI type for return values on Windows
2017-05-28 01:07:52 +01:00
Ginger Bill
f8fa7fe380
Fix bug with too many field values in a structure literal.
2017-05-27 20:57:48 +01:00
Ginger Bill
45dbe8d354
default: to case:; no_alias to #no_alias
2017-05-27 11:47:21 +01:00
Ginger Bill
ddb99dd638
Fix interval loop constant bug; Fix ir edge checking; Fix vector arithmetic with scalars
2017-05-22 23:29:09 +01:00
Ginger Bill
41aa4e606b
Optional main for DLL; access struct elements by "index"
2017-05-17 21:23:52 +01:00
Ginger Bill
e025a828ca
Fix issue #66
2017-05-14 10:32:48 +01:00
Ginger Bill
807e17207a
Merge branch 'master' of https://github.com/gingerBill/Odin
2017-05-13 16:09:04 +01:00
Ginger Bill
3e18f5f057
Fix Ternary Operator IR bug
2017-05-13 16:08:50 +01:00
Ginger Bill
ded99a2cab
Fix issue with os.file_size on *nix
2017-05-12 10:29:55 +01:00
Ginger Bill
45eecc0905
Reimplement #ordered again
2017-05-12 10:27:14 +01:00
Ginger Bill
87f1a62ca4
Fix alignment for normal structures to match LLVM
2017-05-10 22:51:35 +01:00
Ginger Bill
c6d531df95
Add %% operator (divisor modulo)
2017-05-09 16:21:31 +01:00
Ginger Bill
8677c81da7
Fix ir bug; allow formatting options for arrays & et al.
2017-05-09 12:05:17 +01:00
Ginger Bill
5595daf5a3
Revert demo.odin
2017-05-09 10:01:50 +01:00
Ginger Bill
64b5afd820
Fix issue #63 for block comments not terminating at an EOF
2017-05-09 10:01:10 +01:00
Ginger Bill
7692061eef
Add XOR for booleans
2017-05-07 20:52:20 +01:00
Ginger Bill
f7f2272c50
Fix fmt_float precision
2017-05-07 11:42:27 +01:00
Ginger Bill
03fbdc3f75
Fix IR printing bug with global unicode identifiers
2017-05-06 23:02:47 +01:00
Ginger Bill
ea6a4859ed
Merge branch 'master' of https://github.com/gingerBill/Odin
2017-05-06 20:56:18 +01:00
Ginger Bill
615fa82d1f
Fix using issue #62
2017-05-06 20:55:09 +01:00
Ginger Bill
51ea59d76a
Fix calculation of vector type sizes
2017-05-04 23:18:54 +01:00
Ginger Bill
789b297f32
Add hidden __tag for union variables.
2017-05-04 20:34:50 +01:00
Ginger Bill
3b25f924cb
Remove debug bug
2017-05-03 11:01:17 +01:00
Ginger Bill
cc6282a6e3
Fix alignment and size bug of enums; Remove #ordered and make the default #ordered.
2017-05-02 21:16:09 +01:00
Ginger Bill
206a3e093c
Remove check on array/slice/dynamic element size
2017-05-02 20:17:53 +01:00
Ginger Bill
19bde275a3
Add files in core
2017-05-01 15:30:16 +01:00
Ginger Bill
634ee450f4
v0.2.1
2017-05-01 15:28:26 +01:00
Ginger Bill
750d7256fc
Unary expression for vector (fix)
2017-05-01 15:27:21 +01:00
Ginger Bill
fae5df2ed8
Fix IR vector arith conv bug
2017-05-01 15:05:56 +01:00
Ginger Bill
01d9161772
Fix value conversion with enum value on for in.
2017-05-01 10:10:07 +01:00
Ginger Bill
aceabb2f2f
for in iteration of Enum Type (request from issue #58 )
2017-05-01 10:02:25 +01:00
Ginger Bill
04f5fff7fa
Improve vector math; Make bprint* return string
2017-05-01 00:38:26 +01:00
Ginger Bill
dc5587eae2
Fix statement parsing of unary: & and ^
2017-04-30 17:20:37 +01:00
Ginger Bill
7057034b75
v0.2.0
2017-04-30 16:28:13 +01:00
Ginger Bill
1430ca30a3
Fix subtype polymorphism implicit conversion
2017-04-30 16:22:24 +01:00
Ginger Bill
e63393e394
Add type assertion for any
2017-04-30 15:29:46 +01:00
Ginger Bill
784f3ecf7e
Syntax change: cast(T)x => T(x); union_cast(T)x => x.(T); transmute(T)x => transmute(T, x); y:=^x => y:=&x;
...
Sorry for all the code breaking in this commit :(
2017-04-30 15:09:36 +01:00
Ginger Bill
54ea70df98
Fix issues #50 and #55
2017-04-29 20:06:29 +01:00
Ginger Bill
c7575164cc
Revert to previous demo
2017-04-28 11:03:19 +01:00
Ginger Bill
99125dc743
Fix issue #51 ; begin work on atomic types
2017-04-28 11:01:46 +01:00
Ginger Bill
b78e970698
Fix issue #48 dependency issue
2017-04-26 23:51:13 +01:00
Ginger Bill
5b8be25938
fmt.String_Buffer, Fix issue #44 , Tweak overloading rules
2017-04-26 19:43:17 +01:00
Ginger Bill
29efdc5fc1
Fix initialization of global any types
2017-04-25 15:02:35 +01:00
Ginger Bill
a80872b60d
Fix checking if a procedure terminates for for loops.
2017-04-25 09:46:30 +01:00
Ginger Bill
822bb51b55
Swap memory layout of any
2017-04-23 18:03:29 +01:00
Ginger Bill
c2fa79012e
Fix find_using_index_expr
2017-04-23 11:04:22 +01:00
Ginger Bill
3fd37c6dc5
Internal change: IntervalExpr is now a BinaryExpr
2017-04-22 10:10:49 +01:00
Ginger Bill
0ea815db49
Fix constant bounds checking for slicing
2017-04-22 09:40:32 +01:00
Ginger Bill
91ed51ff5c
Continue work on custom SSA; Fix double declaration in when statements
2017-04-21 17:56:29 +01:00
Ginger Bill
4d0afc55c3
Making slicing a little more robust
2017-04-21 10:03:27 +01:00
Ginger Bill
9a1566d665
Interval expressions for match statements
2017-04-21 00:13:20 +01:00
Ginger Bill
a713e33007
Change interval syntax: .. open range, ..< half-closed range
2017-04-20 23:22:45 +01:00
Ginger Bill
c5411a25a9
Change Union representation for LLVM IR; fix dynamic array size
2017-04-19 18:58:23 +01:00
Ginger Bill
95692fda52
Fix bug with union literal checking crashing the compiler
2017-04-18 21:20:41 +01:00
Ginger Bill
813a028ed0
Fix procedure calls from non-regular addressing modes
2017-04-17 22:17:16 +01:00
Ginger Bill
0c22081e5f
Fix error printing for basic directives
2017-04-17 19:58:43 +01:00
Ginger Bill
6d9fadf351
Make the ABI changes only affect windows
...
TODO: decide upon rules for *nix systems
2017-04-17 12:01:04 +01:00
Ginger Bill
a213061f33
Change tag checking order
2017-04-16 23:08:48 +01:00
Ginger Bill
d1a0a46141
Fix issue #37 for procedure literal scopes
2017-04-16 22:48:29 +01:00
Ginger Bill
187b186112
Add #require_results for procedures
2017-04-16 22:30:48 +01:00
Ginger Bill
5041a35b95
Fix ir printing of constant slices
2017-04-16 22:07:26 +01:00
Ginger Bill
92d4fcedee
Update ir type aggregate rules for transmute
2017-04-16 16:44:45 +01:00
Ginger Bill
c69df7cd3a
Exit program if there were syntax errors
2017-04-16 16:38:05 +01:00
Ginger Bill
67d8f48553
Calling convention, change from bitcast to transmute
2017-04-16 16:28:39 +01:00
Ginger Bill
b4a339f2e3
Call convention, pass by pointer: pointers are 16 byte aligned
2017-04-16 10:54:05 +01:00
Ginger Bill
0d7bf58b60
Revert to the old demo
2017-04-16 10:40:24 +01:00
Ginger Bill
abb9930725
IR emit C ABI compatible types for calling conventions (Only for x86/amd64 like processors at the moment)
2017-04-16 10:38:42 +01:00
Ginger Bill
169310a9f6
Fix non-ascii function parameters in LLVM IR
2017-04-15 23:14:14 +01:00
Ginger Bill
23a0a6de4b
Add parse_int; Fix union bugs with size, alignment, and recursive definition checking
2017-04-14 21:47:59 +01:00
Ginger Bill
0d2dbee84e
Fix addressing mode rules for match in statements
2017-04-13 22:42:36 +01:00
Ginger Bill
d8d22e34dd
Fix fmt for type; remove dead stuff
2017-04-13 19:29:17 +01:00
Ginger Bill
627ee002e8
Fix: map key not getting transferred on rehash
2017-04-11 23:11:05 +01:00
Ginger Bill
8e73d1ce1f
Fix map bug which removed N values from the beginning
2017-04-11 22:43:33 +01:00
Ginger Bill
b53d16d1d5
Remove debug text
2017-04-11 21:24:10 +01:00
Ginger Bill
f5819eafa9
Fix map assignment bug due to growth
2017-04-11 21:13:21 +01:00
Ginger Bill
5916e71d4f
Fix slicing bug on dynamic arrays
2017-04-11 16:00:49 +01:00
Ginger Bill
913b9b6447
Remove odin.exe
2017-04-10 22:30:38 +01:00
Ginger Bill
8e55bb2a6c
Fix append crash when pointer is passed
2017-04-10 21:09:04 +01:00
Ginger Bill
3a3202fbc6
Change code to match original MSVC
2017-04-10 13:27:09 +01:00
Ginger Bill
aaf355e750
Basic Linux Build!
2017-04-09 22:33:32 +01:00
Ginger Bill
d7fdd3d7b8
Add raw.odin
...
Forgot to do this in the previous commit, whoops :P
2017-04-09 11:45:41 +01:00
Ginger Bill
83ebb24015
Move to Raw_* types to raw.odin; Add size and align members to Type_Info
2017-04-07 14:05:28 +01:00
Ginger Bill
70f9cacdce
Fix cast to any of untyped constants
2017-04-07 09:55:19 +01:00
Ginger Bill
c067a1f0ec
Fix ir bugs: global variable names, untyped to any assignment
2017-04-06 11:12:11 +01:00
Ginger Bill
3e80411d37
Fix issue #31 ; Removed down_cast
2017-04-04 21:54:55 +01:00
Ginger Bill
382a5ca6a2
Update and regression test old demos
2017-04-02 22:03:52 +01:00
Ginger Bill
96e8bb5b6f
Add website to README.md
2017-04-02 20:20:14 +01:00
Ginger Bill
22afac2b90
Update README.md with latest demo
2017-04-02 20:10:56 +01:00
Ginger Bill
01da0d1377
Fix make for dynamic arrays
2017-04-02 18:28:45 +01:00
Ginger Bill
8ce58573df
len, cap, make; remove .count, .capacity, new_slice
2017-04-02 18:16:45 +01:00
Ginger Bill
2c8b99337b
Fix conj
2017-04-01 22:55:33 +01:00
Ginger Bill
5008e2c88b
Add Quaternions: quaternion128, quaternion256
2017-04-01 22:41:23 +01:00
Ginger Bill
90fc9abeae
Fix constant conversion for complex numbers from integers
2017-04-01 12:12:08 +01:00
Ginger Bill
dc303cde21
Complex numbers: complex64 complex128
2017-04-01 12:07:41 +01:00
Ginger Bill
a75ccb6fbc
v0.1.3
2017-03-27 20:32:36 +01:00
Ginger Bill
188b290dd5
Update version number
2017-03-19 21:03:56 +00:00
Ginger Bill
c6ff961088
Add base 12 in strconv.odin
2017-03-19 21:03:29 +00:00