Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for most common developer environments #302

Merged
merged 3 commits into from
Dec 6, 2023
Merged

Conversation

ureeves
Copy link
Member

@ureeves ureeves commented Dec 5, 2023

Upgrades the version of the compiler to support the most common developer targets, and broadens the CI to cover those same targets.

This version of the compiler allows us to build contract binaries on most common smart contract developer targets:

  • aarch64-apple-darwin
  • x86_64-apple-darwin
  • x86_64-unknown-linux-gnu

To achieve this we had to rewrite the c-example contract to Rust, seemingly defeating its purpose. However it is important to note that was was really being tested was building a contract without resorting to piecrust-uplink, so this shouldn't prove to be an issue. This comes at the benefit of removing llvm as a developer dependency, leaving a Rust toolchain as the only dependency for supported platforms.

This version of the compiler allows us to build contract binaries on
most common contract developer targets:

- `aarch64-apple-darwin`
- `x86_64-apple-darwin`
- `x86_64-unknown-linux-gnu`
@ureeves ureeves force-pushed the apple-archs branch 4 times, most recently from 1f7ad56 to b2c32ed Compare December 5, 2023 21:45
We use multiple different GitHub runners to cover the most common
developer targets.

- ubuntu-latest
- macos-latest-large
- macos-latest-xlarge
@ureeves ureeves force-pushed the apple-archs branch 3 times, most recently from b3e12b2 to 6a7ad7a Compare December 5, 2023 23:38
@ureeves ureeves marked this pull request as ready for review December 5, 2023 23:47
@ureeves ureeves added area:testing everything related to smoke-, unit-, integration-, performance testing team:Core Low Level Core Development Team (Rust) labels Dec 5, 2023
This entails rewriting the `c-example` contract in rust, but without
using `piecrust-uplink`. This removes a dependency on `llvm` for build
time, significantly improving developer experience.
Copy link
Member

@herr-seppia herr-seppia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ureeves ureeves merged commit 550b68e into main Dec 6, 2023
6 checks passed
@ureeves ureeves deleted the apple-archs branch December 6, 2023 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:testing everything related to smoke-, unit-, integration-, performance testing team:Core Low Level Core Development Team (Rust)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants