gingerBill
8a00d85cea
Merge branch 'master' of https://github.com/odin-lang/Odin
2024-10-30 14:12:57 +00:00
gingerBill
2392300ffb
Add warning for unsigned >= 0 like conditions in a for loop
2024-10-30 14:12:49 +00:00
gingerBill and GitHub
f469bbb004
Merge pull request #4425 from bobsayshilol/misc-fixes
...
Misc fixes
2024-10-30 12:24:23 +00:00
gingerBill and GitHub
ee76acd665
Merge pull request #4427 from laytan/posix-additions
...
Finish sys/posix with Linux and partial Windows support & clean up other packages as a result
2024-10-30 11:43:47 +00:00
gingerBill and GitHub
8312528a87
Merge pull request #4436 from karl-zylinski/utf8string-last-rune-bug
...
Fix for using `utf8string.at` with last rune index returning wrong rune
2024-10-30 11:42:47 +00:00
Karl Zylinski
36b958c120
Fix for using utf8string.at with last rune index returning wrong rune.
2024-10-30 11:10:36 +01:00
Jeroen van Rijn and GitHub
d8187d1cf2
Merge pull request #4432 from Kelimion/fix-4431
...
match_exact_value: return when type is compound
2024-10-29 14:05:07 +01:00
Jeroen van Rijn
b46b34228e
match_exact_value: return when type is compound
...
fixes #4431
2024-10-29 13:59:11 +01:00
Laytan and GitHub
47be77ead5
Merge pull request #4430 from Wyr0X/patch-1
...
fix cbor.to_json always returning array of tuples for objects
2024-10-29 11:46:51 +01:00
Jeroen van Rijn
28a3a68dc9
Fix image.which_bytes
...
Invert test in `which_bytes` to fix Softimage PIC detection. Fixes #4429 .
2024-10-29 09:55:27 +01:00
Alexis Caraballo and GitHub
31d5bc48a7
fix cbor.to_json always returning array of tuples for objects
...
to_json uses a small proc to check if all keys of an object are strings.
It was always returning false for any input.
2024-10-29 01:50:38 -03:00
Laytan and GitHub
5f99d6b427
Merge pull request #4423 from laytan/rand-choice-bit-set
...
math/rand: add `choice_bit_set`
2024-10-28 20:23:45 +01:00
Laytan
cb2768625a
math/rand: choice_bit_set return not_empty -> ok
2024-10-28 20:07:38 +01:00
Laytan and GitHub
3e024347ee
Merge pull request #4426 from SrMordred/patch-1
...
Update process_windows.odin
2024-10-28 20:06:24 +01:00
Laytan
7e12e37df9
fix test
2024-10-28 19:58:39 +01:00
Laytan
b7140875cf
port pthread_mutex_t and pthread_cond_t from sys/unix cause miniaudio wants it
2024-10-28 19:42:27 +01:00
Laytan
0b4a4212bb
clean up dynlib and path/filepath with sys/posix
2024-10-28 19:21:16 +01:00
Laytan
afed3ce6b5
remove pthread from sys/unix and use sys/posix where used
2024-10-28 19:20:43 +01:00
Laytan
e064f8c6be
fix #load_directory including nested directories
2024-10-28 18:59:39 +01:00
Laytan Laats
1cebc025b0
sys/posix: impl rest of linux, impl some of Windows
2024-10-28 18:59:06 +01:00
Jeroen van Rijn and GitHub
d4e87f7a62
Merge pull request #4421 from IllusionMan1212/fix-escaping-rune-greater-than-U-FFFF
...
core/io: correctly escape runes greater than 0xFFFF
2024-10-28 14:05:43 +01:00
Patric Dexheimer and GitHub
b6599a52b5
Update process_windows.odin
...
Mistype
2024-10-27 23:27:18 -03:00
bobsayshilol
b59647084b
Plug a memory leak
...
The call to |array_make()| always allocates and since this variable was
unused it lead to a leak. Simply plug it by removing it.
2024-10-27 22:02:34 +00:00
bobsayshilol
bb308b3ff4
Add missing guards around push/pop pragmas
...
This matches all the other places where we silence Windows warnings.
2024-10-27 22:02:34 +00:00
bobsayshilol
c1496ab6c0
Fix passing nullptr to args marked as non-null
...
libstdc++'s |memcpy| and |memset| both state that their inputs should
never be a nullptr since this matches the C spec. Some compilers act on
these hints, so we shouldn't unconditionally call these as it would
signal to the compiler that they can't be nullptrs.
As an example, the following code will always call |do_something()|
when compiled with optimisations since GCC version 4.9:
```
void clear(void *ptr, int size) {
memset(ptr, 0, size);
}
void example(void *ptr, int size) {
clear(ptr, size);
if (ptr != nullptr) do_something();
}
```
2024-10-27 22:02:34 +00:00
bobsayshilol
4f800a7fda
Avoid undefined arithmetic shifting
...
The result of a left shift on a positive signed integer (Rune) must fit
into an unsigned integer otherwise it's undefined behaviour, as is left
shifting a negative integer by any amount. This code can only be hit if
|x >= 0xf0| and hence a left shift of 31 will always be undefined
unless the input is 0 or 1.
To avoid hitting this we can instead extend the lowest bit to be the
mask if we assume that ints are 2's complement, which we already do
elsewhere. This generates identical code in testing on Compiler
Explorer and the Odin test suite passes locally with this change.
Note that the original code would change to be defined behaviour in
C++20, however we are currently build with |-std=c++14| in the build
scripts.
2024-10-27 22:02:34 +00:00
bobsayshilol
e67692b066
Avoid member access through nullptr in debug
...
If |result_count| is 0 then |results| will be a nullptr and hence the
access |results->Tuple| is undefined behaviour. There's already an
early return in the 0 branch so move that to be the first thing so that
we can guarantee that it's not a nullptr.
Note that technically we take the address of the result so it's not
actually dereferencing it, however UBSan doesn't care about that.
2024-10-27 22:02:34 +00:00
bobsayshilol
771d308d64
Fix invalid union access
...
UBSan spotted that |src->Basic.kind| had a value outside the range of
|BasicKind| due to it actually being a |Type_Pointer|. Since these are
stored in a union there could be cases where the value of |kind| just
so happens to be |Basic_string|, in which case the branch would have
been taken when it shouldn't have been.
To fix this simply check that it's a |Type_Basic| before treating it as
a |Basic|.
2024-10-27 21:24:36 +00:00
gingerBill and GitHub
1f187adff4
Merge pull request #4416 from Yawning/fix/4413
...
src/big_int.cpp: Use square-multiply for exponentiation
2024-10-27 12:13:40 +00:00
gingerBill
35d818bb4e
Fix possible leak in recursive filepath.glob
2024-10-27 12:10:10 +00:00
gingerBill
f32e27d2e4
Fix bug caused due to incorrect type checking looking for context not defined in a context
2024-10-27 11:10:55 +00:00
Laytan Laats
69d375705e
fix the typeid type kind of a typeid being set to Typeid_Invalid
2024-10-27 01:11:44 +02:00
Laytan Laats
44eef21997
wgpu: add missing JS impl for RenderPassEncoderSetBlendConstant
2024-10-26 22:41:52 +02:00
Laytan Laats
bd38b4839c
sys/wasm/js: add set_element_style
2024-10-26 22:41:14 +02:00
Laytan Laats
4608d26e6e
encoding/cbor: fix skipping of ignored/missing fields in struct unmarshal
2024-10-26 22:39:46 +02:00
Laytan and GitHub
1e3a924e11
Merge pull request #4420 from laytan/cbor-better-handling-of-mismatch-in-struct-and-binary-fields
...
encoding/cbor: handle binary having more fields than the struct by discarding
2024-10-26 17:14:44 +02:00
Laytan Laats
10c2f8dbeb
math/rand: add choice_bit_set
2024-10-26 13:50:28 +02:00
IllusionMan1212
8906ffb39c
core/io: correctly escape runes greater than 0xFFFF
2024-10-26 01:25:12 +02:00
Jeroen van Rijn and GitHub
831558a7c2
Merge pull request #4419 from laytan/rand-choice-enum-non-contiguous
...
math/rand: support non-contiguous enums in choice_enum
2024-10-25 23:46:05 +02:00
Laytan Laats
bb4fc9979a
math/rand: support non-contiguous enums in choice_enum
2024-10-25 20:41:57 +02:00
Laytan Laats
793ef6012b
encoding/cbor: handle binary having more fields than the struct by discarding
2024-10-25 20:37:55 +02:00
Laytan and GitHub
3b6ed2164b
Merge pull request #4399 from laytan/wgpu-improvements
...
wgpu: take version check out of @init, use C cc when appropriate
2024-10-25 20:15:15 +02:00
Laytan and GitHub
0b8e98febe
Merge pull request #4398 from laytan/image-misuse-panic
...
image: add panic when load is called without any registered loaders
2024-10-25 20:05:32 +02:00
gingerBill and GitHub
4bde87de8f
Merge pull request #4418 from laytan/check-packed-on-all-loads
...
check packed load and set alignment on all loads, not just lb_emit_load
2024-10-25 14:35:32 +01:00
Laytan Laats
bcf2b93c6e
quote the dsymutil argument
...
Fixes #4417
2024-10-25 15:34:59 +02:00
Laytan Laats
da1e09c95d
check packed load and set alignment on all loads, not just lb_emit_load
2024-10-25 15:23:15 +02:00
Yawning Angel
61795232f4
src/big_int.cpp: Use square-multiply for exponentiation
...
For utterly unrealistic constant sizes, this still crashes on my system,
but it crashes fast due to the OOM killer, and people using rediculously
large exponents get what they deserve.
2024-10-25 11:46:47 +09:00
gingerBill and GitHub
f047f804f6
Merge pull request #4402 from Lperlind/utf16_rune_count
...
core/unicode/utf16: add rune_count proc
2024-10-23 15:25:21 +01:00
gingerBill and GitHub
33cc671302
Merge pull request #4403 from tf2spi/issue-4390-fix
...
Fix #4390 by assigning invalid entity type
2024-10-23 15:25:06 +01:00
gingerBill and GitHub
c5ae7daecd
Merge pull request #4404 from tf2spi/issue-4395-fix
...
Fixes #4395 by not assuming simd returns val
2024-10-23 15:24:59 +01:00