Commit Graph

47 Commits

Author SHA1 Message Date
gingerBill
8c4197af38 Add #load_or(path_string, default_byte_slice) 2021-09-23 23:32:46 +01:00
gingerBill
ea555c0ccd Simplify directive parsing for expressions 2021-09-23 23:22:16 +01:00
gingerBill
6855538729 Merge branch 'master' into llvm-12.0.1-windows 2021-09-18 12:55:13 +01:00
gingerBill
be68bf9f26 Only store field_index remove field_src_index (for the time being) 2021-09-13 11:29:46 +01:00
gingerBill
2d7aea79b9 Make TypeStructl.tags a pointer from a slice (reduce memory usage) 2021-09-13 01:23:37 +01:00
gingerBill
71bffd46dc Reduce size of Type 2021-09-13 01:14:17 +01:00
gingerBill
fb8fa5217d Begin minimize Type size by replacing Array with Slice etc 2021-09-13 00:58:39 +01:00
gingerBill
7260d3cecb Add intrinsics.prefetch_* procedures 2021-09-11 17:30:44 +01:00
gingerBill
31f779f1a4 intrinsics.alloca now returns [^]u8 2021-09-06 15:45:05 +01:00
gingerBill
a3a891a7f4 Add intrinsics.is_package_imported(<string>) 2021-09-06 15:41:09 +01:00
gingerBill
54b37573c9 Add intrinsics.syscall (for Linux and Darwin only) 2021-08-29 13:17:06 +01:00
gingerBill
7845769d4b Remove unused code 2021-08-19 15:03:10 +01:00
gingerBill
21cbac755e Make or_else and or_return operators (binary and suffix respectively) 2021-08-15 17:14:35 +01:00
gingerBill
a3a20f09e2 or_return built-in procedure 2021-08-15 16:55:30 +01:00
gingerBill
d62f189d72 Remove some dead code 2021-08-15 15:09:47 +01:00
gingerBill
193fd0eecb Correct and improve type inference for swizzling expressions 2021-08-09 20:13:58 +01:00
gingerBill
01f431b01f Unify semantics of the built-in swizzle procedure with the selector expression semantics e.g. .xyz 2021-08-09 19:37:58 +01:00
gingerBill
aebfa4b28e Allow len and cap to return a uint if a type hint is uint to aid people wanting to use unsigned integers 2021-08-09 17:39:38 +01:00
gingerBill
a5d6fda433 Define which mutexes are blocking and recursive explicitly 2021-07-27 23:14:01 +01:00
gingerBill
116e98b378 Improve default scope size 2021-07-27 10:59:39 +01:00
gingerBill
76707e1d2f Add sanity casts for 32/64 bit correctness 2021-07-12 11:03:12 +01:00
gingerBill
63b572a0ab Clean up big int to LLVM integer code 2021-07-11 16:18:30 +01:00
gingerBill
460e14e586 Change the compiler's big integer library to use libTomMath
This now replaces Bill's crappy big int implementation
2021-07-11 16:08:16 +01:00
gingerBill
d9e6ade030 Add experimental support for a threaded semantic checker to -threaded-checker 2021-07-10 23:51:37 +01:00
gingerBill
4a932616fc Improve CheckerContext usage 2021-07-10 13:02:13 +01:00
gingerBill
35230b1a11 Add "Suggestion: Did you mean?" for selector expression typos 2021-07-08 23:15:07 +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
e8f2c5a48a [Experimental] Add 'try' and `or_else' built-in procedures 2021-07-04 01:38:43 +01:00
gingerBill
5e42675b42 Allow alternative syntax for offset_of: offset_of(Type, field), offset_of(value.field) 2021-06-26 23:19:46 +01:00
gingerBill
abe728dbbb Add intrinsics.type_is_endian_platform 2021-06-17 20:39:00 +01:00
gingerBill
ea1dc5373d Remove unneeded dependencies 2021-05-31 20:39:48 +01:00
gingerBill
b8d6dd4eb7 Fix #1004 2021-05-31 20:38:10 +01:00
gingerBill
0f91ffe28f Add intrinsics.{ptr_offset, ptr_sub} 2021-05-30 13:21:56 +01:00
Jeroen van Rijn
6944e2fc04 Add abs_f16 dependency when used. 2021-05-29 15:33:11 +02:00
gingerBill
0c46d06e63 Add intrinsics.mem_zero 2021-05-24 22:39:27 +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
e82e4398b6 Add intrinsics.mem_copy and intrinsics.mem_copy_non_overlapping 2021-05-19 10:50:02 +01:00
gingerBill
e0225c3579 Add intrinsics.sqrt for floating-point values 2021-05-19 10:32:41 +01:00
gingerBill
b37d344eb2 Add intrinsics.type_is_variant_of 2021-05-13 12:04:51 +01:00
gingerBill
d027a5f1a4 Add min_f16 and max_f16 dependencies 2021-05-03 18:48:48 +01:00
gingerBill
24f2d97c0e Make atomic compare related intrinsics optional ok 2021-04-27 16:55:39 +01:00
gingerBill
2691c394e0 Add intrinsics.count_zeros 2021-04-25 20:50:25 +01:00
gingerBill
7086b49ae6 Rename intrinsics to count_trailing_zeros and count_leading_zeros 2021-04-25 20:26:11 +01:00
gingerBill
72aa0e6e38 Replace many foreign llvm calls with intrinsics 2021-04-25 20:22:26 +01:00
gingerBill
cb2e6ea31d Remove use_llvm_api related checks and other related things 2021-04-25 20:03:05 +01:00
gingerBill
c9b82a21e9 Move check_builtin_procedure to check_builtin.cpp 2021-04-23 10:01:52 +01:00