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
gingerBill
4936713a5e
Merge pull request #740 from bttelle/issue-697
...
Fix issue #697
2020-09-26 21:09:40 +01:00
gingerBill
609af3a651
Fix and clean up default procedure parameter code for non-constant types
2020-09-22 12:06:05 +01:00
Joseph Battelle
7490ac2cfd
Fix issue #697
...
Add `is_type_typeid` check to `does_field_type_allow_using`
2020-09-16 21:18:25 -07:00
Joseph Battelle
2f32b8fb3d
Fix issue #515
...
Modify `check_type_specialization_to` to require exact values
to be equal when called with constant basic types. This also
now allows procedure group members to differ only by constant
value specializations. See the further example in the issue.
2020-09-13 22:58:05 -07:00
gingerBill
c1149dbdee
Update math and math/linalg; add "pure_none" calling convention
2020-09-10 15:00:19 +01:00
gingerBill
7f48cf8405
[REFLECTION BREAKING] Modify the internals of the map type to increase performance
2020-09-07 11:41:42 +01:00
gingerBill
d31c63c0ae
Fix #714
2020-08-27 00:11:02 +01:00
gingerBill
df3690c32a
Revert accidental removal of #const for procedure variable parameters #718
2020-08-26 22:46:54 +01:00
gingerBill
c18fc2da9f
Remove some dead code
2020-07-14 16:36:33 +01:00
gingerBill
2b27300387
Fix LLVM code gen bug
2020-06-22 16:57:21 +01:00
gingerBill
aa029fe8d9
Add "pure" procedure types
2020-05-23 13:38:06 +01:00
gingerBill
ff92eb9112
Relative pointers
2020-05-15 17:37:00 +01:00
gingerBill
e0a242e9a1
Enforce explicit context definition for procedure calls
2020-05-14 13:44:28 +01:00
gingerBill
f661d34049
Implement Explicit context creation #639
2020-05-14 00:13:26 +01:00
gingerBill
e27f5796d6
Add experimental atom op tables for llvm-backend
2020-05-02 18:45:57 +01:00
gingerBill
97f7a558fa
#optional_ok tag for procedures
2020-04-19 21:45:04 +01:00
gingerBill
f229084baa
Basic polymorphic named procedure parameters for procedures and records
2020-04-13 15:48:56 +01:00
gingerBill
da283d5a7f
Add byval
2020-03-12 22:33:49 +00:00
gingerBill
e92fdb4a99
x if cond else y and x when cond else y expressions
2020-03-05 20:34:30 +00:00
gingerBill
3d74c2f6c0
Add proc(#const x: Type) to enforce a constant parameter (but not polymorphic) to a procedure
2020-02-26 22:53:40 +00:00
gingerBill
5073fcd39e
Improve error message on using with procedure parameters #568
2020-02-23 10:37:27 +00:00
gingerBill
0f399a7294
Add union #maybe
2020-02-01 11:10:28 +00:00
gingerBill
5ae924f988
Make "none" calling convention ignore return_by_pointer flag
2020-01-04 12:42:16 +00:00
gingerBill
9ba2926e7e
Fix enumerated array contiguous error
2019-12-28 16:31:15 +00:00
gingerBill
5ec8dd166a
Add #partial tag for enumerated arrays to prevent common errors using non-contiguous enumerations
2019-12-27 16:55:32 +00:00
gingerBill
880c7f01a8
Fix array lengths with enum value counts.
2019-12-27 13:55:18 +00:00
gingerBill
10f0961184
Enumerated arrays [Enum_Type]Elem_Type
2019-12-27 12:51:02 +00:00
gingerBill
995ba0df9a
Fix using on array in struct
2019-12-21 14:42:08 +00:00
gingerBill
58d4d424c6
Replace #vector[N]T with #simd[N]T to reduce confusion #498
2019-12-15 11:30:09 +00:00
gingerBill
e229885b2b
Remove addressing mode Addressing_Immutable
2019-12-01 19:11:00 +00:00
gingerBill
9db81498d8
Make the string type elements "immutable", akin to char const * in C
...
Allows for extra security and optimization benefits
2019-12-01 14:10:59 +00:00
gingerBill
9b58781122
#soa[dynamic]Type (Experimental)
2019-11-21 19:36:07 +00:00
gingerBill
b74f8f2047
Fix SOA entity usage error on -vet
2019-11-21 18:21:27 +00:00
gingerBill
2c5a84bb78
#soa[]Type (Experimental)
2019-11-21 00:07:21 +00:00
gingerBill
44e0e96612
Prepare SOA Struct code for slices and dynamic arrays *to be implemented*
2019-11-19 23:54:36 +00:00
gingerBill
d22e5b697d
Add new #soa and #vector syntax
2019-11-17 10:30:37 -08:00
gingerBill
8a46b493fd
Fix Slice passed incorrectly in LLVM IR to procedure called via procedure pointer #465
2019-11-05 19:40:08 +00:00
gingerBill
a634444f99
Fix "Polymorphic parameter declared in return type doesn't compile #464 " by giving a conversion error (code wasn't handling polymorphic result types as intended)
2019-11-05 19:37:19 +00:00
gingerBill
a20c31d6b5
Fix polymorphic record parameter determination bug caused by polymorphic constants not being handled correctly #447
2019-10-31 22:58:38 +00:00
gingerBill
560bdc339b
Fix stack overflow bug caused by polymorphic record with polymorphic constant parameters. #447
...
DOES NOT FIX THE UNDERLYING BUG
2019-10-31 22:39:12 +00:00
gingerBill
01dfb1dac8
Fix double calling of lhs of logical binary expressions
2019-10-31 20:17:50 +00:00
gingerBill
ee8d3e03f8
Delay determination of procedure abi types until as late as possible to prevent type undetermination in self-referential data types #454
2019-10-31 18:25:39 +00:00
gingerBill
416ff149bd
Fix procedure group "best fit" algorithm for polymorphic procedures
2019-10-27 19:42:21 +00:00
gingerBill
b53fe14c22
Change error to syntax_error in parser
2019-10-13 16:06:41 +01:00
gingerBill
45683703ea
Fix System V for certain structs
2019-10-13 14:29:56 +01:00
gingerBill
2a6d9e8927
#panic; Minor change to demo.odin; Fix #assert bug at file scope
2019-10-13 12:38:23 +01:00
gingerBill
fa81061db0
Minor fix to Odin types with System V ABI
2019-10-10 21:50:20 +01:00
gingerBill
39b3c8c80f
Update System V ABI to for more Odin types
2019-10-10 21:39:46 +01:00