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
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