# HG changeset patch # User Kai T. Ohlhus # Date 1600162024 -32400 # Node ID e69093ab49923d9d4373d9712adbb494e62afd1e # Parent 122936d3389af6036db47271ff91665f0ac28bb2 Improve Release Notes display. diff -r 122936d3389a -r e69093ab4992 _includes/release_news_select.md --- a/_includes/release_news_select.md Tue Sep 15 16:09:22 2020 +0900 +++ b/_includes/release_news_select.md Tue Sep 15 18:27:04 2020 +0900 @@ -1,13 +1,13 @@ News for version  -[5.1]({{ 'NEWS-5.1.html' | relative_url }})   +[5 ]({{ 'NEWS-5.1.html' | relative_url }})   [4.4]({{ 'NEWS-4.4.html' | relative_url }})   [4.2]({{ 'NEWS-4.2.html' | relative_url }})   -[4.0]({{ 'NEWS-4.0.html' | relative_url }})   +[4 ]({{ 'NEWS-4.0.html' | relative_url }})   [3.8]({{ 'NEWS-3.8.html' | relative_url }})   [3.6]({{ 'NEWS-3.6.html' | relative_url }})   [3.4]({{ 'NEWS-3.4.html' | relative_url }})   [3.2]({{ 'NEWS-3.2.html' | relative_url }})   -[3.0]({{ 'NEWS-3.html ' | relative_url }})   -[2 ]({{ 'NEWS-2.html ' | relative_url }})   -[1 ]({{ 'NEWS-1.html ' | relative_url }})   +[3 ]({{ 'NEWS-3.html' | relative_url }})   +[2 ]({{ 'NEWS-2.html' | relative_url }})   +[1 ]({{ 'NEWS-1.html' | relative_url }})   ([Release History]({{ site.wiki_url }}/Release_History)) diff -r 122936d3389a -r e69093ab4992 css/app.css --- a/css/app.css Tue Sep 15 16:09:22 2020 +0900 +++ b/css/app.css Tue Sep 15 18:27:04 2020 +0900 @@ -1,5 +1,13 @@ /* Custom classes */ +h3, h4 { + margin-top: 1em; +} + +h3.entry-title { + margin-top: 0em; +} + footer { margin-top: 2em; margin-bottom: 2em; diff -r 122936d3389a -r e69093ab4992 pages/NEWS-1.md --- a/pages/NEWS-1.md Tue Sep 15 16:09:22 2020 +0900 +++ b/pages/NEWS-1.md Tue Sep 15 18:27:04 2020 +0900 @@ -8,7 +8,15 @@ {% include release_news_select.md %} -

Summary of changes for version 1.1.1

+{::options parse_block_html="true" /} +
+* TOC +{:toc} +
+{::options parse_block_html="false" /} + + +### Version 1.1.1
   * New built-in variables, default_return_value and
@@ -62,7 +70,7 @@
   * More bug fixes.
 
-

Summary of changes for version 1.1.0

+### Version 1.1.0
   * Octave now requires g++ 2.6.3 or later.  This change is necessary
@@ -596,27 +604,25 @@
   * Lots of bug fixes.
 
-

Summary of changes for version 1.0

+### Version 1.0 + +- C-style I/O functions now handle files referenced by name or by + number more consistently. -
-  * C-style I/O functions now handle files referenced by name or by
-    number more consistently.
-
-

Summary of changes for version 0.83

+### Version 0.83 + +- Loading global symbols should work now. -
-  * Loading global symbols should work now.
+- Clearing the screen doesn't reprint the prompt unnecessarily.
 
-  * Clearing the screen doesn't reprint the prompt unnecessarily.
+- The operations ` OP ` for `OP == +, -, *, or ./`
+  no longer crash Octave.
 
-  * The operations  OP  for OP == +, -,
-    *, or ./ no longer crash Octave.
+- More portability and configuration fixes.
 
-  * More portability and configuration fixes.
-
-

Summary of changes for version 0.82

+### Version 0.82
   * Octave now comes with a reference card.
@@ -650,7 +656,7 @@
   * Various other bug and portability fixes.
 
-

Summary of changes for version 0.81

+### Version 0.81
   * Octave no longer dumps core if you try to define a function in
@@ -670,7 +676,7 @@
     at all.
 
-

Summary of changes for version 0.80

+### Version 0.80
   * I have started working on a manual for the C++ classes.  At this
@@ -809,7 +815,7 @@
     the compiler command line.
 
-

Summary of changes for version 0.79

+### Version 0.79
   * New control systems functions:
@@ -824,7 +830,7 @@
     value as a second return value.
 
-

Summary of changes for version 0.78

+### Version 0.78
   * Octave's handling of global variables has been completely
@@ -949,7 +955,7 @@
   * Line and column information is included in more error messages.
 
-

Summary of changes for version 0.77

+### Version 0.77
   * Improved help.  The command `help -i topic' now uses the GNU Info
@@ -959,7 +965,7 @@
   * New function: chol -- Cholesky factorization.
 
-

Summary of changes for version 0.76

+### Version 0.76
   * Better run-time error messages.  Many now include line and column
@@ -981,7 +987,7 @@
   * Long options (--help, --version, etc.) are supported.
 
-

Summary of changes for version 0.75

+### Version 0.75
   * The documentation is much more complete, but still could use a lot
@@ -1028,7 +1034,7 @@
       tzero           -- Compute the transmission zeros of [A,B,C,D].
 
-

Summary of changes for version 0.74

+### Version 0.74
   * Formal parameters to functions are now always considered to be
@@ -1050,7 +1056,7 @@
     will work correctly.
 
-

Summary of changes for version 0.73

+### Version 0.73
   * Saving and loading global variables works correctly now.
@@ -1091,7 +1097,7 @@
                 (with others to possibly be added later).
 
   * Octave now prints a warning if it finds anything other than
-    whitespace or comments after the final `end' or `endfunction'
+    whitespace or comments after the final `end` or `endfunction`
     statement.
 
   * The bodies of functions, and the for, while, and if commands are
@@ -1103,7 +1109,7 @@
     about where to find QPSOL and NPSOL are in the file README.NLP.
 
-

Summary of changes for version 0.72

+### Version 0.72
   * For numeric output, columns are now lined up on the decimal point.
@@ -1246,7 +1252,7 @@
 
 
-

Summary of changes for version 0.71

+### Version 0.71
   * Much improved plotting facility.  With this release, Octave does
@@ -1320,7 +1326,7 @@
   * Use of clear inside functions is now a parse error.
 
-

Summary of changes for version 0.70

+### Version 0.70
   * Better parse error diagnostics.  For interactive input, you get
@@ -1357,7 +1363,7 @@
     evaluating expressions.
 
-

Summary of changes for version 0.69

+### Version 0.69
   * Multiple assignments are now possible, so statements like
@@ -1388,7 +1394,7 @@
     library for those systems that don't have them.
 
-

Summary of changes for version 0.68

+### Version 0.68
   * New functions:
@@ -1397,7 +1403,7 @@
       input -- print a prompt and get user input.
 
-

Summary of changes for version 0.67

+### Version 0.67
   * New functions:
@@ -1450,7 +1456,7 @@
     I, j, or J.
 
-

Summary of changes for version 0.66

+### Version 0.66
   * Logical unary not operator (~ or !) now works for complex.
@@ -1473,7 +1479,7 @@
     possible to have more than one version of the interpreter installed.
 
-

Summary of changes for version 0.63

+### Version 0.63
   * The reshape function works again.
@@ -1483,7 +1489,7 @@
     like `3.3 * i' to be evaluated.
 
-

Summary of changes for version 0.61

+### Version 0.61
   * Octave has been successfully compiled using gcc 2.3.3 and libg++ 2.3.
@@ -1494,14 +1500,14 @@
     System V systems).
 
-

Summary of changes for version 0.57

+### Version 0.57
   * The C-like formatted print functions printf, fprintf, and sprintf
     finally work.
 
-

Summary of changes for version 0.56

+### Version 0.56
   * By default, octave prints a short disclaimer when it starts.
@@ -1521,7 +1527,7 @@
       logm -- matrix logarithm.
 
-

Summary of changes for version 0.55

+### Version 0.55
   * The following (C-style) backslash escape sequences work in quoted
@@ -1557,7 +1563,7 @@
     value for this variable is 'false'.
 
-

Summary of changes for version 0.52

+### Version 0.52
   * Name completion works for function and variable names currently in
@@ -1594,15 +1600,14 @@
     built-in or currently compiled functions.
 
-

Summary of changes for version 0.51

+### Version 0.51 -
-  * Major overhaul of array indexing.
+- Major overhaul of array indexing.
 
-  * The colloc function actually works now.
-
+- The colloc function actually works now. -

Summary of changes for version 0.50

+ +### Version 0.50
   * The lsode and dassl functions now return the states only,
diff -r 122936d3389a -r e69093ab4992 pages/NEWS-2.md
--- a/pages/NEWS-2.md	Tue Sep 15 16:09:22 2020 +0900
+++ b/pages/NEWS-2.md	Tue Sep 15 18:27:04 2020 +0900
@@ -8,45 +8,54 @@
 
 {% include release_news_select.md %}
 
-

Summary of changes for version 2.0.17

+{::options parse_block_html="true" /} +
+* TOC +{:toc} +
+{::options parse_block_html="false" /} + + +### Version 2.0.17 -

This will probably be the last release in the 2.0.x series. There are -a few bug fixes, but the major change is to print a message saying -that Octave 2.0.x cannot be compiled with gcc 3.0.x or gcc 2.96. If -you want to build Octave 2.0.x, you will need to use gcc 2.95.x. If -you want to use gcc 3.0.x or some later version, you should be using -the Octave 2.1.35 sources or a more recent version.

+- This will probably be the last release in the 2.0.x series. There are + a few bug fixes, but the major change is to print a message saying + that Octave 2.0.x cannot be compiled with gcc 3.0.x or gcc 2.96. If + you want to build Octave 2.0.x, you will need to use gcc 2.95.x. If + you want to use gcc 3.0.x or some later version, you should be using + the Octave 2.1.35 sources or a more recent version. -

Summary of changes for version 2.0.16

-

This is primarily a bug-fixing release.

+### Version 2.0.16 -

Summary of changes for version 2.0.15

+- This is primarily a bug-fixing release. -

This is primarily a bug-fixing release.

- +### Version 2.0.15 + +- This is primarily a bug-fixing release. -

Summary of changes for version 2.0.14

+- If you are using GNU Emacs 19.34 or earlier, you will need to add + the following code to your `~/.emacs` file in order to use Emacs + Octave mode: + ``` + ;; Set up the custom library. + ;; taken from http://www.dina.kvl.dk/~abraham/custom/ + (eval-and-compile + (condition-case () + (require 'custom) + (error nil)) + (if (and (featurep 'custom) (fboundp 'custom-declare-variable)) + nil ;; We've got what we needed + ;; We have the old custom-library, hack around it! + (defmacro defgroup (&rest args) + nil) + (defmacro defcustom (var value doc &rest args) + (` (defvar (, var) (, value) (, doc)))))) + ``` + + +### Version 2.0.14 This release fixes numerous bugs and adds the following new features: @@ -526,13 +535,15 @@
  • The mkoctfile script now accepts -DDEF options and passes them on to the C and C++ compilers.
  • - -

    Summary of changes for version 2.0.13

    + + + +### Version 2.0.13 -

    This is a bug-fixing release. There are no new user-visible features.

    +- This is a bug-fixing release. There are no new user-visible features. -

    Summary of changes for version 2.0.12

    + +### Version 2.0.12 -

    Summary of changes for version 2.0.11

    + +### Version 2.0.11 - +- There are two new built-in variables that control how global + variables are initialized. If `initialize_global_variables` is + nonzero, global variables are initialized to the value of the + variable `default_global_variable_value`. The default value of + `initialize_global_variables` is 0 (1 if you use `--traditional`) + and `default_global_variable_value` is undefined (the empty matrix + if you use `--traditional`). The default settings are compatible + with versions of Octave before 2.0.10. -

    Summary of changes for version 2.0.10

    + +### Version 2.0.10 -

    Summary of changes for version 2.0.9

    -

    This is a bug-fixing release, but there is one new user-visible -feature:

    +### Version 2.0.9 + +- This is a bug-fixing release, but there is one new user-visible feature: -

    Summary of changes for version 2.0.8

    + +### Version 2.0.8

    This is a bug-fixing release. There are only a few new user-visible features.

    @@ -682,11 +694,13 @@ files from multiple source and object files. -

    Summary of changes for version 2.0.7

    + +### Version 2.0.7 -

    This is a bug-fixing release. There are no new user-visible features.

    +- This is a bug-fixing release. There are no new user-visible features. -

    Summary of changes for version 2.0.6

    + +### Version 2.0.6

    This is primarily a bug-fixing release. There are only a few new user-visilbe features.

    @@ -701,7 +715,8 @@ because they are not free software. -

    Summary of changes for version 2.0.5

    + +### Version 2.0.5 -

    Summary of changes for version 2.0.4

    + +### Version 2.0.4 -

    Summary of changes for version 2.0.3

    + +### Version 2.0.3 -

    Summary of changes for version 2.0.2

    -
    + -

    Summary of changes for version 2.0.1

    +### Version 2.0.1 -

    Other than bug fixes, there were no user-visible changes in version -2.0.1. +- Other than bug fixes, there were no user-visible changes in version 2.0.1. -

    Summary of changes for version 2.0

    + +### Version 2.0

    diff -r 122936d3389a -r e69093ab4992 pages/NEWS-3.2.md --- a/pages/NEWS-3.2.md Tue Sep 15 16:09:22 2020 +0900 +++ b/pages/NEWS-3.2.md Tue Sep 15 18:27:04 2020 +0900 @@ -10,6 +10,14 @@ {% include release_news_select.md %} +{::options parse_block_html="true" /} +
    +* TOC +{:toc} +
    +{::options parse_block_html="false" /} + +
      ** Compatibility with Matlab graphics has been improved.
     
    diff -r 122936d3389a -r e69093ab4992 pages/NEWS-3.4.md
    --- a/pages/NEWS-3.4.md	Tue Sep 15 16:09:22 2020 +0900
    +++ b/pages/NEWS-3.4.md	Tue Sep 15 18:27:04 2020 +0900
    @@ -10,6 +10,14 @@
     
     {% include release_news_select.md %}
     
    +{::options parse_block_html="true" /}
    +
    +* TOC +{:toc} +
    +{::options parse_block_html="false" /} + +
      ** IMPORTANT note about binary incompatibility in this release:
     
    diff -r 122936d3389a -r e69093ab4992 pages/NEWS-3.6.md
    --- a/pages/NEWS-3.6.md	Tue Sep 15 16:09:22 2020 +0900
    +++ b/pages/NEWS-3.6.md	Tue Sep 15 18:27:04 2020 +0900
    @@ -10,6 +10,14 @@
     
     {% include release_news_select.md %}
     
    +{::options parse_block_html="true" /}
    +
    +* TOC +{:toc} +
    +{::options parse_block_html="false" /} + +
      ** The PCRE library is now required to build Octave.  If a pre-compiled
         package does not exist for your system, you can find PCRE sources
    diff -r 122936d3389a -r e69093ab4992 pages/NEWS-3.8.md
    --- a/pages/NEWS-3.8.md	Tue Sep 15 16:09:22 2020 +0900
    +++ b/pages/NEWS-3.8.md	Tue Sep 15 18:27:04 2020 +0900
    @@ -10,6 +10,14 @@
     
     {% include release_news_select.md %}
     
    +{::options parse_block_html="true" /}
    +
    +* TOC +{:toc} +
    +{::options parse_block_html="false" /} + +
       ** One of the biggest new features for Octave 3.8 is a graphical user
          interface.  It is the one thing that users have requested most
    diff -r 122936d3389a -r e69093ab4992 pages/NEWS-3.md
    --- a/pages/NEWS-3.md	Tue Sep 15 16:09:22 2020 +0900
    +++ b/pages/NEWS-3.md	Tue Sep 15 18:27:04 2020 +0900
    @@ -10,6 +10,14 @@
     
     {% include release_news_select.md %}
     
    +{::options parse_block_html="true" /}
    +
    +* TOC +{:toc} +
    +{::options parse_block_html="false" /} + +
    • Compatibility with Matlab graphics is much better. We now have some graphics features that work like Matlab's Handle diff -r 122936d3389a -r e69093ab4992 pages/NEWS-4.0.md --- a/pages/NEWS-4.0.md Tue Sep 15 16:09:22 2020 +0900 +++ b/pages/NEWS-4.0.md Tue Sep 15 18:27:04 2020 +0900 @@ -10,6 +10,14 @@ {% include release_news_select.md %} +{::options parse_block_html="true" /} +
      +* TOC +{:toc} +
      +{::options parse_block_html="false" /} + +
        ** A graphical user interface is now the default when running Octave
           interactively.  The start-up option --no-gui will run the familiar
      diff -r 122936d3389a -r e69093ab4992 pages/NEWS-4.2.md
      --- a/pages/NEWS-4.2.md	Tue Sep 15 16:09:22 2020 +0900
      +++ b/pages/NEWS-4.2.md	Tue Sep 15 18:27:04 2020 +0900
      @@ -10,6 +10,14 @@
       
       {% include release_news_select.md %}
       
      +{::options parse_block_html="true" /}
      +
      +* TOC +{:toc} +
      +{::options parse_block_html="false" /} + +
        ** The parser has been extended to accept, but ignore, underscore
           characters in numbers.  This facilitates writing more legible code
      diff -r 122936d3389a -r e69093ab4992 pages/NEWS-4.4.md
      --- a/pages/NEWS-4.4.md	Tue Sep 15 16:09:22 2020 +0900
      +++ b/pages/NEWS-4.4.md	Tue Sep 15 18:27:04 2020 +0900
      @@ -10,6 +10,16 @@
       
       {% include release_news_select.md %}
       
      +{::options parse_block_html="true" /}
      +
      +* TOC +{:toc} +
      +{::options parse_block_html="false" /} + + +### General improvements +
        ** A graphical Variable Editor has been added to the GUI interface.
           It uses a spreadsheet-like interface for quick, intuitive editing
      @@ -131,6 +141,14 @@
           Use ishghandle or isgraphics if it is important not to include Java
           objects.
       
      + ** The "Octave:undefined-return-values" warning ID is obsolete.  Octave
      +    now throws an error for any attempts to assign undefined values that
      +    might be returned from functions.
      +
      + ** The header file oct-alloc.h has been removed along with the macros
      +    that it defined (DECLARE_OCTAVE_ALLOCATOR, DEFINE_OCTAVE_ALLOCATOR,
      +    and DEFINE_OCTAVE_ALLOCATOR2).
      +
        ** The pkg command now accepts a URL as an argument, allowing a valid
           Octave package to be installed from any remote host with one command,
           for example
      @@ -267,124 +285,119 @@
       
             ntsc2rgb
             rgb2ntsc
      +
      - ** Other new functions added in 4.4: + +### Deprecated functions and properties + +The following functions and properties have been deprecated in Octave 4.4 +and will be removed from Octave 6 (or whatever version is the second major +release after 4.4): + +- Functions + + Function | Replacement + ---------------------|----------------------------- + `chop` | `sprintf` for visual results + `desktop` | `isguirunning` + `tmpnam` | `tempname` + `toascii` | `double` + `java2mat` | `__java2mat__` + - bounds - camlookat - camorbit - campos - camroll - camtarget - camup - camva - camzoom - corrcoef - cosint - decic - erase - gammaincinv - getframe - groot - gsvd - hgtransform - humps - integral - integral2 - integral3 - isgraphics - isstring - mad - ode15i - ode15s - openvar - quad2d - repelem - rgb2gray - rticks - sinint - tfqmr - thetaticks - vecnorm - winqueryreg - xticklabels - xticks - yticklabels - yticks - zticklabels - zticks +- Graphics properties - ** Deprecated functions. - - The following functions have been deprecated in Octave 4.4 and will - be removed from Octave 6 (or whatever version is the second major - release after 4.4): + Object | Property | Value + ---------------------|-------------------------|------------------- + figure | doublebuffer | + | mincolormap | + | wvisual | + | wvisualmode | + | xdisplay | + | xvisual | + | xvisualmode | + axes | drawmode | + annotation | edgecolor ("rectangle") | + text | fontweight | "demi" and "light" + uicontrol | fontweight | "demi" and "light" + uipanel | fontweight | "demi" and "light" + uibuttongroup | fontweight | "demi" and "light" - Function | Replacement - ---------------------|------------------ - chop | sprintf for visual results - desktop | isguirunning - tmpnam | tempname - toascii | double - java2mat | __java2mat__ +- The `rectangle` and `ellipse` annotation property `"edgecolor"` has been + deprecated and will be removed from Octave 6 (or whatever version + is the second major release after 4.4). Use the property `"color"` + instead. - ** The following functions were deprecated in Octave 4.0 and have been - removed from Octave 4.4. +### Removed functions + +The following functions were deprecated in Octave 4.0 and have been +removed from Octave 4.4. - allow_noninteger_range_as_index - bicubic - delaunay3 - do_braindead_shortcircuit_evaluation - dump_prefs - find_dir_in_path - finite - fmod - fnmatch - gmap40 - loadaudio - luinc - mouse_wheel_zoom - nfields - octave_tmp_file_name - playaudio - saveaudio - setaudio - syl - usage +- `allow_noninteger_range_as_index` +- `bicubic` +- `delaunay3` +- `do_braindead_shortcircuit_evaluation` +- `dump_prefs` +- `find_dir_in_path` +- `finite` +- `fmod` +- `fnmatch` +- `gmap40` +- `loadaudio` +- `luinc` +- `mouse_wheel_zoom` +- `nfields` +- `octave_tmp_file_name` +- `playaudio` +- `saveaudio` +- `setaudio` +- `syl` +- `usage` - ** The "Octave:undefined-return-values" warning ID is obsolete. Octave - now throws an error for any attempts to assign undefined values that - might be returned from functions. - ** Deprecated graphics properties. +### Alphabetical list of new functions added in Octave 4.4 - The following properties or allowed corresponding values have been - deprecated in Octave 4.4 and will be removed from Octave 6 (or whatever - version is the second major release after 4.4): - - Object | Property | Value - ---------------------|-------------------------|------------------- - figure | doublebuffer | - | mincolormap | - | wvisual | - | wvisualmode | - | xdisplay | - | xvisual | - | xvisualmode | - axes | drawmode | - annotation | edgecolor ("rectangle") | - text | fontweight | "demi" and "light" - uicontrol | fontweight | "demi" and "light" - uipanel | fontweight | "demi" and "light" - uibuttongroup | fontweight | "demi" and "light" - - ** The rectangle and ellipse annotation property "edgecolor" has been - deprecated and will be removed from Octave 6 (or whatever version - is the second major release after 4.4). Use the property "color" - instead. - - ** The header file oct-alloc.h has been removed along with the macros - that it defined (DECLARE_OCTAVE_ALLOCATOR, DEFINE_OCTAVE_ALLOCATOR, - and DEFINE_OCTAVE_ALLOCATOR2). -
      +- `bounds` +- `camlookat` +- `camorbit` +- `campos` +- `camroll` +- `camtarget` +- `camup` +- `camva` +- `camzoom` +- `corrcoef` +- `cosint` +- `decic` +- `erase` +- `gammaincinv` +- `getframe` +- `groot` +- `gsvd` +- `hgtransform` +- `humps` +- `integral` +- `integral2` +- `integral3` +- `isgraphics` +- `isstring` +- `mad` +- `ode15i` +- `ode15s` +- `openvar` +- `quad2d` +- `repelem` +- `rgb2gray` +- `rticks` +- `sinint` +- `tfqmr` +- `thetaticks` +- `vecnorm` +- `winqueryreg` +- `xticklabels` +- `xticks` +- `yticklabels` +- `yticks` +- `zticklabels` +- `zticks` diff -r 122936d3389a -r e69093ab4992 pages/NEWS-5.1.md --- a/pages/NEWS-5.1.md Tue Sep 15 16:09:22 2020 +0900 +++ b/pages/NEWS-5.1.md Tue Sep 15 18:27:04 2020 +0900 @@ -17,6 +17,7 @@ {::options parse_block_html="false" /} + ### General improvements - The Octave plotting system now supports high resolution screens, @@ -296,7 +297,7 @@ `text` | `erasemode` | -### Alphabetical list of new functions added in 5 +### Alphabetical list of new functions added in Octave 5 - `clearvars` - `isfile` diff -r 122936d3389a -r e69093ab4992 pages/index.md --- a/pages/index.md Tue Sep 15 16:09:22 2020 +0900 +++ b/pages/index.md Tue Sep 15 18:27:04 2020 +0900 @@ -4,10 +4,8 @@ ---
      -
      - Need help? Try out our new user and developer forum - Octave Discourse. -
      + Need help? Try out our new user and developer forum + Octave Discourse. @@ -27,7 +25,7 @@ alt="GNU Octave logo"> GNU Octave -

      Scientific Programming Language

      +

      Scientific Programming Language

      • Powerful mathematics-oriented syntax with built-in 2D/3D plotting and visualization tools
      • Free software, runs on GNU/Linux, macOS, BSD, and Microsoft Windows
      • @@ -40,6 +38,7 @@
      + ### Syntax Examples The Octave syntax is largely compatible with Matlab.