Commit Graph

553 Commits

Author SHA1 Message Date
74613d61e0 [*] Made nt cpuinfo less dumb 2022-04-12 20:18:21 +01:00
4617587adb [*] Async file aio API WaitMultiple should return a DWORD and call the callbacks 2022-04-12 20:17:58 +01:00
b0b9931586 [*] Update iconv
[*] nt queue
[-] Remove misplaced pragma once
2022-04-12 20:16:49 +01:00
a1a46e5324 [+] Use hwinfo cacheline in Cache.cpp fallback asm impl of instruction flush 2022-04-12 20:15:14 +01:00
9fe22062f8 [*] Revert fast rng ABI. Messing with the entropy doesn't make much sense considering the perf tradeoff 2022-04-11 20:28:18 +01:00
2de033a575 [+] Initial unoptimized iconv backend in the gross locale encode subsystem 2022-04-11 19:56:14 +01:00
c7fb247f99 [*] Formatting: this was bothering me 2022-04-11 14:11:47 +01:00
a36a1b8211 [*] Do not warm dir listings on non-dirs 2022-04-11 13:57:14 +01:00
a3b36ea651 [+] Directory awareness in OPLOCK hack of a watcher to bring NT up to Linux possible quality 2022-04-11 13:54:52 +01:00
2903a9f6cc [*] NT File watcher regression from Linux update 2022-04-11 10:54:51 +01:00
d4e239d27f [+] Did I just implement peeking of NT handles by buffering the signal state? Yes, yes I did.
[*] Further eliminate 32bit MS clock values (we need clock types)
2022-04-11 10:47:09 +01:00
45e6bf0d76 [*] Begin updating LoopQueue NT again 2022-04-11 06:35:13 +01:00
5e82879cc5 [*] Additional NT watcher regression (between API update) 2022-04-11 06:35:13 +01:00
80aab8360c [+] Missing no pop on signal handle without filter callbacks 2022-04-10 17:42:11 +01:00
2b798bde97 [*] Win32 build regression (1/2) 2022-04-10 17:20:00 +01:00
e888c0af63 [*] Update LoopQueue.Linux.hpp 2022-04-10 16:59:39 +01:00
92e195e870 [*] Remove debug mask 2022-04-10 16:51:25 +01:00
3defb1bb14 [+] Linux Watcher
[*] Expand watcher API -> Breaking NT
[*] Reexpand loop queue API -> Breaking NT
[*] Linux CPUInfo clean up
[*] Bug fix: mkdir should set execute flag... because directories are special
[*] Refactor: Cleanup base64
[*] Bug fix: UNIX path normalization
[*] Bug fix: missing O_CREAT flag (au auto-creates)
[*] Normalize line endings
2022-04-10 16:40:49 +01:00
cf219eabaa [+] Initial attempt at an epoll backend
[+] Added comments in nt opener
[*] Fixed rng close
[*] Fixed possible aarch64 crash where unix thread ep function didnt return a value
2022-04-09 16:53:14 +01:00
9da2147756 [*] Unix signal handlers shouldn't be Linux exclusive 2022-04-07 06:31:38 +01:00
1c78c18997 [+] Exit::CancelExit()
[*] Treat SIGTERM the same as SIGINT. SIGINT is somewhat of an arachic signal meaning, "hey dumb unix app, fuck the process group, start reading from stdin to listen to the user." Nowadays, this doesn't mean anything other than "hey, a human asked us to terminate from a TTY" - basically the same as SIGTERM, except SIGTERM is more likely to be a scheduled or otherwise expected shutdown event.
2022-04-07 06:22:50 +01:00
fb287e6128 [*] Always reset the sigaction mask (sigemptyset) 2022-04-07 05:41:16 +01:00
d81d4564e9 [+] Initial Linux exit signal handler
[*] Linux Semaphore bug (apparently I can't write loops)
[*] Linux sleep bug
2022-04-07 05:35:17 +01:00
d3428f4cd9 [*] Continued loop work (Linux and Win32) 2022-04-07 02:20:46 +01:00
da506dd0d8 [*] Amend linux cmdline parsing 2022-04-06 08:25:17 +01:00
bfc33e6663 [*] Early Linux SWInfo 2022-04-06 07:25:34 +01:00
6271af0ada [*] Hey, wait a minute. Update Linux cpuinfo. 2022-04-06 06:09:23 +01:00
098d63eeb3 Hey, wait a minute 2022-04-06 05:55:12 +01:00
b97ed198c3 [+] Modern Linux cpuinfo
[*] Replace getpid with gettid
2022-04-06 05:50:12 +01:00
8fe83de42f [*] Linux has a pulse... 2022-04-06 02:24:38 +01:00
3205ea8a1f Merge remote-tracking branch 'origin/master' 2022-04-05 14:46:40 +01:00
7705e32c59 [*] Win32 regression 2022-04-05 14:46:19 +01:00
f0ed958e5a [*] Bad type migration from spinlock to rwlock 2022-04-05 14:41:46 +01:00
311b13bc32 [*] Do you see why Zombie processes are still an issue under UNIX? 2022-04-05 11:24:48 +01:00
8cbceae272 [*] Process clean up (UNIX) 2022-04-05 11:18:35 +01:00
e25d8a65c8 [*] Linux Progress... It compiles (APIs are out of date, subsystems are missing, and it doesn't link. Worse than being 5m behind) 2022-04-05 11:11:19 +01:00
d32b84edf4 [*] Linux stubs 2022-04-05 06:59:23 +01:00
48b6994f61 [+] LSFromFdNonblocking
[*] Other Linux progression
2022-04-05 03:36:39 +01:00
c4d9042e44 [+] THE IO JOHNNY, WHAT DOES IT MEAN? | Linux continued 2022-04-05 02:19:37 +01:00
5a96a71949 [*] Address *some* build issues under Linux. Interim port progress 2022-04-04 08:53:34 +01:00
62e3490d9f [*] Slight cleanup of the NT watcher 2022-04-03 05:46:52 +01:00
3650599064 [*] Only send ack if requested 2022-04-03 03:44:59 +01:00
603c68f3ca [-] de-bug 2022-04-03 03:26:23 +01:00
a1ec806773 [+] Initial hack of a file watcher in NT land 2022-04-03 02:52:25 +01:00
450c895732 [*] WaitSingleBase.cpp was rescoping the return value. Doh 2022-04-03 00:30:15 +01:00
cfca09d0da [*] FS.cpp bugs regarding expanding "<char>/" 2022-04-03 00:29:49 +01:00
371d01ce71 [*] Missing stage for MakeTemporary 2022-04-03 00:28:18 +01:00
24ea76e30e [*] This deprecated API is known to break with a stupid template error under recent STL releases under MSVC 2022-04-02 19:15:06 +01:00
a31136a5d4 [+] MakeTemporary 2022-04-02 19:14:24 +01:00
6eb33179cd [*] Original exit behaviour 2022-04-02 03:52:35 +01:00
5599da3ab0 [*] Harden exit 2022-04-02 01:48:29 +01:00
fb5eb02594 [*] win32 flag shouldn't be reset on recommit | regression since commit no longer starts from scratch under nt 2022-04-01 19:33:11 +01:00
8b72865586 [*] Found closed issue related to the MSVC STL clock. Proposed solution gave us a 2x boost in benchmarks. Using this over MSVC's clocks when possible (it's not even using kernel32/related apis, it's using high level apis of the crt and frens... The Microsoft STL has shit tier performance for real time usage, yea, who fucking knew? Why was I writing this project again?) 2022-04-01 18:40:56 +01:00
e281f63a3b [*] Continue work on the NT loop queue 2022-04-01 18:39:07 +01:00
a4568be6fa [*] Kill net. Branching... 2022-04-01 04:54:21 +01:00
556c6c37bb [*] Demangle 2022-03-31 21:34:37 +01:00
2eb5c97800 [*] Stupid optimization that doesn't make so much of a difference 2022-03-31 14:12:06 +01:00
76c4759f92 [*] Optimise loggers 2022-03-31 04:40:19 +01:00
e9ad89beea [*] Localized timescale looked ugly 2022-03-31 04:34:02 +01:00
9f9f86f174 [*] What kind of regression was THIS? 2022-03-31 03:13:56 +01:00
1159bf3ca3 [*] Another gross bug 2022-03-31 02:49:58 +01:00
8002d6cba2 [*] Disgusting locale subsystem: gross bug 2022-03-31 02:13:00 +01:00
f717511a10 [+] NT OutputDebugStringW logger sink
[*] Split objects
[*] Consider making ABI object api boilerplate
[*] Refactor STLShims (roxtl)
2022-03-31 01:31:40 +01:00
5baf182c6f [*] ...this makes more sense 2022-03-30 23:32:18 +01:00
90af80ae2c [+] AuUTF8StringView polyfil
[*] NT Loop queue improvements
2022-03-30 23:30:51 +01:00
3e80022f95 [*] Cacheline and cachesize report in CpuInfo 2022-03-30 22:45:10 +01:00
142d204653 [*] cmdparse test failure 2022-03-30 20:26:24 +01:00
2c21d130ee [*] IsSignaled was blocking 2022-03-30 19:46:19 +01:00
c1976d771b [*] Compiler warning
[*] Disambiguate auContainerUtils
[*] Optimize AuLogXXX / remove alloc
[*] Didn't commit two auROXTL idiom updates (ExceptionWatcher and Logging)
2022-03-30 19:07:15 +01:00
79c2a2ffff [*] Gave the NT loop some attention (much more required) 2022-03-30 18:56:56 +01:00
f9ac6fff72 [*] ECompressionType typo 2022-03-30 15:20:04 +01:00
35c1dc623b [*] Formatting 2022-03-30 15:18:56 +01:00
e0b19c075d [*] Refactor cache 2022-03-30 15:18:20 +01:00
cf73ccad37 [*] On unix, eNormal throttle should mask all cores 2022-03-30 15:18:07 +01:00
361e8526cf [*] Optimize create-dir-tree for FS benchmark 2022-03-30 15:17:15 +01:00
790d01a29a [*] Update for auROXTL changes 2022-03-30 15:16:57 +01:00
5ea5e0314f [*] 32bit swaplock compile 2022-03-30 15:15:50 +01:00
802361c57e [*] Update FS resources under NT (prevent conflict of privileged user data + brand matching all user data) 2022-03-30 12:33:52 +01:00
e7f6f79471 [+] RWLock::DowngradeWriteToRead 2022-03-30 12:32:03 +01:00
3c53eb526f [*] Enchanced command line parsing 2022-03-29 01:53:02 +01:00
3507d9bb33 [+] GetSharedAsyncApp 2022-03-23 16:33:02 +00:00
0dcfd23fc7 [*] Update processmap 2022-03-23 16:14:53 +00:00
68bfdd1f8d Update ROXTL
[+] Extended fnv1 apis
[+] AuResult
[+] AuHash
[+] AuEnableHashCodeOnData
2022-03-23 16:03:48 +00:00
ba8602744b [+] Interim and incomplete Unix/Linux buildability 2022-03-22 05:10:40 +00:00
a5c2600f1f [*] Force update affinity here 2022-03-21 07:31:01 +00:00
9326891ada [*] Angry updating header noises 2022-03-21 07:20:15 +00:00
9542ec8374 [+] Initial OSThread SetThrottle attempt 2022-03-21 07:16:12 +00:00
0fb514f856 New memory APIs
[+] AuMemory::Cache
[+] AuMemory::SwapLock
[+] AuMemory::Transition

AuROXTL
[+] AuPageRoundUp
[+] AuPageRound
2022-03-21 05:20:19 +00:00
8b4bdbd04b [*] CpuInfo (and others) refactor 2022-03-20 12:51:51 +00:00
d406e5a85e [*] Win32 32bit regression fixes 2022-03-18 07:32:38 +00:00
ff88b7f85d [+] lite sku 2022-03-18 04:30:39 +00:00
dce47ee5cf [*] Recrinkle enterprise flag on windows 2022-03-16 19:50:04 +00:00
672915cd55 [*] Improve CpuId awareness through affinity
[*] Clean up OSThread
[*] Tweak HWInfo/CpuInfo
2022-03-16 18:15:57 +00:00
ab76f77871 [+] SetThreadDescription support 2022-03-16 16:34:55 +00:00
5213a19362 [*] Additional seething 2022-03-13 23:03:53 +00:00
c826df484e [*] Loop queue nt bug 2022-03-11 04:07:15 +00:00
7bfcce52fd [*] Oops 2022-03-10 16:02:20 +00:00
03bb80239c [*] Reglue async and loop together 2022-03-10 15:41:57 +00:00
6afe6c7342 [*] Clean up 2022-03-08 01:36:12 +00:00
1f18da1e98 [*] Added missing this-> in StringToProvider for consistency within this file 2022-03-04 23:15:41 +00:00
53e33b6fdd [*] Added/fix UTF-16 BE count
[*] Optimize stage builds - Crypto API validation
[*] Clean up
2022-03-04 22:28:25 +00:00
805eae7f3d [+] Added _AU_SAW_WIN32_EARLY for AuLoop::NewLSHandle in AuWin32Utils.hpp
[*] Clean up AuROXTL
2022-02-27 09:11:56 +00:00
907b5d1b33 [*] Illegal missing return value 2022-02-27 07:46:00 +00:00
bb6025ab5f [*] only pump this on dtor 2022-02-21 21:19:12 +00:00
01254d088b [*] Fix no flush after blocking write on logger dtor 2022-02-21 20:35:16 +00:00
ef04d2bac3 [-] Remove "Initialized default localization" debug message 2022-02-21 14:07:21 +00:00
9e26996463 [*] Recrinkle win32 process send term and stdin CONIN/OUT win32 logic 2022-02-21 12:27:34 +00:00
c6d649e3de [*] Fix race condition. Read after logger detor bug in rw to spinlock optimization 2022-02-21 05:56:52 +00:00
cd8cfd4f1c [+] Shutdown runtime on unsafe main thread termination
[+] Grug will flush everything inline on deinit
[*] Fix bug in BufferedCharConsumer, didn't return char in peak (doh)
2022-02-21 03:40:29 +00:00
3f4cf93877 [+] AuTryInsert for maps
[*] Fix Aurora::IO::FS Remove not removing empty directories
2022-02-20 21:57:01 +00:00
d67d6b38db [*] Fix NT FS bugs in mega patch 2022-02-20 21:08:44 +00:00
188e478033 [+] Improve RNG apis. TODO: more work is needed 2022-02-20 20:49:34 +00:00
3651c22159 [+] AuIOFS::WriteFile should use new memory span 2022-02-20 20:31:18 +00:00
9c18cb06e0 [*] Emulate \\ escaping on NT CmdLine parsing 2022-02-20 18:49:15 +00:00
7864966478 [+] Minimalistic AuNumericLimits implementation 2022-02-19 17:56:45 +00:00
2c55b722d6 [+] AuAtomicTestAndSet 2022-02-19 13:21:34 +00:00
b29be7b2d5 [*] Hardened line bufferer
[+] Unstaged changes from last commit
2022-02-19 11:50:14 +00:00
be7e9271e6 [+] Added casts for pointer types
[*] Nuke more std:: references
2022-02-19 11:43:57 +00:00
6e8bb527e7 [*] Update compression api, made window bits optional 2022-02-19 11:16:25 +00:00
86ce9a9281 [*] Improve default window bit correction 2022-02-19 11:10:49 +00:00
9681450156 [*] Wrap Window bit validation around hasWindowbits check 2022-02-19 10:50:28 +00:00
9aa5d9f434 [*] Add missing reentrantWriteLockHandle in rwlock upgrade 2022-02-19 10:25:58 +00:00
0a03613a61 [*] Clean up commands.cpp 2022-02-19 09:05:58 +00:00
86ea34c7b1 [*] i think the spinlock was incomplete. not sure how to tune this yet 2022-02-19 06:36:50 +00:00
749b8deb8d [*] Updated bit utilities
[*] Updated default string type
[*] Spinlocks can now timeout
[*] Finish RW lock write entrant mode
2022-02-18 17:50:33 +00:00
fac6571504 [*] Fix bugs in Mutex.NT.cpp 2022-02-18 12:04:10 +00:00
df1c36bd28 [*] Refactor CpuInfo
[*] class -> struct RSA interface
2022-02-18 10:46:51 +00:00
1479219b04 [*] Fix: new compression subsystem objects weren't being allocated with nothrow 2022-02-18 09:17:58 +00:00
e9c84dd208 [*] fix wxwidgets build error 2022-02-18 03:39:37 +00:00
0ca7b2c668 [*] Minor optimization: iconv locale translation
[*] Minor optimization: AuMin/Max return reference [again]
2022-02-17 20:37:29 +00:00
cf70f0d45c [*/+/-] MEGA COMMIT. ~2 weeks compressed.
The intention is to quickly improve and add util apis, enhance functionality given current demands, go back to the build pipeline, finish that, publish runtime tests, and then use what we have to go back to to linux support with a more stable api.

[+] AuMakeSharedArray
[+] Technet ArgvQuote
[+] Grug subsystem (UNIX signal thread async safe ipc + telemetry flusher + log flusher.)
[+] auEndianness -> Endian swap utils
[+] AuGet<N>(...)
[*] AUE_DEFINE conversion for
        ECompresionType, EAnsiColor, EHashType, EStreamError, EHexDump
[+] ConsoleMessage ByteBuffer serialization
[+] CmdLine subsystem for parsing command line arguments and simple switch/flag checks
[*] Split logger from console subsystem
[+] StartupParameters -> A part of a clean up effort under Process
[*] Refactor SysErrors header + get caller hack
[+] Atomic APIs
[+] popcnt
[+] Ring Buffer sink
[+] Added more standard errors
        Catch,
        Submission,
        LockError,
        NoAccess,
        ResourceMissing,
        ResourceLocked,
        MalformedData,
        InSandboxContext,
        ParseError

[+] Added ErrorCategorySet, ErrorCategoryClear, GetStackTrace
[+] IExitSubscriber, ETriggerLevel
[*] Write bias the high performance RWLockImpl read-lock operation operation
[+] ExitHandlerAdd/ExitHandlerRemove (exit subsystem)
[*] Updated API style
        Digests
[+] CpuId::CpuBitCount
[+] GetUserProgramsFolder
[+] GetPackagePath
[*] Split IStreamReader with an inl file
[*] BlobWriter/BlobReader/BlobArbitraryReader can now take shared pointers to bytebuffers. default constructor allocates a new scalable bytebuffer
[+] ICharacterProvider
[+] ICharacterProviderEx
[+] IBufferedCharacterConsumer
[+] ProviderFromSharedString
[+] ProviderFromString
[+] BufferConsumerFromProvider
[*] Parse Subsystem uses character io bufferer
[*] Rewritten NT's high perf semaphore to use userland SRW/ConVars [like mutex, based on generic semaphore]
[+] ByteBuffer::ResetReadPointer
[*] Bug fix bytebuffer base not reset on free and some scaling issues
[+] ProcessMap -> Added kSectionNameStack, kSectionNameFile, kSectionNameHeap for Section
[*] ProcessMap -> Refactor Segment to Section. I was stupid for keeping a type conflict hack API facing
[+] Added 64 *byte* fast RNG seeds
[+] File Advisorys/File Lock Awareness
[+] Added extended IAuroraThread from OS identifier caches for debug purposes
[*] Tweaked how memory is reported on Windows. Better consistency of what values mean across functions.
[*] Broke AuroraUtils/Typedefs out into a separate library
[*] Update build script
[+] Put some more effort into adding detail to the readme before rewriting it, plus, added some media
[*] Improved public API documentation
[*] Bug fix `SetConsoleCtrlHandler`
[+] Locale TimeDateToFileNameISO8601
[+] Console config stdOutShortTime
[*] Begin using internal UTF8/16 decoders when platform support isnt available (instead of stl)
[*] Bug fixes in decoders
[*] Major bug fix, AuMax
[+] RateLimiter
[+] Binary file sink
[+] Log directory sink
[*] Data header usability (more operators)
[+] AuRemoveRange
[+] AuRemove
[+] AuTryRemove
[+] AuTryRemoveRange
[+] auCastUtils
[+] Finish NewLSWin32Source
[+] AuTryFindByTupleN, AuTryRemoveByTupleN
[+] Separated AuRead/Write types, now in auTypeUtils
[+] Added GetPosition/SetPosition to FileWriter
[*] Fix stupid AuMin in place of AuMax in SpawnThread.Unix.Cpp
[*] Refactored Arbitrary readers to SeekingReaders (as in, they could be atomic and/or parallelized, and accept an arbitrary position as a work parameter -> not Seekable, as in, you can simply set the position)
[*] Hack back in the sched deinit
[+] File AIO loop source interop
[+] Begin to prototype a LoopQueue object I had in mind for NT, untested btw
[+] Stub code for networking
[+] Compression BaseStream/IngestableStreamBase
[*] Major: read/write locks now support write-entrant read routines.
[*] Compression subsystem now uses the MemoryView concept
[*] Rewrite the base stream compressions, made them less broken
[*] Update hashing api
[*] WriterTryGoForward and ReaderTryGoForward now revert to the previous relative index instead of panicing
[+] Added new AuByteBuffer apis
    Trim, Pad, WriteFrom, WriteString, [TODO: ReadString]
[+] Added ByteBufferPushReadState
[+] Added ByteBufferPushWriteState
[*] Move from USC-16 to full UTF-16. Win32 can handle full UTF-16.
[*] ELogLevel is now an Aurora enum
[+] Raised arbitrary limit in header to 255, the max filter buffer
[+] Explicit GZip support
[+] Explicit Zip support
[+] Added [some] compressors

et al
2022-02-17 00:11:40 +00:00
19ebdf3761 Preparing for initial WSA network POC rewrite, not porting gen1 code. Linux support is way behind. Will work on it soon.
[*] Minor refactors
[*] Begin refactoring the Processes subsystem
[*] Added empty files ready to move the gross c++ functional callback in the parse subsystem to a dedicated interface w/ utils
[*] Broke out Win32 Process into an NT base variant (Process.NT.cpp) with Win32 overloaded process exit pokes (Process.Win32.cpp)
2022-01-29 12:36:25 +00:00
a6f96315f3 [+] Move raminfo IsWin10 check over to the new cheaty api 2022-01-28 01:20:38 +00:00
9df677cab9 [*] I really shouldn't risk a force flush here, but let's try it, it might work 2022-01-28 01:16:14 +00:00
3f2f66f4ec [+] Added doxing fingerprint
[*] Use RAII safe lock guard instead of ->Lock(), ->Unlock() that would not be unwound
2022-01-28 01:09:12 +00:00
086de4600f [*] Minor adjustments 2022-01-28 00:45:37 +00:00
d8e000b5c3 [*] Prevent WriteLater from entering a deadlock condition. OnFlushs are no longer atomic
[*] Fix up gen1 copypasta
[+] ConsoleMessage::ToPersistentString
[*] Adjust ConsoleMessage formatting
2022-01-27 20:28:20 +00:00
b1c4e26f91 [*] Force NT exception handles to create the directory tree if not present.
[*] Fix panic on mayday
2022-01-27 08:15:33 +00:00
5bc1985eca [+] Added ToString to CpuId
[*] Added const modifier to cpuid functions
[*] Added OnExit to planned API interface
[*] BlobReader now holds onto a handle of a ByteBuffer, allowing for shared usage -> aiding in the mitigation of allocations/second and needless heavy copy of objects
2022-01-27 07:45:42 +00:00
d7c6d66fad [+] AuBitsToLower, AuBitsToHigher (returns half of an input word)
[+] AuPopCnt
[+] NormalizePath, GetFileFromPath, GetDirectoryFromPath, GoUpToSeparator
[*] Fix Version Helpers again
[*] Fix registry locale memory check under read registry in SWInfo
[*] Breakout portable process code away from evil win32 code
[*] .dynlib -> .dylib under macos
2022-01-27 05:52:45 +00:00
fbd437d3d4 [+] Added LocaleStrings.hpp -> NewLine
[*] LocaleStrings should always return constant references
[*] Readded line splitting logic to the new Logger class
2022-01-26 08:30:19 +00:00
0bcc0aa508 [*] added __fastfail, not quite the op i was thinking of, but it'll do. 2022-01-26 05:53:18 +00:00
fe424115f4 [*] unfuck VersionHelpers.cpp 2022-01-26 04:49:35 +00:00
0d388dc4e2 [+] Added VersionHelpers
[*] Detabify
[*] Broke up CpuInfo
[*] I want to rewrite this trashy readme soon
2022-01-26 04:22:12 +00:00
7eb6900e9f [+] Added shared pointer extension, begin experimenting defining throw-on-null mechanic
[+] AuRemoveConst
[*] Support circular reference in Aurora pipelines Include, added support for early Aurora::Build AuroraEnum
[+] Added SWInfo API
[+] AU_COPY_MOVE, AU_MOVE, AU_COPY to go with AU_NO_... variants
[+] Adding GetProcessId
2022-01-26 00:22:02 +00:00
a0d38ff168 [*] Add missing header 2022-01-24 21:38:17 +00:00
299a1c5312 [*] Fix pointer alignment issue in NT sections
[*] Fix possible spinlocks
2022-01-24 20:13:08 +00:00
e5e36bd887 Large Commit
[*] Fix deadlock in the async subsystem (NoLockShutdown vs Shutdown in exception handler)
[+] Added ProccessMap NT variant
[+] Added ToolHelp image profiling
[*] Improved exception awareness
[*] Delegated SpawnThread to isolated TU, ready for reuse for RunAs and XNU Open - now with horrible evil alloc that could fail
[+] Added header for future api 'UtilRun'
[*] Improve NT core detection
[*] Changed small affinity bitmap to AuUInt64 instead of AuUInt32
[+] Added data structure to hold cpuids/affinity masks
[+] Implemented logger sinks
[+] Implemented logger glue logic
[*] Began migrating older loggers to sink-based default devices
[*] Minor refactors
[*] Improved internal exception discarding, not yet nothrow capable
[*] Minor create directory fix
2022-01-24 18:43:53 +00:00
8db441ff33 [*] preparing for autismo 2022-01-21 22:37:29 +00:00
ac467734a0 [*] Preparing to work on extending the console api and telemetry subsystems 2022-01-21 16:26:35 +00:00
0c09d62332 [TODO] fork on macos will nuke everything. use native apple macos api 2022-01-20 22:42:53 +00:00
831649233e [*] I've seen reports that apple is special. Only documentation on google relating to this is dated 1993 and something irrelevant with new theme, also dated 1993. 2022-01-20 21:21:33 +00:00
56e08ac3d9 [*] minor fix in refactored code -> console line breaks got dinked by fedex in the moving process 2022-01-20 20:30:03 +00:00
490d3892a2 [*] wrap win32 specific path around AURORA_PLATFORM_WIN32 2022-01-20 19:27:14 +00:00
6a35b68fdc [*] force upcast to u64 under ram calc 2022-01-20 19:23:37 +00:00
e30ccbc90f [*] mo better memory reporting info 2022-01-20 19:20:23 +00:00
0510ee20ae [*] Loop should always enter alertable mode
[*] More AuList<AuUInt8> -> AuByteBuffer
2022-01-20 17:45:52 +00:00
81bfa7fba6 [*] Begin truncating mapped types 2022-01-20 16:37:22 +00:00
02aa0dfd13 [*] eradicate AuList<AuUInt8> abuse, switch over to AuByteBuffer 2022-01-20 16:04:53 +00:00
1f825b4754 [*] Update build script
[*] Minor 32bit intrin fix
[-] Remove pragma links
2022-01-20 13:27:45 +00:00
c965d8384f [+] AuStaticPointerCast
[*] More refactoring
2022-01-19 18:53:22 +00:00
69f7260514 [*] cont 2022-01-19 18:37:09 +00:00
1fac842e24 [*] nuked even more of the stl dependency
[-] std::forward
2022-01-19 18:32:18 +00:00
6b9bddeeaf nuke more of the stl 2022-01-19 18:18:13 +00:00
d26471b173 so long gay bowser 2022-01-19 17:53:33 +00:00
bafe2893b8 [+] Added ^/ mount, mapped to binary path 2022-01-19 17:18:06 +00:00
7759d38ed0 [*] Exterminate more std:: references 2022-01-19 17:08:13 +00:00
7316aa0f8f [-/+] Nuke std::tm dependency from the public api
[*] Major bug in heap allocation, am brain damaged
2022-01-19 15:25:47 +00:00
f1040a67b0 ...cont 2022-01-19 11:47:29 +00:00
6135618e24 [+] Added AuIsThreadRunning
[*] Fix path bug
[*] Fixed two async shutdown bug
2022-01-19 02:49:44 +00:00
d28a4576ba [*] Recommit this. Did I somehow nuke it? 2022-01-18 20:50:09 +00:00
9065d95851 [*] Fix heap leak -> TryRelease was never called once count hit zero 2022-01-18 19:48:23 +00:00
413d3968ad [*] Added an option for leaking strong heap pointers (ToSmartPointer) 2022-01-18 19:31:15 +00:00
62aecf3308 [*] Fix auline macro under msvc
[*] Breakout ByteBuffer into inl files
2022-01-18 19:00:48 +00:00
09d1db69f2 [+] added AU_THROW_STRING
[*] extend ByteBuffer
[*] minor reformatting
2022-01-18 16:49:50 +00:00
29bd8dca0c [*] Continue to perfer beginthreadex, use CreateThread when the OS loader is locked on Win32 2022-01-18 16:02:24 +00:00
82370fea1d [*] Whoops? Disambiguate questionable if. Operator precedence shouldn't have yielded a different ast 2022-01-18 14:42:31 +00:00
4dddcb108e [+] Added GetUserHome, GetAppData, GetRootAppdata, GetWritableAppdata
[*] Dont fail on non-blocking /dev/urand
[+] Added if not initialized check under RNG/unix fclose
[+] Add missing debug apis ready for report to linux
[*] Update build script for WIP branch
2022-01-18 14:27:06 +00:00
235225ec9d [+] Added WriteEoS
[*] Fix two build issues (missing = 0 in vtbl and messed up macros)
2022-01-17 15:21:36 +00:00
77775410ec [+] Added some notes about safer low memory condition handling
[*] Adjusted code style in MSDN reference code
2021-12-26 15:51:31 +00:00
9c8224b931 [+] Added TryLockGuard; AU_TRY_LOCK_GUARD_RET_DEF, AU_TRY_LOCK_GUARD, AU_TRY_LOCK_GUARD_RET_VAL, AU_TRY_LOCK_GUARD_RET_DEF
[+] Added explicit AU_WHAT macro, I think people are familiar with this nomenclatures, not sure.
[+] Added try catch around logger write line. I'm sure something will explode around here sooner or later
2021-12-24 16:25:12 +00:00
4bd5c4604c [+] Added global AuLog[...] aliases to make the logger more bearable when I get around to finishing it
[+] Rationalize /var over /opt
[+] Ensure all users can access data under ProgramData
2021-12-24 15:49:28 +00:00
a20bb97128 [+] Explicit async/blocking read process stdout/err
[*] Fixed missing inherit handles flag
[TODO] consider CREATE_NO_WINDOW flag when refactoring create process object
2021-12-24 14:34:55 +00:00
31695ae63b [*] Fix stupid mental typo of 'peek' -> 'peak' 2021-11-22 16:16:02 +00:00
63fab703cc [*] Amend error message fmt arg in Process.cpp
{*] Obvious linux build error
2021-11-16 02:44:11 +00:00
d99c23d638 [+] Initial untested implementation of the loadlibrary impl for the load module api 2021-11-16 01:10:00 +00:00
050f48f9dc [*] Update UNIX library resource paths to account for the UsrMerge consensus across UNIX package distributions.
when
/lib = sys,
/usr/lib = usr/vendor is wrong
nowadays:
/lib >>SYMLINK>> /usr/lib,
/usr/lib = system libraries, /usr/local/lib = vendor.
2021-11-16 01:09:22 +00:00
d4ec3749e7 [*] fix new build chain build issues
[-] test trash from workpairimpl
[+] Process.hpp impl stub
2021-11-15 13:07:38 +00:00
d18affeea2 [+] Added first attempt at the windows version of WaitMultipleObjects/ This will be removed shortly.
[*] Update readme
[*] Update QueryBsdHwStat
2021-11-09 00:04:00 +00:00
6888aaaee7 [*] Fix bad formats 2021-11-08 01:15:37 +00:00
82c065ae0c [*] Improve my nasty template enable when overloadable API by nudging an empty initializer list argument towards defining an empty FJob again
[-] Remove old deprecated comment
2021-11-08 00:48:04 +00:00
4282bb3fa6 [+] Added reschedClockAbsMs/reschedClockAbsNs
[*] Added AU_TEMPLATE_ENABLE_WHEN to utility APIs where there are PId and Id overlods
2021-11-08 00:11:01 +00:00
16b4d65910 [*] Update Unix stat impls error message 2021-11-07 22:32:54 +00:00
22103a8ad3 [*] This this this 2021-11-07 20:26:54 +00:00
f6b254e436 [*] Bug fixes. Socket stat math didn't make much sense. 2021-11-07 20:26:54 +00:00
7211c25936 [*] Made the UTF8/32 implementation less wrong 2021-11-07 07:44:42 +00:00
320d6b95ce [-] Remove experiment that was accidently left in Entrypoint.cpp 2021-11-06 02:20:19 +00:00
99c5e1fa65 A pretty large patch not worth breaking up into separate commits
[*] Split up Aurora Async
[*] Split Async app into seperate ThreadPool concept
[*] Fix various OSThread bugs and tls transfer issues
[*] Set default affinity to 0xFFFFFFFF
[*] Update Build script
[+] Add AuTuplePopFront
[+] New Network Interface (unimplemented)
[*] Stub out the interfaces required for a better logger
[*] Fix Win32 ShellExecute bug; windows 11 struggles without explicit com init per the docs - now deferring to thread pool
[*] Update gitignore
[*] Follow XDG home standard
[*] Refactor some namespaces to use the shorthand aliases
[*] Various stability fixes
2021-11-05 17:34:23 +00:00
14bde3750c [+] Added IAuroraThread::Detach 2021-10-25 19:19:49 +01:00
9ed6d2ff03 [+] Begin expanding OSThread to offer more signals. This needs optimizing 2021-10-25 18:08:28 +01:00
6157535914 [+] Note: this is really stupid 2021-10-25 18:06:24 +01:00
6e75e97e48 [+] literally just a whitespace lol 2021-10-25 18:06:11 +01:00
fab9856adb [*] God knows how long ago this was improperly refactored. This impl shouldn't even be using the crt for fopen but whatever it disables caching its probably fine 2021-10-24 13:08:38 +01:00
51e3944171 [+] Added RuntimeHasStarted. Possibly useful for multiple DLL users who have no say in the applications structure. 2021-10-24 11:53:14 +01:00
fbe151506f [+] Missed unrefactered chunk of code; locale build cache wasn't invalidated for some reason 2021-10-24 11:44:43 +01:00
b8fde0bdf0 [*] Refactor and clean up exception and threading API
[-] Deprecated abstract vectors struct
2021-10-24 11:19:47 +01:00
e01fa33445 [*] Aurora::Data refactor and more public header include clean up 2021-10-24 10:04:02 +01:00
05e3a90a7c [*] More clean up 2021-10-23 23:37:18 +01:00
39834cef6a [*] House cleaning, refactoring, clean up 2021-10-23 20:21:16 +01:00
1c9fd1a59d [*] Bug fix: open.linux.cpp 2021-10-23 19:44:41 +01:00
4e804e59c7 [+] Rewrite win32 file/directory opener 2021-10-23 19:42:05 +01:00
fe529f3dc4 [+] Added AuroraInterface IThreadVectors for thread creation
[+] ThreadInfo's constructor now accepts additional arguments for name and stack
[*] Deprecate AbstractThreadVectors
[+] note about detaching threads
2021-10-23 19:25:43 +01:00
f5a8d875d8 [*] Mucho Sanchez 2021-10-23 12:42:31 +01:00
3d859a319e [*] More async api change
[*] Improve win32 exception watcher
[*] Fix early pin reset. Possible use after write still, unsure if self reference is legal
2021-10-23 12:36:14 +01:00
dde580ddf9 [*] Break only when index == len 2021-10-16 00:55:27 +01:00
d28a0aa291 [+] UNIX binaries should use the /opt mount when possible 2021-10-16 00:35:49 +01:00
586ec565e1 [*] Count discontiguous bits in the win32 processor map 2021-10-16 00:15:13 +01:00
5e0cc1ccfa [-] Comment out noted problematic code. A fix must be implemented soon
[*] Harden Async.hpp utilities against various conditions one might expect in the wild
[+] Added SetWorkerIdIsThreadRunner
[*] Fix a bug where a cv signal and broadcast was inverted
2021-10-16 00:02:27 +01:00
a626fbea24 [+] HWInfo::GetPageSize()
[+] Parse::SplitNewlines(..., ..., true) where the return value is the remaining unbuffered line
[*] Gross hack we should remove to drop std string parse exception abuse logs
[*] Update AuroraForEach and AuroraInterfaces
[*] Experiment with using alternative os address space reserve + commit mechanics for Memory::Heaps
[*] global fast rand device should be seeded with at least 64 bits of secure rng data. ideally, we should max out entropy with secure bits, but we dont
2021-10-14 12:35:05 +01:00
fc16065d5e [*] boring clean up and refactor 2021-10-09 00:39:42 +01:00
f559897b42 [+] Added WorkerId_t structure
[-] Removed WorkerId_t typedef
[*] Added shared support to some older threading apis that have yet to be updated
2021-10-08 20:51:34 +01:00
f968d6a75f Merge remote-tracking branch 'origin/master' 2021-10-06 14:48:38 +01:00
c9e1dc30e0 [+] Added AU_STRIP and AU_EMIT macros
[+] Added AuroraForEach
[+] Added AuroraInterfaces
[+] Added Async::NewFence
[*] Readded task null check under Async::NewWorkItem such that task = AuMakeShared() errors are passed through to the caller by a failure empty shared response
2021-10-06 14:48:28 +01:00
90e58db0e3 [+] Stubbed out LSAsync
[*] Move classes to headers
2021-10-03 14:19:33 +01:00
ce47277488 [+] Begin work on the loop source subsystem for Windows 2021-10-03 13:47:16 +01:00
6435eaf5fc [*] Refactor kAnsiCheats 2021-10-03 13:44:23 +01:00
499f553e15 [*] Refactor AddLoopSource 2021-10-03 13:43:58 +01:00
6c0907fe9e [*] Unix should use absolute timeouts d'oh 2021-10-03 13:43:37 +01:00
bd1d1a2aae [+] Added includes for intrins in the common header 2021-10-02 18:29:42 +01:00
97d6c96712 [*] Succesfully built on Linux for the first time in a very long time 2021-10-02 17:07:33 +01:00
c0eccaf901 [+] Mend noted build issues 2021-10-02 14:19:25 +01:00
1f35723107 stw 2021-10-02 12:29:18 +01:00
15ae6ab14c [+] Added file structure for the loop source subsystem 2021-10-02 11:28:49 +01:00
4f210e15a0 [*] Made WELL_NextBytes atomic 2021-10-01 18:22:59 +01:00
4703264c57 [+] Added 64bit rng seed support
[*] Cryptographically unsafe RNG is marginally less dangerous; use secure rng for the entire base seed instead of seeding using 32bit mt
2021-10-01 17:54:55 +01:00
a6d1c04ba0 [+] Added AuExists semantic 2021-10-01 17:49:23 +01:00
ea83fcef20 [...] cont 2021-10-01 17:32:50 +01:00
9436b12455 [+] Begin work on a possible future API for interoperability between loop sources and event driven async apps 2021-10-01 17:27:15 +01:00
caa983ecad [*] Major change in include convention 2021-09-30 15:57:41 +01:00
6e5905b80a [*] Permit unbacked IWorkItems 2021-09-30 11:29:18 +01:00
3fb8e2bf8c Remove ID 0 restriction from Aurora async, breaking the API 2021-09-30 10:19:04 +01:00
2c5a492f08 [*] Added a few notes in the Async.hpp header
[+] Ensure dead locks can not occur
2021-09-29 15:31:40 +01:00
d3a97257da God dammit 2021-09-29 14:43:49 +01:00
5347fdbba1 [+] Enforce C++ assumptions 2021-09-29 14:40:30 +01:00
dca4ca195b [+] Added async task (this should be job) private
[+] Added ToWorkResultT for apps using BasicWorkCtx
2021-09-29 11:47:54 +01:00
6632bf6d4e [*] Warnings 2021-09-29 09:03:08 +01:00
8a6abcfdb7 [+] Added IWorkItem::Cancel 2021-09-29 09:01:42 +01:00
60d2c59d6e [+] More crypto copypasta 2021-09-21 02:54:47 +01:00
fbf39d9d17 [+] Obvious build error on Linux 2021-09-21 02:53:24 +01:00
9dd195949a [*] Preparing for ECC support 2021-09-18 21:10:25 +01:00
c4567f4c8c [*] Amend %x -> {:X} formatting
[+] Added source files ready for an LTC ECC implementation
[+] Added linux specific HWInfo get threads backend
[+] AU_TEMPLATE_ENABLE_WHEN
[*] Amend IO::FS::WriteString compilation issue
2021-09-17 20:26:05 +01:00
412d798994 [*] API design change, MemoryViews must be passed by reference such that a pointer to an object that may be the superclass of the actual RAII owner of the memory is passed 2021-09-15 20:08:08 +01:00
2c68cf529a [*] Should've ran a clean build :( 2021-09-15 02:14:29 +01:00
510928e62e [*] Linux should not raise int3 unless the binary is a debug one
TODO: investigate registering an int3 signal handler to prevent crashing under internal builds
[*] Amend MemoryViews
[*] Begin shifting towards MemoryView based binary APIs
[*] Fix public RSA key leak
[+] Some clean up and possible bug fixes
2021-09-15 00:56:26 +01:00
e0ac8344d0 [+] Getting ready to strip void *s from the api 2021-09-14 20:10:57 +01:00
03368d262f [*] Pin overlapped structure until async IO completion 2021-09-14 15:20:31 +01:00
2382f75759 [+] Possible NT async file io implementation 2021-09-14 14:13:58 +01:00
2b4517352c [*] Reformat messed up 2021-09-13 22:35:39 +01:00
051e597663 [+] Begin work on block compressors
[*] Bug fixes
2021-09-13 22:15:57 +01:00
7c90933e97 [+] Begin work on block compressors
[*] Bug fixes
2021-09-13 22:13:41 +01:00
5d18f3535c [+] Initial HWInfo stat implementations
[+] General fixes and clean up
2021-09-13 21:11:12 +01:00
97f1ae087e Stability/Bug fixes; wxWidgets, compression 2021-09-07 08:59:56 +01:00
bef72f8e4a More compression work, still requires polish and clean up 2021-09-07 08:37:15 +01:00
eb6a1eaad0 [+] TryResize test for bytebuffer type
[+] Added path in telemetry formats under NT FIO failures
[*] Various bug fixes
2021-09-06 20:04:01 +01:00
de95a9de6f [*] Fix wxWidgets deinit race condition; do not attempt to lock on deinit 2021-09-06 16:48:06 +01:00
329abe97f4 [*] lz4 and buffered stream bug fixes 2021-09-06 16:47:35 +01:00
c4ef27b01d [*] Improve win32 stdin preemption on deinit 2021-09-06 15:44:00 +01:00
80d351472a [*] untested possible alternative solution, expose internal buffer size, caller does not manage internal buffer size (yet) 2021-09-06 15:22:17 +01:00
c256406053 [*] Untested bug fix: large compression frames were getting dropped 2021-09-06 14:59:00 +01:00
35e4d4bedc TODO move me 2021-09-06 14:17:41 +01:00
02dc2d59cf Patch 1.5/2 2021-09-06 14:08:37 +01:00
ffe4bc31fc Major patch [1/2] 2021-09-06 11:58:08 +01:00
3e33533276 [-] Remove a scope I was using with SysBenchmark 2021-07-15 17:28:45 +01:00
72a74eb7a4 [*] Fixed bug where schedular was using a read lock in a scope where items were erased from a vector
[*] Refactor a 'Object' member field in a ParseObject struct
[+] Added an option to set a command dispatcher thread from an AsyncApp
[*] Fix various issues with AsyncApp, stablity improvements
[+] Added AddDelayTime
2021-07-15 17:16:23 +01:00
7c44d3a02c [*] Micro path resolve optimizations 2021-07-13 14:08:34 +01:00
42325b08b8 [*] Added a macro preprocessor to remove Aurora branding from ~ and ! profile lookups 2021-07-13 14:07:22 +01:00
1ff63f3479 [+] Added stub for fast rng
[*] Fixed RNG strings may contain a null byte
[+] Added RngByte, RngArray, RngBoolean
2021-07-13 13:09:10 +01:00
28a840f71d [+] Added async semantic ->Then(...) 2021-07-12 15:37:05 +01:00
29e5593308 Reformat RSA 2021-07-12 13:17:16 +01:00
8233825353 I messed up 2021-07-12 13:06:21 +01:00
be7b080c56 [ABI Break] LZ4 framesize prefix will now be a 32 bit integer. given the recommended length of a small block is 16KiB or ~ 2^16, it doesn't make sense to use 16bit integers 2021-07-11 18:56:20 +01:00
95a04e0984 LZ4: flip in buffers 2021-07-11 18:38:43 +01:00
7579d70bc1 [*] Actually compiles now :( 2021-07-11 18:26:38 +01:00
3be51018c9 [-] Remove Flush from public compression interface
[+] Improved base block [de]compression objects
2021-07-11 12:36:15 +01:00
955578cf8e [+] LZ4 required some more work 2021-07-11 12:18:33 +01:00
dd06417d04 [*] Starting to fix up rushed block compressors 2021-07-11 11:57:14 +01:00
df301a4101 Improve workitem api
[+] New waitfor by work dispatcher type
2021-07-07 21:32:59 +01:00
1f8d06cbf0 [*] Expose AsyncApp::Poll 2021-07-05 14:35:13 +01:00
22d03229ae [*] Untabify paths.cpp 2021-07-05 14:33:05 +01:00
18c435a433 [+] Sketchy pump system io events in ::Main of async apps 2021-07-01 14:49:32 +01:00
5676ef84fb [*] Console exit must be called last in case any unexpected error occurs during deinitialization
[*] Fix up wxwidgets
2021-07-01 11:49:46 +01:00
b9da9c313e [*] Amend crypto headers and type usage 2021-07-01 10:33:31 +01:00
9a93d4ec8d [+] Added the old RSA wrappers
[*] Prepare for implementing ECC (again)
2021-07-01 10:18:42 +01:00
f87c2b47a6 [+] i can has registry 2021-06-30 17:35:02 +01:00
22c1681132 Bad handle checks 2021-06-30 17:34:49 +01:00
784d58b184 [*] Crash fix: Null SysPushErrors should be assigned empty strings 2021-06-30 17:33:18 +01:00
c8c3908085 [+] Now with a scheduler! 2021-06-30 13:07:54 +01:00
e30be64c44 [*] Prevent pinning another WorkItems lock within the parent scope of some ::Fail's 2021-06-30 10:41:58 +01:00
23ddb0f2f6 [*] Ensure failure on waiters if a task we're waiting on has already failed 2021-06-30 10:34:01 +01:00
452b49b610 [+] Begin work on the Async subsystem 2021-06-30 10:28:52 +01:00