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

Feasible to implement this without using Rust, but with C/C++/Fortran? #12

Closed
barracuda156 opened this issue Jun 28, 2024 · 4 comments
Closed

Comments

@barracuda156
Copy link

It cannot be done without depending on Rust, can it? Rust has an abysmal cross-platform support (i.e. just broken on a number of platforms completely, newer versions of it broken on some other).

@bnaras
Copy link
Collaborator

bnaras commented Jun 28, 2024

@barracuda156 can you provide details on your platform? The CRAN docs indicate that at least for the three major platforms Rust is supported but I realize that cannot possibly cover all situations/constraints.

@barracuda156
Copy link
Author

@barracuda156 can you provide details on your platform? The CRAN docs indicate that at least for the three major platforms Rust is supported but I realize that cannot possibly cover all situations/constraints.

AFAIK, current version of Rust (i.e. rustc) does not build on any macOS < 10.13 (which leaves all powerpc and i386 broken, and a large chunk of x86_64).

rustc is currently broken on OpenBSD on PowerPC.
On FreeBSD it seems to kinda work on ppc, but there are struggles: rust-lang/rust#116845

These are systems I am familiar with, but generally rustc will not work on any platform which is not supported by current LLVM (at least until GCC backend is complete and working). Plus platforms where LLVM works, but rustc itself is broken.

CRAN only cares about a few select platforms in bleeding edge versions on mainstream archs.

A separate concern is that Rust is simply a ridiculously heavy dependency to require for someone who does not need it otherwise. This applies to any platform.

@goulart-paul
Copy link
Member

I'm not sure I understand what you are asking for here. is the request for us to completely reimplement this project in C or Fortran?

The solver is written in Rust. As with any choice of development language, that decision comes with pros and cons including the range of platforms supported. The list of supported platforms for Rust is here. If you don't find your platform there, then this solver is not a good option for you.

If you want a solver with similar functionality but in C, then any of ECOS, SCS or OSQP or might be choices depending on the particular class of problem you want to solve.

@barracuda156
Copy link
Author

@goulart-paul Thank you for responding. Of course, if the whole of the code is in Rust, then the only chance of getting to compiled on every system will be gccrs, when/if it is usable. Understandably, no one will switch the language for the sake of a tiny share of potential users.

The context on my question was the following: there are projects which require Rust currently (FireFox, some Python cryptography packages, a few Gnome ports), but it was used to add some functionality and rewrite specific parts, and all of those do have rust-free versions (dating back a few years, but totally usable), and current versions could be modified to use rust-less codepaths, at least in principle. Adding Rust was in some cases gradual, so there were some releases where it could still be turned off manually (pycryptography, as I recall). Projects of this kind can be switched away from Rust, the obstacle being only a lack of willingness from their upstreams.

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

No branches or pull requests

3 participants