gingerBill
dc317c8cd8
Make BlockingMutex
2023-01-03 15:50:31 +00:00
gingerBill
774fea1e63
Use RwMutex for gen_procs
2023-01-03 15:47:25 +00:00
gingerBill
485c606672
Clarify RwLocks for add_dependenies_from_unpacking
2023-01-03 15:37:35 +00:00
gingerBill
3dee3205b2
Use RwMutex for DeclInfo `deps
2023-01-03 15:34:52 +00:00
gingerBill
c7a704d345
Use RwMutex for the Scope
2023-01-03 15:26:47 +00:00
gingerBill
0fb3032b73
General improves to alloc_ast_node and other unnecessary checks
2023-01-03 14:45:09 +00:00
gingerBill
69934c3b0b
More for_array(i, y) to for (x : y) translations
2023-01-03 13:04:09 +00:00
gingerBill
7380b7e61b
Add more uses of C++ style for loops over for_array macro
2023-01-03 12:37:41 +00:00
gingerBill
747a11a954
Allow all set entry types to be implicitly cast to their key/value type to allow for easier iteration
2023-01-03 12:18:35 +00:00
gingerBill
252be0fb41
Make all maps use heap allocator implicitly
2023-01-03 11:59:52 +00:00
gingerBill
600f2b7284
Use heap_allocator for all hash set types
2023-01-03 11:53:59 +00:00
gingerBill
670274ad8f
More explicit uses of mutexes
2023-01-02 23:56:37 +00:00
gingerBill
e10fe91eba
Narrow global gen_procs_mutex further
2023-01-02 23:50:48 +00:00
gingerBill
fd62ee14cd
Code moving around
2023-01-02 23:31:38 +00:00
gingerBill
8ece92f1f6
Minimize the parapoly mutex usage a bit
2023-01-02 23:21:16 +00:00
gingerBill
69b075782b
Use a package local mutex for add_type_and_value
2023-01-02 22:40:28 +00:00
gingerBill
6bd3a9d422
Be very explicit where the gen_procs_mutex can be unlock
2023-01-02 22:23:49 +00:00
gingerBill
bc9ee8e1a4
Remove loops within futex signals on Linux
2023-01-02 22:13:49 +00:00
gingerBill
d36c3c2590
Re enable type_and_value_mutex
2023-01-02 22:06:05 +00:00
gingerBill
52b319dbfd
Fix darwin's futex implementation in the compiler
2023-01-02 21:53:41 +00:00
gingerBill
318d92f9a8
Comment out type_and_value_mutex usage
2023-01-02 21:37:21 +00:00
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