Commit Graph

60 Commits

Author SHA1 Message Date
John Nunley cf2d60efca
ci: Use latest stable wine in testing
This works around bugs in Rust v1.78 that introduce incompatibilities
into Wine.

https://github.com/smol-rs/polling/pull/201#issuecomment-2092385046

Signed-off-by: John Nunley <dev@notgull.net>
2024-05-03 17:55:23 -07:00
John Nunley 0b4afcaf0a
ci: Remove +nightly and use default
Previously in the "cross" CI job, checks would use "+nightly" to ensure
that the nightly compiler is used. However this adds a lot of noise. In
order to clean up CI this commit replaces "+nightly" with "rustup
default nightly" at the start of the job.

cc https://github.com/smol-rs/polling/pull/197#discussion_r1573375732

Signed-off-by: John Nunley <dev@notgull.net>
2024-04-22 18:36:07 -07:00
Nikolay Arhipov 9e46c8455c
feat: ported to Vita target
Fixes #160
2024-04-20 11:22:46 -07:00
John Nunley 50454d1cea
feat: Add support for HermitOS
HermitOS is a microkernel target aiming to provide a simple OS for
virtualized applications. It recently added support for the poll() and
eventfd() system calls, which means we can target it with our poll()
based backend.

Hermit does not have a traditional libc; instead it uses hermit-abi.
However rustix does not support using hermit-abi as its underlying
layer yet. So we have to build a shim layer until it does.

Closes #177
cc bytecodealliance/rustix#1012

Signed-off-by: John Nunley <dev@notgull.net>
2024-03-12 21:33:06 -07:00
John Nunley 77b4ed1156
feat: On RedoxOS, use epoll instead of the poll backend
Technically RedoxOS supports the poll syscall, so we already support
RedoxOS. However, this is very slow. This commit ports this code to
epoll, which should be more efficient.

Closes #176
2024-02-11 08:31:13 -08:00
John Nunley 1f13664bbb
ci: Add async-io tests back to CI
Closes #145

Signed-off-by: John Nunley <dev@notgull.net>
2024-01-08 08:23:02 -08:00
Taiki Endo 94c5ebf78b ci: Temporarily disable riscv32imc-esp-espidf build 2024-01-07 16:11:02 +09:00
Taiki Endo 078c478346 ci: Use cargo-hack's --rust-version flag for msrv check
This respects rust-version field in Cargo.toml, so it removes the need
to manage MSRV in both the CI file and Cargo.toml.
2024-01-07 16:11:02 +09:00
Al Hoang 99a32b7607
feat: Add support for Haiku OS
Haiku does not support pipe_with at all, so just fall back to pipe().
2023-10-01 20:57:41 -07:00
Taiki Endo 8c99506375 Update actions/checkout action to v4 2023-09-10 18:28:12 +09:00
John Nunley 2c279b871c
feat: Add a pipe-based notifier to epoll
In some containers, eventfd is not available as it cannot be implemented
securely in some hosts. This commit adds a fallback notifier that uses
a pipe instead of eventfd.

Closes #122

Signed-off-by: John Nunley <dev@notgull.net>
2023-08-16 08:33:58 -07:00
ivmarkov 6d13def8ab
Allow pinning Rust nightly to concrete version (#132) 2023-08-07 02:24:30 +09:00
ivmarkov 26afefbbbc
Remove patch.crates-io now that rustix 0.38.7 is out (#131) 2023-08-06 14:58:11 +09:00
John Nunley 49152081d0
Fix failing CI (#130)
- Disable async-io tests for wine
- Fix errant cast in Android

Signed-off-by: John Nunley <dev@notgull.net>
2023-08-05 08:17:53 -07:00
ivmarkov 53793382a7
feat: Support for the ESP-IDF framework
* Support for the ESP-IDF framework

* Restore the spans to work with the raw notify fd

* On Linux eventfd needs PollFlags::IN

* Add cargo check for ESP IDF to the CI

---------

Co-authored-by: imarkov <imarkov@vmware.com>
2023-08-05 07:28:59 -07:00
John Nunley 6eb7679aa3
breaking: Rework the API for I/O safety
* Rework the API for I/O safety

* Bump to rustix v0.38
2023-08-03 20:15:59 -07:00
Taiki Endo d41c05447a
Revert "Temporarily disable the wine test (#118)" (#126)
This reverts commit e2129ea879.

The upstream bug has been fixed.
2023-07-12 00:03:08 +09:00
John Nunley e2129ea879
Temporarily disable the wine test (#118) 2023-06-11 10:40:08 -07:00
John Nunley 5df378f811
Bump MSRV to 1.63 (#117)
Removes the build script and bumps bitflags to v2
2023-06-11 10:37:25 -07:00
Taiki Endo 5e4410c937
Use Cirrus CI for NetBSD/OpenBSD (#110) 2023-04-29 06:05:19 +09:00
John Nunley 8d8d2efcc2
Replace libc with rustix in some backends (#108) 2023-04-23 07:26:29 -07:00
Taiki Endo 1e966a0848
Test patched async-io on more platforms (#79) 2023-04-10 15:34:34 +09:00
John Nunley e340458d3a
ci: Fix Android breakage (#99) 2023-03-22 11:21:31 -07:00
Taiki Endo e85331c437 Fix Dragonfly BSD CI
Dragonfly BSD 6.4.0 VM doesn't seem to have git.

```
  error: failed to get `cfg-if` as a dependency of package `polling v2.5.2 (/Users/runner/work/polling/polling)`

  Caused by:
    failed to load source for dependency `cfg-if`

  Caused by:
    Unable to update registry `crates-io`

  Caused by:
    failed to fetch `https://github.com/rust-lang/crates.io-index`

  Caused by:
    could not execute process `git fetch --force --update-head-ok 'https://github.com/rust-lang/crates.io-index' '+HEAD:refs/remotes/origin/HEAD'` (never executed)

  Caused by:
    No such file or directory (os error 2)
```
2023-03-04 15:35:17 +09:00
Taiki Endo 1e4467b1be Test more Windows targets on CI
- Test x86_64 gnu, i686 msvc, i686 gnu on Windows host
- Test patched async-io with Wine
2023-03-04 15:35:17 +09:00
John Nunley a5aae98805
feat: Expose other kqueue filters (#83)
* feat: Expose other kqueue filters

* Fix netbsd/openbsd compilation

* Build MSRV for FreeBsd/OpenBsd in CI

* Only run MSRV BSD builds on Linux

* Change API a little + fix netbsd timer

* Add inlines + move PollerSealed

* rustfmt

* Make filter fields public

* Fix examples
2023-02-03 11:14:33 -08:00
Taiki Endo 900b00c061 Test NetBSD/OpenBSD/Dragonfly BSD with vmactions 2023-01-23 00:15:00 +09:00
Taiki Endo ff86c54dfd Minimize GITHUB_TOKEN permissions
Refs: https://github.blog/changelog/2021-04-20-github-actions-control-permissions-for-github_token
2023-01-21 20:38:57 +09:00
Taiki Endo 3bc6310121 Set CARGO_NET_GIT_FETCH_WITH_CLI=true in CI 2023-01-21 20:38:57 +09:00
Taiki Endo bc56d1fb38
Test the backend that uses poll on CI (#63) 2022-12-29 16:01:25 +09:00
Taiki Endo 1a3f61da89 Enable dependabot update for Rust 2022-12-28 12:24:56 +09:00
Taiki Endo 14e1488537 Clean up CI config 2022-12-28 12:24:56 +09:00
Taiki Endo 341ca612b8 Update taiki-e/install-action to v2 2022-12-28 12:24:56 +09:00
Taiki Endo 0b45549097
Test x86_64-pc-windows-gnu with Wine on CI (#53) 2022-11-30 23:21:01 +09:00
Taiki Endo 6f459f89a9 Use std::os::raw::c_int instead of std::ffi::c_int 2022-11-29 22:21:43 +09:00
Taiki Endo 76ee52a68c Remove msrv field from .clippy.toml
Since Rust 1.64, Clippy respects `rust-version` field in Cargo.toml.
rust-lang/rust@b776fb8
2022-11-27 16:22:51 +09:00
Taiki Endo bf6cbcc31c Fix build error on solarish 2022-10-24 00:13:27 +09:00
Taiki Endo e0daa5b327 Bump MSRV to 1.47 2022-08-21 23:40:10 +09:00
Taiki Endo 61c2179a38 Apply clippy to all targets 2022-07-17 21:22:06 +09:00
Taiki Endo 989c515fa2 Pin cross to 0.2.1 2022-07-03 20:57:45 +09:00
Taiki Endo 95c8207ac1 Update CI config 2022-07-03 20:57:32 +09:00
Taiki Endo 6b219eb0d7 Update actions/checkout action to v3 2022-05-01 14:46:00 +09:00
Taiki Endo a12be08c97 Fix MSRV 2022-01-09 01:58:56 +09:00
Taiki Endo 191e91655e Create GitHub release automatically 2022-01-09 01:50:53 +09:00
Taiki Endo dec94cb423 Clean up CI config 2022-01-09 01:50:42 +09:00
Taiki Endo 4ac15ff339
Merge pull request #26 from Kestrer/master
Support VxWorks, Fuchsia and other Unix systems by using poll
2021-09-11 18:09:28 +09:00
Kestrer e902924621 Add Fuchsia target before crosscompiling in CI 2021-09-04 19:52:59 +01:00
Kestrer bbce346140 Add Fuchsia to cross workflow on CI 2021-09-04 18:01:56 +01:00
Taiki Endo fba6877b3c Skip test of async-io in MSRV 2021-03-20 19:44:57 +09:00
Taiki Endo 99d9e20ba0 Update URLs 2020-12-26 23:47:13 +09:00