Commit Graph

284 Commits

Author SHA1 Message Date
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
27860f0300 Implement ntdll NtWriteFile 2025-10-27 14:56:51 -06:00
5ebb15c440 Add BCryptPrimitives.dll ProcessPrng 2025-10-27 14:56:30 -06:00
ac0c6214d0 Support per-module TLS slots (ThreadLocalStoragePointer) 2025-10-27 13:49:15 -06:00
a240e3dc4b Support TlsExpansionSlots (>64 TLS slots) 2025-10-27 12:27:26 -06:00
cf166f828a Disable exceptions and RTTI 2025-10-27 10:47:38 -06:00
ac472c9dc9 Clarify wine testing information 2025-10-27 01:09:41 -06:00
50a457c5e3 Begin reworking TLS impl & add TLS loader support 2025-10-27 01:03:30 -06:00
f2743d05e7 Add hybrid epoll/thread pool async I/O backend (#98)
* Add hybrid epoll/thread pool async I/O backend

* Remove thread pool in favor of epoll AIO backend
2025-10-23 23:09:52 -07:00
1500a4f815 ReadFile/WriteFile: Require overlapped I/O on overlapped handles (#99) 2025-10-23 23:07:56 -07:00
5597da607a Fix GetOverlappedResult without event & improve overlapped handling 1.0.0-beta.1 2025-10-23 11:33:09 -06:00
4d5caf91e1 Implement ConnectNamedPipe 2025-10-23 11:31:35 -06:00
8e532ccf78 Implement CreateNamedPipeA 2025-10-23 11:31:35 -06:00
fa3541fe2d Add thread pool async I/O backend (#97)
* Add thread pool async I/O backend

* Make it work with older code
2025-10-23 10:29:23 -07:00
24fa3ef419 Implement ole32 CLSIDFromString (#95) 1.0.0-alpha.5 2025-10-22 08:46:53 -07:00
2e2128b4ac Implement kernel32::FlushViewOfFile and ntdll::memset 1.0.0-alpha.4 2025-10-15 18:33:26 -06:00
0f3b98462e ProcessManager: use unique_lock when erasing 2025-10-09 17:18:00 -06:00
bb4bee83b7 Fix pidfd reuse race condition 1.0.0-alpha.3 2025-10-09 16:52:12 -06:00