gingerBill
34e3d30780
More thread contention removal
2025-09-10 20:51:52 +01:00
gingerBill
7b5cee9f1e
Correct #+feature check
2025-08-08 10:50:24 +01:00
gingerBill
ee01643229
Add -integer-division-by-zero:self
2025-08-08 10:41:05 +01:00
gingerBill
991883d0e1
Add #+feature integer-division-by-zero:<string>
2025-08-08 10:24:44 +01:00
gingerBill
513e6daace
Merge pull request #5081 from Lperlind/vet-explicit-allocators
...
Add -vet-explicit-allocators
2025-07-22 11:06:12 +01:00
Harold Brenes
7c917d56e9
Check for invalid subtargets.
...
- Add 'ios' pseudo-subtarget which triggets with either iPhone or iPhoneSimulator subtargets.
- Treat an explicit 'default' subtarget as exclusive only to the default subtarget, not an other platform-compatible subtargets.
- 'generic' continues to resolve to true for any platform-compatible subtarget as it names appears to imply such behavior.
2025-07-20 14:35:06 -04:00
Harold Brenes
b811414ed1
Use fi.is_dir instead of path_is_directory() when checking if an import is a directory with a .odin extension.
2025-07-13 15:24:53 -04:00
gingerBill
38faec757d
Correct consume comment groups in both parsers
2025-07-11 18:41:40 +01:00
Hayden Gray
ccdd14394e
[parser.cpp] - packages with .odin in the name no longer attempt
...
to parse as odin files
2025-06-05 11:24:50 -04:00
gingerBill
74bab6d42f
Fix #5232 by adding an edge case
2025-05-29 16:29:52 +01:00
Lucas Perlind
65b4c793f0
Add -vet-explicit-allocators
...
This vet flag will make it so that allocators must be explicitly used
in places where context.allocator and context.temp_allocator are a
procedure parameter.
The goal of this flag is to prevent using the context.allocator in
cases where a different allocator was meant to be used.
Some code bases default context.allocator to nil/panic allocator
to catch this at runtime. This effectively makes it a compile
time error instead.
2025-04-27 22:47:03 +10:00
gingerBill
1f814c33dc
Support subtargets in build tags: #build darwin:generic and #build linux:android, darwin:ios
2025-04-10 11:36:03 +01:00
gingerBill
d23453811d
Improve semicolon checking rules when parsing
2025-02-24 13:13:36 +00:00
gingerBill
de755f95ec
Minor rearrange for parsing field lists
2025-02-22 17:58:14 +00:00
gingerBill
875dbf3140
Disallow syntax: proc(x,:T)
2025-02-22 17:56:42 +00:00
gingerBill
328d893cb5
#unroll(N) for
2025-01-10 12:22:18 +00:00
gingerBill
7da7d4e410
Allow #+ tags on single files
2025-01-05 15:41:51 +00:00
gingerBill
bca08d3b85
Make -no-dynamic-literals the default now
2025-01-05 13:33:06 +00:00
gingerBill
2efe4c2d68
Add #+feature dynamic-literals
2025-01-05 13:19:10 +00:00
gingerBill
b3d1d7b835
Make #relative types an error in parsing
2024-11-14 16:08:53 +00:00
bobsayshilol
b59647084b
Plug a memory leak
...
The call to |array_make()| always allocates and since this variable was
unused it lead to a leak. Simply plug it by removing it.
2024-10-27 22:02:34 +00:00
gingerBill
a7d7c92a53
#min_field_align & #max_field_align; deprecate #field_align in favour of #min_field_align
2024-09-30 13:05:28 +01:00
Feoramund
84700e09c9
Forbid parsing more fields if no separator was found
...
Fixes #4278
2024-09-20 19:02:00 -04:00
Karl Zylinski
29fedc1808
Changed some recently added //+ usages to #+ and also fixed some //+ usages in some code generators.
2024-09-17 19:39:48 +02:00
Karl Zylinski
093ade0504
Merge branch 'master' into file-tags-without-comments
2024-09-17 19:36:17 +02:00
gingerBill
19c1ed154c
Add -vet-packages:<comma-separated-string-array>
2024-09-17 11:01:26 +01:00
Karl Zylinski
c24e18bf10
Fix incorrect syntax error in parse_file
2024-09-14 14:36:33 +02:00
Karl Zylinski
8b84b9a4a2
Docs are generated as expected again.
2024-09-14 14:32:46 +02:00
Karl Zylinski
86e291235d
Merge remote-tracking branch 'origin/master' into file-tags-without-comments
2024-09-14 11:26:41 +02:00
Karl Zylinski
580f0599cd
parse_file: Removed some nesting and removed probable incorrect safety check.
2024-09-09 21:24:41 +02:00
Karl Zylinski
cc724ff5d2
Made error handling code in parse_file clearer.
2024-09-09 21:13:39 +02:00
Karl Zylinski
957cd64699
Rename process_file_tag -> parse_file_tag
2024-09-09 21:06:43 +02:00
Karl Zylinski
3637dcbd04
Simplified error messages in parse_build_tag, removed the idea of making multiple notted operating systems since it was misinformed.
2024-09-09 21:03:28 +02:00
Karl Zylinski
73e4954346
Better #+build tag error messages: Error when using more than one !notted operating system per build line. Error when using more than one operating system within a 'kind', such as writing #+build windows linux.
2024-09-08 03:13:21 +02:00
Karl Zylinski
dc767da12b
Make tags use #+ syntax instead of //+ syntax so it no longer looks like a comment. Old style still works but is deprecated with a warning. Using unknown tags is now an error instead of a warning. There is a new token for #+ which consumes the whole line (or until it hits a comment). The tags are parsed like before. There are errors to tell you if you use something invalid in the pre-package-line block.
2024-09-08 01:50:56 +02:00
Laytan
1a7c1d107a
set -rpath to \$ORIGIN and expect libraries next to executable just like Windows
2024-09-04 22:19:46 +02:00
avanspector
43ec2b9253
checker: delay foreign block checking
...
if file scope, otherwise as before
2024-08-26 20:59:16 +02:00
gingerBill
8ba87e01bd
Improve parse_enforce_tabs usage
2024-08-24 13:56:30 +01:00
gingerBill
b6d9a0c32e
Manually implement tail-recursion for parse_if_stmt
2024-08-24 13:16:55 +01:00
gingerBill
a4cc207022
Add a recursion depth limit for #3987 with a consideration to use a switch statement or refactor the code to not use a large if-else chain
2024-08-24 12:59:17 +01:00
Jeroen van Rijn
9553bc3689
If missing type is newline, print "newline", not \n
...
Turns:
W:/Odin/bug/bug.odin(3:27) Syntax Error: Expected a type, got '
'
Storage :: distinct map[]
Into:
W:/Odin/bug/bug.odin(3:27) Syntax Error: Expected a type, got newline
Storage :: distinct map[]
2024-08-17 17:25:52 +02:00
Jeroen van Rijn
07d2aba310
Simplify exe path check.
2024-07-22 16:36:21 +02:00
Jeroen van Rijn
90a4d12b30
Fix .exe path is directory check.
2024-07-22 16:11:33 +02:00
Jeroen van Rijn
39657e4d96
Fix #3473
...
Fix the problem where the initial package's directory name ended in .odin.
2024-07-22 15:15:51 +02:00
gingerBill
a45e05bb18
Remove need for BlockingMutex in Arena
2024-07-15 01:36:54 +01:00
gingerBill
018026d844
Use gb_zero_* calls
2024-07-15 00:36:00 +01:00
gingerBill
139c1bcdda
Comment out debug code
2024-07-15 00:25:41 +01:00
gingerBill
edc793d7c1
Add #no_capture args: ..T to reuse the backing array stack memory
2024-07-14 11:39:05 +01:00
gingerBill
36301d0359
Give better syntax error messages for things like #define Example 123
2024-07-10 13:03:38 +01:00
gingerBill
886ee66e7f
Cache files, env, and args
2024-07-09 14:16:56 +01:00