Commit Graph

6140 Commits

Author SHA1 Message Date
gingerBill
10cd294cf2 Use Acquire semantics for the futex_wait load shortcut 2022-04-27 15:57:47 +01:00
gingerBill
d6cfb60506 Remove prev from Atomic_Cond 2022-04-27 15:29:21 +01:00
gingerBill
df0df73540 Merge branch 'master' into sync-cond-futex 2022-04-27 15:26:21 +01:00
gingerBill
33f1418dec Merge branch 'master' of https://github.com/odin-lang/Odin 2022-04-27 15:26:02 +01:00
gingerBill
305510bea0 Update intrinsics.odin 2022-04-27 15:25:56 +01:00
gingerBill
beb698f31d Merge branch 'master' into sync-cond-futex 2022-04-27 15:21:18 +01:00
Jeroen van Rijn
c5982e52d5 Merge pull request #1748 from Kelimion/test-assets
Move Odin CI test assets over to its own repository.
2022-04-27 16:04:15 +02:00
gingerBill
bd73b2845b Unify default Sema and Atomic_Sema behaviour 2022-04-27 15:03:48 +01:00
Jeroen van Rijn
da0f722aad Move Odin CI test assets over to its own repository. 2022-04-27 15:56:45 +02:00
gingerBill
904f0407f8 Add intrinsics.type_is_multi_pointer 2022-04-27 14:53:26 +01:00
gingerBill
fbbb0d7610 Update intrinsics.odin for documentation 2022-04-27 14:51:04 +01:00
gingerBill
3a9b0a22e7 Add core:container/intrusive/list 2022-04-27 14:27:33 +01:00
gingerBill
9349dfba8f Add new builtin container_of 2022-04-27 12:39:45 +01:00
gingerBill
9692496989 Add intrinsics.type_field_type 2022-04-27 12:27:53 +01:00
gingerBill
a6cef2e50e Update LICENSE 2022-04-26 21:47:45 +01:00
Jeroen van Rijn
d262eda91c Update Makefile 2022-04-26 15:10:31 +02:00
Jeroen van Rijn
40f0f5ad8d Update CI for math library. 2022-04-26 15:01:09 +02:00
Jeroen van Rijn
1c03e68057 Update CI. 2022-04-26 14:56:28 +02:00
Jeroen van Rijn
f1c1cfb6d2 Merge pull request #1747 from Kelimion/filename-merge
Filename generation
2022-04-26 14:52:58 +02:00
Jeroen van Rijn
ba5e33bc35 Update CI workflow. 2022-04-26 14:51:16 +02:00
gingerBill
80df9fbc65 Merge pull request #1745 from eisbehr/patch-1
Make allocator in pool_add_task() explicit
2022-04-26 13:49:44 +01:00
Jeroen van Rijn
b68ab0dd6d Merge branch 'master' into filename-merge 2022-04-26 14:45:00 +02:00
gingerBill
9cf7a31068 Implement _Sema with Atomic_Sema 2022-04-26 13:44:32 +01:00
Jeroen van Rijn
5e11ad2e1e Update test paths. 2022-04-26 14:23:23 +02:00
gingerBill
07d1a42768 Simplify Atomic_Sema implementation 2022-04-26 13:11:34 +01:00
gingerBill
ec8221cb5d Simplify Atomic_Cond implementation 2022-04-26 13:04:50 +01:00
Jeroen van Rijn
a5342a0126 Address edge cases. 2022-04-26 13:14:09 +02:00
gingerBill
c81fd2e5dd Fix #1644 2022-04-26 11:45:46 +01:00
gingerBill
3bd7122959 Fix #1720 2022-04-26 11:42:01 +01:00
gingerBill
530401e5ee Fix #1729 2022-04-26 11:38:32 +01:00
gingerBill
a412d34574 Fix #1740 2022-04-26 11:35:34 +01:00
Florian Behr
ee67a0b9a1 reorder procedure parameters to make sure the optional argument in pool_add_task() is last, and the argument order is consistent with pool_init() 2022-04-25 14:08:09 +02:00
Florian Behr
ca6a1db757 fix doc comment for pool_init 2022-04-25 13:41:39 +02:00
Florian Behr
1fb76ad768 change usage in demo.odin 2022-04-25 13:41:19 +02:00
Florian Behr
e01662c139 Make allocator in pool_add_task() explicit 2022-04-25 13:23:05 +02:00
Jeroen van Rijn
63331ef731 Revert "Merge pull request #1702 from Kelimion/filename_generation"
This reverts commit a40a53b104, reversing
changes made to 5422a3b17e.
2022-04-24 19:53:36 +02:00
Jeroen van Rijn
a40a53b104 Merge pull request #1702 from Kelimion/filename_generation
Compiler: Add early error for output path being a directory.
2022-04-24 15:15:51 +02:00
Jeroen van Rijn
9f8d90f466 Update CI paths for issue tests. 2022-04-24 14:28:00 +02:00
Jeroen van Rijn
3d2856db31 Update tests to use new filename generation code. 2022-04-24 14:19:25 +02:00
Jeroen van Rijn
f4723aea4c Remove redundant bit for non-Windows. 2022-04-24 13:37:26 +02:00
Jeroen van Rijn
76d48b38d3 Compiler: Allow -out: to not have an extension on *nix for executables (only). 2022-04-24 13:37:26 +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
Jeroen van Rijn
5422a3b17e Merge pull request #1743 from Tetralux/filepath-stems
[path/filepath] Add file stem and long-extension procedures
2022-04-23 22:33:31 +02:00
Tetralux
b44b6e7e50 [path/filepath] Add file stem and long-extension procedures
Adds stem(), short_stem(), and long_ext(); also adds doc-comments to base() and ext().

The 'stem' is usually 'the name' of the file; the basename without the file extension.
To this end, this adds stem(), which is such that:

	stem(path) + ext(path) = base(path)

However, 'file extension' has two different meanings to what constitutes it!

 > What is the extension of: 'name.tar.gz' ?

Colloquially, you would likely think of it as 'a tarball' - which you might think is '.tar.gz'.
But, if you're writing code to process a file of this type, you would first treat it
as a Gzip file, and then treat the result as a TAR file - i.e: '.gz' ... _followed by_ '.tar'.

ext() returns '.gz' here, since that is the most-immediate format that you would need to use
to decode it; it would be a Gzip stream.

Sometimes though, you do actually want to consider these longer file extensions.

Perhaps you're extracting a tarball, and what to know what to call the intermediate tar file;
perhaps you want to check to see if this file is a tarball, or just a Gzip file;
or maybe you just want 'the name' of the file, and not this "strange 'name-and-part-of-the-extension' thing".

So, this also adds short_stem() and long_ext(), such that:

	short_stem(path) + long_ext(path) = base(path)

Thus, we can use either, but the most immediately-useful one is the easiest to reach for:

      stem('name.tar.gz') -> 'name.tar'
       ext('name.tar.gz') -> '.gz'

short_stem('name.tar.gz') -> 'name'
  long_ext('name.tar.gz') -> '.tar.gz'

These procedures are identical to their counterparts when the path only has a simple extension:

      stem('name.txt') -> 'name'
       ext('name.txt') -> '.txt'

short_stem('name.txt') -> 'name'
  long_ext('name.txt') -> '.txt'
2022-04-23 20:25:59 +00:00
Jeroen van Rijn
849efff070 Merge pull request #1741 from Kelimion/shoco
Add Shoco short string compression.
2022-04-22 18:06:31 +02:00
Jeroen van Rijn
b022167df1 Remove unused fmt. 2022-04-22 17:56:34 +02:00
Jeroen van Rijn
ac9a358c65 [shoco] Replace 2D slices in model with 1D slices. 2022-04-22 17:52:38 +02:00
Jeroen van Rijn
e799476f90 [compress/shoco] Add short string compressor. 2022-04-22 16:55:47 +02:00
Jeroen van Rijn
b4f8efcbe6 Merge pull request #1739 from ftphikari/master
strings: add levenshtein_distance procedure
2022-04-21 20:31:11 +02:00
hikari
f026753692 strings: levenshtein_distance: remove do 2022-04-21 21:19:43 +03:00