Commit Graph

64 Commits

Author SHA1 Message Date
Jeroen van Rijn
a5342a0126 Address edge cases. 2022-04-26 13:14:09 +02:00
Jeroen van Rijn
3cab2592c3 Compiler: Add early error for output path being a directory.
- Introduce new `Path` type and an array of build paths on the build context.
- Resolve input and output paths/files early (before parsing).
- Error early if inputs are missing or outputs are directories.
- Plumb new file path generation into linker stage instead of its adhoc method.

TODO:
- Remove more adhoc file path generation in parser and linker stage.
- Make intermediate object file generation use new path system.
- Round out and robustify Path helper functions.
2022-04-24 13:37:26 +02:00
gingerBill
09e4fff5b1 -target-features:<string>
This just passes a string directly to the LLVM features string
2022-02-28 15:08:50 +00:00
gingerBill
f8afda3b22 Add more objc attributes 2022-02-11 22:54:51 +00:00
gingerBill
78815778ee Add //+private file to complement //+private (//+private package) 2022-02-02 15:28:49 +00:00
gingerBill
9a5216921c Add wasi_wasm32 2021-10-31 01:08:17 +00:00
gingerBill
aa8777ee47 Change the implementation of Arena to use virtual memory, and remove the old gbArena code 2021-08-26 15:38:34 +01:00
gingerBill
7845769d4b Remove unused code 2021-08-19 15:03:10 +01:00
gingerBill
be76da2c90 Begin optimizing tokenizer; Replace gb_utf8_decode with utf8_decode (CC but easier to change later) 2021-08-01 23:56:17 +01:00
gingerBill
a5d6fda433 Define which mutexes are blocking and recursive explicitly 2021-07-27 23:14:01 +01:00
gingerBill
35230b1a11 Add "Suggestion: Did you mean?" for selector expression typos 2021-07-08 23:15:07 +01:00
gingerBill
f1e13bdddb Prefix named types with package name in debug types 2021-03-23 20:45:39 +00:00
gingerBill
fea8c63ab3 Fix string_compare 2020-11-17 12:19:28 +00:00
gingerBill
0be6ddc7e2 Add -microarch:<string> (e.g. -microarch:native) 2020-10-20 12:25:11 +01:00
gingerBill
b8d33165c9 Add -target:<string> fuzzy checking with "Did you mean" message 2020-06-10 12:59:54 +01:00
gingerBill
ef539696b9 Strip carriage return \r from raw string literals 2020-05-23 11:39:29 +01:00
gingerBill
0b16ed7c85 Use memcmp for str_eq 2020-05-21 11:05:38 +01:00
gingerBill
e1da631d26 General functionality without context 2020-03-04 22:09:58 +00:00
gingerBill
9db81498d8 Make the string type elements "immutable", akin to char const * in C
Allows for extra security and optimization benefits
2019-12-01 14:10:59 +00:00
gingerBill
37e3e081c6 Update microsoft_craziness.h to work correctly with the rest of the codebase (and not use WIN32_LEAN_AND_MEAN) 2019-11-27 15:18:32 +00:00
gingerBill
9f0a28017d Fix typo in string_to_string16 #444 2019-10-20 10:50:18 +01:00
gingerBill
cf23954297 Improve #assert to show the procedure and signature it was called with; Allow the ability to print ExactValue correct now. 2019-08-23 11:51:04 +01:00
gingerBill
458ec5922e odin query
Output .json file containing information about the program
2019-05-25 20:24:19 +01:00
gingerBill
2878cd8241 New build flag: -define:foo=123 2019-02-23 23:21:27 +00:00
Tetralux
1e180d611d Allow 'odin run program.odin -- <args-for-program.exe> 2019-01-28 17:58:48 +00:00
Chris Heyes
ae02e9c34a Use name of source file as output_name 2018-10-16 23:56:19 +01:00
gingerBill
d0fc9aa069 Allow for '\"' 2018-08-10 17:48:29 +01:00
gingerBill
6d1c32eb77 Add escape code for ESC \e 2018-06-15 23:13:26 +01:00
gingerBill
268491b224 Use global arena for AstNode allocations 2018-06-09 19:53:06 +01:00
gingerBill
df578d6ec5 Allow for either .odin file or directory as the initial start 2018-05-27 11:40:27 +01:00
gingerBill
7ee9051a56 IR now builds with the new package system 2018-05-27 10:49:14 +01:00
gingerBill
c067b90403 Add basic package support (no IR support yet) 2018-05-26 23:12:55 +01:00
gingerBill
5b6770f3d2 Parse directories to be packages 2018-05-21 20:47:52 +01:00
gingerBill
69062ba3ab More code tidying with Array 2018-02-25 20:24:38 +00:00
gingerBill
e14e2c3b4d -out and generate executable in the current working directory 2018-02-25 11:49:44 +00:00
gingerBill
cec9f7abfe Add -debug command (still in development) 2017-11-19 15:06:56 +00:00
Ginger Bill
8e3b77aba8 Library collections 2017-09-07 20:55:59 +01:00
Ginger Bill
6707c8750e Import cycle checking 2017-08-27 14:42:19 +01:00
Ginger Bill
0fae31fb54 Extra type safety; Fix typos 2017-07-31 11:36:00 +01:00
Ginger Bill
629b248f53 Parallelization of the Parser
~66% reduction (unoptimized build)
~30% reduction (optimized build)
2017-07-30 19:01:02 +01:00
Ginger Bill
2db03cb4a5 Fix aprint* bug; NULL -> nullptr; Better error messages for overloaded functions 2017-07-06 22:43:55 +01:00
Ginger Bill
1d81b73df9 Basic command line flags: e.g. -opt=0 2017-06-24 22:58:50 +01:00
Ginger Bill
bba088bee7 Use UTF-8 command line on windows 2017-06-24 11:42:49 +01:00
Ginger Bill
4236519b84 #location(..) and #call_location 2017-06-18 14:36:06 +01:00
Ginger Bill
2b96be0ae8 Remove unnecessary typedef usage 2017-06-08 13:08:39 +01:00
Ginger Bill
13deb4706c Update String to use overloading 2017-06-08 12:37:07 +01:00
Ginger Bill
9b61adb97d Build as C++ 2017-06-08 12:03:40 +01:00
Ginger Bill
4d30ef7eda Change extensions .cpp to .c 2016-11-23 12:29:50 +00:00
Ginger Bill
8ecfca0c9b Remove templated Map; replace with #include macro "templates" trick 2016-11-23 10:36:48 +00:00
Ginger Bill
3517f96668 Remove: string overloads; defer 2016-11-22 20:29:46 +00:00