Commit Graph

843 Commits

Author SHA1 Message Date
gingerBill
8ff15eaf69 More contextless fixes 2025-08-08 13:02:37 +01:00
gingerBill
78290ceef3 Add contextless to another proc 2025-08-08 12:38:20 +01:00
gingerBill
d3f649d244 Make get_args contextless 2025-08-08 12:25:58 +01:00
gingerBill
7642e0a0e0 Require @(init) and @(fini) to be proc "contextless" () 2025-08-08 12:10:01 +01:00
gingerBill
eae43f1225 Merge branch 'master' into bill/utf16-strings 2025-08-05 15:07:06 +01:00
Jared Cone
b1cda52fd6 Fixed delete-after-free in file_windows.odin 2025-08-04 19:42:23 -07:00
gingerBill
5aec40e3e0 Remove unneeded uses of intrinsics.constant_utf16_cstring 2025-08-02 12:55:05 +01:00
gingerBill
c631a8eff5 os2 internals -> (c)string16 2025-08-02 12:47:03 +01:00
gingerBill
bb4bc316a4 for in string16; Support string16 across core 2025-08-02 12:20:35 +01:00
WisonYe
4ccdb48044 Fixed the build check: ('arg' declared but not used) against the '-default-to-nil-allocator' fix for FreeBSD/OpenBSD/NetBSD/Linux. 2025-07-19 12:29:03 +12:00
WisonYe
b9f08412ae Fixed Index 0 is out of range 0..<0' when using '-default-to-nil-allocator' for Linux/OpenBSD/NetBSD. 2025-07-19 12:03:22 +12:00
WisonYe
26e4104ac9 Fixed 'Odin/core/os/os_linux.odin(1104:7) Index 0 is out of range 0..<0' when using '-default-to-nil-allocator'. 2025-07-19 11:59:18 +12:00
WisonYe
80cd080175 Fixed 'Odin/core/os/os_freebsd.odin(971:7) Index 0 is out of range 0..<0' when using '-default-to-nil-allocator'. 2025-07-19 11:54:17 +12:00
Harold Brenes
219b0fe535 Replace system:System.framework imports with system:System
This makes the linker work for both macOS and iOS targets
2025-07-13 15:45:21 -04:00
Jeroen van Rijn
2e83e22141 Merge branch 'master' into args-leak 2025-06-27 01:20:37 +02:00
Jeroen van Rijn
b9809e7aa4 OpenBSD 2025-06-16 20:39:19 +02:00
Jeroen van Rijn
73dcc39d98 Fix macOS 2025-06-16 20:22:15 +02:00
Jeroen van Rijn
6347c87b5b Add buffered get_env variants to os2 2025-06-16 20:12:27 +02:00
Jeroen van Rijn
eef07431ef Factor out buffered utf helper. 2025-06-16 20:12:27 +02:00
Jeroen van Rijn
1a2f83f123 Add bring-your-own-buffer versions of os.lookup_env and os.get_env
And make `core:terminal` use it so that `core:log` can be imported with `-default-to-nil-allocator`,
in which the actual allocator is set up in `main()`.

Windows was tricky because of the utf-8 <> utf-16 conversion, so we use some temporary stack buffers for that purpose,
limiting the non-allocating version there to 512 utf-16 characters each for the key and environment value.

In general the value is (obviously) limited to the size of the supplied buffer, and a `.Buffer_Full` error is returned
if that buffer is insufficient. If the key is not found, the procedure returns `.Env_Var_Not_Found`.

TODO:
- Factor out buffer-backed utf8 + utf16 conversion to `core:sys/util` to more easily apply this pattern.
- Add similar `lookup_env` and `get_env` procedures to `core:os/os2`.

Fixes #5336
2025-06-16 20:12:26 +02:00
Jeroen van Rijn
84eaddbd47 WASI 2025-06-13 18:08:35 +02:00
Jeroen van Rijn
8c8406cc4d stub out get_env for js 2025-06-13 18:00:30 +02:00
Jeroen van Rijn
3862555153 Replace core:posix usage in core:os/os2 2025-06-13 17:49:05 +02:00
gingerBill
87247b8bb7 Merge pull request #5286 from Feoramund/no-san-mem
Add `@(no_sanitize_memory)` with additions to `base:sanitizer`
2025-06-09 12:46:22 +01:00
Jeroen van Rijn
77f4199af6 Simplify _xdg_user_dirs_lookup 2025-06-08 14:56:41 +02:00
Jeroen van Rijn
6d7f5baaf8 Merge pull request #5295 from elyalon/dirs
Fix user dirs, add docs
2025-06-07 11:13:40 +02:00
Ely Alon
deeb9e2d12 remove fmt import 2025-06-07 01:40:43 +03:00
Ely Alon
17746db555 Fix user dirs, add docs 2025-06-07 01:22:30 +03:00
Jeroen van Rijn
e870369c97 Merge pull request #5288 from Feoramund/strconv-append-to-write
Clarify `strconv.append_*` to `strconv.write_*`
2025-06-05 23:45:37 +02:00
Feoramund
b7de15caa3 Clarify strconv.append_* to strconv.write_* 2025-06-05 16:56:00 -04:00
Jeroen van Rijn
108c8781c7 Factor out into helper. 2025-06-05 22:27:18 +02:00
Feoramund
f8228a91d1 Mark some uninitialized memory as safe
Syscalls (but not C functions) are opaque to MemorySanitizer, thus some
memory addresses need to be manually marked as safe to access.
2025-06-05 16:06:44 -04:00
Jeroen van Rijn
90a1b0ec4b UAF 2025-06-05 21:45:36 +02:00
Jeroen van Rijn
2428fa37a9 tabs 2025-06-05 21:38:59 +02:00
Ely Alon
a9cdb4f446 add more user dirs 2025-06-05 21:50:59 +03:00
Jeroen van Rijn
a1759aa2fa Fix 2025-06-05 16:54:39 +02:00
Jeroen van Rijn
93e1c6593e Change os2.user_* on Windows to use SHGetKnownFolderPath.
Known folders can be redirected using `SHSetKnownFolderPath`, and it's a bit iffy to rely on environment variables.

This also more easily allows us to add `user_*_dir` procedures for the remaining 139 GUIDs in `known_folders.odin`, provided they have equivalents on other platforms.
2025-06-05 16:37:41 +02:00
Jeroen van Rijn
da3b3a4139 Allocate return value on provided allocator 2025-06-05 15:16:35 +02:00
Jeroen van Rijn
d4a1670b93 Fix core:log on -target:js_wasm32 2025-06-02 14:44:26 +02:00
Laytan Laats
eab3e2be22 os2: remove libc use on Linux 2025-05-20 19:48:06 +02:00
Jeroen van Rijn
d7a83a7a1f Revert "os2: Don't try to translate Windows file attributes to Unix mode flags"
This reverts commit 95923c2059.
It'll be updated later.
2025-05-12 23:34:12 +02:00
Jeroen van Rijn
30388cada3 Fix os2.clean_path on Windows 2025-05-11 15:35:52 +02:00
Laytan Laats
cacb9f9f54 os2: better copy_directory, and add native copy_file and copy_directory variants on MacOS 2025-05-08 19:32:30 +02:00
Lucas Perlind
f5b947ea73 Fix linux 2025-05-08 17:45:29 +10:00
Lucas Perlind
14c5096b81 Improve assert information 2025-05-08 17:41:03 +10:00
Lucas Perlind
9f2d008a8a Remove TEMP_ALLOCATOR_GUARD wrapper 2025-05-08 17:41:03 +10:00
Lucas Perlind
5292a7f4f3 Fix posix 2025-05-08 17:41:03 +10:00
Lucas Perlind
1bea59ee68 Fix linux 2025-05-08 17:41:03 +10:00
Lucas Perlind
190960e103 fix -vet 2025-05-08 17:41:03 +10:00
Lucas Perlind
b9db1dd3e0 os2: Resolve temp allocator collisions 2025-05-08 17:41:01 +10:00