Skip to content

Conversation

bleepbloopsify
Copy link
Member

@bleepbloopsify bleepbloopsify commented Sep 25, 2025

moves async_ssl from public package (v0.14.0) to our own pin (v0.14.0-o1labs), since its not compatible with macos.

also, adds another case to src/lib/crypto/kimchi_bindings/stubs/dune that removes optimization flags not supported on arm64. (these flags are intel only, and only pollute the build log).

Those changes were already done here: o1-labs/proof-systems#3248, we just have to wait for proof-systems to get bumped first

Explain your changes:

  • in description

Explain how you tested your changes:

  • opam switch import opam.export
  • dune build
  • go to o1js, cd src/mina, git checkout leon/async-ssl-macos-compat, cd .., git submodule update --init --recursive, and then npm run build:bindings-all. (I did this on mac). You will see significant build log shrinkage because of the dune change, and it will also build natively on macos (woo).

Checklist:

  • Dependency versions are unchanged
    • Notify Velocity team if dependencies must change in CI
  • Modified the current draft of release notes with details on what is completed or incomplete within this project
  • Document code purpose, how to use it
    • Mention expected invariants, implicit constraints
  • Tests were added for the new behavior
    • Document test purpose, significance of failures
    • Test names should reflect their purpose
  • All tests pass (CI will check this if you didn't)
  • Serialized types are in stable-versioned modules
  • Does this close issues? List them

@glyh
Copy link
Member

glyh commented Sep 25, 2025

Could you point to the changed async ssl package definition in this PR?

"async_kernel.v0.14.0"
"async_rpc_kernel.v0.14.0"
"async_ssl.v0.14.0"
"async_ssl.v0.14.0-o1labs"
Copy link
Member Author

Choose a reason for hiding this comment

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

should be here @glyh

Copy link
Member Author

Choose a reason for hiding this comment

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

it was very strange, this file did not show up for me either? I had to refresh the page like twice

Copy link
Member

Choose a reason for hiding this comment

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

I'm saying the source code of this new package

Copy link
Member Author

Choose a reason for hiding this comment

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

ah I see, my fault

o1-labs/opam-repository#13

https://github.com/o1-labs/async_ssl#v0.14-o1labs

I also have an eternal pull request so we can see the diff clearly and what I and @Trivo25 changed to make it fall into line
o1-labs/async_ssl#1

@bleepbloopsify
Copy link
Member Author

!ci-build-me

@bleepbloopsify
Copy link
Member Author

!ci-toolchain-me

@bleepbloopsify bleepbloopsify requested a review from a team as a code owner September 25, 2025 18:23
@bleepbloopsify
Copy link
Member Author

!ci-build-me

@bleepbloopsify
Copy link
Member Author

!ci-toolchain-me

@bleepbloopsify
Copy link
Member Author

!ci-build-me

@bleepbloopsify bleepbloopsify force-pushed the leon/async-ssl-macos-compat branch from 691ba09 to a4d43e4 Compare September 29, 2025 16:54
@bleepbloopsify
Copy link
Member Author

!ci-toolchain-me

@bleepbloopsify
Copy link
Member Author

!ci-build-me

@dannywillems
Copy link
Member

How optimisation flags are handled should be removed from dune, and xtask should be used. See the directory xtask in proof-systems.

@glyh
Copy link
Member

glyh commented Sep 30, 2025

I think we might want someone actually working on MacOS to confirm this is working. We don't have a CI workflow for MacOS unfortunately.

@dannywillems
Copy link
Member

I think we might want someone actually working on MacOS to confirm this is working. We don't have a CI workflow for MacOS unfortunately.

Could we add one using GitHub Actions?

@glyh
Copy link
Member

glyh commented Sep 30, 2025

Could we add one using GitHub Actions?

Sure, I'd support that :)

@bleepbloopsify
Copy link
Member Author

How optimisation flags are handled should be removed from dune, and xtask should be used. See the directory xtask in proof-systems.

Looking at xtask/main.rs in proof-systems, I only see support for web and nodejs targets. This target is for kimchi_stubs. I can see that we could create wasm targets with xtask, but the kimchi-stubs package is for a static library, so it feels a bit out of place.

I'm going to leave it as is, @dannywillems, thoughts?

@bleepbloopsify
Copy link
Member Author

Do I need a !ci-bypass-changelog here?

@glyh
Copy link
Member

glyh commented Sep 30, 2025

Do I need a !ci-bypass-changelog here?

I think we can bypass changelog for this, I don't have that permission unfortunately.

@cjjdespres
Copy link
Member

!ci-bypass-changelog

@cjjdespres
Copy link
Member

Yes, I think this is just pinning a package and cleaning the build log output, right? Nothing interesting for the changelog.

@bleepbloopsify
Copy link
Member Author

!ci-build-me

@bleepbloopsify bleepbloopsify force-pushed the leon/async-ssl-macos-compat branch from 1c045c3 to 12e0884 Compare October 2, 2025 14:58
@bleepbloopsify
Copy link
Member Author

Looks like we already support kimchi stubs in xtask, but we have to wait for newer proof-systems :(((

Removed the optimization flag rules

@querolita
Copy link
Member

querolita commented Oct 3, 2025

I have an M1 that I haven't used for coding in a long while. So its env should still contain all of the mac-related errors it had earlier (if not more!). Thus, I will look into this and give feedback as part of the review loop. Is it OK if I do so on Monday? @bleepbloopsify @glyh

moves `async_ssl` from public package (v0.14.0) to our own pin
(v0.14.0-o1labs), since its not compatible with macos.
@bleepbloopsify bleepbloopsify force-pushed the leon/async-ssl-macos-compat branch from 12e0884 to 993f2ec Compare October 13, 2025 16:46
@bleepbloopsify
Copy link
Member Author

!ci-build-me

Copy link
Member

@querolita querolita left a comment

Choose a reason for hiding this comment

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

IT WORKS ON M1 🤯

What else can I say: BRAVO 💃🏻

@glyh
Copy link
Member

glyh commented Oct 14, 2025

Could we consider add a github workflow so to ensure we don't accidentally break it in the future?

Not something that have to be done in this PR, but very preferrable to have.

Copy link
Member

@dannywillems dannywillems left a comment

Choose a reason for hiding this comment

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

LGTM. I would be in favor of adding a GitHub actions workflow for macOS as part of a follow-up. This would ensure that we keep supporting macOS.
macos-13, macos-14, macos-15 and macos-latest are available platforms for workflows. A GitHub reusable action could be used to have a single workflow file and support all platforms at the same time.

@bleepbloopsify bleepbloopsify merged commit 93619f2 into compatible Oct 14, 2025
38 checks passed
@bleepbloopsify bleepbloopsify deleted the leon/async-ssl-macos-compat branch October 14, 2025 14:10
@bleepbloopsify
Copy link
Member Author

I have a WIP macos build in o1js at the moment (on GitHub actions)

Will probably port that over to mina once it's finished

@bleepbloopsify
Copy link
Member Author

o1-labs/o1js#2502

This is the current efforts at "native build workflow" on o1js

we're building without nix on ubuntu and macos, still working on making sure the macos build is happy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants