| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
* remove xcode 12.1 workaround
* bump min macos version to 14.0
|
| |
|
|
|
|
| |
* Added EASTL to help with eliminating memory allocations
* Applied EASTL to eliminate memory allocations, primarily by using `fixed_vector` et al to use stack allocations / inline struct allocations
Reduces memory events in traces by close to a factor of 10 in test scenario (starting editor for project F)
|
| |
|
|
|
| |
* changed so release build uses lto and optimizes for speed on Mac and Windows
* Linux does not currently support LTO due to toolchain limitations
|
| |
|
| |
should fix build issues caused by curl pulling in a different version
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This change introduces support for tracing of memory allocation activity. The code is ported from UE5, and Unreal Insights can be used to analyze the output. This is currently only fully supported on Windows, but will be extended to Mac/Linux in the near future.
To activate full memory tracking, pass `--trace=memory` on the commandline alongside `--tracehost=<ip>` or `-tracefile=<path>`. For more control over how much detail is traced you can instead pass some combination of `callstack`, `memtag`, `memalloc` instead. In practice, `--trace=memory` is an alias for `--trace=callstack,memtag,memalloc`). For convenience we also support `--trace=memory_light` which omits call stacks.
This change also introduces multiple memory allocators, which may be selected via command-line option `--malloc=<allocator>`:
* `mimalloc` - mimalloc (default, same as before)
* `rpmalloc` - rpmalloc is another high performance allocator for multithreaded applications which may be a better option than mimalloc (to be evaluated). Due to toolchain limitations this is currently only supported on Windows.
* `stomp` - an allocator intended to be used during development/debugging to help track down memory issues such as use-after-free or out-of-bounds access. Currently only supported on Windows.
* `ansi` - fallback to default system allocator
|
| |
|
|
|
| |
(#191)" (#193)
This reverts commit e809931618b443809e9740edb70a62d0cab01f87.
|
| |
|
|
|
|
| |
* remove temporary workaround involving _LIBCPP_DISABLE_AVAILABILITY
* temp disable signing on Mac
this change should be revisited once we have resumed regular service wrt MacOS runners
|
| |
|
|
|
|
|
| |
Fixes the following warnings
```
1>cl : Command line warning D9002: ignoring unknown option '-source-charset=utf-8'
1>cl : Command line warning D9002: ignoring unknown option '-execution-charset=utf-8'
```
|
| | |
|
| | |
|
| |
|
| |
* enable mimalloc on arm64
|
| |
|
| |
* enable sentry on arm64
|
| |
|
| |
- Improvement: Bumped xmake to 2.9.1 and vcpkg version to 2024.03.25
|
| |
|
|
|
|
|
| |
this change adds serialization of payloads as YAML, but not parsing. The implementation is somewhat based on the JSON path, and may be collapsed eventually as it is possible to serialize JSON format using the same code
it also separates out the JSON serialization into a separate file for ease of maintenance
any HTTP request response may be formatted as yaml by using a `.yaml` suffix or an `Accept: text/yaml` header
|
| |
|
|
|
|
|
| |
- Improvement: Add zenhttp-test and zenutil-test
- Improvement: Moved cachepolicy test to cachepolicy.cpp
- Improvement: Renamed cachestore tests from z$ to cachestore
- Improvement: Moved test linking so test for a lib is linked by <lib>-test
- Improvement: Removed HttpRequestParseRelativeUri in httpstructuredcache.cpp and use the one in cacherequests.h instead
|
| |
|
| |
fixes rare race condition when using RPC recording for long periods of time
|
| |
|
|
|
|
| |
- Feature: Added xmake task `updatefrontend` which updates the zip file containing the frontend html (`/src/zenserver/frontend/html.zip`)
- Improvement: The frontend html content is no longer appended at the end of the executable which prevented signing, instead it is compiled in from the `/src/zenserver/frontend/html.zip` archive
- Improvement: MacOS now does ad-hoc code signing by default when issuing `xmake bundle`, signing with proper cert is done on CI builds
|
| |
|
| |
this change replaces hard-coded port numbers in tests with dynamically assigned ports, to avoid potential issues around socket lifetimes and re-use policies
|
| | |
|
| |
|
| |
trims 40% off the (Windows) executable size
|
| | |
|
| |
|
|
|
| |
this is a header-only library which mostly contains definitions to support different platforms and compilers.
It is part of the zen codebase but is intended to be consumable separately to zenbase etc to support standalone transport plug-ins and similar.
|
| |
|
|
| |
* bump xmake CI version to 2.8.2
* show test times in log
|
| |
|
|
|
|
|
|
|
| |
this change aims to hide logging internals from client code, in order to make it easier to extend and take more control over the logging process in the future.
As a bonus side effect, the generated code is much tighter (net delta around 2.5% on the resulting executable which includes lots of thirdparty code) and should take less time to compile and link.
Client usage via macros is pretty much unchanged. The main exposure client code had to spdlog internals before was the use of custom loggers per subsystem, where it would be common to have `spdlog::logger` references to keep a reference to a logger within a class. This is now replaced by `zen::LoggerRef` which currently simply encapsulates an actual `spdlog::logger` instance, but this is intended to be an implementation detail which will change in the future.
The way the change works is that we now handle any formatting of log messages in the zencore logging subsystem instead of relying on `spdlog` to manage this. We use the `fmt` library to do the formatting which means the client usage is identical to using `spdlog`. The formatted message is then forwarded onto any sinks etc which are still implememted via `spdlog`.
|
| | |
|
| |
|
|
|
| |
added support for reporting metrics via statsd style UDP messaging, which is supported by many monitoring solution providers
this change adds reporting only of three cache related metrics (hit/miss/put) but this should be extended to include more metrics after additional evaluation
|
| | |
|
| |
|
|
|
|
|
|
|
| |
added pluggable transport based on asio. This is in an experimental state and is not yet a replacement for httpasio even though that is the ultimate goal
also moved plugin API header into dedicated part of the tree to clarify that it is meant to be usable in isolation, without any dependency on zencore et al
moved transport implementations into dedicated source directory in zenhttp
note that this adds code to the build but nothing should change at runtime since the instantiation of the new code is conditional and is inactive by default
|
| |
|
|
|
| |
* removed legacy compute code, which will be replaced with a new implementation in the future
* also updated references to Jupiter storage
|
| |
|
| |
this change adds a `--http=plugin` mode where we support pluggable transports. Currently this defaults to a barebones blocking winsock implementation but there is also support for dynamic loading of transport plugins, which will be further developed in the near future.
|
| |
|
| |
this makes it so users can use xmake sln on Mac as well as Windows to generate IDE files
|
| | |
|
| |
|
| |
currently, only Windows (using Projected File System) is supported
|
| |
|
|
|
|
|
|
|
| |
* add comment about 7z usage in xmake bundle
* add ue-libcxx lib/headers and licence + tps
* update get_ue_toolchain.sh to use embedded libc++ and decouple from p4
* clearer output when falling back to zip from 7z
* update ci scripts to use ue toolchain on linux
* updated linux build README.md
* changelog
|
| |
|
|
|
|
| |
* bump vcpkg version
* fmt lib 10 fixes
* xmake dependencies (with linux workarounds)
* changelog
|
| | |
|
| |
|
| |
fix help for xmake test
|
| |
|
|
|
|
| |
* moved source directories into `/src`
* updated bundle.lua for new `src` path
* moved some docs, icon
* removed old test trees
|
| |
|
|
|
|
|
| |
* Include file, line and function in sentry log error messages
* use sync direct error logger to get correct call stacks on error
* changelog
* use d1trimfile on windows to shorten file path on windows
* constexpr -> consteval
|
| |
|
|
|
| |
a recent change which introduced support for specifying accept: implicitly via the file extension in the URI caused fallout in the dashboard which would fail to serve any content because the extension was stripped from the RelativeUri accessor. This change fixes that by retaining a copy of the Uri string view which includes the suffix
additionally, in order to test this change with both asio/http.sys paths I made the path used for all tests configurable in zenserver-test which involved pulling in a change from sb/proto which makes testing configuration a bit more flexible
|
| |
|
|
|
|
|
|
|
|
| |
mostly changes to make sure anonymous namespaces don't clash and a change to avoid windows headers from leaking into other compilation units
unity builds are not yet enabled by default, but can be enabled by uncommenting this line in the root `xmake.lua`
```
--add_rules("c++.unity_build")
```
|
| |
|
|
|
|
| |
v3.1.x contains breaking changes to exceptions
this is a temporary workaround
|
| |
|
| |
removed catch2 since it's de facto not supported due to the lack of multithreading support
|
| |
|
|
| |
- Feature: `--junit` switch to `xmake test` to generate junit style reports of tests.
- Feature: CI build on GitHub now uploads junit test reports as artifact to the check for PR validation and mainline validation
|
| | |
|
| |\ |
|
| | |
| |
| |
| | |
this has been used for testing purposes but should not be in the production executable
|
| | | |
|
| | |
| |
| |
| |
| | |
this makes it easier to trigger a local pre-commit check which is useful
for ensuring clang-format etc has been applied properly prior to a commit
|
| |/
|
|
| |
should be replaced with a proper implementation later
|