Commit Graph

9656 Commits

Author SHA1 Message Date
xb-bx
c6c710465a fix 2024-01-08 19:54:39 +02:00
gingerBill
f3dc1f6e3b Merge pull request #3075 from FrancisTheCat/fix-sort_by_indices_overwrite
Fixed type of temporary slice in sort_by_indices_overwrite
2024-01-08 16:39:08 +00:00
Franz Höltermann
873b7f8588 Fixed type of temporary slice in sort_by_indices_overwrite 2024-01-08 17:11:06 +01:00
Jeroen van Rijn
7d3dfb1046 Merge pull request #3006 from hwchen/hwchen/last_index_any
fix strings.last_index_any for single char
2024-01-08 15:57:36 +01:00
gingerBill
f4782157d3 Implement instrumentation pass 2024-01-07 21:34:44 +00:00
gingerBill
aff8f06e3c Add frontend stuff instrumentation tooling
//+no-instrumentation
@(no_instrumentation)
@(instrumentation_enter)
@(instrumentation_exit)
2024-01-07 19:56:00 +00:00
gingerBill
1e1228fb37 Merge pull request #3024 from Yawning/fix/simd-x86
core:simd/x86: Various fixes
2024-01-07 11:57:22 +00:00
Yawning Angel
8d7c37e384 core/simd/x86: Use the none calling convention for intrinsics
The LLVM intrinsics that live under `llvm.x86` are not actual functions,
so trying to invoke them as such using the platform's native C
calling convention causes incorrect types to be emitted in the IR.

Thanks to laytanl for assistance in testing.
2024-01-07 20:04:40 +09:00
Yawning Angel
cd65a15d81 src: enable_target_feature should add features, not overwrite
`llvm_features` being empty is the default state, and implies the
presence of certain features.

Previously if any target features were explicitly enabled by the
`enable_target_feature` attribute, they were added comma separated
to `llvm_features`.

For example: `lzcnt,popcnt,...,sse4.2,sse`

This was causing LLVM to try to target a CPU that *ONLY* has the
explicitly enabled features.  This now will prefix explicitly enabled
features with a `+`, and preserve the existing `llvm_features` string
by appending to it if it is set.
2024-01-07 20:04:40 +09:00
Yawning Angel
9235e82451 core/simd/x86: Correct a target feature name 2024-01-07 20:04:40 +09:00
Yawning Angel
ecee0e2db2 repo: Add more test binaries to .gitignore 2024-01-07 20:04:40 +09:00
Jeroen van Rijn
2784e8ea51 Merge pull request #3072 from laytan/add-dynlib-last_error
dynlib: add last_error procedure
2024-01-06 02:13:53 +01:00
Laytan Laats
85b71708dd dynlib: add last_error procedure 2024-01-06 02:08:11 +01:00
Jeroen van Rijn
649b5fa528 Add bool return to dynlib.initialize_symbols. 2024-01-06 02:04:09 +01:00
Jeroen van Rijn
d6a89d667d Add dynlib.initialize_symbols (#3071)
```
package example

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

Symbols :: struct {
	// `foo_` is prefixed, so we look for the symbol `foo_add`.
	add: proc "c" (int, int) -> int,
	// We use the tag here to override the symbol to look for, namely `bar_sub`.
	sub: proc "c" (int, int) -> int `dynlib:"bar_sub"`,

	// Exported global (if exporting an i32, the type must be ^i32 because the symbol is a pointer to the export.)
	// If it's not a pointer or procedure type, we'll skip the struct field.
	hellope: ^i32,

	// Handle to free library.
	// We can have more than one of these so we can match symbols for more than one DLL with one struct.
	_my_lib_handle: dynlib.Library,
}

main :: proc() {
	sym: Symbols

	// Load symbols from `lib.dll` into Symbols struct.
	// Each struct field is prefixed with `foo_` before lookup in the DLL's symbol table.
	// The library's Handle (to unload) will be stored in `sym._my_lib_handle`. This way you can load multiple DLLs in one struct.
	count := dynlib.initialize_symbols(&sym, "lib.dll", "foo_", "_my_lib_handle")
	defer dynlib.unload_library(sym._my_lib_handle)
	fmt.printf("%v symbols loaded from lib.dll (%p).\n", count, sym._my_lib_handle)

	if count > 0 {
		fmt.println("42 + 42 =", sym.add(42, 42))
		fmt.println("84 - 13 =", sym.sub(84, 13))
		fmt.println("hellope =", sym.hellope^)
	}
}
```
2024-01-06 01:31:27 +01:00
gingerBill
b408ec6bac Remove distinct from the specific types 2024-01-05 14:48:39 +00:00
gingerBill
8545f316ff Fix the type inference in builtin.quaternion 2024-01-05 14:45:03 +00:00
gingerBill
3bf7b416e7 Fix builtin.quaternion generation 2024-01-05 14:36:58 +00:00
gingerBill
0b83e3dae5 Enforce naming the parameters with builtin.quaternion to reduce confusion 2024-01-05 14:29:14 +00:00
gingerBill
d7d23e65ea Clean up error block usage 2024-01-05 13:47:00 +00:00
gingerBill
2820bbc269 Add @(entry_point_only) for procedures 2024-01-05 13:38:30 +00:00
gingerBill
70c5153471 Merge branch 'master' of https://github.com/odin-lang/Odin 2024-01-03 21:00:35 +00:00
gingerBill
5961d4b316 Merge pull request #2983 from perogycook/raylib5
Raylib5 bindings with fixes
dev-2024-01
2024-01-03 18:32:45 +00:00
Jeroen van Rijn
b59c80d6fd Merge pull request #3068 from laytan/json-unmarshal-union
encoding/json: try to unmarshal into union variants
2024-01-03 19:13:36 +01:00
Laytan Laats
8c10f4cdde encoding/json: try to unmarshal into union variants 2024-01-03 19:02:30 +01:00
gingerBill
0cc72b536f Merge pull request #3066 from laytan/darwin-actually-honor-no-crt
darwin: actually honor no-crt by not linking with `-lSystem -lm`
2024-01-03 17:25:41 +00:00
Laytan Laats
8a7c2ea9d0 darwin: actually honor no-crt by not linking with -lSystem -lm 2024-01-02 21:44:51 +01:00
Jeroen van Rijn
cb1c10ce83 Merge pull request #3067 from Platin21/fix/macos-no-duplicated-linkage
Fix/macos no duplicated linkage
2024-01-02 21:35:41 +01:00
Platin21
37c2e9bec3 Fixed Typo / Added check for 1 2024-01-02 21:14:17 +01:00
Platin21
4626cd03da Adds missing space 2024-01-02 21:04:44 +01:00
Platin21
3850be2e11 Fixed git issue.. 2024-01-02 21:04:03 +01:00
Platin21
4c9aa30a1e Merge remote-tracking branch 'origin/master' into fix/macos-min-version 2024-01-02 20:55:20 +01:00
Platin21
da977cf1e6 Adds new flag for linker to know if it should link the system library or not 2024-01-02 20:55:15 +01:00
Jeroen van Rijn
ee97c5958f Merge pull request #3065 from Platin21/fix/macos-min-version
Removes macOS min version and supports default latest
2024-01-02 20:07:26 +01:00
Platin21
778bbee17c Removes macOS min version and supports default latest 2024-01-02 19:49:44 +01:00
Jeroen van Rijn
4efef08c94 Update core:encoding to Unicode 15.1 table. 2024-01-02 18:03:32 +01:00
gingerBill
87c835268a Merge pull request #2917 from flysand7/sys-linux-additions
[sys/linux]: Fixes and additions
2024-01-02 14:23:40 +00:00
gingerBill
83ed0b37cd Merge pull request #3036 from laytan/error-when-c-vararg-is-not-on-last-param
error when #c_vararg is not applied to the last parameter
2024-01-02 14:22:24 +00:00
gingerBill
dc49cf766f Merge pull request #3048 from ThomasL81/master
Fixing a pdb linker error when the path contains spaces
2024-01-02 14:18:44 +00:00
gingerBill
933754193a Merge pull request #3049 from igordreher/dxgi_bit_set
[vendor:directx/dxgi] change u32 flags to bit_sets
2024-01-02 14:18:09 +00:00
gingerBill
76eef47491 Merge pull request #3054 from igordreher/win_error
[core:sys/windows] add System Error Codes enum
2024-01-02 14:16:36 +00:00
gingerBill
0e21f45076 Merge pull request #3057 from korvahkh/fix-nil-default-arg
Fix #3056
2024-01-02 14:14:35 +00:00
gingerBill
9bfe3a94f4 Merge pull request #3061 from flysand7/glfw-set-joystick-callback-fix
Fix the declaration of SetJoystickCallback
2024-01-02 14:13:53 +00:00
gingerBill
a2009220a2 Merge pull request #3063 from aragalie/patch-1
remove duplication
2024-01-02 14:13:42 +00:00
gingerBill
b410383aaf Merge branch 'master' of https://github.com/odin-lang/Odin 2024-01-01 16:11:13 +00:00
Alex Ragalie
b47736260a remove duplication 2023-12-31 21:57:39 +01:00
flysand7
5154bb551a Fix the declaration of glfwSetJoystickCallback 2023-12-31 15:03:50 +11:00
Jeroen van Rijn
89084befb0 Remove unnecessary []byte -> []byte conversion. 2023-12-30 21:59:33 +01:00
gingerBill
f3caa4aee3 Add bin/lld-link.exe 2023-12-30 13:53:15 +00:00
gingerBill
3ec253f385 Add bin/wasm-ld.exe 2023-12-30 13:52:37 +00:00