gingerBill
4c655865e5
Begin work on matrix type
2021-10-18 16:52:19 +01:00
gingerBill
2bdae52fed
Add @(init) attribute for procedures, allowing for procedures to be called at startup
...
These procedures will be called after global variables have been initialized as normal
2021-10-03 11:53:32 +01:00
gingerBill
b176af2742
Add semicolon stripping command: odin strip-semicolon, has the same parameters as odin check
2021-08-31 22:20:36 +01:00
gingerBill
ad3a3547d6
Unify thread pool logic across the rest of the compiler, using a global thread pool
2021-08-26 21:22:30 +01:00
gingerBill
aa8777ee47
Change the implementation of Arena to use virtual memory, and remove the old gbArena code
2021-08-26 15:38:34 +01:00
gingerBill
6a77fc4cdd
Add multi-pointer types [^]T
2021-08-21 23:10:21 +01:00
gingerBill
7845769d4b
Remove unused code
2021-08-19 15:03:10 +01:00
gingerBill
79e98b71d3
Remove dead code, and add an extra mutex
2021-08-18 20:31:34 +01:00
gingerBill
21cbac755e
Make or_else and or_return operators (binary and suffix respectively)
2021-08-15 17:14:35 +01:00
gingerBill
d62f189d72
Remove some dead code
2021-08-15 15:09:47 +01:00
gingerBill
84713b58e0
Improve error handling for field list prefixes
2021-08-15 13:29:44 +01:00
gingerBill
294c8426e6
Minor clean up of parse_field_prefixes
2021-08-15 13:18:06 +01:00
gingerBill
7bbc9a4634
Add #any_int directive to replace auto_cast uses on parameters.
2021-08-15 12:56:59 +01:00
gingerBill
d5e3f72a0b
Define where #bounds_check/#no_bounds_check can be applied
2021-08-15 11:09:41 +01:00
gingerBill
a5d6fda433
Define which mutexes are blocking and recursive explicitly
2021-07-27 23:14:01 +01:00
gingerBill
9cd5ea59dd
Big simplification and improvement of the entity collection system, reducing unneeded steps for packages
2021-07-27 20:45:50 +01:00
gingerBill
116e98b378
Improve default scope size
2021-07-27 10:59:39 +01:00
gingerBill
99080d41f3
INTERNAL USE ONLY: //+lazy build flag
2021-07-25 13:06:09 +01:00
gingerBill
3930a32b0c
enum Addressing_Mode : u8;
2021-07-12 16:45:54 +01:00
gingerBill
ed8a6f872d
Move things around for sanity checking for multithread preparation
2021-07-10 21:29:49 +01:00
gingerBill
a98eee145d
Remove try; Replace try x else y with or_else(x, y)
2021-07-05 16:23:13 +01:00
gingerBill
4b831dbddd
Try try and or_else built-in procedures with operators try and try else
2021-07-04 12:37:21 +01:00
gingerBill
574ceb37a9
Correct selector call expression chaining behaviour (a bit of a hack)
2021-06-16 17:04:05 +01:00
gingerBill
f19bb0f4d4
Make default calling convention code more correct to read
2021-06-08 14:33:49 +01:00
gingerBill
795a5910cf
Add support for Addressing_OptionalOkPtr
...
Allowing for `i, ok := &x.(T);` (type assertions) and `v, ok := &m[k];` (map indexing)
2021-06-06 12:18:45 +01:00
gingerBill
599d18f26f
Experimental support for inline swizzling for array types of len <= 4 e.g. v.xyz, v.argb, v.xxx
2021-06-05 17:22:39 +01:00
gingerBill
9c54ed5792
Add range-based error messages to -verbose-errors
...
Example:
Cannot convert '(1 + 2)' to 'untyped bool' from 'untyped integer'
x := (1 + 2) * true;
^~~~~~^
2021-05-19 14:15:57 +01:00
gingerBill
7b7081d607
Remove old dead code
2021-05-15 18:59:54 +01:00
gingerBill
63b54ce7c6
Add minor ignoring hint on type assertions to get better code generation with no optimizations enabled
2021-05-13 12:48:12 +01:00
gingerBill
c81f7b31c6
Add explicit numbers to enum AddressingMode
2021-05-12 23:22:43 +01:00
gingerBill
278de3a92f
Unify AstTernaryExpr with AstTernaryIfExpr
...
Allow for both syntaxes `x if cond else y` and `cond ? x : y`
Removes the confusing semantics behind `?:` which could be `if` or `when` depending on the context.
2021-05-05 15:22:54 +01:00
gingerBill
24fce21d90
Add "naked" calling convention (removes prologue and epilogue)
2021-04-28 10:49:30 +01:00
gingerBill
c29b643a58
Move out some intrinsics into separate procedures in llvm_backend.cpp; Rename InlineRangeStmt to UnrollRangeStmt (eventually merge the two AST nodes)
2021-04-24 15:00:01 +01:00
gingerBill
47c7dc6a9b
Add new intrinsics: debug_trap, trap, read_cycle_counter, expect
2021-04-22 10:35:17 +01:00
gingerBill
f1bdd2e60f
Improve #optional_ok logic for procedures; Add #optional_second for package runtime usage
2021-04-19 22:31:14 +01:00
gingerBill
fbd01660ee
Experiment with new grammatical parsing rule for expression level (-strict-style) idea
2021-03-30 11:48:32 +01:00
gingerBill
0e3ecc350a
Make the parser support as many identifiers on the LHS in for in loops to improve error messages
2021-03-24 12:11:00 +00:00
gingerBill
15dbc99cb9
Minimize TokenPos size by using i32 for line/column/offset and file_id instead of String
...
To make `i32` safe, the parser limits the file size of odin files to a maximum of 2GiB (which will be good enough for the vast vast majority of cases)
2021-03-04 16:45:30 +00:00
gingerBill
2d88c6c6a5
Begin work on aarch64 ABI for -llvm-api
2021-02-24 16:49:19 +00:00
gingerBill
8f9111e552
Build tag to make all declarations within a file private to the package //+private
2021-02-23 20:40:48 +00:00
gingerBill
41b854f192
Remove #opaque types
2021-02-23 15:45:06 +00:00
gingerBill
28f279329d
Remove bit_field keyword and parsing logic
2021-02-23 15:29:54 +00:00
gingerBill
28ed310f31
Remove "pure" and "pure_none" calling conventions
2021-02-23 13:10:23 +00:00
gingerBill
c653e400db
Add extra error checking in parser.cpp
2021-01-15 16:15:03 +00:00
gingerBill
6416a6f39c
Allow string literals for [N]byte
2020-11-20 16:01:59 +00:00
gingerBill
9408eb9580
Update odin doc to support multiple package outputs by passing multiple paths; Replace -all with -short
...
Example:
odin doc core/path core/path/filepath
2020-11-18 23:22:27 +00:00
gingerBill
2bd0fd932a
Begin rudimentary work on implementing odin test tooling with *_test.odin files
2020-11-17 18:50:30 +00:00
gingerBill
ca4b0527e8
Minimize memory usage for AST nodes by using Slice<T> rather than Array<T> when the parameter doesn't need to grow
2020-11-16 15:18:25 +00:00
gingerBill
adf6c85fd3
Minimize Ast flags usage
2020-11-16 01:42:30 +00:00
gingerBill
3c1c10a178
Begin clarifying allocation patterns by changing from heap_allocator to specific arenas
2020-11-15 18:08:52 +00:00