gingerBill
7ffffeeccc
Comment out many mutex guards in type_(size|align)_of_internal
2023-01-02 21:35:40 +00:00
gingerBill
f16d8e77b3
Narrow fullpath_mutex usage
2023-01-02 20:55:49 +00:00
gingerBill
5b335bb88c
Narrow g_type_mutex usage
2023-01-02 20:48:24 +00:00
gingerBill
df2767311f
Use mutex_try_lock in check_proc_info
2023-01-02 20:42:22 +00:00
gingerBill
09c26e6be0
Narrow type info mutex usage
2023-01-02 20:38:37 +00:00
gingerBill
d2ec2d1606
Remove another use of a global mutex
2023-01-02 19:46:55 +00:00
gingerBill
0d87b2e8db
Use local mutexes rather than a global one for the dependency insertion
2023-01-02 19:39:35 +00:00
gingerBill
1568971732
Fix pool running
2023-01-02 18:04:16 +00:00
gingerBill
0e040be941
Add define for darwin
2023-01-02 17:49:16 +00:00
gingerBill
9737b65d9c
Explicitly call store for futex
2023-01-02 17:18:59 +00:00
gingerBill
ad52003077
Remove some unneeded checks
2023-01-02 17:15:29 +00:00
gingerBill
c386509112
Minor clean up of thread pool code
2023-01-02 17:06:29 +00:00
gingerBill
c293f5b7eb
Remove unneeded mutex
2023-01-02 16:56:05 +00:00
gingerBill
fa562ec5d6
Remove unneeded local_entity_map
2023-01-02 15:40:25 +00:00
gingerBill
529383f5b1
Correct a race condition when checking the procedure body
2023-01-02 15:30:04 +00:00
gingerBill
f01cff7ff0
Multithread checker
2023-01-02 12:31:00 +00:00
gingerBill
015fe924b8
Remove use of queues for procedure checking.
2023-01-02 12:28:38 +00:00
gingerBill
a5ce8a8c0b
Multi thread check_export_entities
2023-01-02 01:31:14 +00:00
gingerBill
bfdcf900ef
Remove global_ prefix from global_thread_pool_* procedures
2023-01-02 00:56:06 +00:00
gingerBill
54f89dd84b
Multithread check_collect_entities_all using new thread pool
2023-01-02 00:53:11 +00:00
gingerBill
da479c7628
Minor style change
2023-01-02 00:35:12 +00:00
gingerBill
3c90a05957
Replace condition+mutex with futex
2023-01-02 00:26:17 +00:00
gingerBill
d16ddf7926
Use C++ style for loop over for_array macro in parser.cpp where posible
2023-01-01 16:32:51 +00:00
gingerBill
5c519f0e8d
Remove the synchronization primitive init/destroy calls
2023-01-01 16:19:21 +00:00
gingerBill
74e6d9144e
Get around the std::atomic issue
2023-01-01 16:15:35 +00:00
gingerBill
20d451396d
Begin work on futex-ifying the threading primitives
2023-01-01 15:06:57 +00:00
gingerBill
60d0390ef8
Unify compiler Futex interface
2023-01-01 14:48:31 +00:00
gingerBill
00823ca88c
Remove a few TODOs
2022-12-22 13:03:34 +00:00
gingerBill
ffa14c3aad
Remove need the MPMC in single threaded case
2022-12-22 12:58:23 +00:00
gingerBill
41b32f0da4
Clean up mutex usage in the parser
2022-12-22 12:45:23 +00:00
gingerBill
c53b2198a8
Add minor comment
2022-12-22 12:02:14 +00:00
gingerBill
9b278db993
Revert "Change tav to be a pointer internally"
...
This reverts commit e98f1a28e6 .
2022-12-22 12:01:41 +00:00
gingerBill
e98f1a28e6
Change tav to be a pointer internally
2022-12-22 11:53:13 +00:00
gingerBill
b9a2426e57
Merge branch 'master' into compiler-improvements-2022-12
2022-12-21 23:59:31 +00:00
gingerBill
81037b3091
Change the order of the args and ret for Arm64 ABI
2022-12-21 23:56:34 +00:00
gingerBill
3040361fac
Correct type_ptr_set_update and type_ptr_set_exists
2022-12-20 14:59:00 +00:00
gingerBill
44caa96d50
Set the file's filename and directory in init_ast_file
2022-12-20 14:56:44 +00:00
gingerBill
eb0775ad53
Move mutex use around in thread pool
2022-12-20 14:45:01 +00:00
gingerBill
8fc9566a83
Use *_set_update where possible
2022-12-20 14:19:55 +00:00
gingerBill
134c7db4d2
Combine join and destroy for threads
2022-12-20 14:08:24 +00:00
gingerBill
a0e3a99dd1
Remove need for semaphore in Thread
2022-12-20 14:07:14 +00:00
gingerBill
0edda2bea7
Clarify ThreadPool interface; Move import_mutex guarding to just the string set
2022-12-20 12:46:33 +00:00
gingerBill
a13e2f4578
Fix minor race condition
2022-12-19 00:29:40 +00:00
gingerBill
01b508f182
Use usize for bounds checking in Array and Slice (compiler)
2022-12-18 23:26:44 +00:00
gingerBill
2a8fa8612d
Use fetch_add rather than +=
2022-12-18 23:24:34 +00:00
gingerBill
e27046098b
Add missing gb_internal
2022-12-18 22:58:34 +00:00
gingerBill
ca8b148fdc
Add gb_internal to path procedures
2022-12-18 22:52:18 +00:00
gingerBill
c1f5be24e2
Remove dead code in the compiler
2022-12-18 22:49:10 +00:00
gingerBill
6cdec65ca1
gb_internal LLVM backend
2022-12-18 22:32:05 +00:00
gingerBill
66ce990e0b
gb_internal to docs and other auxiliary files
2022-12-18 21:51:04 +00:00
gingerBill
690666537c
Add gb_internal to checker
2022-12-18 21:46:27 +00:00
gingerBill
056ba1ed13
Even more gb_internal everywhere
2022-12-18 21:24:45 +00:00
gingerBill
93a1f2bf61
Merge remote-tracking branch 'remotes/Odin-GitHub/master' into compiler-improvements-2022-12
2022-12-18 21:17:19 +00:00
gingerBill
ac5f5a33e9
gb_internal a lot
2022-12-18 21:17:07 +00:00
gingerBill
ff6b76986a
Use C++11 loops for some arrays
2022-12-09 12:32:54 +00:00
gingerBill
5c3624eb86
Fix map looping
2022-12-09 12:18:49 +00:00
gingerBill
144e357fd2
Add extra check
2022-12-09 11:37:15 +00:00
gingerBill
be22f0d1e1
Fix variable shadow in compiler
2022-12-09 11:32:52 +00:00
gingerBill
34a048f7da
Replace compiler for loops for the hash-table types to simplify code usage
2022-12-09 11:29:28 +00:00
gingerBill
ffe953b43d
Make os.get_last_error contextless
2022-12-08 16:04:03 +00:00
gingerBill
b8eacfc7b6
Merge branch 'master' of https://github.com/odin-lang/Odin
2022-12-08 15:58:44 +00:00
gingerBill
f8452bf1fc
Add different variants for once_do
2022-12-08 15:58:39 +00:00
gingerBill
20943a81c1
Make sync calls contextless where possible
2022-12-08 15:55:53 +00:00
gingerBill
9cb9964c2d
Remove old code
2022-12-08 00:52:11 +00:00
gingerBill
1f8f94276e
Initialize the multiple return value map in lb_create_dummy_procedure
2022-12-07 16:44:26 +00:00
gingerBill
521ed28632
Keep -vet happy
2022-12-06 19:57:41 +00:00
gingerBill
d6300314c0
Merge branch 'master' of https://github.com/odin-lang/Odin
2022-12-06 19:55:24 +00:00
gingerBill
27130259cc
Coalesce tombstones on delete_key to reduce all map slots from being filled on insertion
...
This is a bodge and will need to be replaced with an actual solution involving backward shift deletion rather than relying on tombstone slots in the first place.
2022-12-06 19:55:17 +00:00
gingerBill
f9f4551e8d
Add user_data: rawptr to filepath.Walk_Proc callback
2022-12-05 22:31:35 +00:00
gingerBill
2127dc56b1
Add math.pow10
2022-11-29 14:31:56 +00:00
gingerBill
e59e34d334
Change order of map_free_dynamic in usage
2022-11-29 12:27:32 +00:00
gingerBill
4fd97c3ba6
Remove panic
2022-11-29 12:22:37 +00:00
gingerBill
107c7a36d0
Treat .Mode_Not_Implemented as not an error when doing runtime.map_free_dynamic
2022-11-29 12:20:01 +00:00
gingerBill
dcf2c43863
Add aliases for fnv* no_a forms
2022-11-29 11:55:01 +00:00
gingerBill
0c25f7cdc5
Improve core:math procedures and add loads of unit tests
2022-11-29 11:39:44 +00:00
gingerBill
d88b052d2d
Naïve optimization of named _split_ multiple return valued when defer is never used
...
This is a naïve optimization but it helps a lot in the general case where callee temporary stack variables
are not allocated to represent the named return values by using that specific memory.
In the future, try to check if a specific named return value is ever used a `defer` within a procedure or not,
or is ever passed to a nested procedure call (e.g. possibly escapes).
2022-11-25 23:57:55 +00:00
gingerBill
615eccb6d1
Correct return ptr semantics for split returns
2022-11-24 14:26:45 +00:00
gingerBill
d3c65b6ba5
Make split multiple return logic only work for the native Odin calling conventions
2022-11-24 13:16:02 +00:00
gingerBill
90415e4a6e
Add split multiple return to different ABIs
2022-11-24 12:14:19 +00:00
gingerBill
7352c312e0
Fix type for split returns code
2022-11-24 11:20:28 +00:00
gingerBill
0befadde1d
Basic copy elision support for multiple return values
2022-11-24 01:27:39 +00:00
gingerBill
aef8b25a8e
Listen to past Bill's wisdom
2022-11-23 23:54:12 +00:00
gingerBill
ae81117f70
Merge branch 'master' into multiple-return-abi-experiment
2022-11-23 23:43:00 +00:00
gingerBill
d6cb105d5f
Fix LLVM type cycle nonsense with procedure types
2022-11-23 23:32:34 +00:00
gingerBill
b7b9a016d3
Merge branch 'master' into multiple-return-abi-experiment
2022-11-23 22:48:56 +00:00
gingerBill
5ac36b5f25
HACK: Get around debugging type generation for slices and dynamic arrays of *nix systems
2022-11-23 22:46:02 +00:00
gingerBill
22bcf1ba70
Extra check for slices and dynamic arrays for -debug
2022-11-23 22:31:21 +00:00
gingerBill
51c705edf1
Add extra check to debug information of named composite types
2022-11-23 21:59:53 +00:00
gingerBill
708a1b0cd3
Clean up return logic for split multiple return ABI experiment
2022-11-23 16:42:26 +00:00
gingerBill
7ab591667a
Basic support for new ABI experiment on Win64
2022-11-23 16:25:09 +00:00
gingerBill
e45401bfb4
Fix #2207
2022-11-23 14:14:22 +00:00
gingerBill
0a0db23b17
Remove copy elision code
2022-11-22 15:49:27 +00:00
gingerBill
6fa0679be9
Fix #2109
2022-11-21 13:12:44 +00:00
gingerBill
afea221d64
Make structs with the same fields but different tags different types
...
Fixes #2105
2022-11-21 13:10:49 +00:00
gingerBill
b9ec2de4db
strconv.parse_f64 - accurately parse floats
2022-11-21 13:00:24 +00:00
gingerBill
3dfd53aee0
Improve error handling for trailing commas #2136
2022-11-21 11:56:59 +00:00
gingerBill
b54fc8ff95
Fix UUID
2022-11-21 11:53:49 +00:00
gingerBill
8745942255
Fix #2174
2022-11-21 11:42:43 +00:00
gingerBill
c7be30e0ea
Fix #2172
2022-11-21 11:38:29 +00:00
gingerBill
1baa47c78e
Fix #2179
2022-11-21 11:31:35 +00:00