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

builder request: Octave #8397

Closed
Krastanov opened this issue Apr 1, 2024 · 7 comments
Closed

builder request: Octave #8397

Krastanov opened this issue Apr 1, 2024 · 7 comments

Comments

@Krastanov
Copy link
Contributor

Having Octave available in Yggdrasil will make the creation of simple matlab-translation tools a bit easier (OctaveCall.jl akin to PythonCall.jl and MATLAB.jl). Creating this issue here to track potential progress.

@ViralBShah
Copy link
Member

I suppose this should be straightforward to build, but may need a bit of work to use all the dependencies from Ygg itself.

@ViralBShah
Copy link
Member

ViralBShah commented Oct 2, 2024

I believe this is not straightforward because the Octave build process did not support cross-compilation. This was a while ago, and perhaps things have changed.

@ViralBShah
Copy link
Member

ViralBShah commented Oct 2, 2024

We do have an interface package, but it will need a significant refresh since it uses Cxx.jl. https://github.com/JuliaInterop/OctCall.jl

@imciner2
Copy link
Member

Octave was added inhttps://github.com//pull/9729, so closing this.

@ViralBShah
Copy link
Member

ViralBShah commented Dec 26, 2024

The produced binaries have some issues - but yes at lesat we have the builder.

#9887

@ViralBShah
Copy link
Member

ViralBShah commented Jan 31, 2025

Works:

julia> using Octave_jll, OpenBLAS32_jll

julia>  withenv("LBT_DEFAULT_LIBS"=>OpenBLAS32_jll.libopenblas_path, "OCTAVE_HOME"=>Octave_jll.artifact_dir) do
           run(Octave_jll.octave_cli())
       end
GNU Octave, version 9.3.0
Copyright (C) 1993-2024 The Octave Project Developers.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type 'warranty'.

Octave was configured for "aarch64-apple-darwin20".

Home page:            https://octave.org
Support resources:    https://octave.org/support
Improve Octave:       https://octave.org/get-involved

For changes from previous versions, type 'news'.

octave:1> rand(2)+rand(2)
ans =

   1.7363   1.2488
   1.1367   1.1966

octave:2> 

@giordano
Copy link
Member

Minor nitpick: I warmly recommend using addenv over withenv, the former is thread-safe, the latter isn't. I personally had bad experiences with withenv, if the process dies unexpectedly, you can end up with a broken ENV which breaks everything.

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

4 participants