Commit Graph

62 Commits

Author SHA1 Message Date
Matthew Parkinson
0b70ad97a6 Benchmarking automatically (#795)
Co-authored-by: Amaury Chamayou <amaury@xargs.fr>
2025-08-18 09:14:54 +01:00
Matthew Parkinson
9d29d828b8 Index cache by build run (#779) 2025-07-01 11:01:12 +01:00
Matthew Parkinson
76c67a3ee3 Drop Win2019 from CI (#778) 2025-07-01 09:18:07 +00:00
Matthew Parkinson
16d96b9f8c Fix CI (#776)
This PR updates to aspects of the CI to fix blocked PRs:

It moves the Bazel CI into its own set of actions, so failure can be isolated from other tasks.
Updates the clang-cl version used in CI for self-vendored build as it was failing with the default.
2025-06-30 13:57:07 +01:00
Jaya Kasa
a63f0c1ac3 feat: add support for bazel (#759) 2025-05-07 09:09:44 +01:00
Matthew Parkinson
6325edefcf Remove 20.04 from CI (#768)
* Remove 20.04 as no longer supported.
* Remove PowerPC due to existing issues with updated QEMU.
2025-04-28 15:11:21 +01:00
Matthew Parkinson
80bdcd999f CI: Cancel inflight checks on a new push. (#760) 2025-03-21 17:58:54 +00:00
Matthew Parkinson
6d50141e35 build: Fix nothrow include. (#749) 2025-02-14 12:50:18 +00:00
Matthew Parkinson
0cd9ccf170 CI: Refresh Targets (#748)
Add newer platforms to CI.
* ubuntu-24.04-arm
* windows-2021
* windows-2025
2025-02-13 09:47:36 +00:00
Schrodinger ZHU Yifan
16b96245f6 Enable a seconary allocator support (e.g. GWP-Asan) (#737) 2025-02-05 09:03:11 +00:00
Schrodinger ZHU Yifan
2cc74eac10 [proxy](2/n) provide proxy layers for type traits (#717)
* [proxy](2/n) provide proxy layers for type traits

* fix after rebasing
2025-01-06 17:07:49 +00:00
Matthew Parkinson
7db1f243cc CI issues (#726)
* Remove unneeded workaround.

* Update Clang version in cross compile for latest

* Explicitly install libc++ in CI
2025-01-06 08:53:28 +00:00
Schrodinger ZHU Yifan
feff2e8151 [proxy](1/n) start self-vendored STL with atomic (#715)
* [proxy] start self-vendored STL

* address CR
2025-01-03 07:49:32 +00:00
Schrodinger ZHU Yifan
141cdd9361 [ds_core] simplify MessageBuilder construction (#713)
* [ds_core] simplify MessageBuilder construction

* remove special handling of zero case

* select latest xcode
2024-12-18 15:18:04 +00:00
Matthew Parkinson
35cda3d1fd CI updates (#706)
* Add a TRACING build to CI

* Update MacOS version
2024-12-11 19:13:17 +00:00
Matthew Parkinson
e343232611 Add fuzz to CI (#690)
* Add fuzz to CI

* Change compiler to clang++

* Fix flag name

* Remove fuzzing from a requirement.

* Update to checkout v4
2024-11-19 14:28:55 +00:00
Schrodinger ZHU Yifan
f7fe702f77 implement polite waiting (#685)
* implement polite waiting

* Update src/snmalloc/pal/pal_linux.h

Co-authored-by: Matthew Parkinson <mjp41@users.noreply.github.com>

* fix build issues

* fix more build issues

* support _umtx_op for freebsd

* unify waiting style

* fix

* address CR

Co-authored-by: Matthew Parkinson <mjp41@users.noreply.github.com>

* support macos

* static dispatch os APIs for apple

* make wait_on_address configurable via cmake

* undo extra include

* fix macos build

* fix clang-tidy build

---------

Co-authored-by: Matthew Parkinson <mjp41@users.noreply.github.com>
2024-11-16 07:33:11 +00:00
Nathaniel Filardo
12f2b10122 Rework CI (#674)
- Split ubuntu and macos CI actions, even though they use very similar steps
- Remove macos-11, keep -12, and add -14
- Have all macos platforms build with and without C++17
- Remove duplicated dependency lines in ubuntu matrix entries; push this down
  to the steps
- Ensure that all added ubuntu matrix tuples have non-empty build-type
- Add all jobs to all-checks' "needs:" to ensure we wait for everything
2024-09-10 10:07:28 -04:00
Matthew Parkinson
2a7eabef6c Configurable client meta-data (#662)
This provide a way to configure snmalloc to provide per object meta-data that is out of band. This can be used to provide different mitigations on top of snmalloc, such as storing memory tags in a compressed form, or provide a miracle pointer like feature.

This also includes a couple of TSAN fixes as it wasn't fully on in CI.
2024-06-13 09:32:07 -04:00
Javier Blazquez
d9bca64426 Add Windows ARM64 support (#656)
* Add Windows ARM64 support

* Add Windows ARM64/ARM64EC CI workflows
2024-04-10 06:31:10 +01:00
Matthew Parkinson
640cacf90e Updated CI workaround. (#650)
https://github.com/actions/runner-images/issues/8659
2024-01-02 10:02:27 +00:00
Matthew Parkinson
3c3739ddaf Update NetBSD runner (#648) 2023-11-09 06:24:35 +00:00
Matthew Parkinson
a781f96211 FreeBSD CI. (#647) 2023-11-08 10:15:20 +00:00
Matthew Parkinson
7d88f4d638 Workaround runner issue. (#645) 2023-11-08 10:14:33 +00:00
Matthew Parkinson
2a7670eb82 Add C++17 version for Mac. (#635) 2023-09-18 09:37:56 +01:00
Matthew Parkinson
9d4466093a Move to clang-format 15 (#621)
The current version requires clang-format-9.  This now getting hard to get.
This commit moves it to the clang-format-15, which is the latest in 22.04.

Also, updates clang-tidy to 15 as well.
2023-07-18 11:24:07 +01:00
Matthew Parkinson
dc1268886a Improve CMake slightly (#620)
* Prefix build testing flag with SNMALLOC

* Only add clangformat target is testing enabled.
2023-06-28 11:42:19 +01:00
Matthew Parkinson
365553e67f Remove 18.04 (#613) 2023-04-25 21:08:04 +01:00
Matthew Parkinson
ccca98a709 Factor checks under separate feature flags. (#587)
All the checks and mitigations have been placed under feature flags.
These can be controlled by defining

  SNMALLOC_CHECK_CLIENT_MITIGATIONS

This can take a term that represents the mitigations that should be enabled.
E.g.
  -DSNMALLOC_CHECK_CLIENT_MITIGATIONS=nochecks+random_pagemap

The CMake uses this to build numerous versions of the LD_PRELOAD library and
tests to allow individual features to be benchmarked.

Co-authored-by: Nathaniel Wesley Filardo <nfilardo@microsoft.com>
2023-03-23 13:41:02 +00:00
Matthew Parkinson
c304ddfcdb Remove OpenBSD from CI (#599) 2023-02-27 13:43:20 +00:00
Nathaniel Filardo
50cb8b88fe Update Morello CI (#590)
* Move Morello CI to track default release

- Log some details of the build environment

- Remove workarounds overcome by events

* Morello CI: parameterize run queue and boot env

* Morello CI to run as a non-root user

For reasons unrelated to snmalloc, it's become more convenient to engage
in a little white lie, as it were, that the CI jobs are not `root` on
the worker nodes.  So I'm testing changes on the cluster orchestration
goo to run the github runner as a non-root user.  However, much as with
GitHub's own runners, the runner user is in the `wheel`, and `root` will
have no password, so we can still `su` up to `root` when needed.

Of course, when we are already root, we can `su` to anyone we like,
including `root`, so these changes are compatible with both the old and
new world order and have been tested with both.
2023-02-20 12:06:51 +00:00
David Chisnall
b9b9055bbf Try vm-actions instead of cross-platform-actions (#589)
This uses VirtualBox instead of xhyve.  It might be slower, but should
be more reliable.

Tests run on FreeBSD, NetBSD, and OpenBSD.  Only the FreeBSD ones are
passing at the moment, the others will keep running but aren't added as
dependencies for the action used to guard commits.
2023-02-20 12:05:53 +00:00
David Chisnall
4370a23f3e Attempt to run *BSD CI in VMs. 2023-02-09 13:53:00 +00:00
Nathaniel Wesley Filardo
c084157cc9 CI: parallelize cross-run tests 2022-12-14 14:10:17 +00:00
Nathaniel Wesley Filardo
9207f3d8a0 CI: bring non-power qemu cross CI to ubuntu-latest 2022-12-14 14:10:17 +00:00
Nathaniel Wesley Filardo
c39861f806 CI: fix crossbuild matrix
Sorry, failed to notice that I broke this in the last PR. :(
2022-12-14 14:10:17 +00:00
Nathaniel Wesley Filardo
455cdd8c6d CI: Further fallout from ubuntu 22.04
- Copy and shift our clang-10-specific variant tests onto the latest

- Additionally add 20.04 as a test point, along-side 18.04
2022-12-13 13:56:04 +00:00
Nathaniel Wesley Filardo
524579eea1 CI: push ppc64 cross-run to ubuntu-20.04 host
Work around https://github.com/microsoft/snmalloc/issues/576
2022-12-13 13:56:04 +00:00
Nathaniel Wesley Filardo
f23cba0abf CI: move clang-10 tests to ubuntu-20.04
ubuntu-latest no longer has clang-10 available as of
https://github.blog/changelog/2022-11-09-github-actions-ubuntu-latest-workflows-will-use-ubuntu-22-04/

FIXES https://github.com/microsoft/snmalloc/issues/575
2022-12-13 13:56:04 +00:00
Matthew Parkinson
15e5a842f5 Update Mac Version. (#559)
* Update Mac Version.

* Update Mac Version.
2022-09-16 20:14:36 +01:00
Matthew Parkinson
2ee522cd22 TSAN CI changes (#555)
* Drop TSAN debug build

* Require TSAN to pass
2022-09-08 11:00:39 +01:00
Nathaniel Wesley Filardo
df1dbc997f Add Morello CI 2022-06-21 15:08:52 +01:00
David Chisnall
f6e9796bbc Introduce header layering (#503)
See src/snmalloc/README.md for an explanation of the layers.

Some other cleanups on the way:

Fine-grained stats support is now gone.

It's been broken for two years, it depends on iostream (which then
causes linker failures with libstdc++) and it's collecting the wrong
stats for the new design.  After discussion with @mjp41, it's better to
remove it and introduce new stats support later, rather than keep broken
code in the main branch.

Tracing was controlled with a preprocessor macro, now there's also a
CMake option.
2022-04-06 09:59:33 +01:00
Schrodinger ZHU Yifan
74a2da177f try enabling windows-2022 (#445)
* try enable windows-2022

Signed-off-by: SchrodingerZhu <i@zhuyi.fan>

* only test MSVC on windows 2022

Signed-off-by: SchrodingerZhu <i@zhuyi.fan>
2022-01-07 11:24:56 +00:00
Matthew Parkinson
be85d53c20 Factor out sanitizer run.
Don't fail on sanitizer failure and provide separate CI jobs
for sanitizer builds.
2021-12-17 13:16:01 +00:00
Matthew Parkinson
4f2d3ebf33 Enable sanitizers in CI. 2021-12-15 14:45:53 +00:00
Matthew Parkinson
d0df2d028a Fix CI branch name. (#442) 2021-12-13 14:36:12 +00:00
Matthew Parkinson
9329db102f Remove Win2016 as Github Action support ending. 2021-12-02 09:58:02 +00:00
Matthew Parkinson
894b0314c9 Add timeout to ci tests.
Windows can hang due to assert failures in CI.  Add a timeout to get
some information of what is happening.
2021-12-02 09:58:02 +00:00
Matthew Parkinson
d01e2cdf60 Fix tests.
Release tests require CTest to actually be passed the -C option.
2021-11-03 20:22:50 +00:00