Git Product home page Git Product logo

Comments (6)

bnaras avatar bnaras commented on July 29, 2024 1

@barracuda156 I already maintain the R package ECOSolveR already and I have seen one example where the underlying ECOS C library leaks memory. I do fix things where I can, but not being an original author makes it time-consuming and difficult. (ECOS is also in the process of being deprecated in CVXPY too.)

Re: math. The authors of Clarabel chose to write the solver in Rust and I am glad to be able to make it available to R users.

But, at least for now, I can make this an enhancement rather than an import.

from cvxr.

bnaras avatar bnaras commented on July 29, 2024 1

This fix is in place in the clarabel_interface branch. You can install via:

devtools::install_github("cvxgrp/CVXR", ref="clarabel_interface")

or download the whole tree and checkout the clarabel_interface branch and install as usual.
It will make it to CRAN in due course.

from cvxr.

barracuda156 avatar barracuda156 commented on July 29, 2024

@bnaras Could you please take a look? I could revert related commits, of course, to fix it for MacPorts locally, but it is better to have it done properly for everyone.

from cvxr.

bnaras avatar bnaras commented on July 29, 2024

@barracuda156 thanks for letting me know. Certainly not our intent, and perhaps I pulled the trigger a bit too fast. We can make it optional by adding it to the "Enhances" field. Down the line, however, with ECOS not being maintained, we need a good conic solver as a default and so it might become necessary. I will do this as soon as I can.

from cvxr.

barracuda156 avatar barracuda156 commented on July 29, 2024

@bnaras Thank you.

With Rust there are two potential options to have it working on every platform:

  1. mrustc supports bootstrapping new enough Rust and GCC backend for Rust is completed. That will still require non-trivial efforts though, since rustc compiler is designed in a silly fashion and getting to the current version from some version bootstrapped by mrustc from C will require sequential builds of multiple versions of rustc. (Days/weeks of compilation.)
  2. gccrs (GCC compiler for Rust) is production-ready and can be used in place of rustc. This will actually fix it for every platform where GCC works, i.e. more or less everywhere, but we do not know when that happens.

Neither is gonna happen soon, AFAIK.

So it is desirable to have a fallback via a non-default configure option (to keep Rust-less systems with ECOS) or otherwise find some cross-platform replacement for Clarabel.

Down the line, however, with ECOS not being maintained

I am not familiar with the related code, so saying this blindly, but perhaps you could make a fork and maintain it?

Generally speaking, math should not require Rust, C/C++/Fortran work perfectly fine. If not, there are OCaml and Lisp, which are not completely cross-platform, but at least not as bad as Rust. (Both in terms of support for platforms and in terms of bootstrapping their compilers from sources.)

from cvxr.

barracuda156 avatar barracuda156 commented on July 29, 2024

@bnaras Thank you, this is appreciated.

from cvxr.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.