Commit Graph

3709 Commits

Author SHA1 Message Date
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
362f07d7c5 Merge pull request #997 from DanielGavin/prototype-fmt
Add odin/format and odin/printer packages
2021-05-20 21:02:26 +01:00
gingerBill
fe74b479c6 Begin changes to sync2 2021-05-20 21:02:05 +01:00
Daniel Gavin
44ee0f2cdc Merge branch 'master' into prototype-fmt 2021-05-20 12:15:14 +02:00
Daniel Gavin
50035f257e don't factor in the rhs length for lines that don't have Equal tokens. 2021-05-20 12:13:23 +02: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