Jeroen van Rijn
c4e0d1efa1
Merge branch 'master' into xml
2022-04-27 14:37:15 +02: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 and GitHub
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
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
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 and GitHub
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 and GitHub
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
Jeroen van Rijn and GitHub
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 and GitHub
b4f8efcbe6
Merge pull request #1739 from ftphikari/master
...
strings: add levenshtein_distance procedure
2022-04-21 20:31:11 +02:00
Jeroen van Rijn and GitHub
3dd9da1b66
Merge pull request #1733 from ftphikari/master
...
sys/windows: add some procedures
2022-04-19 20:41:32 +02:00
Jeroen van Rijn and GitHub
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 and GitHub
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 and GitHub
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
Jeroen van Rijn and GitHub
d99ba9c073
Merge pull request #1731 from Kelimion/targa
...
[image/tga] Writer for RGB(A) 8-bit images.
2022-04-18 23:36:45 +02:00
Jeroen van Rijn
fdd24f787f
[image/tga] Writer for RGB(A) 8-bit images.
2022-04-18 23:28:34 +02:00
Jeroen van Rijn
df4a0c62ad
Delete accidentally added test artefact.
2022-04-18 19:10:53 +02:00
Jeroen van Rijn and GitHub
e3e3309a9b
Merge pull request #1728 from Tetralux/more-slice-helpers
...
Duplicate some basic slice procedures from core:mem into core:slice
2022-04-18 19:05:20 +02:00
Jeroen van Rijn and GitHub
20b70c3b7b
Merge pull request #1727 from hanabi1224/fix-lru
...
Fix bugs in core:container/lru
2022-04-18 13:39:23 +02:00
Jeroen van Rijn and GitHub
e738e93da0
Merge pull request #1723 from ftphikari/master
...
sys/windows: add timeEndPeriod
2022-04-17 18:27:07 +02:00
Jeroen van Rijn
939973acd7
[QOI] Add to examples/all.
2022-04-17 12:35:34 +02:00
Jeroen van Rijn and GitHub
70cbffd58b
Merge pull request #1722 from Kelimion/varint_streamed
...
[LEB128] Add byte-at-a-time ILEB decoder.
2022-04-16 18:19:38 +02:00
Jeroen van Rijn
6d0ba8d189
[LEB128] Add byte-at-a-time ILEB decoder.
2022-04-16 18:14:01 +02:00
Jeroen van Rijn and GitHub
b6f3fa6ee1
Merge pull request #1719 from ftphikari/precise_sleep
...
time: add accurate sleep procedure
2022-04-16 16:52:46 +02:00
Jeroen van Rijn
91037766d2
Update time.odin
...
Add caveats.
2022-04-16 16:48:08 +02:00
Jeroen van Rijn and GitHub
8e7ddccf00
Merge pull request #1717 from ftphikari/master
...
sys/windows: add procedures and types
2022-04-16 12:38:39 +02:00
Jeroen van Rijn and GitHub
a5773f1657
Merge pull request #1718 from Kelimion/varint_streamed
...
Add uleb128 byte-at-a-time decoder.
2022-04-16 02:20:07 +02:00
Jeroen van Rijn
44316401c9
Add uleb128 byte-at-a-time decoder.
2022-04-16 02:07:57 +02:00
Jeroen van Rijn and GitHub
f6fa553572
Merge pull request #1708 from Kelimion/varint_doc
...
[varint] Clear up doc.odin.
2022-04-13 00:03:58 +02:00
Jeroen van Rijn
8310436350
[varint] Clear up doc.odin.
2022-04-13 00:03:36 +02:00
Jeroen van Rijn and GitHub
f92ffe60e7
Merge pull request #1699 from ftphikari/master
...
mem: replace size procedures with constants
2022-04-12 20:12:05 +02:00
Jeroen van Rijn and GitHub
de72754d7a
Merge pull request #1707 from Kelimion/qoi
...
[image] Add QOI load/save.
2022-04-12 19:33:11 +02:00
Jeroen van Rijn
bf712e9355
[QOI] Add support for RGB images (previously loader always output RGBA).
...
Also add QOI to CI test suite by roundtripping 8-bit RGB(A) through QOI and checking the hashes match.
2022-04-12 19:23:48 +02:00
Jeroen van Rijn
ab9457346d
[PNG] Remove debug printf.
2022-04-12 18:26:10 +02:00
Jeroen van Rijn
15b440c4f1
[image] Add QOI load/save.
...
Additionally:
- Firm up PNG loader with some additional checks.
- Add helper functions to `core:image` to expand grayscale to RGB(A), and so on.
TODO: Possibly replace PNG's post-processing steps with calls to the new helper functions.
2022-04-12 18:14:09 +02:00
Jeroen van Rijn and GitHub
50b9c48609
Merge pull request #1697 from Kelimion/build_file
...
Give build/run/check/test/doc a `-file` flag.
2022-04-05 20:52:28 +02:00
Jeroen van Rijn
767ed21bfe
-file for tests\issues.
2022-04-05 20:47:37 +02:00
Jeroen van Rijn
bb9165edd2
Add -help to CI tests.
2022-04-05 20:45:00 +02:00
Jeroen van Rijn
ad0a413b40
Give build/run/check/test/doc a -file flag.
...
A package has canonically always been a directory, but odin allowing you to build a single-file package confused newcomers who didn't understand why they could then not access variables and procedures from another file in the same directory.
This change disallows building single-file packages by default, requiring the `-file` flag to acknowledge you understand the nuance.
`-help` for these commands also clarifies the difference.
```
W:\Odin>odin build -help
odin is a tool for managing Odin source code
Usage:
odin build [arguments]
build Compile directory of .odin files as an executable.
One must contain the program's entry point, all must be in the same package.
Use `-file` to build a single file instead.
Examples:
odin build . # Build package in current directory
odin build <dir> # Build package in <dir>
odin build filename.odin -file # Build single-file package, must contain entry point.
Flags
-file
Tells `odin build` to treat the given file as a self-contained package.
This means that `<dir>/a.odin` won't have access to `<dir>/b.odin`'s contents.
```
```
W:\Odin>odin run examples\demo\demo.odin
ERROR: `odin run` takes a package as its first argument.
Did you mean `odin run examples\demo\demo.odin -file`?
The `-file` flag tells it to treat a file as a self-contained package.
```
2022-04-05 20:26:18 +02:00
Jeroen van Rijn and GitHub
e7dc00b758
Merge pull request #1695 from ftphikari/master
...
sys/windows: add Dwmapi.lib binding
2022-04-05 13:10:52 +02:00
Jeroen van Rijn and GitHub
79ec172797
Merge pull request #1694 from Kelimion/define_help
...
Add extra help line for define/config.
2022-04-03 21:11:19 +02:00
Jeroen van Rijn
2e6ad2a711
Add extra help line for define/config.
2022-04-03 21:06:06 +02:00
Jeroen van Rijn and GitHub
6be05f315d
Merge pull request #1693 from Skytrias/skytrias-strings-documentation-rest
...
documentation for the rest of the strings library
2022-04-03 19:54:19 +02:00
Jeroen van Rijn and GitHub
ab91fa6ad5
Merge pull request #1692 from Kelimion/easy_font
...
[vendor:easy_font] API improvements.
2022-04-03 19:08:18 +02:00
Jeroen van Rijn
376327c87b
[vendor:easy_font] API improvements.
...
Add `print(x, y, text, color, quad_buffer)` version that takes `[]quad`.
(Same internal memory layout as []u8 API, but more convenient for the caller.)
Add optional `scale := f32(1.0)` param to `print` to embiggen the glyph quads.
```odin
// Example for use with vendor:raylib
quads: [999]easy_font.Quad = ---
color := rl.GREEN
c := transmute(easy_font.Color)color
num_quads := easy_font.print(10, 60, TEXT, c, quads[:])
for q in quads[:num_quads] {
tl := q.tl.v
br := q.br.v
color = transmute(rl.Color)q.tl.c
r := rl.Rectangle{x = tl.x, y = tl.y, width = br.x - tl.x, height = br.y - tl.y}
// Yes, we could just use the `color` from above, but this shows how to get it back from the vertex.
// And in practice this code will likely not live as close to the `easy_font` call.
rl.DrawRectangleRec(r, color)
}
```
2022-04-03 18:53:27 +02:00
Jeroen van Rijn and GitHub
f8f91e52e0
Merge pull request #1691 from eisbehr/stb_easy_font_fix
...
Fixes for stb_easy_font
2022-04-03 15:30:52 +02:00
Jeroen van Rijn
cb5a6b531a
Allow optional message for #assert.
2022-04-02 15:31:50 +02:00
Jeroen van Rijn and GitHub
c930a3b4c8
Merge pull request #1685 from ftphikari/master
...
sys/windows: add a couple of procedures and types
2022-04-02 12:55:51 +02:00
Jeroen van Rijn and GitHub
dc012ed6dd
Merge pull request #1682 from ftphikari/master
...
sys/windows: add intrinsics.constant_utf16_cstring
2022-04-02 03:27:58 +02:00
Jeroen van Rijn
c21c993646
[strings] fix.
2022-04-02 01:54:35 +02:00
Jeroen van Rijn and GitHub
4044a577cc
Merge pull request #1683 from Kelimion/big_nails
...
[math/big] Tell Python test runner how many nails we use.
2022-04-01 16:33:30 +02:00
Jeroen van Rijn
581d53b96b
[math/big] Tell Python test runner how many nails we use.
...
`_DIGIT_NAILS` is defined as 4, meaning that we use 60 out of every 64 bits.
We can use as few as 1 nail, using 63 bits out of every 64, and all tests will still pass.
However, it needs more testing to see if that's a worthwhile change to make.
For the tests to work properly when changing the nails, Python needs to know about it as well.
In addition, compile the big math code with `-o:speed` going forward.
2022-04-01 16:24:27 +02:00
Jeroen van Rijn and GitHub
76cf667a29
Merge pull request #1681 from colrdavidson/fix-nightly
...
only install the right version of llvm
2022-03-31 22:47:37 +02:00
Jeroen van Rijn and GitHub
9ea45d35db
[ease] Fix flux_stop.
2022-03-31 12:53:04 +02:00
Jeroen van Rijn and GitHub
a3c81374be
Merge pull request #1670 from ftphikari/master
...
sys/windows: add WM_SYSCOMMAND related constants
2022-03-29 22:11:16 +02:00
Jeroen van Rijn and GitHub
740ba6ad47
Merge pull request #1669 from Kelimion/fix_glob_leak
...
[windows] Fix leak in `glob`.
2022-03-29 16:27:27 +02:00
Jeroen van Rijn
df32b5b46c
[windows] Fix leak in glob.
2022-03-29 16:13:17 +02:00
Jeroen van Rijn and GitHub
085fa199ea
Merge pull request #1668 from ftphikari/master
...
sys/windows: add SetTimer() and KillTimer() procedures
2022-03-29 10:09:49 +02:00
Jeroen van Rijn and GitHub
6e701ef36d
Merge pull request #1666 from Kelimion/improve_string_cut
...
[strings] Improve `cut`, add tests for it.
2022-03-27 22:19:24 +02:00
Jeroen van Rijn
24c48d22bc
[strings] Improve cut, add tests for it.
2022-03-27 22:13:26 +02:00
Jeroen van Rijn and GitHub
3cb8bb6672
Merge pull request #1665 from Kelimion/flux_fixups
...
[ease] Flux fixups.
2022-03-27 16:55:42 +02:00
Jeroen van Rijn
b1c2c0ea7a
[ease] Flux fixups.
2022-03-27 16:49:22 +02:00
Jeroen van Rijn and GitHub
2c498c132e
Merge pull request #1663 from Skytrias/skytrias-math-ease
...
add math easing package
2022-03-27 16:39:25 +02:00
Jeroen van Rijn and GitHub
a2a503847a
Merge pull request #1664 from Skytrias/skytrias-strings-documentation
...
add string documentation & examples, fix & cleanup string_multi
2022-03-27 13:59:33 +02:00
Jeroen van Rijn and GitHub
92f985abd5
Merge pull request #1662 from ftphikari/master
...
sys/windows: add GetSystemMetrics
2022-03-27 03:23:12 +02:00
Jeroen van Rijn and GitHub
2b7529977e
Merge pull request #1661 from ftphikari/master
...
sys/windows: add ClientToScreen
2022-03-27 00:54:44 +01:00
Jeroen van Rijn and GitHub
87e50e5e4d
Merge pull request #1660 from Kelimion/hwnd_fix
...
HWND_TOPMOST, HWND_NOTOPMOST constants
2022-03-26 19:46:28 +01:00
Jeroen van Rijn
86a1c34c3a
HWND_TOPMOST, HWND_NOTOPMOST constants
2022-03-26 19:33:53 +01:00
Jeroen van Rijn and GitHub
3f3cc342b4
Update strings.odin
...
Fix from Walter.
2022-03-26 18:38:10 +01:00
Jeroen van Rijn and GitHub
3bf820cf99
Merge pull request #1658 from gitlost/odin_run_unix_exit_code_WEXITSTATUS
...
Use `WIFEXITED()` and `WEXITSTATUS()` on Unix `system()` exit code
2022-03-26 17:41:41 +01:00
Jeroen van Rijn and GitHub
f2b4087d80
Merge pull request #1656 from ftphikari/master
...
sys/windows: fix gdi32 raw pointer types
2022-03-26 17:40:00 +01:00
Jeroen van Rijn and GitHub
3b6d72bb94
Merge pull request #1659 from WalterPlinge/field-iterator
...
Add fields_iterator procedure
2022-03-25 21:55:43 +01:00
Jeroen van Rijn and GitHub
df233f72a9
Merge pull request #1629 from Lperlind/more-window-bindings
...
Add unregister_class_a and unregister_class_w for windows bindings
2022-03-18 13:29:53 +01:00
Jeroen van Rijn and GitHub
50503cb405
Merge pull request #1628 from StanislavNikolov/fix-math-cumsum-inplace
...
Fix #1627 : Remove wrong return type in cumsum_inplace
2022-03-17 03:35:17 +01:00
Jeroen van Rijn and GitHub
5534c031b3
Merge pull request #1624 from Kelimion/insert_at_fix
...
[runtime] fix `insert_at` procedure group.
2022-03-15 19:44:05 +01:00
Jeroen van Rijn
19dc84e300
Reinstate NBC.
2022-03-15 19:37:04 +01:00
Jeroen van Rijn
a932168f50
[runtime] fix insert_at procedure group.
2022-03-15 19:35:00 +01:00
Jeroen van Rijn
ef3f448861
Remove accidentally committed test binary.
2022-03-14 13:06:50 +01:00
Jeroen van Rijn
7a7b87181d
[examples] Add core:encoding/varint to examples/all.
2022-03-11 11:09:58 +01:00
Jeroen van Rijn
64705ddd1d
[varint] Add doc.odin
2022-03-08 20:08:56 +01:00
Jeroen van Rijn
2a41814985
[varint] Tighten max input bounds.
2022-03-08 19:56:42 +01:00
Jeroen van Rijn
26ffec845b
[crypto] Remove unused mem import for siphash.
2022-03-08 19:38:36 +01:00
Jeroen van Rijn
52e60526ef
tabs.
2022-03-08 19:32:30 +01:00