Octave Wikipedia pages

Looks like the Octave-related pages on Wikipedia are a bit out of date and (IMHO) kinda incomplete. They’re missing the last couple releases of Octave, and omit several features from the description in the main page.

Anyone interested in a little project to spruce them up?

1 Like

for the Comparison page:
General table - I updated the version and date

Operating systems table - Octave is listed as a Yes for all, including DOS, Android, and SaaS. How far back in versions do we have to go to count on DOS compatability? I know there are a few ways for it to work on Android. But not sure what it takes to qualify as a yes for SaaS.

Language features -

  • Symbolic support: " GiNaC extension, wrappers to SymPy". The latter is still an accurate description, but I’ve never heard of GiNaC. Is that still accurate/relevant? Should we just leave the sympy part?

And both of these:

  • Can call code in other languages: C++, Fortran, Perl, Tcl
  • Can be called from other languages: Java, Perl, C++

all highlighted as “official or officially supported extensions and libraries” (other options being “basic system capabilities” or “third-party software components or not supported”. We can probably add at least Python. XML (relies on Java library)? other?

For the main page:

I updated a few references/ links to the 7.1.0 release.

Looking through the list of Notable features / compatibility - I didn’t see subsref chaining. I would list this as a feature. a(3:end)(7) versus b = a(3:end); b(7). I believe the latter still produces an error in matlab. (see Indexing of fresh array in one line without intermediate variable. -). Not sure where it should go though.

packages list - I assume this could use some curating. Seems to be just the list of everything at octave forge. Should this list be a subset/superset of that?

1 Like

Would https://octave-online.net/ qualify as SaaS?

from the linked SaaS page: " SaaS is also known as “on-demand software” and Web-based/Web-hosted software… SaaS apps are typically accessed by users using a thin client, e.g. via a web browser. "

so, um… sure!

after dev meeting discussion:

main octave page - full package list removed. For now just left link to Octave Forge packages page. Should any other link get added there with or instead of that one? GNU Octave - Packages perhaps?

any changes to notable features still TBD.

Numerical software page:

  • changed DOS support to No.

languages - removed reference to GiNaC, left Wrapper to Sympy, and changed it from red (3rd party/unsupported) to yellow (external package/supported).

added python to both languages lists. Seems the rest could stay, but could use other suggestions on the rest (apparently it should mention what can be directly called, rahter than including “everything c++/java” can call")

I did add a link to Github Octave Packages, so for now both that and Octave Forge are in that list.

Thanks @nrjank, I should have elaborated on this in the meeting yesterday. Octave packages is online, working, and with least manpower fully maintainable on GitHub. All Octave Forge packages are listed there and more, thus Octave packages is a superset of Octave Forge.

Due to the missing link to the new platform via the work-in-too-slow-progess pkg-tool. Octave Forge is still the only platform where package names can be easily resolved yet. Otherwise and due to missing maintaners Octave Forge is basically abandoned now.

Yes, i took a look at the current pkg. in the interest of extending it to work with github (install -github <pkg> ?) until a better package tool is ‘ready’, seems it would need to be able to respond to list and install, currently handled by a series of specific private functions. Don’t know if there was any thought about trying to do that versus just waiting on a new tool.

In any case, at least linking both on wikipedia makes sense for now.

1 Like

Oops, forgot to bookmark this thread, but I gave you a like instead :sweat_smile: If you want to work on this, I can help you and some documentation how to obtain the entire Octave Packages index with 6 lines of code is also available:

Octave Forge uses a web scraping approach for resolving packages :bomb: :scream: therefore I do not dare to make significant layout changes on Octave Forge, as each slightest changes might affect users of older Octave versions no longer being able to install packages :sweat: Thus all we can do today is maintaining what exists on Octave Forge, until somebody comes up with a solution to this dilemma.

Maybe add C to the call from/to lists? It’s not the same language as C++, especially when it comes to integration and linking.

Thanks y’all for hopping on this!

done .should any of the call from/to be listed as “basic system capabilities”. currently they’re all highlighted as “official or officially supported extensions and libraries” (third option being “third-party software components or not supported”)

I thought these were all “basic system capabilities” of Octave, since the “external code interface” to the external language (C, C++, Java, or Python; I dunno about Perl) is part of Octave itself; it’s only the code in those other languages which you might be pulling in that is an extension or a library?

Also, in the “Appendix A External Code Interface” section of the Octave 7.1 doco, I see sections for oct-files (C/C++/Fortran, I think?) MEX files, and Java, but not for Python, though I thought the calling-embedded-Python functionality was a functionality of core Octave and would go in this section.

I don’t really know what the Octave-Perl interface is like; can’t comment on that.

Actually, I take that back: the “calling other languages from Octave” is a core Octave capability, but it looks like “calling Octave from other languages” is a mix: while calling Octave from C/C++ is (I think?) a core capability, calling Octave from Java is a third-party library using joPas etc. Dunno about calling Octave from Python.

I’m not aware of a Python interface in core Octave. But I could be wrong.

I thought the Octave Forge Symbolic package was a thing built on top of sympy that used an Octave/Python interface for that?

IIUC, octsympy has its “own” interface to Python. See:
octsympy/pycall_sympy__.m at main · cbm755/octsympy (github.com)

Oh, yup, you’re right. I was just looking through the Symbolic Package source to figure this out, and came to the same conclusion. So, nevermind! Probably shouldn’t list Python at all as “call from/to”, since this isn’t core Octave functionality, and the interface Symbolic Package is using is an internal implementation thing and not generically reusable by other code.

wasn’t thinking specifically of symbolic for python. I think I was thinknig of, e.g., oct2py and Pythonic, but maybe I was overestimating their maturity? looks like in both cases they should be “third party software components or not supported” if anything.