Commit Graph
100 Commits
Author SHA1 Message Date
Jeroen van RijnandGitHub 1761802330 Merge pull request #4062 from laytan/fix-switch-over-internal-pointer-union
fix type switching over internal pointer union
2024-08-12 00:25:47 +02:00
Jeroen van RijnandGitHub 8a67221bd4 Merge pull request #4057 from asibahi/patch-1
typo fix
2024-08-11 13:35:10 +02:00
Jeroen van RijnandGitHub e226d37803 Merge pull request #4023 from Feoramund/simd-index
Vectorize `index_byte`
2024-08-10 21:01:41 +02:00
Jeroen van Rijn 1242b6e82f Improve slice.binary_search_by 2024-08-10 18:26:59 +02:00
Jeroen van RijnandGitHub 9759d56c81 Merge pull request #4003 from Yawning/feature/crypto-improvements
core:crypto: Various improvements
2024-08-10 17:17:00 +02:00
Jeroen van Rijn bf53d2f6db Fix time.precise_clock on 32-bit platforms. 2024-08-10 12:44:40 +02:00
Jeroen van Rijn d267735d99 Fixed time.precise_clock 2024-08-10 12:35:58 +02:00
Jeroen van Rijn be7a1f671c Revert "Add time.precise_clock_from_time + time.precise_clock_from_duration"
This reverts commit c9ca192f33.
2024-08-10 03:26:09 +02:00
Jeroen van Rijn c9ca192f33 Add time.precise_clock_from_time + time.precise_clock_from_duration 2024-08-10 03:23:08 +02:00
Jeroen van Rijn c5ed7083d2 Disable NetBSD CI 2024-08-09 19:44:51 +02:00
Jeroen van Rijn d69e0bfa00 NetBSD vm fix. 2024-08-09 19:37:26 +02:00
Jeroen van Rijn fa6f343261 Remove unused import. 2024-08-09 19:06:50 +02:00
Jeroen van RijnandGitHub cc24d2de3e Merge pull request #3810 from Feoramund/freebsd-core-net
Port `core:net` to FreeBSD
2024-08-09 09:50:05 +02:00
Jeroen van Rijn bc6deab175 echo -> printf for build_odin.sh message 2024-08-09 09:46:45 +02:00
Jeroen van RijnandGitHub 1e09ff3b2e Merge pull request #4043 from Kelimion/expect_leak_or_bad_free
Allow testing for intentional leaks in test runner
2024-08-08 21:40:17 +02:00
Jeroen van Rijn 933f9f9bd1 Enable test leak = fatal on CI. 2024-08-08 21:31:30 +02:00
Jeroen van Rijn b82cfc5f15 Fix shoco heisenleak 2024-08-08 21:15:59 +02:00
Jeroen van Rijn a05b73c632 Keep -vet happy when mem tracking is disabled. 2024-08-08 21:02:35 +02:00
Jeroen van Rijn 4d27898418 Use test runner's own tracking allocator. 2024-08-08 20:58:25 +02:00
Jeroen van Rijn 80d1e1ba82 Allow testing for intentional leaks in test runner
Adds `expect_leak_or_bad_free :: proc(t: ^T, client_test: proc(t: ^T), verifier: Memory_Verifier_Proc)`.

It sets up its own `Tracking_Allocator`, runs the `client_test`, and then calls the `verifier` procedure.
The verifier can then inspect the contents of the tracking allocator and call `testing.expect*` as sensible for the test in question.

Any allocations are then cleared so that the test runner doesn't itself complain about leaks.

Additionally, `ODIN_TEST_LOG_LEVEL_MEMORY` has been added as a define to set the severity of the test runner's memory tracker. You can use `-define:ODIN_TEST_LOG_LEVEL_MEMORY=error` to make tests fail rather than warn if leaks or bad frees have been found.
2024-08-08 20:41:32 +02:00
Jeroen van RijnandGitHub f328929939 Merge pull request #4038 from Hyrtwol/core-sys-windows-rawinput-code
Core sys windows rawinput code
2024-08-08 18:23:02 +02:00
Jeroen van Rijn 94c62fb630 Fix typo. 2024-08-08 18:01:09 +02:00
Jeroen van RijnandGitHub a7fe9eec73 Merge pull request #4037 from Kelimion/symlink_test
Allow symlink test to work irrespective of git settings.
2024-08-08 17:56:05 +02:00
Jeroen van Rijn d93f3c63d8 Rename package to test_core_os to fit with the rest of test_* 2024-08-08 17:49:08 +02:00
Jeroen van Rijn ada3df303e Allow symlink test to work irrespective of git settings. 2024-08-08 17:46:00 +02:00
Jeroen van RijnandGitHub 4b9ca39522 Merge pull request #4035 from karl-zylinski/build-release-hint
Added a hint at end of build.bat about release mode when building in debug mode
2024-08-08 14:48:48 +02:00
Jeroen van Rijn 796feeead9 Remove LLVM copy from nightly. 2024-08-07 22:12:23 +02:00
Jeroen van Rijn 2bf055ec6e Delete empty file after access check. 2024-08-07 19:38:36 +02:00
Jeroen van Rijn 69a15ca5b6 Don't copy LLVM shared object on Linux
We copy the LLVM shared object when building Odin on Linux. Contrary the comment in `build_odin.sh`,
this is unnecessary, and Odin can be compiled and itself compile things just fine without this step.

This is then packaged up at release and leads to #4019 and #4033. The Linux release builds are built
on Ubuntu and not strictly supported on other Linux distributions. Building from source is preferred.
2024-08-07 14:50:45 +02:00
Jeroen van Rijn 17ebaffce8 Update comment. 2024-08-05 22:12:22 +02:00
Jeroen van Rijn 4902288a5a Add reflect.struct_field_count that returns the number of fields in a struct type
Example:
```odin
package struct_count_example

import "core:fmt"
import "core:reflect"
import "core:dynlib"

Foo :: struct{
	one: int,
	two: f32,
}

Bar :: struct {
	three: int,
	four:  bool,
	five:  f64,
}

Game_Api :: struct {
	init:      proc(api: ^Game_Api),
	update:    proc(api: ^Game_Api),

	using foo: Foo,
	bar:       Bar,

	// Private stuff
	reload_count: int,
	__handle:     rawptr,
}
API_PRIVATE_COUNT :: 2

game_api: Game_Api

main :: proc() {
	fmt.printfln("Game_Api, .Top:       %v", reflect.struct_field_count(Game_Api))              // 6
	fmt.printfln("Game_Api, .Using:     %v", reflect.struct_field_count(Game_Api, .Using))      // 8
	fmt.printfln("Game_Api, .Recursive: %v", reflect.struct_field_count(Game_Api, .Recursive))  // 11

	symbols_loaded, _  := dynlib.initialize_symbols(&game_api, "game.dll")
	symbols_expected   := reflect.struct_field_count(Game_Api) - API_PRIVATE_COUNT

	if symbols_loaded == -1 {
		fmt.eprintln("Couldn't load game.dll")
		return
	} else if symbols_loaded != symbols_expected {
		fmt.eprintfln("Expected %v symbols, got %v", symbols_expected, symbols_loaded)
		return
	}
}
```
2024-08-05 22:04:16 +02:00
Jeroen van RijnandGitHub 2cc3795686 Merge pull request #4027 from karl-zylinski/blend-pixel-compile-fix
Fix for blend_pixel.odin in core/image/common.odin not compiling
2024-08-05 17:38:30 +02:00
Jeroen van Rijn 6175efde3d Fix crash if referencing import "aliased" in other file.
Fixes #4026
2024-08-05 17:23:50 +02:00
Jeroen van RijnandGitHub 030220eb22 Merge pull request #4025 from karl-zylinski/patch-2
core/image/common.odin compile fix
2024-08-05 16:42:09 +02:00
Jeroen van Rijn 90e573c54a Add image.premultiply_alpha helper. 2024-08-03 12:58:43 +02:00
Jeroen van Rijn 1a16585b10 Add image.pixels_to_image helper. 2024-08-02 14:54:52 +02:00
Jeroen van RijnandGitHub 8e8660fdfc Merge pull request #4007 from marcosantos98/fix-wasm
Fix: compilation error when using BufferSubDataSlice in webgl package
2024-08-02 12:31:23 +02:00
Jeroen van Rijn 0fa62937d5 Fix NetBSD CI 2024-07-31 20:19:13 +02:00
Jeroen van Rijn f627a38b4f Update rand.reset() example. 2024-07-31 20:00:55 +02:00
Jeroen van RijnandGitHub cc8c2f236b Merge pull request #4002 from thetarnav/update-builtin-constants
Update comments for builtin constants
2024-07-31 19:47:01 +02:00
Jeroen van Rijn fdfe6b00e0 Improve output path checking
Fixes #4001
2024-07-31 15:16:09 +02:00
Jeroen van Rijn 24e6f16f4a Clamp dot in angle_between to avoid precision errors.
Fixes #3978
2024-07-28 15:00:29 +02:00
Jeroen van RijnandGitHub cb31df34c1 Merge pull request #3362 from Hyrtwol/sys-windows-2
core/sys/windows part 2
2024-07-26 14:29:56 +02:00
Jeroen van RijnandGitHub 4e194d5dbd Merge pull request #3980 from Kelimion/format-time
Add `time.to_string*` formatters.
2024-07-25 21:09:51 +02:00
Jeroen van Rijn 00c6b83537 Use constants in example. 2024-07-25 21:02:38 +02:00
Jeroen van Rijn ca7d86084e Improve docs. 2024-07-25 20:58:47 +02:00
Jeroen van Rijn 9088a493d9 Add time.to_string* formatters. 2024-07-25 19:43:42 +02:00
Jeroen van Rijn 4ff62994bf Add CLSCTX_ALL 2024-07-24 22:54:17 +02:00
Jeroen van RijnandGitHub 33d6677514 Merge pull request #3951 from Kelimion/lua_test
Add Lua example to `vendor:lua` as well as basic tests.
2024-07-24 17:50:49 +02:00
Jeroen van Rijn 8d6ff51922 Copy lua54.dll during CI test 2024-07-24 17:43:51 +02:00
Jeroen van RijnandGitHub da80c51195 Merge pull request #3966 from KyleNBurke/sys-windows-add-type
Add `NCCALCSIZE_PARAMS` to `sys/windows`
2024-07-23 07:45:44 +02:00
Jeroen van Rijn 9cad8179b7 Clarify core:time Unix timestamp 2024-07-22 20:00:25 +02:00
Jeroen van RijnandGitHub ccf8b2764d Create README.md 2024-07-22 18:00:57 +02:00
Jeroen van Rijn 07d2aba310 Simplify exe path check. 2024-07-22 16:36:21 +02:00
Jeroen van RijnandGitHub 4889641af4 Merge pull request #3959 from Kelimion/fix-output-is-directory-check
Fix .exe path is directory check.
2024-07-22 16:22:17 +02:00
Jeroen van Rijn 90a4d12b30 Fix .exe path is directory check. 2024-07-22 16:11:33 +02:00
Jeroen van RijnandGitHub a39b6de18c Merge pull request #3958 from Kelimion/fix-3473
Fix #3473
2024-07-22 15:41:39 +02:00
Jeroen van Rijn 39657e4d96 Fix #3473
Fix the problem where the initial package's directory name ended in .odin.
2024-07-22 15:15:51 +02:00
Jeroen van RijnandGitHub 51733fce68 Merge pull request #3952 from Ronaldr1985/master
Ensure that values in ini map are unquoted
2024-07-21 14:58:15 +02:00
Jeroen van RijnandGitHub a056e9da81 Merge pull request #3954 from flysand7/docs-thread
[thread]: Document all functions in core:thread
2024-07-21 14:10:49 +02:00
Jeroen van Rijn 431227d4c5 Add NULL check in check_range_stmt
Fixes #3953
2024-07-21 02:52:53 +02:00
Jeroen van Rijn fc5ce30f34 Allow json to unmarshal empty struct. 2024-07-21 00:37:11 +02:00
Jeroen van RijnandGitHub 572b400d8e Merge pull request #3950 from Ronaldr1985/master
Add tests for encoding/ini
2024-07-20 18:47:08 +02:00
Jeroen van Rijn f78a792d48 Add Lua example to vendor\lua as well as basic tests. 2024-07-20 18:30:41 +02:00
Jeroen van RijnandGitHub cdd2c98b8d Merge pull request #3948 from flysand7/docs-time
[time]: Document all functions
2024-07-20 16:06:07 +02:00
Jeroen van Rijn 9d6ed991cb Remove LUA panic for non-big-3 OS 2024-07-20 14:33:34 +02:00
Jeroen van Rijn 2385e1ddd9 Update LUA imports for Darwin. 2024-07-20 14:24:01 +02:00
Jeroen van RijnandGitHub 64614889de Merge pull request #3946 from flysand7/x11-fixes
[vendor/x11]: Fix missing argument in XDefaultDepth, wrong types in CreateSimpleWindow
2024-07-20 04:00:00 +02:00
Jeroen van RijnandGitHub d9d044970e Merge pull request #3945 from flysand7/docs-datetime
[time/datetime]: Document package datetime
2024-07-20 03:56:21 +02:00
Jeroen van Rijn 7237f9c9f8 Help text default -o:none -> -o:minimal. 2024-07-19 20:47:26 +02:00
Jeroen van Rijn 5520b45457 Add glfw LICENSE file 2024-07-16 22:59:32 +02:00
Jeroen van RijnandGitHub 0a9c150748 Merge pull request #3929 from laytan/fix-fmt-len-transfer-to-children
fmt: fix optional_len or use_nul_termination being used by both array and elems
2024-07-15 19:36:20 +02:00
Jeroen van RijnandGitHub 3a75a8dd1b Merge pull request #3928 from Yawning/feature/aes-ni
core/crypto: Support AES-NI + PCLMUL
2024-07-15 18:41:21 +02:00
Jeroen van Rijn e3e31b42d0 #force_no_inline build_huffman to avoid bloat 2024-07-15 00:54:08 +02:00
Jeroen van RijnandGitHub 03cb585845 Merge pull request #3908 from NicknEma/Intrusive-list-docs
Write docs for `core:container/intrusive/list` package
2024-07-14 23:28:53 +02:00
Jeroen van RijnandGitHub 65dab3a3b1 Merge pull request #3925 from Feoramund/fix-no-return-switch
Fix compiler crash when switching on no value
2024-07-14 21:26:46 +02:00
Jeroen van RijnandGitHub 76b0562acd Merge pull request #3923 from laytan/fix-off-by-one-in-queue-back
Fix off-by-one in queue `back` and `back_ptr` procs
2024-07-14 16:09:16 +02:00
Jeroen van RijnandGitHub 88823c4024 Merge pull request #3921 from Ronaldr1985/master
Fix logic bug in core/encoding/ini/ini.odin
2024-07-14 14:48:47 +02:00
Jeroen van RijnandGitHub d845a07519 Merge pull request #3912 from xzores/master
Update stb_truetype.odin
2024-07-13 00:16:34 +02:00
Jeroen van RijnandGitHub a8ce5bd005 Merge pull request #3903 from laytan/allow-mem-virtual-import-on-more-targets
allow `core:mem/virtual` import on more targets by expanding the `other` implementation
2024-07-11 02:12:53 +02:00
Jeroen van Rijn c49afb0039 Add hinstdll forward to runtime globals 2024-07-10 19:58:29 +02:00
Jeroen van Rijn b02291b20a Compile demo with -vet -strict-style. 2024-07-10 19:26:35 +02:00
Jeroen van Rijn 4148c6d6c7 #if WINDOWS 2024-07-10 15:25:49 +02:00
Jeroen van Rijn cc73e06a46 Allow precompiled resources with -resource:foo.res
And add them to the magic new feature.
2024-07-10 15:09:13 +02:00
Jeroen van Rijn 8dc4eca4d2 Allow using precompiled .res file. 2024-07-10 14:25:18 +02:00
Jeroen van RijnandGitHub d43a2daa17 Merge pull request #3897 from Kelimion/simd-vet
Let simd/x86 pass new transmute/cast vet.
2024-07-09 17:04:45 +02:00
Jeroen van Rijn 7b31acd2d7 Let simd/x86 pass new transmute/cast vet. 2024-07-09 16:50:55 +02:00
Jeroen van RijnandGitHub 9575d85f1a Merge pull request #3511 from IllusionMan1212/x11-xkb
vendor/x11: some XKB extension procedures and constants
2024-07-08 21:14:26 +02:00
Jeroen van RijnandGitHub ec2234560a Merge pull request #3889 from laytan/darwin-remove-implicit-syscall-usage
darwin: remove syscall usage (without -no-crt) to comply to Apple guidelines
2024-07-08 15:54:24 +02:00
Jeroen van RijnandGitHub 212906ecd2 Merge pull request #3886 from laytan/cbor-enhancements
CBOR enhancements
2024-07-08 02:01:39 +02:00
Jeroen van RijnandGitHub 861ad2037f Merge pull request #3884 from Feoramund/fix-3883
Forbid `$T=` parameter from crashing compiler
2024-07-06 22:08:05 +02:00
Jeroen van RijnandGitHub b79a098c2e Merge pull request #3882 from Kelimion/clean_up_iterator
Remove nil checks.
2024-07-06 18:45:45 +02:00
Jeroen van Rijn 258f120d52 Remove nil checks.
The caller should really not pass `foo: ^string = nil`. A `for ch, in foo` would also crash,
so let's not introduce new semantics for iteration.

A caller shouldn't pass garbage if they can help it, and a `nil` ^string is not a useful ZII usage here.
2024-07-06 18:34:52 +02:00
Jeroen van RijnandGitHub 25904e8f89 Merge pull request #3878 from Poaetce/setsid-returns-pid
[sys/linux]: change setsid to return Pid
2024-07-06 01:21:22 +02:00
Jeroen van RijnandGitHub ecffe5a082 Merge pull request #3877 from Kelimion/wstring_fix
Fix utf8_to_wstring given zero bytes.
2024-07-05 13:58:49 +02:00
Jeroen van Rijn 9ecc33570b Improve fix. 2024-07-05 13:51:38 +02:00
Jeroen van Rijn 164a5e587e Fix utf8_to_wstring given zero bytes. 2024-07-05 13:46:07 +02:00
Jeroen van RijnandGitHub c8432df248 Merge pull request #3874 from laytan/fix-not-detecting-duplicate-proc-case
Fix not detecting duplicate proc cases
2024-07-05 01:00:14 +02:00
Jeroen van Rijn 22fabba2f6 Fix #3873 2024-07-05 00:48:08 +02:00
Jeroen van RijnandGitHub 3c2161b196 Merge pull request #3870 from laytan/fix-fontstash-proc-group
vendor/fontstash: fix 'AddFont' proc group for JS target
2024-07-04 17:05:49 +02:00