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
ce08e832f7
Allow ..= alongside .. as a "full range" operator; Update core:odin/parser etc
2021-05-16 12:34:35 +01:00
gingerBill
7b7081d607
Remove old dead code
2021-05-15 18:59:54 +01:00
gingerBill
d4ee1a9e19
Correct default procedure parameter logic
2021-05-13 10:07:28 +01:00
gingerBill
2e5f57d8a1
Fix #741
2021-05-13 00:44:33 +01:00
gingerBill
da9cabc334
Fix #682
2021-05-12 23:02:57 +01:00
gingerBill
d962cfdc6b
Fix #713
2021-05-12 22:38:37 +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
1a3784c4df
Allow unions which are comparable to also be valid map keys (i.e. hashable)
2021-05-03 13:38:15 +01:00
gingerBill
6383714bff
Remove old procedure ABI code
2021-04-25 19:56:46 +01:00
gingerBill
b68b090f13
Add intrinsics: overflow_add, overflow_sub, overflow_mul; Change byte swap behaviour in -llvm-api to be the same as the intrinsic
2021-04-22 11:33:46 +01:00
gingerBill
ba9f0dd553
Hack ABI for windows passing pointers to structures
2021-04-19 23:03:22 +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
3baddd4116
Improve init_string determination for constants
2021-04-18 20:13:20 +01:00
gingerBill
2f1c896290
Add -doc-format command for the new .odin-doc file format (to be used to generate documentation tools)
2021-04-18 18:33:15 +01:00
gingerBill
818942b72e
Minor code style change
2021-03-27 17:26:38 +00:00
gingerBill
9bac9af022
Clean up code for record type checking
2021-03-27 17:25:56 +00:00
gingerBill
342761e83a
Refactor record polymorphic params code for unification
2021-03-27 17:21:12 +00:00
gingerBill
87bc9275fe
Correct poly type determination of a where clause for an enumerated array
2021-03-27 16:49:56 +00:00
gingerBill
5ade037b7d
Refactor polymorphic parameter for records; Improve error message for parametric polymorphic enumerated array index types
2021-03-27 16:42:42 +00:00
gingerBill
1e587d6635
Fix #883 - polymorphic specialization with target types of enumerated arrays
2021-03-27 15:22:05 +00:00
gingerBill
08f7d3edbe
Allow $ in polymorphic record parameter fields (but disallow mixing)
2021-03-23 22:59:10 +00:00
gingerBill
d88d6a1fdd
bit_set support in debug symbols by treating them like a bit field of 1 bit booleans
2021-03-23 22:09:16 +00:00
atil
5f5dfdc00e
return by pointer on linux
2021-03-19 07:28:27 +03:00
gingerBill
4e2a2ac80a
Fix formatting of code
2021-03-10 10:53:30 +00:00
Matias Fernandez
ba62bcf116
Add LLVM boolean compatibility to result types
2021-03-09 23:17:34 -04:00
gingerBill
54194af71c
Fix patch (yeah... I know)
2021-02-26 15:29:10 +00:00
gingerBill
575c7ff031
Patch issue with minimum dependency system and how it interacts with para poly procedures
2021-02-26 15:09:32 +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
efdee0dafb
Remove bit_field type from Odin (keyword and dead runtime code still exists)
2021-02-19 11:31:14 +00:00
gingerBill
f06f33872c
Make 16 simple hasher cases for small types
2020-11-29 18:17:21 +00:00
gingerBill
5ab7ec5b16
Support any comparable type for map keys
2020-11-29 16:37:19 +00:00
gingerBill
b922398a96
Sanity check for map key
2020-11-29 16:13:16 +00:00
gingerBill
57f5976ac1
Support map keys for simple compare types
2020-11-29 16:12:21 +00:00
gingerBill
1dfe0cdd1d
Simplify hashing approach map
2020-11-29 15:50:29 +00:00
gingerBill
97c66c9c73
Add intrinsics.type_hasher_proc; Make map work with generic hasher procedure
2020-11-29 15:27:53 +00:00
gingerBill
9959a069fc
Simplify internals of map[K]V
2020-11-29 12:48:33 +00:00
gingerBill
91758656f6
Change internal layout of map[K]V
2020-11-23 18:25:01 +00:00
gingerBill
4762d2f2d1
map type internal reorganization
2020-11-23 16:56:31 +00:00
gingerBill
a2461bdf6b
Modify llvm_abi.cpp to work correctly for win64 abi of i128 types. (it's a pain)
2020-11-22 21:38:45 +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
17ec3e72a6
Add SCOPED_TEMPORARY_BLOCK for temporary allocations within a block
2020-11-15 18:45:40 +00:00
gingerBill
30d922b059
Make set_procedure_abi_types use the permanent_allocator
2020-11-15 18:11:49 +00:00
gingerBill
31f4590f4b
Fix default parameters on record types
2020-11-09 13:04:36 +00:00
gingerBill
7909a9f5a5
Remove debug code causing bug
2020-11-09 10:36:09 +00:00
gingerBill
c26cb470a2
Fix LLVM-API type cycle for procedures of named procedures
2020-11-09 10:27:27 +00:00
gingerBill
4629754f7c
Inline asm expression (-llvm-api)
...
See https://llvm.org/docs/LangRef.html#inline-assembler-expressions
Example:
```
x := asm(i32) -> i32 {
"bswap $0",
"=r,r",
}(123);
```
Allowed directives `#side_effect`, `#align_stack`, `#att`, `#intel` e.g. `asm() #side_effect #intel {...}`
2020-10-24 16:32:37 +01:00
gingerBill
feeb342c00
Improve multiple return value copy-elision
2020-10-20 17:08:55 +01:00