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

Can we drop rust? (And maybe llvm?) #248

Closed
2 tasks done
apjanke opened this issue Jan 18, 2024 · 4 comments
Closed
2 tasks done

Can we drop rust? (And maybe llvm?) #248

apjanke opened this issue Jan 18, 2024 · 4 comments
Assignees
Labels
bug Something isn't working
Milestone

Comments

@apjanke
Copy link
Contributor

apjanke commented Jan 18, 2024

The build has a 970 MB rust installation, which takes quite a while to build too. I'm not even sure what pulls that in; maybe svn? Would be nice to skip it entirely.

It should be pruned at app build time, but I see it sticking around in the releases, too. Fix that, at least.

Maybe it's librsvg, libmpc, or gdk-pixbuf?

Goes with #247.

TODO

  • Get rust pruned properly from the build.
  • [nope] See if we can skip it in the first place.
    • Find out what deps (direct and indirect) are actually pulling rust in. (answer: it's librsvg)
  • [testing] Prune llvm from the build.

References

@apjanke apjanke self-assigned this Jan 18, 2024
@apjanke apjanke added the bug Something isn't working label Jan 18, 2024
@apjanke apjanke added this to the 8.4.0 milestone Jan 18, 2024
@apjanke apjanke changed the title Really need rust? Can we drop rust? Jan 18, 2024
@apjanke
Copy link
Contributor Author

apjanke commented Jan 18, 2024

Heck, maybe we could ditch llvm, too? I think maybe only gcc is used for compiling oct/mex files, so maybe llvm is an Octave.app-build-time-only dependency, and could be pruned, or maybe avoided in the first place? Dunno.

image

@apjanke apjanke changed the title Can we drop rust? Can we drop rust? (And maybe llvm?) Jan 18, 2024
@apjanke
Copy link
Contributor Author

apjanke commented Jan 19, 2024

Heh. Looks like the only thing using llvm was rust.

[Formula] $ brew uses --installed --include-build llvm
rust
[Formula] $ brew uses --installed llvm
rust
[Formula] $

After removing rust from the Octave.app build, brew uses ... llvm outputs nothing. Think I can prune it, and seriously cut the installation size.

@apjanke
Copy link
Contributor Author

apjanke commented Jan 19, 2024

Aw, rats. Even with removing the subversion dependency, it still pulls in rust and llvm. librsvg has a depends_on "rust" => :build dependency.

Oh well. It's still nice to have all that stuff in the main build step instead of a separate brew install subversion before the main build. And I'm more confident that I can prune both rust and llvm after the build now, and get the install size way down. Added llvm to the list of build-time-only packages to prune at the end of the build.

@apjanke
Copy link
Contributor Author

apjanke commented Jan 19, 2024

Pruning rust and llvm from the build did some good.

  • Before: 6 GB app, 1.76 GB DMG (alpha2)
  • After: 3 GB app, 1.05 GB DMG (alpha3)

No additional failures in the test suite.

Summary:

  PASS                            17672
  FAIL                                3
  REGRESSION                          1
  XFAIL (reported bug)               60
  SKIP (missing feature)              3
  SKIP (run-time condition)          46

Got timing info now too. Just over two hours for the build on my M1 Max MBP. That's nice in case I forget to slap a time on it.

DMG ready at: ./build/Octave-8.4.0_alpha3.dmg
elapsed time: action: 01:25
elapsed time: whole build: 141:52
Build finished.

Calling this good and closing as Fixed-Enough. Unrealistic to eliminate the build-time dependency at this point, I think.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Archived in project
Development

No branches or pull requests

1 participant