Commit Graph

6127 Commits

Author SHA1 Message Date
Jeroen van Rijn
da0f722aad Move Odin CI test assets over to its own repository. 2022-04-27 15:56:45 +02: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
Jeroen van Rijn
5e11ad2e1e Update test paths. 2022-04-26 14:23:23 +02: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
hikari
71b1cce517 strings: levenshtein_distance: 64 is actually faster than 256 2022-04-21 21:19:11 +03:00
hikari
d8f0da164b strings: levenshtein_distance: improve potential caching 2022-04-21 21:15:11 +03:00
hikari
591732f347 strings: levenshtein_distance: remove costs calculation for default array 2022-04-21 20:58:50 +03:00
hikari
eee97f7f62 strings: add levenshtein_distance procedure 2022-04-21 20:49:32 +03:00
Jeroen van Rijn
3dd9da1b66 Merge pull request #1733 from ftphikari/master
sys/windows: add some procedures
2022-04-19 20:41:32 +02:00
Jeroen van Rijn
e8c0be23f2 Merge pull request #1737 from Kelimion/fix_json_unmarshal
[json/unmarshal] Fix quoted strings.
2022-04-19 20:40:40 +02:00
Jeroen van Rijn
a30b9b17b3 [json/unmarshal] Fix quoted strings. 2022-04-19 20:32:22 +02:00
Jeroen van Rijn
29b2c04766 Revert "Fix unmarshal for escaped strings."
This reverts commit 581255bf23.
2022-04-19 20:11:02 +02:00
Jeroen van Rijn
d869ba7bcd Merge pull request #1736 from Kelimion/fix_json_unmarshal
Fix unmarshal for escaped strings.
2022-04-19 20:05:04 +02:00
Jeroen van Rijn
581255bf23 Fix unmarshal for escaped strings. 2022-04-19 20:04:38 +02:00
Jeroen van Rijn
b51358a01c Merge pull request #1734 from hanabi1224/lru-alloc-fix
[core:container/lru] Avoid unnecessary allocations
2022-04-19 15:04:49 +02:00
Jeroen van Rijn
323e7a2d02 Add JSON unmarshal test. 2022-04-19 15:03:09 +02:00
Jeroen van Rijn
7654afc2db Revert "Update mem.nil_allocator to match the same in runtime"
The change broke JSON unmarshaling.

This reverts commit 4484a3433d.
2022-04-19 15:01:54 +02:00