Commit Graph

4216 Commits

Author SHA1 Message Date
Colin Davidson ef9e31cb31 fix ulock/uwait imports 2022-12-28 22:08:39 -08:00
Colin Davidson e019673a18 fix build 2022-12-28 21:52:41 -08:00
Colin Davidson 5f27f2dd7f move to work-stealing threadpool 2022-12-28 21:44:17 -08:00
Dragos Popescu cfccf73cdd Merge branch 'odin-lang:master' into master 2022-12-26 19:22:47 +02:00
Dragos 465d003b1e Patched empty output_path.name when building a folder 2022-12-26 19:21:24 +02: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 ac5f5a33e9 gb_internal a lot 2022-12-18 21:17:07 +00:00
Thomas Stibor 1ca7da6914 Enable -out:<filepath> for build and runs with the attribute @(test)
According to the odin help command
$ odin help test
...
-out:<filepath>
	Set the file name of the outputted executable
	Example: -out:foo.exe

building and running tests the executable output filepath shall be
specified. However, the -out parameter is disabled, resulting in error message:

Unknown flag for 'odin test': 'out'
'out' is supported with the following commands:
	run, build

Omitting the -out parameter results in default filepath '01.bin' (on Linux).
However, it is desirable for user specifying the output filepath, e.g. by
using this Makefile snippet:

TARGET=main
FLAGS=-warnings-as-errors -verbose-errors

all: run

run:
        @odin run . $(FLAGS) -out:$(TARGET)

test:
        @odin test . $(FLAGS) -out:$(TARGET)

clean:
        @rm -f $(TARGET)

In addition a typo is fixed.
2022-12-14 14:26:32 +01: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 1f8f94276e Initialize the multiple return value map in lb_create_dummy_procedure 2022-12-07 16:44:26 +00:00
gingerBill a5bdb4a8e8 Merge pull request #2208 from odin-lang/multiple-return-abi-experiment
Multiple Return ABI Changes and Improvements
2022-12-07 11:42:23 +00:00
Dragos Popescu 75dcaf6d8d -ignore-unknown-attributes: fixed the attribute value being type checked in variable declarations 2022-12-03 00:11:18 +01:00
Phil 7a4106077a correct compare_exact_values(x,y) for TypeId and Procedure 2022-12-02 13:13:01 -08: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