Commit Graph

301 Commits

Author SHA1 Message Date
f251f87bcf test_processes: Remove flaky assertion 1.0.0-beta.5 2025-11-20 01:39:33 -07:00
aa2bbb1e1c Refactor heap and add dynamic expansion (increments of 64 MiB) 2025-11-20 01:32:04 -07:00
d1741d5eb9 Cache gettid call in static thread_local 2025-11-18 22:48:21 -07:00
0caa5c51a7 Fix HAVE_PTHREAD_GETTID_NP definition 2025-11-18 22:04:21 -07:00
11deab36e4 heap: Map DOS area as readable
Resolves #74
2025-11-18 21:53:34 -07:00
64511becf2 kernel32/wincon cleanup 2025-11-18 21:53:16 -07:00
2304c05ed0 Add getThreadId helper using pthread_{gettid,threadid}_np/gettid 2025-11-18 21:52:23 -07:00
19697170f9 ci: Make Dockerfiles build to static path 2025-11-11 23:47:35 -07:00
ecd8231dee ci: Test on macos-15-intel 2025-11-11 23:38:08 -07:00
276d4cd7af Fix warning 2025-11-11 23:24:49 -07:00
f6e05ce48f Set appendOnly on stdout/stderr handles 1.0.0-beta.4 2025-11-11 23:18:42 -07:00
c18a10d8f4 Ignore SIGPIPE 2025-11-11 23:03:09 -07:00
5cc8d239dc Minor cleanups 2025-11-11 22:56:13 -07:00
31bc1cd013 Oops 2025-11-11 21:26:31 -07:00
3b89db146b setup.S: Fix guest/host stack switching 2025-11-11 21:25:40 -07:00
f012b22101 LoadLibraryA: Skip import resolution & DllMain for EXEs 2025-11-11 21:22:09 -07:00
4f666eefbd ci: Fix macOS artifact IDs 1.0.0-beta.3 2025-11-11 14:53:11 -07:00
5dc50c4818 Update README.md 2025-11-11 14:50:52 -07:00
85834a9923 Update README.md 2025-11-11 14:41:41 -07:00
bb48adbab5 Add system name and processor to version string 2025-11-11 14:34:47 -07:00
8c765a3d32 ci: Update release step with new artifacts 2025-11-11 14:30:44 -07:00
bb0687d00d Fix Linux build 2025-11-11 10:48:13 -07:00
09a7452c77 Implement WaitOnAddress, WakeByAddress*; macOS impl for atomic waits 2025-11-11 10:44:14 -07:00
f18f2a929d setup_linux: Improve segments init & add modify_ldt fallback 2025-11-11 00:28:44 -07:00
6c4f332705 Improve synchapi impls; fix heap races & 64-bit fixes 2025-11-10 18:15:33 -07:00
2494b541b7 x86_64 Linux: Add fallback for CPUs without RDFSBASE/WRFSBASE 2025-11-10 00:25:28 -07:00
76f97efe07 macOS: Add async_io_kqueue; alloc LDT entry per thread 2025-11-10 00:25:23 -07:00
b166b4a41c Add macOS CI 2025-11-10 00:25:17 -07:00
4a7a6b9d72 Add CMake toolchains and update CI 2025-11-10 00:24:58 -07:00
d85671e3c6 Download and use embedded msvcrt.dll 2025-11-09 13:18:33 -07:00
cc0a887302 Initial macOS support (x86_64 with Rosetta 2) 2025-11-08 01:45:47 -07:00
f56bd8e2a7 More ntdll impls; fix 64-bit Clang assembly 2025-11-08 01:22:11 -07:00
3dd9fb77ff Experimental 64-bit host support 2025-11-06 19:14:48 -07:00
463686d01a GlobalAlloc: Add VirtualAlloc fallback for large sizes 1.0.0-beta.2 2025-11-04 00:15:26 -07:00
a59e002ed0 Fix a few compiler regressions 2025-11-03 23:22:29 -07:00
67c62cf196 Refactor CRT atexit/onexit handling 2025-11-03 22:53:39 -07:00
73b1ffb8d6 Numerous msvcrt/crt fixes; support variable resolution 2025-11-03 21:46:31 -07:00
b62b01ffca Fix Alpine and Ubuntu builds 2025-11-03 20:06:26 -07:00
1c53336547 Use patched mimalloc with mi_heap_free+arena fix
See PR: https://github.com/microsoft/mimalloc/pull/1168
2025-11-03 19:51:42 -07:00
fe28241e8b Fix crt prototypes using cstdint 2025-11-03 19:30:44 -07:00
8c2b96770b CMakePresets: Rename ctest presets 2025-11-03 19:30:31 -07:00
8c39e06cca Use CDECL_NO_CONV for va_list thunks; remove .globl 2025-11-03 19:25:20 -07:00
6f4808401b CMakePresets: Add debug-clang and release-clang presets 2025-11-03 19:25:13 -07:00
1aabcee04f tools/script_venv.py: Synchronize venv management 2025-11-03 19:22:13 -07:00
bfba360d30 Implement stack switching in guest<->host trampolines 2025-11-03 19:21:35 -07:00
4dc599381f Refactor memory management into wibo::heap
- Removes blockUpper2GB hack; we now start early in the process
  and reserve all (available) space in the lower 2GB address
  space, leaving the upper 2GB untouched for host code
- All virtual memory operations flow through wibo::heap for
  bookkeeping
- All guest code uses a guest mimalloc area + thread-local heaps
  reserved in the guest address space
2025-11-03 13:58:33 -07:00
52cdd7c811 Fully functional guest<->host trampolines 2025-10-31 00:45:32 -06:00
55a62a27c9 Initial guest-to-host trampoline generation 2025-10-30 02:23:09 -06:00
9367f003c5 Refactor to use TIB LastErrorValue 2025-10-28 10:01:21 -06:00
8bd15bd272 Fix heapapi ownership checks
`mi_heap_check_owned` does not work for allocations that span
multiple blocks; `mi_is_in_heap_region` is a less precise but
working way for us to check if a pointer is in our heap.

See https://github.com/microsoft/mimalloc/issues/298
2025-10-27 17:04:57 -06:00