gingerBill
d7e85725e1
General improves to formatting for the visitor
2021-05-21 11:16:07 +01:00
gingerBill
247f4f3293
Fix ..= logic in the backend
2021-05-21 10:51:19 +01:00
gingerBill
8758afdf4e
General fixes for odinfmt
2021-05-21 10:21:23 +01:00
gingerBill
fe74b479c6
Begin changes to sync2
2021-05-20 21:02:05 +01:00
gingerBill
92abddddc5
Be a little more correct with the temporary Ast node
2021-05-19 15:02:36 +01:00
gingerBill
4d580ed693
Keep -vet happy
2021-05-19 14:26:20 +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
5108ebf015
Replace error calls with Token to use TokenPos
2021-05-19 13:02:44 +01:00
gingerBill
86dbcb1b20
Add -verbose-errors which shows the error in the line of code
2021-05-19 12:57:30 +01:00
gingerBill
3ac934dd15
Add suggestion for unused expression on x == y
...
Expression is not used: 'x == 123'
Suggestion: Did you mean to do an assignment?
'x = 123;'
2021-05-19 11:58:02 +01:00
gingerBill
26ce40c188
Remove @(static) for global variables
2021-05-19 11:51:48 +01:00
gingerBill
b34e4a9fd1
More minor linkage changes
2021-05-19 11:46:27 +01:00
gingerBill
28561ef5f5
Minor change to internal linkage stuff
2021-05-19 11:26:05 +01:00
gingerBill
10b798456c
Add soa_zip and soa_unzip to demo.odin
2021-05-19 10:55:56 +01:00
gingerBill
a580cdbe7b
Delete core:sync/sync2/channel* stuff (for the time being)
2021-05-19 10:50:27 +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
8d044fd442
Minor ABI change and cleanup
2021-05-17 17:08:25 +01:00
gingerBill
6ef96d3300
Improve untyped to typed logic for aiding the backend
2021-05-16 14:44:02 +01:00
gingerBill
2e633f57a0
Add concrete type information for untyped values as procedure arguments
2021-05-16 13:00:16 +01:00
gingerBill
50369cf19c
Update LICENSE year
2021-05-16 12:48:36 +01:00
gingerBill
385385364b
Fix #988
2021-05-16 12:46:25 +01:00
gingerBill
9ccdc40f65
Make .Optional_Semicolons a flag for the parser
2021-05-16 12:43:35 +01:00
gingerBill
df3512b112
Make core:odin use a string for the source rather than []byte
2021-05-16 12:38:27 +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
24c89b3eee
Minor change
2021-05-16 00:29:22 +01:00
gingerBill
85e5be03d1
Redesign os2.Error to work with the new extended union behaviour
2021-05-16 00:25:47 +01:00
gingerBill
b1cfeb6c95
Add missing instruction to pass
2021-05-15 22:14:20 +01:00
gingerBill
fffb83282b
Add missing instructions to pass
2021-05-15 21:24:17 +01:00
gingerBill
1cf6b6679d
Add custom basic dead instruction elimination pass
2021-05-15 21:10:06 +01:00
gingerBill
7886798156
Add space
2021-05-15 19:49:48 +01:00
gingerBill
0ad599675e
Improve semicolon insertion rule for dummy tokens ++ and --
2021-05-15 19:47:00 +01:00
gingerBill
5d03bc61b8
Tokenize ++ and -- as tokens but disallow them in the parser, and give better error messages for they are used as operators/statements
2021-05-15 19:34:46 +01:00
gingerBill
5e31c04a01
Disallow duplicate unary operators for +, -, and ~
2021-05-15 19:13:34 +01:00
gingerBill
7b7081d607
Remove old dead code
2021-05-15 18:59:54 +01:00
gingerBill
5ae564cc8c
Add name to aggregate result pointer to procedures
2021-05-15 18:53:52 +01:00
gingerBill
0507b9ebb7
Fix #987
2021-05-15 18:40:06 +01:00
gingerBill
f7b1290fe9
Change for i in x..y {} behaviour
...
Adds an extra check before incrementation to prevent the possibility of overflowing of `y` is at the limit maximum size of the integer
e.g. `for i in u8(0)..255 {}` (assuming `255` is not known at compile time)
2021-05-15 18:02:06 +01:00
gingerBill
b01c2e1017
Disallow slicing of constant values
2021-05-15 16:40:40 +01:00
gingerBill
63b54ce7c6
Add minor ignoring hint on type assertions to get better code generation with no optimizations enabled
2021-05-13 12:48:12 +01:00
gingerBill
b8a35c658c
Remove incl/excl usage from demo
2021-05-13 12:06:35 +01:00
gingerBill
465b6139d5
Temporarily fix syscall in Linux and Freebsd (eventually to be replaced with a proper implementation)
2021-05-13 12:05:23 +01:00
gingerBill
b37d344eb2
Add intrinsics.type_is_variant_of
2021-05-13 12:04:51 +01:00
gingerBill
d4ee1a9e19
Correct default procedure parameter logic
2021-05-13 10:07:28 +01:00
gingerBill
be12f12c3c
Fix #814
2021-05-13 00:57:10 +01:00
gingerBill
2e5f57d8a1
Fix #741
2021-05-13 00:44:33 +01:00
gingerBill
c6c5af527b
Fix #746
2021-05-12 23:43:16 +01:00
gingerBill
5420cc083d
Implement #807
2021-05-12 23:26:21 +01:00
gingerBill
c81f7b31c6
Add explicit numbers to enum AddressingMode
2021-05-12 23:22:43 +01:00
gingerBill
fdd0c726bc
Improve error message to "fix" #640
2021-05-12 23:12:20 +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
dfb8143149
Fix #651
2021-05-12 22:23:43 +01:00
gingerBill
d2fcbf0e1d
Fix #948
2021-05-12 15:00:19 +01:00
gingerBill
e08f39ec28
Remove unneeded assert
2021-05-11 16:20:50 +01:00
gingerBill
d353f97f91
Add byval with align, sret attributes for SysV
2021-05-11 13:30:27 +01:00
gingerBill
8144e82c6c
Fix docs for -lld
2021-05-11 13:13:34 +01:00
gingerBill
d0f7cf74e9
Add llvm-config version 11 check for Darwin in Makefile
2021-05-11 12:31:56 +01:00
gingerBill
e1c2528d87
Remove warning on \*nix
2021-05-11 12:29:27 +01:00
gingerBill
eac61fb536
Remove LLVMAddLowerConstantIntrinsicsPass
2021-05-11 12:17:48 +01:00
gingerBill
20f7e61363
Revert LLVM-C.lib
2021-05-11 12:11:59 +01:00
gingerBill
8bb6651dda
Remove test call for LLVM
2021-05-11 12:08:09 +01:00
gingerBill
8ff80dec58
Minor change (in preparation for something else) to opt passes
2021-05-11 12:00:55 +01:00
gingerBill
f31b09212a
Improve SysV ABI
2021-05-11 12:00:27 +01:00
gingerBill
073bd3f6c9
Update LLVM-C.lib (since it was missing many required definitions missing from the official one that LLVM supplied)
2021-05-11 10:55:55 +01:00
gingerBill
9a4d942b0b
Fix debug information for array types by setting the DISubrange
2021-05-10 21:29:25 +01:00
gingerBill
ff6fdc7812
Correct SysV ABI for -> (f32, bool)
2021-05-10 21:16:26 +01:00
gingerBill
c85c5ec38c
Merge branch 'master' of https://github.com/odin-lang/Odin
2021-05-07 13:18:07 +01:00
gingerBill
d70b5475eb
Minor code clean up
2021-05-07 13:18:01 +01:00
gingerBill
47f97b8f89
Remove unused hint
2021-05-06 14:09:50 +01:00
gingerBill
902be0d09c
Improve type inference system to allow &{} alongside &T{} in some cases
2021-05-06 14:06:22 +01:00
gingerBill
502ad0c10b
sync2.Auto_Reset_Event; Make atomic operations names clearer
2021-05-06 14:00:01 +01:00
gingerBill
27f5aadd5a
Merge branch 'master' of https://github.com/odin-lang/Odin
2021-05-06 13:59:14 +01:00
gingerBill
da7a9a3584
Improve type inference rules for implicit selector expressions
...
New improvements:
`(.A == x)`
`a_union_containing_many_enums = .A;`
2021-05-06 13:59:05 +01:00
gingerBill
b6a1ec0229
Remove debug code
2021-05-05 23:34:53 +01:00
gingerBill
60685369b9
Fix typo
2021-05-05 23:34:39 +01:00
gingerBill
0f2a9e6143
Fix LLVM store point for nested types containing procedures (e.g. ^^proc())
2021-05-05 23:00:12 +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
abdf54800e
Improve ternary expression logic within parametric polymorphic parameter assignments
2021-05-05 15:14:39 +01:00
gingerBill
579b317be8
Mark external thread local globals
2021-05-05 11:47:47 +01:00
gingerBill
08360e2337
Minor cleanup
2021-05-05 10:56:19 +01:00
gingerBill
f11f84964d
Merge branch 'master' of https://github.com/odin-lang/Odin
2021-05-04 23:41:45 +01:00
gingerBill
bb9c1d04db
Fix missing newline check
2021-05-04 23:41:35 +01:00
gingerBill
6fa5eb9e1f
Update README.md
2021-05-04 15:27:41 +01:00
gingerBill
94570a24c1
Move anonymous proc generation into lbGenerator
2021-05-04 00:56:29 +01:00
gingerBill
17001bf38c
Nearly approach full functionality for -use-separate-modules coupled with multithreading
2021-05-04 00:45:09 +01:00
gingerBill
b83e67f45f
Get LLVM backend multithread for object generation with -use-separate-modules
2021-05-04 00:06:20 +01:00
gingerBill
a5eea97edb
Prepare to multithread object generation
2021-05-03 20:45:27 +01:00
gingerBill
866d5302fe
Add [EXPERIMENTAL] warning to -user-separate-modules help message
2021-05-03 20:05:45 +01:00
gingerBill
5d70289b69
Remove test code
2021-05-03 20:03:37 +01:00
gingerBill
d76ba7895b
Minor fixes to -use-separate-modules
2021-05-03 19:59:17 +01:00
gingerBill
dfe1dedeb1
Experimental support for -use-separate-modules
2021-05-03 19:39:36 +01:00
gingerBill
d027a5f1a4
Add min_f16 and max_f16 dependencies
2021-05-03 18:48:48 +01:00
gingerBill
746e880eb5
Begin work on making LLVM backend work with multiple modules for possible faster compilation
2021-05-03 17:43:14 +01:00
gingerBill
e4286d0ff9
Force zero_init in lb_add_local in certain cases
2021-05-03 15:57:35 +01:00
gingerBill
3a556eb304
Add -test-name:<string> flag to allow specific tests to be ran
2021-05-03 15:44:57 +01:00
gingerBill
b44a56118e
Begin cleanup for allowing for multiple LLVM modules
2021-05-03 15:26:40 +01:00
gingerBill
0d044eabac
Remove non-InContext type creations
2021-05-03 15:00:50 +01:00
gingerBill
3a5245dcce
Make sure builder uses the InContext version
2021-05-03 14:36:27 +01:00
gingerBill
357f66fcee
Fix typo
2021-05-03 13:45:17 +01:00