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