28 Commits

Author SHA1 Message Date
41f8388bac Totally rework VirtualAlloc and friends 2025-10-01 15:35:57 -06:00
ccd79a256a Reimplement kernel32 time functions, fix HeapReAlloc, debug log improvements 2025-10-01 00:59:11 -06:00
62d8daccac Overlapped I/O support (fixes ProDG compilers) 2025-09-29 23:32:17 -06:00
d69fc8a422 Implement kernel32 Heap* funcs using mimalloc 2025-09-29 14:54:38 -06:00
195f6c1408 Un-stub FileTime functions; impl TerminateProcess, HeapDestroy 2025-09-29 09:25:19 -06:00
f941a1e642 Initial threading support & more impls for compilers 2025-09-28 22:44:35 -06:00
8884c9597e Merge remote-tracking branch 'origin/main' into dll 2025-09-28 20:40:26 -06:00
8cac50e50e Rewrite BCryptGenRandom and add tests 2025-09-28 17:20:43 -06:00
f23224bbcc cl.exe works! but I didn't review most of this code 2025-09-26 17:38:24 -06:00
104e9e869d Add proper testing framework & integrate with CI 2025-09-26 10:39:09 -06:00
01ddf95d36 Add proper resource implementation 2025-09-26 01:51:25 -06:00
836f485d66 Initial external DLL support 2025-09-26 00:55:35 -06:00
c80b7cb3d0
Integrate mimalloc (#88) 2025-08-15 10:03:13 -06:00
ConorB
a85e589de5
[TEMPORARY FIX] Fix issues with the stack not being resized correctly (#65) 2023-12-23 15:34:37 -07:00
5a4af7d51b
Ensure we don't reallocate during 2GB address space block (#49)
* Ensure we don't reallocate during 2GB address space block

* Use std::string_view and std::from_chars to avoid allocations

* Use MAP_FIXED instead of MAP_FIXED_NOREPLACE

* Use raw syscalls and stack buffer

* Use exit(1)
2023-10-03 21:26:30 -04:00
Ethan Roseman
8a6aacb82d
GetLocaleInfoW (#47)
* GetLocaleInfoW for ee-as.exe 991111b

* Try to do it the right way

* 3rd time's the charm?

* round 4

* it doesn't matter now what happens i will never give up the fight

* comments

* fin
2023-09-22 09:13:56 +09:00
ConorB
218b4d7d76
Implement enough process handling logic to make psyq4.0 happy (#46)
* Implement enough process handling logic to make psyq4.0 happy

* revert gitignore

* data type update

* PR review

* DEBUG_LOG mistake

---------

Co-authored-by: ConorBobbleHat <c.github@firstpartners.net>
2023-09-18 15:05:47 +09:00
Ethan Roseman
6a420668e5
CorExitProcess for armcc_41_1440 (#44)
* Implement CorExitProcess for armcc_41_1440

* Fix function signature, add dll coverage
2023-09-12 22:44:56 +09:00
Ethan Roseman
b7e8e5fb80
3 msvcrt funcs (#42)
* msvcrt funcs

* fix empty final line

* Promment
2023-09-11 04:22:01 +09:00
94b44fd697
Everything needed to run simple Rust programs (#40)
* Everything needed to run simple Rust programs

* Add IsDBCSLeadByte implementation

* Address PR comments
2023-09-10 12:07:23 +09:00
6b6a462ea1
Use __attribute__((force_align_arg_pointer)) (#30) 2023-01-23 16:36:14 +01:00
Ethan Roseman
6de4e9a163
3 funcs needed for some mwcc compilers (#22)
* 3 funcs needed for some mwcc compilers

* some PR feedback

* lots more via pair programming with Simon

* cleanup, add test dir as an include dir for tests

* bugfix
2022-09-24 23:59:30 +09:00
Simon Lindholm
c47665f8ae Improve TIB 2022-07-28 00:13:36 +02:00
Mark Street
11bdc5e8a2
move dlls into dll/ dir (#16) 2022-07-18 09:54:17 -04:00
Ryan Burns
b86a542fe2
Explicitly link std::filesystem as needed (#14)
* Fix cmake install command

PROGRAMS specifies executable files, while TARGETS specifies cmake
targets. This install command happened to work when doing an in-tree
build (build dir == source dir) but will otherwise fail.

* Explicitly link std::filesystem as needed

On some older compilers, std::filesystem is provided as a separate
library from the C++ standard library. For example, on GCC 8, one must
explicitly link with -lstdc++fs.

We can use a drop-in https://github.com/vector-of-bool/CMakeCM module to
automate detection of and linking against this auxiliary library when needed.

* Add missing include

std::min is in <algorithm> header
This is transitively included in libstdc++ (GCC)
but not in libc++ (Clang)

(Encountered when testing -lc++fs auxiliary library linking in Clang 7)
2022-07-08 02:02:27 +09:00
Ethan Roseman
fae4219d7f
Revert "Add -lstdc++fs to cmake for older GCC (#11)" (#12)
This reverts commit 583769d7c88d82384ff32e7a39ed49e44c0b2577.
2022-07-07 03:26:16 +09:00
BR-
583769d7c8
Add -lstdc++fs to cmake for older GCC (#11) 2022-07-07 03:21:18 +09:00
4ae7bba638
Add CMakeLists.txt (#8)
* Add CMakeLists.txt

* Use CMake in CI

* Remove Makefile & update README.md
2022-07-06 20:03:19 +09:00