gingerBill
a2f2041aa6
Fix lb_build_assign_stmt_array for lbAddr_Swizzle
2021-06-05 17:33:42 +01:00
gingerBill
599d18f26f
Experimental support for inline swizzling for array types of len <= 4 e.g. v.xyz, v.argb, v.xxx
2021-06-05 17:22:39 +01:00
gingerBill
61084d832d
Add missing doc_format flags for entities and improve docs for the odin package
2021-06-05 15:55:19 +01:00
gingerBill
b957996577
Add extra documentation to doc_format.odin
2021-06-05 15:26:05 +01:00
gingerBill
f41150f8e9
Fix transposing
2021-06-04 15:10:53 +01:00
gingerBill
21adad4e09
Fix typo
2021-06-04 15:09:55 +01:00
gingerBill
47f9e8f850
Fix ast_end_token for [?]T types
2021-06-03 11:35:27 +01:00
gingerBill
ba3f2a6a0c
All spaces in import-like paths
2021-06-03 10:28:45 +01:00
gingerBill
b9888f8f68
Fix linalg.transpose
2021-06-03 10:05:05 +01:00
gingerBill
32cda5d56a
Or did it?!
2021-06-02 22:12:38 +01:00
gingerBill
a4d9847f45
FINALLY fix lazy_buffer_destroy
2021-06-02 22:12:20 +01:00
gingerBill
8aa6d70dec
Fix filepath.lazy_buffer
2021-06-02 12:21:20 +01:00
gingerBill
ea6b222430
Clean up filepath.lazy_buffer memory leak
2021-06-02 12:19:25 +01:00
gingerBill
91b4bf3daa
Minor clean up
2021-06-02 10:39:47 +01:00
gingerBill
8c943eb054
Make inline array arithmetic use load+extractvalue rather than getelementptr+load to give the optimizer a better hint for vectorization
2021-06-01 10:51:54 +01:00
gingerBill
446703ba75
Improves to array arithmetic on += etc assignment statements
2021-06-01 10:37:31 +01:00
gingerBill
266b5d7d85
Fix container/map.odin
2021-06-01 09:26:01 +01:00
gingerBill
d90adb7a8e
Fix #998
2021-05-31 21:03:50 +01:00
gingerBill
2573da12fc
Fix #992
2021-05-31 20:58:28 +01:00
gingerBill
bbc9c6a93c
Fix #999
2021-05-31 20:56:07 +01:00
gingerBill
673134185a
Fix #996
2021-05-31 20:54:09 +01:00
gingerBill
3bf00e6125
Comment on the required generate_minimum_dependency_set entities
2021-05-31 20:50:21 +01:00
gingerBill
8fd4fe25d6
Remove unneeded minimum dependencies
2021-05-31 20:44:48 +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
4d80f8598d
Fix polymorphic record "too few" lacking error message
2021-05-31 20:33:14 +01:00
gingerBill
46204ed7f0
Update core:runtime to use the new intrinsics
2021-05-30 13:22:15 +01:00
gingerBill
0f91ffe28f
Add intrinsics.{ptr_offset, ptr_sub}
2021-05-30 13:21:56 +01:00
gingerBill
4b46d691f8
Improve logic for intrinsics.{mem_copy, mem_copy_non_overlapping, mem_zero} to use the *.inline LLVM variants when possible
2021-05-30 12:52:44 +01:00
gingerBill
c8b353b6d8
Makefile fix
2021-05-27 14:59:45 +01:00
gingerBill
6a8a31824d
Minor change to Makefile
2021-05-27 14:55:12 +01:00
gingerBill
8cfdd9805d
Merge branch 'master' of https://github.com/odin-lang/Odin
2021-05-27 14:46:10 +01:00
gingerBill
7d304f4e8b
Convert tabs to spaces for Makefile (stupid make)
2021-05-27 14:45:57 +01:00
gingerBill
bb7bd94b0a
Fix comparison bug of enumerated arrays
2021-05-27 09:52:50 +01:00
gingerBill
4a886a1bc5
Disable copy elision on assignments for the time being
2021-05-25 15:43:34 +01:00
gingerBill
c21c754b6f
Minimize copying on getting the address of a call if required
2021-05-24 23:51:01 +01:00
gingerBill
e948fcd2f1
Use intrinsics.mem_zero in runtime.mem_zero
2021-05-24 22:41:18 +01:00
gingerBill
0c46d06e63
Add intrinsics.mem_zero
2021-05-24 22:39:27 +01:00
gingerBill
44b6e7c45d
Move the mem zero into a separate procedure for reuse
2021-05-24 22:32:38 +01:00
gingerBill
284a2631fd
Refactoring of lbFunctionType retrieval
2021-05-24 22:16:22 +01:00
gingerBill
3f156bcb4b
Refactor backend code for assignments; Refactor some statements into separate procedures
2021-05-24 22:09:21 +01:00
gingerBill
d35a9e65b6
Heavily improve the copy elision logic in the backend
2021-05-24 20:57:44 +01:00
gingerBill
c440296ae8
Add @(link_section=<string>) for global variables
2021-05-24 15:41:22 +01:00
gingerBill
79f115d6a7
Handle #c_vararg correctly
2021-05-24 14:46:03 +01:00
gingerBill
39eccdf6b9
Make js default to nil allocator for the time being
2021-05-23 15:17:58 +01:00
gingerBill
71cfa0c9fe
Clean up organization of package runtime
2021-05-23 12:13:13 +01:00
gingerBill
e82f8214e8
Add bytes.remove, bytes.remove_all, strings.remove, strings.remove_all
2021-05-23 11:46:43 +01:00
gingerBill
b8f8d4c3a1
Modify ABI for the Odin calling conventions on SysV slightly
2021-05-22 11:33:08 +01:00
gingerBill
9e2eb717fe
Correct newline_limit logic
2021-05-21 15:22:35 +01:00
gingerBill
f0c9f82e1b
Minor changes to printer to use a bit set rather than booleans for list options
2021-05-21 13:42:29 +01:00
gingerBill
cc1d3a7b19
parser.check_poly_params_for_type
2021-05-21 13:07:00 +01:00
gingerBill
159daba759
Fix ast_end_token
2021-05-21 12:44:45 +01:00
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