Up to [cvs.NetBSD.org] / pkgsrc / math / octave
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
octave: updated to 9.4.0 Summary of bugs fixed for version 9.4.0 (2025-02-05): Improvements and fixes - Fix error in calculation of file timestamp on Windows. GUI - Update Spanish translation file. - Update Brazilian Portuguese translation file. Build system / Tests - `cellfun`: Add test for function failing to return requested output - `arrayfun`: Add test for function failing to return requested output Documentation - Clarify default editor difference between CLI and GUI.
octave: updated to 9.3.0 Summary of bugs fixed for version 9.3.0 (2024-12-12): Improvements and fixes - `jupyter-notebook`: Avoid error if evaluated code closes an existing figure window. Use `unwind_protect` block to ensure figure and tempfile cleanup actions occur - `uitable`: Fix updating value with combo box selection - `movfun`: Correct output shape of n-D arrays when operating on dimensions higher than 2. This will affect all moving window functions (`movmad`, `movmax`, `movmean`, `movmedian`, `movmin`, `movprod`, `movstd`, `movsum`, and `movvar`) - `movvar` and `movstd`: Use correct default value of 0 if an empty array is specified for `opt` to maintain consistent behavior with `var` and `std`. Improve input validation to ensure `opt` is one of 0, 1, or []. - `fopen`: Convert identifier for locale charset to lower-case characters - `regexp`: Avoid integer underflow with unsigned integers. - `interp2`: Provide a meaningful error message if the input reference array is a vector - `struct2hdl.m`: Do not delete previously added axes children - `print`: Fix regression in pdf fonts - `legend` icons now inherit the "facelalpha" property to match appearance of patch and surface graphics objects - `barh` properties now better match equivalent `bar` plot. Changing `horizontal` property for a bar or barh plot now consistently updates properties to match redrawn plot - Tick mark labels are now correctly updated after changing x or y data for `bar` and `barh` plots - `hdl2struct.m`: Fix missing legend markers - Enable FLTK graphics toolkit on macOS if not multi-threaded - Do not execute PKG_ADD script in current directory GUI - Update Brazilian Portugese translation file - Fix some missing white spaces in documentation viewer Build system / Tests - `jupyter-notebook` test no longer fails if a figure window is open - `movmad`, `movmax`, `movmean`, `movmedian`, `movmin`, `movprod`, `movslice`, `movstd`, `movsum`, `movvar`: Add BISTs for general function operation. - `interp2`, `interp3`, `interpn`: Add more tests for non-numeric inputs - Update formatting of movXXX functions. Documentation - `load`: Correct documentation of `-v7.3` and `-hdf5` options - `interp2`, `interp3`, `interpn`: Specify that inputs need to be numeric - `error`: Document the `ID` argument - `sqp`: Clarify size requirements of input arguments `lb` and `ub` - Eliminate double period at end of "mode" graphics property documentation. - Fix makeinfo errors for comment block keywords
octave: updated to 9.2.0 Summary of bugs fixed for version 9.2.0 (2024-06-01): Improvements and fixes - `hist.m`: Add input validation for `Y` restricting it to 2-D array. Avoid error when `Y` value range is very small. - `cross.m`: Add input validation for `dim` restricting it to a numeric integer valued scalar. - `getframe.m`: Respect pixel ratio (high DPI) of screen with figure. - `legend.m`: Fix error if root property `"showhiddenhandles"` is `"on"` - `savepath.m`: Correctly handle packages without binaries. - Correctly scale figure position on screen with DPI scaling (high DPI). - `profile ('on')` now clears any existing profile data as the documentation states. - Fix segmentation fault when trying to set breakpoint in non-existent method of `classdef` class. - Improve default display of `classdef` properties. - Avoid crash with Qt6 6.7.0. - `bar.m`: Catch input number validation error. - Prevent OOM crash or segmentation fault in `sort ()` when `dim` equals `Inf`. - `legend.m`: Avoid setting more colors than coordinates for `patch` objects. - `inputParser.m`: Allow default classdef objects which overload `struct`. - Preserve `"position"` property of figure when object is `reset()`. - `hist.m`: Avoid error when `y` value range is very small. - `barh`: Add input validation check for `nargin < 1`. GUI - Use first word for options in right-click menu of command window widget . - Set `DontUseNativeDialog` flag as first property in `QFileDialog`. - Explicitly raise non-modal message boxes ensuring visibility. - Save and restore splitter state of documentation widget. - Allow executing new files from built-in editor with F5. - Allow unbinding GUI shortcuts. - Fix restoring headers in file browser and workspace view. - File dialogs of the built-in editor are now modal. - Fix dragging editor from main window into floating state. Build system / Tests - Avoid overriding `save_*` variables from outer scope. This fixes an error that might have lead to overlinking of shared libraries (e.g., `.oct` files). Consider rebuilding shared libraries that have been built with Octave 9.1.0. - Add BIST for `is_valid_file_id.m`. - Update metainfo.xml with new fields for AppStream 1.0. - Show result of check for `std::pmr::polymorphic_allocator` in configure summary. - Run test program for polymorphic allocators if possible instead of a simple build check. - Speed up BIST for the central part of `convn` with `'full'` shape. - Require Qt Widgets module when building the GUI. - `bug-53027.tst`: Delete temporary file after test is done. - Avoid build error with GCC 14 when targeting Windows. - Try to clean up after BIST also in case test failed. - `bar.m`, `barh.m`: Add plotting BISTs. - Check if C and Fortran compilers accept `-fexceptions` flag. This affects building Octave itself from sources and also how .mex or .oct files are built by `mex` and `mkoctfile`. Documentation - Describe shape of outputs for `hist`. - Simplify programming notes for `patch` objects. - `vecnorm.m`: Add missing parenthesis to equation in docstring. - Add example to Minimizers section on using anonymous functions to pass additional arguments to functions called by minimizer functions (`fminsearch`, `fminbnd`, `fminunc`). - Add application notes in `fminsearch`, `fminbnd`, `fminunc` indicating the preferred way to pass parameters is through anonymous functions. - Update remaining copyright statements to 2024. - Minor fix for `setappdata.m`. - Section "Assignment Expressions": Use `@emph` rather than `@i` macro for better rendering in plaintext formats. - Section "Running Octave": Tell new users how to start Octave on their computers. - `tsearch`: Add programming note about expected performance. Deprecated functions, properties, and operators - `fminsearch` parameter passing: A legacy, undocumented, and only partially supported syntax for passing parameters to the minimized function `fcn` called by `fminsearch` by appending them to the input argument list has functioned intermittently since Octave 4.4.0. Due to conflicts with other compatibility-required input methods the documentation of this syntax was removed in Octave 5.1.0, and the remaining functionality will be completely removed in Octave 10. The preferred method of passing parameters to any of the minimization functions (including `fminsearch`, `fminbnd`, and `fminunc`) is through the use of anonymous functions. Specific examples of this can be found in the "Minimizers" section of the GNU Octave manual.
octave: updated to 9.1.0 Octave 9.1.0 This major release improves the graphics backend, compatibility with Matlab and contains many new and improved functions. A list of important user-visible changes is available by selecting the Release Notes item in the News menu of the GUI or by typing news at the Octave command prompt.
octave: updated to 8.4.0 8.4.0 Improvements and fixes mkoctfile: Skip parsing for less flags Fix getting number of non-zero elements in SuiteSparse matrices. delaunayn: Avoid erroneous simplex removal for integer inputs delaunayn: Add precision loss warning for large int inputs delaunayn: Also warn for negative integers with large magnitude Correctly load all-zero sparse matrices from text files Allocate correct storage for interleaved complex mxArray objects mkoctfile: Prefer parsing over passing on argument after unknown argument fft: Avoid segmentation fault with ND-arrays fft: Avoid overwriting input for inplace operations intersect.m: Correct third output with "stable" flag Avoid use-after-free issue in parser betainc.m: Improve integer input logic and validation webread: Apply timeout also for initial connection Build system / Tests mkpp.m: Remove stray text causing error with demo code. Ensure that new test for saving sparse matrices writes a text file. Search for tests in and install octave-value template sources Documentation Correct variable name typo in documentation of slice(). Expand documentation for gcd() and lcm(). datevec: Clarify that heuristics are used to detect the format of a date string datenum: Add help text that inputs can be arrays, add examples datevec: Add help text that inputs can be arrays Describe various pitfalls with floating point ranges Add range example and some copyedits.
octave: updated to 8.3.0 Version 8.3.0 Improvements and fixes undo_string_escapes: Return '\0' for NUL byte input Stop excessive memory usage for minor grid ticks Include needed headers in installed .cc files Fix floating point exception when sparse array reshaped to 0x0 unicode2native: Fix conversion to UTF-16 memory: Fix execution on Cygwin. uniconv-wrappers: Avoid freeing uninitialized pointer lo-regexp.cc: Only include PCRE2/PCRE headers if feature test succeeded Fix segfault when saveobj() used with old-style class files Fix restoring breakpoints from dbstatus breakpoint structure colorbar.m: Fix undefined variable d Reset all axes properties except 'Units' and 'Position' with cla ('reset'). unicode2native.m: Restore support for one input parameter native2unicode, unicode2native: Support empty second argument fullfile.m: Return empty cell for input with empty cell audioplayer.m: Emit error if input data Y is empty Remove obsolete callback constructor code for @audioplayer and @audiorecorder Avoid false detection of “non-real pivot” in ichol() Fix building against SuiteSparse 7.1.0 when SPQR is disabled ellipsoid.m: Avoid returning geometry data unless it is explicitly requested to avoid overwriting ans. subsasgn: Avoid panic on invalid field names lex.ll: Remove $ as a valid character for identifiers. fileparts.m: Allow for relative path on different drive on Windows datevec.m: Add some ISO 8601 conform formats Build system / Tests betaincinv.m: Slightly increase test tolerance (for macOS 13). colorbar.m: Add tests sparse-qr.cc: Fix compatibility with SuiteSparse 7.1.0 / CXSparse 4.0.4. pcg.m: Use eps tolerance in test for ishermitian fileparts.m: Overhaul BISTs. Documentation Return documentation for help properties Add note to isprime.m on inputs over 2^64.
octave: updated to 8.2.0 Summary of bugs fixed for version 8.2.0 (2023-04-13): ---------------------------------------------------- ### Improvements and fixes - `pr-output.cc`: Fix output for `format native-bit` - Fix evaluation of `&` and `|` expressions in conditional contexts (bug #63935). - Avoid clang warning about very unlikely buffer overflow. - `mpoles.m`: Overhaul function and use absolute tolerance for zero poles - `perms.m`: Change `"unique"` output order to reverse lexicographic to match non-unique order - Remove trailing `'\r'` from curl dir list - `fopen`: Use "UTF-8" as default encoding for `fopen` - Don't use encoding facet when writing bytes to stream - `fopen`, `unicode2native`: Fix converting the encoding of short char arrays with invalid UTF-8 - `fopen`: Try to gather complete UTF-8 surrogates when converting encoding - Fix display of scalar complex variables with mixed `Inf`/`NaN` and floating point values - `fopen`: Do not convert encoding for file streams with libc++ ### GUI - Speedup loading and saving preferences dialog ### Build system / Tests - `inpolygon.m`: Fix demo code - `if.tst`: New test for bug #63935. - `acinclude.m4`: Correct typo in `#define PCRE2_CODE_UNIT_WIDTH`. - `lu`: Add self-test with complex valued input. - Disable visibility flags by default - Check whether using STL from LLVM or Apple ### Documentation - Improve documentation for `linspace` and `logspace` functions. - Correct and improve documentation for `sparse()` function. Summary of important user-visible changes for version 8 (2023-03-07): -------------------------------------------------------------------- ### General improvements - Octave's libraries are now built using symbol visibility by default. That means that fewer symbols are exported from these libraries. Configure with `--disable-lib-visibility-flags` to export all symbols (as in previous versions). - `filter` is now 5X faster, which also speeds up `deconv`, `fftfilt` and `arma_rnd` by the same amount. - `integral` can now return a second argument containing the error estimate from the underlying integrator. - `perms` now accepts a second argument "unique" to return only unique permutations for inputs with repeated elements. It is faster and takes less memory to call `perms ('aaaabbbbcccc', "unique")` than to call `unique (perms ('aaaabbbbcccc'), "rows")`. - `quadgk` can now accept the `ArrayValued` input parameter to handle array-valued input functions. - `delaunayn` now has consistent trivial simplex checking and removal for all input dimensions, simplex checking 3D inputs is now vectorized, and >3D simplex checking performance has been improved. Simplexes points are now ordered so they will all have positive outward normal vectors. Input type checking has also been added for improved error handling. - `factor` now factorizes all 64-bit integers in roughly the same time. Previously, the product of two large primes took much longer to factorize than highly composite inputs. - `Refine` option is now implemented in functions `ode45`, `ode23`, and `ode23s`. - Octave is now compatible with PCRE2 (UTF-8). PCRE2 is preferred over PCRE if both are installed. Configure with `--without-pcre2` if you prefer Octave to use PCRE in this case. - `mean` now internally processes data as type double to reduce likelihood of hitting overflow or precision limits with other types ### Graphical User Interface - The GUI has a dark style and several new icons in toolbars for better visibility and higher contrast. - A new terminal widget has been added for the GUI. It is still experimental and is disabled by default. It can be enabled with the command line parameter `--experimental-terminal-widget`. - More fonts for the documentation browser are included. ### Graphics backend - When printing, the option `-svgconvert` is now the default. If you want to use the more limited EPS-based tool chain (the former default)—e.g., if you encounter inaccurate image rendering—you can pass the `-nosvgconvert` option to the `print` function. - Additional properties have been added to the `figure` graphics object: * `"innerposition"` (equivalent to `"position"`) * `"windowstate"` (not yet implemented) - Legend now features a new property `"itemhitfcn"`, allowing the execution of a callback function when a legend item is clicked. ### Matlab compatibility - `inline` functions now support all Matlab methods. The performance of `inline` functions has also been improved. - `sub2ind` now supports index values outside of the size specified by the subscripts. - `cylinder` now accepts a scalar for the radius argument. - `clock` now has an optional second output `ISDST` which indicates if Daylight Savings Time is in effect for the system's time zone. - `print` now accepts option `-image` to specify the "opengl" renderer and `-vector` to specify the "painters" renderer. - `format` now accepts the option "default", which is equivalent to calling `format` without any options to reset the default state. - `quadgk` now stops iterating when `error <= tolerance` while the previous condition was `error < tolerance`. - `mean` now accepts vector dimensions and options to handle `NaN` values. The option `"a"` (arithmetic mean), `"g"` (geometric mean), and `"h"` (harmonic mean) are no longer accepted, only the arithmetic mean is computed. For the geometric and harmonic mean, please use respective functions `geomean` and `harmmean` from the Octave Statistics package. - `var` and `std` now optionally output a second argument containing the mean or weighted mean. - `integral` can now accept the 'ArrayValued' option in combination with 'RelTol' and 'WayPoints'. - File system operations that remove files (e.g., `unlink` or `rmdir`) now also remove files that have their read-only file attribute set on Windows. - The default state for certain graphics properties has been made consistent with Matlab. Object | Property | Default State ------------|------------------|------------ figure | "dockcontrols" | "on" - `ode45`, `ode23`, and `ode23s` have improved results for options `Events`, `OutputFcn`, and `Refine`, along with corrected orientation of struct outputs. - *Early notice of future breaking changes*: Due to many user requests that Octave should have a Matlab-compatible string class, there is work under way to implement a string class that will differ from a vector of characters. In Octave, single-quoted character arrays are currently compatible with Matlab, but double-quoted forms are not. Currently in Octave, both 'foo' and "foo" are largely interchangeable, barring certain escape sequence interpretations such as "\n" (converted to a single newline character) as opposed to '\n' (two separate characters). Matlab’s single-quoted character arrays and double-quoted strings do not process backslash escape sequences, unlike many other languages, and those escape sequences are instead processed by individual functions such as `fprintf`. Octave's behavior is likely to change in future as a consequence of implementing Matlab-style string syntax. For example, 'foo' will remain a three-element character vector, but "foo" will become a single-element string object. Some backslash escape sequences are likely to differ from their current Octave behavior, but will achieve greater Matlab compatibility. The exact implementation is a work in progress, and may or may not include methods of preserving backward compatibility. *What this means for user code*: If your code currently relies on double-quoted strings (e.g., "foo") representing character vectors as opposed to string objects, and if you intend to update to a future version of Octave incorporating the above changes, then consider replacing all double-quoted strings with single-quoted strings in your code over time (e.g., replace "foo" with 'foo'). Single-quoted strings are expected to retain current behavior. Further, if your code relies on backslash escape sequence interpretation in double-quoted strings (except for special cases like the `printf` family), that code may need to change as well. ### Alphabetical list of new functions added in Octave 8 * `clearAllMemoizedCaches` * `matlab.lang.MemoizedFunction` * `memoize` * `normalize` * `pagectranspose` * `pagetranspose` * `uifigure` ### Deprecated functions, properties, and operators The following functions and properties have been deprecated in Octave 8 and will be removed from Octave 10 (or whatever version is the second major release after 8): - Functions Function | Replacement -----------------------|------------------ shift | circshift sparse_auto_mutate | none (see below) - The `sparse_auto_mutate` function no longer has any effect on Octave's behavior. Previously, after calling `sparse_auto_mutate (true)`, Octave would automatically convert sparse matrices to full when a sparse matrix required more memory than simply using full matrix storage. This setting was `false` by default for compatibility with Matlab. Now you must manually convert to full storage when desired. - Properties The following property names are discouraged, but there is no fixed date for their removal. Object | Property | Replacement -----------------|-------------|------------ uimenu | label | text uimenu | callback | menuselectedfcn The following functions were deprecated in Octave 6 and have been removed from Octave 8. - Functions Function | Replacement -------------|------------ runtests | oruntests - The environment variable used by `mkoctfile` for linker flags is now `LDFLAGS` rather than `LFLAGS`. `LFLAGS` was deprecated in Octave 6, and will be removed in a future version of Octave. Summary of bugs fixed for version 8.1.0 (2023-01-22): ---------------------------------------------------- - Improved input validation and/or output handling for `poly`, `pinv`, `patch`, `fill`, `fill3`, `qp`, `datevec`, `textscan`, `sub2ind`, `qr`, `airy`, `regexp`, `dec2bin`, `dec2hex`, `mean`, and many others. - Improved performance for `complex`, `fftw`, `delaunayn`, `isfield`, `tsearch`, sparse matrix exponentiation, other sparse operations, and many others. - Overhauled `@audiorecorder` and `@audioplayer` classes.
octave: updated to 7.3.0 GNU Octave 7.3.0 This version is a bug fixing release: Improvements and fixes scanf: Don’t set error when reaching end of stream Fix duplicate names displayed with mixed @class/classdef classes canonicalize_file_name: Handle symlinks to UNC network shares canonicalize_file_name: Generalize check for mapped network drive fortran_vec: Fix instances of method chaining that may cause dangling pointer. Fix wrong color in PDF printout of some LaTeX strings unpack.m: Escape backslashes in paths on Windows canonicalize_file_name: Check root of potential mapped network drive nextpow2.m: Fix for input between 0.5 and 1 quad2d: Fix unintended complex conjugate return Make sure we don’t pass short 8.3 path to latex on Windows canonicalize_file_name: Trim trailing file separators from root of mapped network drive imformats.m: Fix isa function in return value pie3: Fix “Too many input” args error. Accept negative inputs to -2^63 for dec2bin and dec2hex Fix incorrect lambda outputs for lsqnonneg and pqpnonneg addtodate.m: Fix wrong month returned when subtracting a month from some end-of-month dates var.m: Fix some Inf and NaN inputs returning 0 instead of NaN var.m: Fix automatic broadcasting error for sparse and diagonal matrix inputs with vector weighting legend.m: Fix error with contour plot containing clabels dec2bin.m: Fix input validation glpk.m: Avoid using isfinite on potentially sparse input. var.m: Use bsxfun rather than broadcasting with vector weighting Fix out of bound indexing in in-place broadcasting operations GUI Respect confirmation when deleting files in file browser widget Build system / Tests io.tst: Add test case for scanf nextpow2.m: Add bug number tag to regression tests quad2d.m: Add BIST to cset b0e90ca8e679 Add test for number of methods with classdef in @folder Use Autoconf macro to find egrep executable. Documentation uitable.m: Fix example code Clarify number of processors returned by nproc with hyperthreading. Minor wording change to hashing documentation. lsqnonneg and pqpnonneg: Document undocumented outputs. pqpnonneg.m: Improve docstring readability. lsode: Make TeX and non-TeX docstrings agree. curl: Fix error in TeX docstring. Update text on function argument checking. schur: Update documentation.
octave: updated to 7.2.0 Summary of bugs fixed for version 7.2.0 (2022-07-28): ---------------------------------------------------- For Improvements and fixes - Avoid out-of-bounds indexing when checking for broadcastable inplace operators - `hdl2struct.m`: Fix saving of `uibuttongroups` - Fix `ls` with glob patterns on Windows - `pkg.m`: Create directory before saving file - `nchoosek.m`: Fix freeze-up for certain integer inputs - `nchoosek.m`: Restore fast path code for floating point inputs - `betainc.m`: Use sophisticated technique for calculating exponents to avoid inaccuracies - `ls.m`: Fix handling of `\` on UNIX platforms - `findobj.m`: Fix input validation of graphics handles - `newplot.m`: Backed out changeset fdd58773ac02 - `__print_parse_opts__.m`: Initialize variables in all cases for print warnings - `__wglob__`: Correctly handle `.` and `..` in patterns on Windows - `datenum.m`: Correctly handle arrays with leading singleton dimensions - Stop incorrect error when `reset()` called on `uimenu` handle - Emit more informative error message on empty input when setting axis limits - `msgbox.m`: Allow "custom" `cdata` for icon - Fix memory leak with nested functions and anonymous functions - `__wglob__`: Retain trailing file separator on Windows - `pkg`: Avoid error when unlinking non-existent files - `mkoctfile.m`: Trim whitespace (newline) around system output. - `subplot.m`: Avoid error when mixing `rcn` and `"position"` calling form - `plot`: Deprecate using numbers to select line colors - Don't shut down interpreter immediately on `execute` - `isprime.m` and `__isprimelarge__.cc`: Minor performance tweaks. - `__wglob__`: Handle patterns with UNC paths on Windows - Change wording of error message when using a variable as function - `inputParser.m`: Adapt for interpreter changes regarding number of output arguments - Store token ID, not keyword ID when parsing keywords - `canonicalize_file_name`: Do not translate mapped network drive to UNC path - `inputParser`: Correctly handle cell default values for optional parameters - `factor.m`: Performance tweak to avoid division in certain cases. - Fix regression with `\color[rgb]` TeX pattern - `regexp`: Check pattern length before accessing it - `pkg.m`: Create `PREFIX` and `ARCHPREFIX` directories - `pkg`: Replace `OCTAVE_HOME` in `PREFIX` and `ARCHPREFIX` independently - `randmtzig.cc`: Add missing `#include <ctime>` - `pkg`: Fix formatting of `copyfile` message - `pkg`: Escape special characters in `OCTAVE_HOME` for `regexprep` GUI - Fix removing trailing spaces on closing a modified file - Replace use of deprecated `QDesktopWidget` in GUI. - Fix display in Variable Editor when `fixed_point_format` is on - Fix file length when saving shorter content in editor Build system / Tests - `addpref.m`: Recode test to work with multiple running instances of Octave. - Don't leak build directories in installed directories - Import `hash-buffer` modules from gnulib - Remove `.dirstamp` files from `test/` directory with `maintainer-clean` target. - Add tests for `__FILE__` and `__LINE__` Documentation - `datestr.m`: Fix minor typo. - `ls.m`: Improve wording in docstring - `dir.m`: Clarify wildcard behavior on Windows in docstring - `memory.m`: Redo documentation to be formatted correctly in Info output. - Document contracted `format` arguments - `humps.m`: Fix mismatch between TeX docstring and non-TeX docstring. - `warning_ids.m`: Add new warning ID `"Octave:deprecated-option"`. - `primes.m`: Move code examples before math theory. - `primes.m`: Mark variables in docstring with `@var{}` macro. - Rewrite section on automatic type conversions - `subsasgn`: Correct example code
octave: updated to 6.4.0 Summary of bugs fixed for version 6.4.0 (2021-10-30) ---------------------------------------------------- Improvements and fixes - Reduce memory usage in BISTs for `copyobj`, `hgsave`. - `hgsave.m`, `copyobj.m`: Use `'qt'` graphics toolkit in BISTs. - `main.cc`: Use `getopt` to parse command line arguments. - `main.cc`: Remove invalid case. - Disable `getopt` error reporting in wrapper program. - `interp1.m`: Don't interpret later numeric input as `xi`. - `pkg`: Improve similar package name suggestion. - Store parent name in function object when caching parents in scope. - Avoid internal error and segfault with `eval` and scripts. - `rmpath`: Prevent removing the current directory from the load path. GUI - Fix missing interpreter event in `octave-scintilla`. - Fix opening a file in a custom editor. Documentation - Improve docstring for `disable_diagonal_matrix`, `disable_diagonal_matrix`, and `disable_range`. - `cbrt`: Clarify that function errors for non-real input. - `dsearchn.m`: Added optional distance output description. - Add Hungarian translation for project description files. - Document fsolve output "info" -2. Build system - Correct error message for incompatible CXSparse. Summary of bugs fixed for version 6.3.0 (2021-07-11) ---------------------------------------------------- Important notice - This bug fix release breaks ABI compatiblity with Octave 6.2.0. Re-build binaries (like .oct or .mex files) when updating to this version. Improvements and fixes - `ls-hdf5.cc`: Avoid throwing inside HDF5 function. - `ls-hdf5.cc`: Handle non-zero terminated type strings. - Fix occasional segfault in `symbfact`. - `fsolve.m`: Fix undefined output error when using `Output` function. - Fix compilation error with `iconv_t` on Solaris. - build: Check for `stropts.h`. - Avoid ambiguous call to `pow`. - Fix context link when creating handle to nested function. - `print.m`: Warn when figure is too large to be printed to output page. - Defer clearing function vars until stack frame is deleted. - Avoid memory leaks when returning handles to nested functions. - Hold references to closure frames in anon functions if needed. - `eigs`: Prevent possible segmentation fault at exit. - Issue warning when gnuplot graphics toolkit is initialized. - mpoles.m: Fix detection of pole multiplicity. - Perform shutdown actions in interpreter destructor. - build: Make relocation of dependencies with Octave optional. - `qz.cc`: Return correct number of eigenvalues. - `qz.cc`: Let test pass with LAPACK 3.9.1 and earlier versions. - `pkg.m`: Use default prefixes unless otherwise set previously. - `betaincinv.m`: Correctly handle small inputs. - `betaincinv.m`: Correctly handle inputs very close to 1.0. - `unistd-wrappers.c`: Allocate sufficient memory for `new_argv`. - Mark system functions correctly if `OCTAVE_HOME` is non-canonical. - Mark compiled system functions correctly if `OCTAVE_HOME` is non-canonical. - Fix error if test suite is run before Octave is installed. - `lo-array-errwarn.cc`: Include `<limits>`. - Use `std::size_t` and `std::ptrdiff_t` in C++ code. - Use `std::size_t` in more instances. - Return proper number of stack frames for `dbstack (N)` call. - Avoid ambiguous match of overloaded function. - `lscov.m`: Relax BIST tolerance to pass with OpenBLAS. - `print`: Fix error when `"px"` word is present in a figure. - `logm.m`: Fix check for real negative values in complex vector. - build: Set necessary flags to allow execution on Windows Vista. - Declare base_parser destructor virtual. - `hist.m`: Improve handling and docstring for third parameter "norm". - `logm.m`: Allow tolerance in check for real negative values in complex vector. - `expm.m`, `logm.m`: Use function `isdiag` to detect if input is a diagonal matrix. - tests: Relax tolerance for some tests on macOS. - `logspace.m`: Mark tests as known to fail on macOS. - `hist.m`: Use deterministic test. - `rgb2ind.m`: Reduce memory usage and eliminate randomness in test. - `logm.m`: Allow larger tolerance for test on macOS. - build: Use correct path to `octave` binary in build tree on macOS. - build: Fix typo in folder to libraries when building `.oct` or `.mex` files. - build: Set DL_LDFLAGS in the build rules for .oct or .mex files. - `rgb2ind.m`: Suppress output in test. - Improve documentation for `log2` function. - `ind2sub`: Fix typo in "see also" section of docstring. - `mrdivide`, `mldivide`: Document that functions might return minimum norm solutions. - Fix scoping issue for handles to sibling nested functions. - `ls-mat5.cc`: Avoid integer overflow in calculation of buffer size for zlib. - Move top-level REPL from interpreter to evaluator. - Avoid crash with `dbquit` when executing command in terminal from GUI. GUI - Fix calling external editor. - Fix missing file suffix .m when saving a new script. - Do not run files that are not saved as Octave files. - Fix confirm overwrite for native editor file "save as" dialogs. - Fix crash when GUI tries to restore missing previous Octave dir. - Fix restoring the horizontal position of docked GUI widgets. - Prevent floating widgets from re-opening after restart. - Avoid crash in GUI for `rmdir("")`. - Fix EOL mode when saving files under new names. - Fix auto indentation of switch-structure in GUI editor. - Avoid crash when closing GUI with open editor tabs. - `octave-qscintilla.cc` (`contextmenu_run`): Fix keyboard command handling. Documentation - Improve Differential Equations chapter and example for lsode. - Clarify usage of "Depends" keyword in package `DESCRIPTION` file. - Add note that wildcard patterns for `save` are glob patterns. - Change example for Delaunay triangulation to match the generating code. - Document single precision issues with OpenGL graphics toolkits. - Minor changes to documentation of single precision issues with OpenGL. - Expand on documentation for command syntax. - `isprop.m`: Document that function only works on graphics objects in Octave 6.X. - Explain how to write dual-purpose executable scripts and Octave functions. - Update keyword docstrings. - Use Texinfo commands to improve `transpose()` docstring rendering. - `betainc.m`, `betaincinv.m`: Correct non-TeX definition of beta incomplete integral. - Grammarcheck documentation ahead of 6.3 release. - Spellcheck documentation ahead of 6.3 release.
math: Replace RMD160 checksums with BLAKE2s checksums All checksums have been double-checked against existing RMD160 and SHA512 hashes
math: Remove SHA1 hashes for distfiles
octave: fix URL in comment
unbreak octave on NetBSD Change the way iconv_t void* conflict is handled using a patch from upstream to fix PR pkg/56240 . Due to the above remove patch-libinterp_corefcn_input.cc and patch-liboctave_wrappers_iconv-wrappers.h . Execute autoconf in the configuration step so that patch-configure.ac and patch-m4_acinclude.m4 is actually used. Change the PLIST so that -gnu is not used references in patch-m4_acinclude.m4 mentions this. Explicitly don't generate any docs since generation octave.pdf breaks and it already exists. Install info and man pages manually since they are not installed due to docs not being generated. Bump pkgrevision due to PLIST change.
octave: udpate to 6.2.0 This updates octave and also gets some more recommened dependencies in, namely qrupdate and Mesalib (for osmesa) and gl2ps as well as the qscintilla editor. The glpk option is on by default again. This version of octave comes rather close to a standard build, with optimzied BLAS and GUI fluff. We are still missing SuiteSparse and SUNDIALS solvers, see https://octave.org/doc/v6.2.0/External-Packages.html PortAudio should also be considered, and LLVM be watched if that experimental JIT settles in. Upstream changes since 5.x: Summary of important user-visible changes for version 6.1.0 (2020-11-26): ------------------------------------------------------------------------ ### General improvements - The `intersect`, `setdiff`, `setxor`, `union`, and `unique` functions accept a new sorting option `"stable"` which will return output values in the same order as the input, rather than in ascending order. - Complex RESTful web services can now be accessed by the `webread` and `webwrite` functions alongside with the `weboptions` structure. One major feature is the support for cookies to enable RESTful communication with the web service. Additionally, the system web browser can be opened by the `web` function. - The `linspace` function now produces symmetrical sequences when the endpoints are symmetric. This is more intuitive and also compatible with recent changes made in Matlab R2019b. - The underlying algorithm of the `rand` function has been changed. For single precision outputs, the algorithm has been fixed so that it produces values strictly in the range (0, 1). Previously, it could occasionally generate the right endpoint value of 1 (See bug #41742). In addition, the new implementation uses a uniform interval between floating point values in the range (0, 1) rather than targeting a uniform density (# of random integers / length along real number line). - Numerical integration has been improved. The `quadv` function has been re-written so that it can compute integrands of periodic functions. At the same time, performance is better with ~3.5X fewer function evaluations required. A bug in `quadgk` that caused complex path integrals specified with `"Waypoints"` to occasionally be calculated in the opposite direction was fixed. - The `edit` function option `"editinplace"` now defaults to `true` and the option `"home"` now defaults to the empty matrix `[]`. Files will no longer be copied to the user's HOME directory for editing. The old behavior can be restored by setting `"editinplace"` to `false` and `"home"` to `"~/octave"`. - The `format` command supports two new options: `uppercase` and `lowercase` (default). With the default, print a lowercase 'e' for the exponent character in scientific notation and lowercase 'a-f' for the hex digits representing 10-15. With `uppercase`, print 'E' and 'A-F' instead. The previous uppercase formats, `E` and `G`, no longer control the case of the output. Additionally, the `format` command can be called with multiple options for controlling the format, spacing, and case in arbitrary order. For example: format long e uppercase loose Note, in the case of multiple competing format options the rightmost one is used, and, in case of an error, the previous format remains unchanged. - L-value references (e.g., increment (++), decrement (--), and all in-place assignment operators (+=, -=, *=, /=, etc.)) are no longer allowed in anonymous functions. - New warnings have been added about questionable uses of the colon ':' range operator. Each has a new warning ID so that it can be disabled if desired. > `Octave:colon-complex-argument` : when any arg is complex > `Octave:colon-nonscalar-argument` : when any arg is non-scalar - The `regexp` and related functions now correctly handle and *require* strings in UTF-8 encoding. As with any other function that requires strings to be encoded in Octave's native encoding, you can use `native2unicode` to convert from your preferred locale. For example, the copyright symbol in UTF-8 is `native2unicode (169, "latin1")`. - The startup file `octaverc` can now be located in the platform dependent location for user local configuration files (e.g., ${XDG_CONFIG_HOME}/octave/octaverc on Unix-like operating systems or %APPDATA%\octave\octaverc on Windows). - `pkg describe` now lists dependencies and inverse dependencies (i.e., other installed packages that depend on the package in question). - `pkg test` now tests all functions in a package. - When unloading a package, `pkg` now checks if any remaining loaded packages depend on the one to be removed. If this is the case `pkg` aborts with an explanatory error message. This behavior can be overridden with the `-nodeps` option. - The command dbstop in CLASS at METHOD now works to set breakpoints in classdef constructors and methods. #### Graphics backend - The use of Qt4 for graphics and the GUI is deprecated in Octave version 6 and no further bug fixes will be made. Qt4 support will be removed completely in Octave version 7. - The `legend` function has been entirely rewritten. This fixes a number of historical bugs, and also implements new properties such as `"AutoUpdate"` and `"NumColumns"`. The gnuplot toolkit---which is no longer actively maintained---still uses the old legend function. - The `axis` function was updated which resolved 10 bugs affecting axes to which `"equal"` had been applied. - Graphic primitives now accept a color property value of `"none"` which is useful when a particular primitive needs to be hidden (for example, the Y-axis of an axes object with `"ycolor" = "none"`) without hiding the entire primitive `"visibility" = "off"`. - A new property `"FontSmoothing"` has been added to text and axes objects that controls whether anti-aliasing is used during the rendering of characters. The default is `"on"` which produces smooth, more visually appealing text. - The figure property `"windowscrollwheelfcn"`is now implemented. This makes it possible to provide a callback function to be executed when users manipulate the mouse wheel on a given figure. - The figure properties `"pointer"`, `"pointershapecdata"`, and `"pointershapehotspot"` are now implemented. This makes it possible to change the shape of the cursor (pointer in Matlab-speak) displayed in a plot window. - The figure property `"paperpositionmode"` now has the default `"auto"` rather than `"manual"`. This change is more intuitive and is Matlab compatible. - The appearance of patterned lines `"LineStyle" = ":"|"--"|"-."` has been improved for small widths (`"LineWidth"` less than 1.5 pixels) which is a common scenario. - Printing to EPS files now uses a tight bounding box (`"-tight"` argument to print) by default. This makes more sense for EPS files which are normally embedded within other documents, and is Matlab compatible. If necessary use the `"-loose"` option to reproduce figures as they appeared in previous versions of Octave. - The following print devices are no longer officially supported: cdr, corel, aifm, ill, cgm, hpgl, mf and dxf. A warning will be thrown when using those devices, and the code for supporting those formats will eventually be removed from a future version of Octave. - The placement of text subscripts and superscripts has been re-engineered and now produces visually attractive results similar to Latex. ### Matlab compatibility - The function `unique` now returns column index vectors for the second and third outputs. When duplicate values are present, the default index to return is now the `"first"` occurrence. The previous Octave behavior, or Matlab behavior from releases prior to R2012b, can be obtained by using the `"legacy"` flag. - The function `setdiff` with the `"rows"` argument now returns Matlab compatible results. The previous Octave behavior, or Matlab behavior from releases prior to R2012b, can be obtained by using the `"legacy"` flag. - The functions `intersect`, `setxor`, and `union` now accept a `"legacy"` flag which changes the index values (second and third outputs) as well as the orientation of all outputs to match Matlab releases prior to R2012b. - The function `streamtube` is Matlab compatible and plots tubes along streamlines which are scaled by the vector field divergence. The Octave-only extension `ostreamtube` can be used to visualize the flow expansion and contraction of the vector field due to the local crossflow divergence. - The interpreter now supports handles to nested functions. - The graphics properties `"LineWidth"` and `"MarkerSize"` are now measured in points, *not* pixels. Compared to previous versions of Octave, some lines and markers will appear 4/3 larger. - The meta.class property "SuperClassList" has been renamed "Superclasslist" for Matlab compatibility. The original name will exist as an alias until Octave version 8.1. - Inline functions created by the function `inline` are now of type "inline" when interrogated with the `class` function. In previous versions of Octave, the class returned was "function_handle". This change is Matlab compatible. Inline functions are deprecated in both Matlab and Octave and support may eventually be removed. Anonymous functions can be used to replace all instances of inline functions. - The function `javaaddpath` now prepends new directories to the existing dynamic classpath by default. To append them instead, use the new `"-end"` argument. Multiple directories may now be specified in a cell array of strings. - An undocumented function `gui_mainfcn` has been added, for compatibility with figures created with Matlab's GUIDE. - Several validator functions of type `mustBe*` have been added. See the list of new functions below. ### Alphabetical list of new functions added in Octave 6 * `auto_repeat_debug_command` * `commandhistory` * `commandwindow` * `filebrowser` * `is_same_file` * `lightangle` * `mustBeFinite` * `mustBeGreaterThan` * `mustBeGreaterThanOrEqual` * `mustBeInteger` * `mustBeLessThan` * `mustBeLessThanOrEqual` * `mustBeMember` * `mustBeNegative` * `mustBeNonempty` * `mustBeNonNan` * `mustBeNonnegative` * `mustBeNonpositive` * `mustBeNonsparse` * `mustBeNonzero` * `mustBeNumeric` * `mustBeNumericOrLogical` * `mustBePositive` * `mustBeReal` * `namedargs2cell` * `newline` * `ode23s` * `ostreamtube` * `rescale` * `rotx` * `roty` * `rotz` * `stream2` * `stream3` * `streamline` * `streamtube` * `uisetfont` * `verLessThan` * `web` * `weboptions` * `webread` * `webwrite` * `workspace` ### Deprecated functions and properties The following functions and properties have been deprecated in Octave 6 and will be removed from Octave 8 (or whatever version is the second major release after 6): - Functions Function | Replacement -----------------------|------------------ `runtests` | `oruntests` - Properties Object | Property | Value -----------------|---------------|------------ | | - The environment variable used by `mkoctfile` for linker flags is now `LDFLAGS` rather than `LFLAGS`. `LFLAGS` is deprecated, and a warning is emitted if it is used, but it will continue to work. ### Removed functions and properties The following functions and properties were deprecated in Octave 4.4 and have been removed from Octave 6. - Functions Function | Replacement ---------------------|------------------ `chop` | `sprintf` for visual results `desktop` | `isguirunning` `tmpnam` | `tempname` `toascii` | `double` `java2mat` | `__java2mat__` - Properties Object | Property | Value ---------------------|---------------------------|----------------------- `annotation` | `edgecolor ("rectangle")` | `axes` | `drawmode` | `figure` | `doublebuffer` | | `mincolormap` | | `wvisual` | | `wvisualmode` | | `xdisplay` | | `xvisual` | | `xvisualmode` | `line` | `interpreter` | `patch` | `interpreter` | `surface` | `interpreter` | `text` | `fontweight` | `"demi"` and `"light"` `uibuttongroup` | `fontweight` | `"demi"` and `"light"` `uicontrol` | `fontweight` | `"demi"` and `"light"` `uipanel` | `fontweight` | `"demi"` and `"light"` `uitable` | `fontweight` | `"demi"` and `"light"`
octave: updated to 5.2.0 Summary of bugs fixed for version 5.2.0: Improvements - Lock amd and symbfact to avoid segmentation fault with SuiteSparse - Fix segfault when calculating patch vertex normals - Fix segfault in constructing patch normals for lighting - mat2str.m: Fix for logical matrix (add `transpose`). - improve file equality check for MS Windows - ismember.m: Fix second return argument when values are complex - findobj.m: Fix typo and correctly handle numeric properties - Correctly display integer types with format hex - Cast `winqueryreg` `REG_DWORD` types to `DWORD` - Fix numerous errors in `audiowrite` / `audioread` - print.m: Pass quoted path to `octave-svgconvert` - dir.m: Fix occasionally returning incorrect folder field - Stop segfault when calling 3-input form of `diag` with cell arrays - improve message for setting breakpoint in nonexistent function - Use framebuffer object for printing invisible Qt figures on mac - Escape backslash characters in `EPS` output - Use replacement characters to display non UTF-8 strings in figures - inputrc: Add warning about modification - documentation.cc (global_search): just return if query string is empty - Default (c)transpose for old style class arrays - Always reserve at least 1 element of storage for sparse matrices - Don't segfault at exit after reading malformed HDF5 file - Fix pause() with no arguments called on Windows - refactor minimum eigenvalue index search in `qp` - qp: fix obscure corner case when calculating `qp` caused by a typo - use `std::streampos` instead of `std::ios::streampos`. - fix `pause` and `kbhit` with glibc 2.28 end-of-file state behavior - Fix return of left-handed vectors when inputs are complex - waitbar.m: Fix hang when using `createcancelbtn` property - shading.m: Fix unexpected error when multiple `hggroups` present - dec2base.m: Correctly handle zero matrix input - eliminate duplicate graphics callback object stack - Improve performance when closing figures - Reduce time to process `pkg -forge list` by 30X - Feed `fig2dev` with PDF files converted from svg - Improve error checking for `iconv_open`. - poly.m: fix the fix for input of complex conjugate pairs - mkoctfile: use the `TMPDIR` environment variable if set - line.m: Fix creation of unwanted axes - Accept 4-input form for quiver3 - pkg.m: restore installing packages from zip archives - axis.m: Fix issues with `equal` argument - ordeig.m: Do not fail on 1x1 matrices GUI - fix editors search and replace in selection - undo a complete replace all action in the editor - fix missing unlock of mutex when gui editor is not present - prevent unnamed editor tab from being closed by `rmdir` - prevent editor from closing files that are not affected by `rmdir` - fix creating keyword files for editor autocompletion - fix dock widget position when being dragged out of the main window Build system / Tests - configure: prevent overlinking when SUNDIALS is disabled - use QtCore and Qt5Gui modules instead of Qt5OpenGL - make building with Qt4 QGLWidget work again - build: adapt mk-qthelp.pl to changes in Texinfo 6.7. - BIST should not rely on the current directory to be writable. - bp-table.cc: Fix test. - maint: Make old style class tests Matlab compatible. - Add BIST tests for `unlink` Documentation - fix many spelling errors - help: improve documentation for the `startup.m` user script. - avoid conflict with @seealso macro in Texinfo 6.6 - mk-doc-cache.pk: Also translate `@seealso` here. - __makeinfo__.m: Also translate `@seealso` here - polar.m: Document that input is expected to be in radians - gallery.m: Fix typo in docstring for poisson - Add 1024x1024 Octave logo icon - add `.editorconfig` for default file encoding and indentation. - octave.doap: Copy localized (short) description over from appdata - org.octave.Octave.appdata.xml: Add German and French description - languages/*.ts: updated language files - quiver3.m: Fix texinfo typo in docstring from cset f7b10bd40045. - doc: fix `.` Operator Index entry to build with Texinfo 6.7. - doc: improve example of using global variables from oct-files. - doc: Create en-dashes and em-dashes correctly in documentation. - doc: expand `page_output_immediately` doc string, mention `page_screen_output`. - doc: Clarify documentation of `history_file` - doc: Improve documentation for `get_help_text`, `get_help_text_from_file`. - doc: Add documentation for `GNUTERM` variable used with gnuplot - doc: Improve `contour` docstring example - doc: Add example to show limitations of the given BLAS integer size. - doc: Improve documentation of sparse functions. - doc: Improve spelling of `bicgstab` - doc: Remove `Map` functions `keys`, `values`, `remove` from unimplemented list - doc: Add function index entry for alias `inverse` - add content rating declaration to AppStream metadata - doc: Remove stray semicolons from `pie`, `pie3` calling forms. - doc: Redo documentation for `rats` function. - doc: Specify `position` property for text objects is a three-element vector - doc: state that Octave can only load HDF5 files created by itself - doc: Fix names of options in `issorted` - doc: Small fixes to `mat2cell` and `polyeig` docstrings - doc: Improve example code for using `-pdflatexstandalone` - doc: Refer to "root object" rather than "root figure object". - doc: Place cross-reference from list of graphics object properties back to object - doc: document the newline character in warning messages - doc: pkg versions can be more general than "x.y.z"
math/octave: add missing header for use of exit system call
Update to 5.1.0 Changelog: # General improvements The Octave plotting system now supports high resolution screens, i.e., those with greater than 96 DPI which are referred to as HiDPI/Retina monitors. Unicode character support for files and folders in Windows. A new core function movfun will apply a function to a sliding window of arbitrary size on a dataset and accumulate the results. Many common cases have been implemented using the naming scheme movXXX where XXX is the function that will be applied. For example, the moving average over a dataset is movmean. New moving window functions: movfun movslice movmad movmax movmean movmedian movmin movprod movstd movsum movvar The fsolve function has been tweaked to use larger step sizes when calculating the Jacobian of a function with finite differences. This leads to faster convergence. The ranks function has been recoded for performance and is now 25X faster. In addition, it now supports a third argument that specifies how to resolve the ranking of tie values. The function randi has been recoded to produce an unbiased (all results are equally likely) sample of integers. This may produce different results in existing code. If it is necessary to reproduce the exact random integer sequence as in previous versions use ri = imin + floor ((imax - imin + 1) * rand ()); The function isdefinite now returns true or false rather than -1, 0, or 1. To test for a positive semi-definite matrix (old output of 0) check whether the following two conditions hold: isdefinite (A) => 0 and isdefinite (A + 5*TOL, TOL) => 1 The intmax, intmin, and flintmax functions now accept a variable as input. Existing code to query the range of an existing variable can be simplified by removing the call to class that was previously required. For example defining the variable x = int8 (3) in the workspace, calls like range = [ intmin(class(x)), intmax(class(x)) ] can in Octave 5 be simplified to range = [ intmin(x), intmax(x) ]. The path handling functions no longer perform variable or brace expansion on path elements and Octave’s load-path is no longer subject to these expansions. A new printing device is available, "-ddumb", which produces ASCII art for plots. This device is only available with the gnuplot toolkit. # Dependencies The GUI requires Qt libraries. The minimum Qt4 version supported is Qt4.8. Qt5 of any version is preferred. The OSMesa library is no longer used. To print invisible figures when using OpenGL graphics, the Qt QOFFSCREENSURFACE feature must be available and you must use the qt graphics toolkit. The FFTW library is now required to perform FFT calculations. The FFTPACK sources have been removed from Octave. Matlab compatibility * Many improvements.
octave: fix building with recent Qt5 Do not look for qcollectiongenerator, it has been incorporared into qhelpgenerator.
Octave: update to 4.4.1 Remove hack that had a high chance of resulting in a dysfunctional package qttools can't be a build dependency because we link against something in it. XXX pkgsrc claims this package has work directory references Summary of important user-visible changes for version 4.4 (2018-04-30): ---------------------------------------------------------------------- ** A graphical Variable Editor has been added to the GUI interface. It uses a spreadsheet-like interface for quick, intuitive editing of variables. The Variable Editor is launched by double-clicking on a variable name in the Workspace Window or by typing "openvar VARIABLE_NAME" in the Command Window. ** On systems with 64-bit pointers, --enable-64 is now the default and Octave always uses 64-bit indexing. However, if the configure script determines that the BLAS library uses 32-bit integers, then operations using the following libraries are limited to arrays with dimensions that are smaller than 2^31 elements: BLAS LAPACK QRUPDATE SuiteSparse ARPACK Additionally, the following libraries use "int" internally, so maximum problem sizes are always limited: glpk Qhull ** The octave command no longer starts the GUI by default. Most users starting Octave from a shell were expecting the command line interface, and desktop launchers already required the `--force-gui' option. With this change, desktop launchers should be modified to use the new option `--gui'. The previous `--force-gui' option will continue to work, and maps to `--gui', but it will be removed in Octave 6. ** A known bug in Qt (https://bugreports.qt.io/browse/QTBUG-55357) is addressed by limiting GUI sub-panel relocation capabilities for Qt versions in the range >= 5.6.1 and < 5.7.1. However, this may not thoroughly avoid issues on all platforms. ** A new container data type--containers.Map--is available. Map is a key/value storage container (a.k.a, a hash) that efficiently allows storing and retrieving values by name, rather than by position which is how arrays work. ** The bareword "import" is now recognized in scripts and functions. However, the functionality to import functions and classes from other namespaces into the local scope has not yet been implemented. Attempting to use "import" will provoke an error message. ** hex2num and num2hex now work for integer and char types and num2hex may optionally return a cell array of strings instead of a character array. If given a cell array of strings, hex2num now returns a numeric array of the same size as the input cell array. Previously, hex2num would accept a cell array of strings of arbitrary dimension but would always return a column vector. ** New special functions cosint, sinint, and gammaincinv have been added. ** Special functions in Octave have been rewritten for larger input domains, better accuracy, and additional options. * gammainc now accepts negative real values for X. * improved accuracy for gammainc, betainc, betaincinv, expint. * gammainc has new options "scaledlower" and "scaledupper". * betainc, betaincinv have new option "upper". ** The "names" option used in regular expressions now returns a struct array, rather than a struct with a cell array for each field. This change was made for Matlab compatibility. ** The quadcc function now uses both absolute tolerance and relative tolerance to determine the stopping criteria for an integration. To be compatible with other quadXXX functions, such as quadgk, the calling syntax has changed to quadcc (f, a, b, [AbsTol, [RelTol]]) To update existing code, change instances of RelTol to [0, RelTol]. quadcc (f, a, b, tol) => quadcc (f, a, b, [0, tol]) A warning that a single tolerance input is now interpreted as an absolute tolerance will be issued in Octave versions 4.4 and 5, after which it will be removed. The warning has ID "Octave:quadcc:RelTol-conversion" and can be disabled with warning ("off", "Octave:quadcc:RelTol-conversion") ** The qr function now returns a standard factorization unless explicitly instructed to perform an economy factorization by using a final argument of 0. ** The Qt graphics toolkit now supports offscreen printing without osmesa if Octave was built with Qt >= 5.1. ** The built-in pager for display of large data is now disabled by default. To re-enable it for every Octave session add the following to your .octaverc file: more on; ** The FLTK toolkit is no longer prioritized for development. The number of Octave Maintainers is too small to support three different graphic toolkits. New development will target the Qt toolkit. While no longer prioritized, the FLTK toolkit is not deprecated and there is no schedule for its removal. ** The graphic object property "PickableParts" has been implemented which controls whether an object can accept mouse clicks. ** The graphic object property "Interruptible" has been fully implemented which controls whether a running callback function can be interrupted by another callback function. ** The graphic object property "HitTest" has been updated to be fully compatible with Matlab. ** Text objects now implement the properties "BackgroundColor", "EdgeColor", "LineStyle", "LineWidth", and "Margin". ** An initial implementation of alpha transparency has been made for patch and surface objects. Printing to svg and pdf is supported. ** ishandle now returns true for both graphics handle objects and Java objects. The latter change was made for Matlab compatibility. Use ishghandle or isgraphics if it is important not to include Java objects. ** 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 pkg install https://example.org/download/example-package.tar.gz ** The following statistical functions have been moved from core Octave to the statistics package available from Octave Forge. BASE cloglog logit prctile probit qqplot table (renamed to crosstab) DISTRIBUTIONS betacdf betainv betapdf betarnd binocdf binoinv binopdf binornd cauchy_cdf cauchy_inv cauchy_pdf cauchy_rnd chi2cdf chi2inv chi2pdf chi2rnd expcdf expinv exppdf exprnd fcdf finv fpdf frnd gamcdf gaminv gampdf gamrnd geocdf geoinv geopdf geornd hygecdf hygeinv hygepdf hygernd kolmogorov_smirnov_cdf laplace_cdf laplace_inv laplace_pdf laplace_rnd logistic_cdf logistic_inv logistic_pdf logistic_rnd logncdf logninv lognpdf lognrnd nbincdf nbininv nbinpdf nbinrnd normcdf norminv normpdf normrnd poisscdf poissinv poisspdf poissrnd stdnormal_cdf stdnormal_inv stdnormal_pdf stdnormal_rnd tcdf tinv tpdf trnd unidcdf unidinv unidpdf unidrnd unifcdf unifinv unifpdf unifrnd wblcdf wblinv wblpdf wblrnd wienrnd MODELS logistic_regression TESTS anova bartlett_test chisquare_test_homogeneity chisquare_test_independence cor_test f_test_regression hotelling_test hotelling_test_2 kolmogorov_smirnov_test kolmogorov_smirnov_test_2 kruskal_wallis_test manova mcnemar_test prop_test_2 run_test sign_test t_test t_test_2 t_test_regression u_test var_test welch_test wilcoxon_test z_test z_test_2 ** The following image functions have been moved from core Octave to the image package available from Octave Forge. ntsc2rgb rgb2ntsc ** Other new functions added in 4.4: 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 ** 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): Function | Replacement ---------------------|------------------ chop | sprintf for visual results desktop | isguirunning tmpnam | tempname toascii | double java2mat | __java2mat__ ** 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 ** 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. 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).
octave: force gfortran, g95 is broken is most setups. build fix for newer qt. bump PKGREVISION.
Make octave-forge work (on netbsd, with gfortran) allow overriding MKOCTFILE_* and use it to provide a full path gfortran, so the invocation doesn't fail because gfortran isn't normally in PATH Force the use of bsdtar. unpacking yielding random PaxHeaders.1234 triggers an octave package sanity check making the build of the 'signal' package fail with a cryptic error with no further diagnostics. bump PKGREVISION
octave: amend wrapper patches to be netbsd-specific. fix sunOS build octave is using gnulib for portability, but has an additional wrapper around it. unfortunately that means that this type signature is no longer portable. netbsd doesn't have struct tm_zone, others do. I failed to use gnulib to provide struct tm_zone, using an OS-specific macro as an ugly hack. reported by hans
Octave: update to 4.2.0 pkgsrc changes: removed all patches to do with qt5 support, upstream code does it now. blindly moved some patches that were replacing INSTALL_PROGRAM to INSTALL_LIB as the build changed. added patch replacing struct tm_zone with timezone_t to accommodate for missing type in NetBSD - same as libgnu does. ok adam Summary of important user-visible changes for version 4.2: --------------------------------------------------------- ** The parser has been extended to accept, but ignore, underscore characters in numbers. This facilitates writing more legible code by using '_' as a thousands separator or to group nibbles into bytes in hex constants. Examples: 1_000_000 == 1e6 or 0xDE_AD_BE_EF ** The parser has been extended to understand binary numbers which begin with the prefix '0b' or '0B'. The value returned is Octave's default numeric class of double, not at unsigned integer class. Therefore numbers greater than flintmax, i.e., 2^53, will lose some precision. Examples: 0b101 == 5 or 0B1100_0001 == 0xC1 ** gnuplot 4.4 is now the minimum version supported by Octave. ** The default set of colors used to plot lines has been updated to be compatible with Matlab's new default color scheme. The line plot color scheme can be set with the axes property "ColorOrder". ** The default colormap is now set to "viridis" which is also the default colormap in matplotlib. This new colormap fixes some of the main issues with the old default colormap "jet" such as its bad "luminance profile" and is also more similar to Matlab's new default colormap "parula". ** The colormap function no longer supports the input argument "list" to show built-in colormaps. Use "help colormap" to find the built-in colormaps. ** The graphics command "hold on" now ensures that each new plot added to an existing plot has a different color or linestyle according to the "ColorOrder" and/or "LineStyleOrder" properties. This is equivalent to the old command "hold all" and was made for Matlab compatibility. Existing code *may* produce differently colored plots if it did not specify the color for a plot and relied on each new plot having the default first color in the "ColorOrder" property. ** When starting, Octave now looks in the function path for a file startup.m and executes any commands found there. This change was made to accommodate Matlab users. Octave has it's own configuration system based on the file .octaverc which is preferred. ** Octal ('\NNN') and hex ('\xNN') escape sequences in single quoted strings are now interpreted by the function do_string_escapes(). The *printf family of functions now supports octal and hex escape sequences in single-quoted strings for Matlab compatibility. ** Special octal and hex escape sequences for the pattern and replacement strings in regular expressions are now interpreted for Matlab compatibility. octal: '\oNNN' or '\o{NNN}' hex : '\xNN' or '\x{NN}' ** Unknown escape sequences in the replacement string for regexprep are now substituted with their unescaped version and no warning is emitted. This change was made for Matlab compatibility. Example: regexprep ('a', 'a', 'x\yz') => 'xyz' ** mkfifo now interprets the MODE argument as an octal, not decimal, integer. This is consistent with the equivalent shell command. ** linspace now returns an empty matrix if the number of requested points is 0 or a negative number. This change was made to be compatible with Matlab releases newer than 2011. In addition, Octave no longer supports matrix inputs for A or B. ** The cov function now returns the complex conjugate of the result from previous versions of Octave. This change was made for compatibility with Matlab. ** condest now works with a normest1 compatible syntax. ** The griddata function no longer plots the interpolated mesh if no output argument is requested, instead the vector or array of interpolated values is always returned for Matlab compatibility. ** The new function "light" and the corresponding graphics object provide light and shadow effects for patch and surface objects. ** The surfnorm function now returns unnormalized (magnitude != 1) normal vectors for compatibility with Matlab. ** The normal vectors returned from isonormals have been reversed to point towards smaller values for compatibility with Matlab. ** The quadl function now uses an absolute, rather than relative, tolerance for Matlab compatibility. The default tolerance is 1e-6 which may result in lower precision results than previous versions of Octave which used eps as the relative tolerance. The quadl function has also been extended to return a second output with the total number of function evaluations. ** The textscan function is now built-in and is much faster and much more Matlab-compatible than the previous m-file version. ** Dialog boxes--errordlg, helpdlg, inputdlg, listdlg, msgbox, questdlg, and warndlg--now exclusively use Qt for rendering. Java based versions have been removed. ** The axes properties "TitleFontSizeMultiplier" and "TitleFontWeight" are now implemented which control the default appearance of text created with title(). The axes property "LabelFontSizeMultiplier" is now implemented which controls the default appearance of text created with xlabel(), ylabel(), or zlabel(). ** The graphics property "box" for axes now defaults to "off". To obtain equivalent plots to previous versions of Octave use set (0, "DefaultAxesBox", "on"); in your .octaverc file. ** The graphics property "boxstyle" has been implemented. The default is "back" which draws only the back planes in a 3-D view. If the option is "full" then all planes are drawn. ** The graphics property "erasemode" has been hidden, and will eventually be removed. This property has also been removed from Matlab, and was never implemented in Octave. ** The graphics property "graphicssmoothing" for figures now controls whether anti-aliasing will be used for lines. The default is "on". ** The value "zero" for the axes properties "xaxislocation" and "yaxislocation" has been deprecated and will be removed from Octave 4.6. Use "origin" instead. ** The publish function allows easy publication of Octave script files in HTML or other formats, including figures and output created by this script. It comes with its counterpart grabcode, which lets one literally grab the HTML published code from a remote website, for example. ** The value of the MEX variable TrapFlag now defaults to 0, which will cause Octave to abort execution of a MEX file and return to the prompt if an error is encountered in mexCallMATLAB. ** The MEX API now includes the function mexCallMATLABWithTrap. This function will not abort if an error occurs during mexCallMATLAB, but instead will return execution to the MEX function for error handling. ** The MEX API functions for input validation that begin with "mxIs" (e.g., mxIsDouble, mxIsEmpty, etc.) now return type bool rather than type int. ** The functions mxAssert and mxAssertS for checking assertions have been added. In order to avoid a performance penalty they are only compiled in to debug versions of a MEX file, i.e., that are produced when the '-g' option is given to mex or mkoctfile. ** Other new MEX API functions include mexEvalStringWithTrap, mxIsScalar, mxCreateUninitNumericArray, mxCreateUninitNumericMatrix. ** Other new functions added in 4.2: audioformats camlight condeig deg2rad dialog evalc hash im2double isocaps lighting localfunctions material normest1 ode23 ode45 odeget odeplot odeset padecoef profexport psi rad2deg reducepatch reducevolume smooth3 uibuttongroup ** Deprecated functions. The following functions have been deprecated in Octave 4.2 and will be removed from Octave 4.6 (or whatever version is the second major release after 4.2): Function | Replacement ---------------------|------------------ bitmax | flintmax mahalanobis | mahal in Octave-Forge statistics pkg md5sum | hash octve_config_info | __octave_config_info__ onenormest | normest1 sleep | pause usleep | pause wavread | audioread wavwrite | audiowrite ** The following functions were deprecated in Octave 3.8 and have been removed from Octave 4.2. default_save_options java_new gen_doc_cache java_unsigned_conversion interp1q javafields isequalwithequalnans javamethods java_convert_matrix re_read_readline_init_file java_debug read_readline_init_file java_invoke saving_history ** The global error_state variable in Octave's C++ API has been deprecated and will be removed in a future version. Now the error and print_usage functions throw an exception (octave::execution_exception) after displaying the error message. This makes the error and print_usage functions in C++ work more like the corresponding functions in the scripting language. ** The default error handlers in liboctave have been updated to use exceptions. After displaying an error message they no longer return control to the calling program. The error handler function can be customized through the global variables "current_liboctave_error_handler" and "current_liboctave_error_with_id_handler". If a programmer has installed their own custom error handling routines when directly linking with liboctave then these must be updated to throw an exception and not return to the calling program. ** The system for common errors and warnings has been renamed from gripe_XXX to either err_XXX if error is called or warn_XXX if warning is called. The gripe_XXX functions are deprecated and will be removed in version 4.6. ** New configure option, --enable-address-sanitizer-flags, to build Octave with memory allocator checks (similar to those in valgrind) built in.
octave: reference llvm & octave bug reports for ambiguous float precision patch.
octave: fix linux install we pass and assume a given MACHINE_GNU_PLATFORM, but this package did not use this value due to an error. the guess it had for linux (x86_64-unknown-linux-gnu) is different, and this seems to trample over our own tools, see: https://mail-index.netbsd.org/pkgsrc-users/2014/03/26/msg019464.html add this patch to the original m4 script too, not just the resulting configure file, so it won't be accidentially forgotten (and can be upstreamed). patch originally by Iain Morgan reminded by Dr. Thomas Orgis
Update octave to 4.0.3 XXX installs lib/charset.alias - is this a problem? Bugs Fixed in GNU Octave 4.0.3 * doc: clarify differences between atan and atan2 (bug #48178) * doc: delete mention of unsupported syntax for looping over structs (bug #48064) * ver.m: return empty struct for unknown package (bug #48235). * Update gnulib subrepo for texinfo formatting fixes (bug #48001) * Fix typos in Java conversion of 32 and 64 bit integers (bug #48107) * Create valid gnuplot commands even for single-entry colormaps (bug #48083). * orderfields.m: Remove trailing bracket in docstring (bug #48063). * Don't overly restrict options passed to Java jvm (bug #39063). * Write integers with correct byte order on big-endian systems (bug #47434) * doc: Document syntax for specifying color when using Tex interpreter (bug #47907). * Round quantized pixel values before writing uintN images (bug #47746) * Fix popen2 error on Windows when child writes to stderr (bug #43036) * it_IT.ts: Correct Italian translation of "col:" (bug #47857). * avoid crash in audiowrite argument processing (bug #47875) * make __magick_read__ a built-in function (bug #41699) * sortrows.m: Improve docstring (bug #47844). * doc: Fix typo in exec docstring. * Use correct URL for Online Documentation (bug #47835). * Fix autoscale affecting legend axes objects (bug #47765). * configure.ac: Remove AC_CHECK_FUNC for pipe now that gnulib::pipe used. * doc: fix on manual the syntax to empty elements from cell array. * octave.texi: Set document encoding to UTF-8. * Enable the pipe function on Windows (bug #47614) * avoid mulitple definitions of static function-scope vars (bug #47372) * Array-sym.cc: Delete obsolete file. * Initialize variable to stop unstable results for lgamma (bug #47524). * call openmp function at initialization (bug #47372) * macros.texi: Colorized links for PDF files with Texinfo 6.x.
Don't do clever things with include guards, clever things tend to break.
update to octave-4.0.0 Octave 4.0 is a major new release with many new features, including a graphical user interface, support for classdef object-oriented programming, better compatibility with Matlab, and many new and improved functions. A list of important user-visible changes is availble at http://octave.org/NEWS-4.0.html, by selecting the Release Notes item in the News menu of the GUI, or by typing news at the Octave command prompt.
Fix missing dependency that I am regulary hitting in bulk builds.
Add SHA512 digests for distfiles for math category Problems found locating distfiles: Package dfftpack: missing distfile dfftpack-20001209.tar.gz Package eispack: missing distfile eispack-20001130.tar.gz Package fftpack: missing distfile fftpack-20001130.tar.gz Package linpack: missing distfile linpack-20010510.tar.gz Package minpack: missing distfile minpack-20001130.tar.gz Package odepack: missing distfile odepack-20001130.tar.gz Package py-networkx: missing distfile networkx-1.10.tar.gz Package py-sympy: missing distfile sympy-0.7.6.1.tar.gz Package quadpack: missing distfile quadpack-20001130.tar.gz Otherwise, existing SHA1 digests verified and found to be the same on the machine holding the existing distfiles (morden). All existing SHA1 digests retained for now as an audit trail.
install .oct loadable modules with INSTALL_LIB to avoid stripping them regenerate patch sums in distinfo bump PKGREVISION
Don't force std::pow into the global namespace. See comment for further details.
Do not re-define gets() on SunOS, incompatible prototype.
Pull in Texinfo 5.x compatibility fixes from upstream.
When extracting rpath options from the Fortran linker, qualify them with -Wl before passing them to CC.
Deal with C++11 vs TR1 headers.
Update to Octave 3.6.4 This version is a minor bug fixing release.
Let users install packages from OctaveForge: provide path to GNU make which is assumed there.
Update to Octave 3.6.3 Mostly bug and documentation fixes.
Update to Octave 3.6.2 Summary of important user-visible changes for version 3.6: --------------------------------------------------------- ** 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 at http://www.pcre.org ** The ARPACK library is no longer distributed with Octave. If you need the eigs or svds functions you must provide an external ARPACK through a package manager or by compiling it yourself. If a pre-compiled package does not exist for your system, you can find the current ARPACK sources at http://forge.scilab.org/index.php/p/arpack-ng ** Many of Octave's binary operators (.*, .^, +, -, ...) now perform automatic broadcasting for array operations which allows you to use operator notation instead of calling bsxfun or expanding arrays (and unnecessarily wasting memory) with repmat or similar idioms. For example, to scale the columns of a matrix by the elements of a row vector, you may now write rv .* M In this expression, the number of elements of rv must match the number of columns of M. The following operators are affected: plus + .+ minus - .- times .* rdivide ./ ldivide .\ power .^ .** lt < le <= eq == gt > ge >= ne != ~= and & or | atan2 hypot max min mod rem xor additionally, since the A op= B assignment operators are equivalent to A = A op B, the following operators are also affected: += -= .+= .-= .*= ./= .\= .^= .**= &= |= See the "Broadcasting" section in the new "Vectorization and Faster Code Execution" chapter of the manual for more details. ** Octave now features a profiler, thanks to the work of Daniel Kraft under the Google Summer of Code mentorship program. The manual has been updated to reflect this addition. The new user-visible functions are profile, profshow, and profexplore. ** Overhaul of statistical distribution functions Functions now return "single" outputs for inputs of class "single". 75% reduction in memory usage through use of logical indexing. Random sample functions now use the same syntax as rand and accept a comma separated list of dimensions or a dimension vector. Functions have been made Matlab-compatible with regard to special cases (probability on boundaries, probabilities for values outside distribution, etc.). This may cause subtle changes to existing scripts. negative binomial function has been extended to real, non-integer inputs. The discrete_inv function now returns v(1) for 0 instead of NaN. The nbincdf function has been recoded to use a closed form solution with betainc. ** strread, textscan, and textread have been completely revamped. They now support nearly all Matlab functionality including: * Matlab-compatible whitespace and delimiter defaults * Matlab-compatible options: 'whitespace', treatasempty', format string repeat count, user-specified comment style, uneven-length output arrays, %n and %u conversion specifiers (provisionally) ** All .m string functions have been modified for better performance or greater Matlab compatibility. Performance gains of 15X-30X have been demonstrated. Operations on cell array of strings no longer pay quite as high a penalty as those on 2-D character arrays. deblank: Now requires character or cellstr input. strtrim: Now requires character or cellstr input. No longer trims nulls ("\0") from string for Matlab compatibility. strmatch: Follows documentation precisely and ignores trailing spaces in pattern and in string. Note that this is documented Matlab behavior but the implementation apparently does not always follow it. substr: Now possible to specify a negative LEN option which extracts to within LEN of the end of the string. strtok: Now accepts cellstr input. base2dec, bin2dec, hex2dec: Now accept cellstr inputs. dec2base, dec2bin, dec2hex: Now accept cellstr inputs. index, rindex: Now accept 2-D character array input. strsplit: Now accepts 2-D character array input. ** Geometry functions derived from Qhull (convhull, delaunay, voronoi) have been revamped. The options passed to the underlying qhull command have been changed for better results or for Matlab compatibility. convhull: Default options are "Qt" for 2D, 3D, 4D inputs Default options are "Qt Qx" for 5D and higher delaunay: Default options are "Qt Qbb Qc Qz" for 2D and 3D inputs Default options are "Qt Qbb Qc Qx" for 4D and higher voronoi: No default arguments ** Date/Time functions updated. Millisecond support with FFF format string now supported. datestr: Numerical formats 21, 22, 29 changed to match Matlab. Now accepts cellstr input. ** The following warning IDs have been removed: Octave:associativity-change Octave:complex-cmp-ops Octave:empty-list-elements Octave:fortran-indexing Octave:precedence-change ** The warning ID Octave:string-concat has been renamed to Octave:mixed-string-concat. ** Octave now includes the following Matlab-compatible preference functions: addpref getpref ispref rmpref setpref ** The following Matlab-compatible handle graphics functions have been added: guidata uipanel uitoolbar guihandles uipushtool uiwait uicontextmenu uiresume waitfor uicontrol uitoggletool The uiXXX functions above are experimental. Except for uiwait and uiresume, the uiXXX functions are not supported with the FLTK+OpenGL graphics toolkit. The gnuplot graphics toolkit does not support any of the uiXXX functions nor the waitfor function. ** New keyword parfor (parallel for loop) is now recognized as a valid keyword. Implementation, however, is still mapped to an ordinary for loop. ** Other new functions added in 3.6.0: bicg nthargout usejava is_dq_string narginchk waitbar is_sq_string python zscore is_function_handle register_graphics_toolkit loaded_graphics_toolkits recycle ** Deprecated functions. The following functions were deprecated in Octave 3.2 and have been removed from Octave 3.6. create_set spcholinv splu dmult spcumprod spmax iscommand spcumsum spmin israwcommand spdet spprod lchol spdiag spqr loadimage spfind spsum mark_as_command sphcat spsumsq mark_as_rawcommand spinv spvcat spatan2 spkron str2mat spchol splchol unmark_command spchol2inv split unmark_rawcommand The following functions have been deprecated in Octave 3.6 and will be removed from Octave 3.10 (or whatever version is the second major release after 3.6): cut is_duplicate_entry cor polyderiv corrcoef shell_cmd __error_text__ studentize error_text sylvester_matrix ** The following functions have been modified for Matlab compatibility: randperm
Fix the bloody fpos_t/off_t mess.
Update to Octave 3.4.3 This makes the package build and work at least in NetBSD on some platforms. Summary of important user-visible changes for version 3.4.3: ----------------------------------------------------------- ** Octave 3.4.3 is a bug fixing release. Summary of important user-visible changes for version 3.4.2: ----------------------------------------------------------- ** Octave 3.2.4 fixes some minor installation problems that affected version 3.4.1. Summary of important user-visible changes for version 3.4.1: ----------------------------------------------------------- ** Octave 3.4.1 is primarily a bug fixing release. ** IMPORTANT note about binary incompatibility in this release: Binary compatibility for all 3.4.x releases was originally planned, but this is impossible for the 3.4.1 release due to a bug in the way shared libraries were built in Octave 3.4.0. Because of this bug, .oct files built for Octave 3.4.0 must be recompiled before they will work with Octave 3.4.1. Given that there would be binary incompatibilities with shared libraries going from Octave 3.4.0 to 3.4.1, the following incompatible changes were also made in this release: * The Perl Compatible Regular Expression (PCRE) library is now required to build Octave. * Octave's libraries and .oct files are now installed in subdirectories of $libdir instead of $libexecdir. Any future Octave 3.4.x release versions should remain binary compatible with Octave 3.4.1 as proper library versioning is now being used as recommended by the libtool manual. ** The following functions have been deprecated in Octave 3.4.1 and will be removed from Octave 3.8 (or whatever version is the second major release after 3.4): cquad is_duplicate_entry perror strerror ** The following functions are new in 3.4.1: colstyle gmres iscolumn isrow mgorth nproc rectangle ** The get_forge_pkg function is now private. ** The rectangle_lw, rectangle_sw, triangle_lw, and triangle_sw functions are now private. ** The logistic_regression_derivatives and logistic_regression_likelihood functions are now private. ** ChangeLog files in the Octave sources are no longer maintained by hand. Instead, there is a single ChangeLog file generated from the Mercurial version control commit messages. Older ChangeLog information can be found in the etc/OLD-ChangeLogs directory in the source distribution. Summary of important user-visible changes for version 3.4: --------------------------------------------------------- ** BLAS and LAPACK libraries are now required to build Octave. The subset of the reference BLAS and LAPACK libraries has been removed from the Octave sources. ** The `lookup' function was extended to be more useful for general-purpose binary searching. Using this improvement, the ismember function was rewritten for significantly better performance. ** Real, integer and logical matrices, when used in indexing, will now cache the internal index_vector value (zero-based indices) when successfully used as indices, eliminating the conversion penalty for subsequent indexing by the same matrix. In particular, this means it is no longer needed to avoid repeated indexing by logical arrays using find for performance reasons. ** Logical matrices are now treated more efficiently when used as indices. Octave will keep the index as a logical mask unless the ratio of true elements is small enough, using a specialized code. Previously, all logical matrices were always first converted to index vectors. This results in savings in both memory and computing time. ** The `sub2ind' and `ind2sub' functions were reimplemented as compiled functions for better performance. These functions are now faster, can deliver more economized results for ranges, and can reuse the index cache mechanism described in previous paragraph. ** The built-in function equivalents to associative operators (`plus', `times', `mtimes', `and', and `or') have been extended to accept multiple arguments. This is especially useful for summing (multiplying, etc.) lists of objects (of possibly distinct types): matrix_sum = plus (matrix_list{:}); ** An FTP object type based on libcurl has been implemented. These objects allow ftp connections, downloads and uploads to be managed. For example, fp = ftp ("ftp.octave.org); cd (fp, "gnu/octave"); mget (fp, "octave-3.2.3.tar.bz2"); close (fp); ** The default behavior of `assert (observed, expected)' has been relaxed to employ less strict checking that does not require the internals of the values to match. This avoids previously valid tests from breaking due to new internal classes introduced in future Octave versions. For instance, all of these assertions were true in Octave 3.0.x but false in 3.2.x due to new optimizations and improvements: assert (2*linspace (1, 5, 5), 2*(1:5)) assert (zeros (0, 0), []) assert (2*ones (1, 5), (2) (ones (1,5))) ** The behavior of library functions `ismatrix', `issquare', and `issymmetric' has been changed for better consistency. * The `ismatrix' function now returns true for all numeric, logical and character 2-D or N-D matrices. Previously, `ismatrix' returned false if the first or second dimension was zero. Hence, `ismatrix ([])' was false, while `ismatrix (zeros (1,2,0))' was true. * The `issquare' function now returns a logical scalar, and is equivalent to the expression ismatrix (x) && ndims (x) == 2 && rows (x) == columns (x) The dimension is no longer returned. As a result, `issquare ([])' now yields true. * The `issymmetric' function now checks for symmetry instead of Hermitianness. For the latter, ishermitian was created. Also, logical scalar is returned rather than the dimension, so `issymmetric ([])' is now true. ** Function handles are now aware of overloaded functions. If a function is overloaded, the handle determines at the time of its reference which function to call. A non-overloaded version does not need to exist. ** Overloading functions for built-in classes (double, int8, cell, etc.) is now compatible with Matlab. ** Function handles can now be compared with the == and != operators, as well as the `isequal' function. ** Performance of concatenation (using []) and the functions `cat', `horzcat', and `vertcat' has been improved for multidimensional arrays. ** The operation-assignment operators +=, -=, *= and /= now behave more efficiently in certain cases. For instance, if M is a matrix and S a scalar, then the statement M += S; will operate on M's data in-place if it is not shared by another variable, usually increasing both time and memory efficiency. Only selected common combinations are affected, namely: matrix += matrix matrix -= matrix matrix .*= matrix matrix ./= matrix matrix += scalar matrix -= scalar matrix *= scalar matrix /= scalar logical matrix |= logical matrix logical matrix &= logical matrix where matrix and scalar belong to the same class. The left-hand side must be a simple variable reference. Moreover, when unary operators occur in expressions, Octave will also try to do the operation in-place if it's argument is a temporary expresssion. ** The effect of comparison operators (<, >, <=, and >=) applied to complex numbers has changed to be consistent with the strict ordering defined by the `max', `min', and `sort' functions. More specifically, complex numbers are compared by lexicographical comparison of the pairs `[abs(z), arg(z)]'. Previously, only real parts were compared; this can be trivially achieved by wrapping the operands in real(). ** The automatic simplification of complex computation results has changed. Octave will now simplify any complex number with a zero imaginary part or any complex matrix with all elements having zero imaginary part to a real value. Previously, this was done only for positive zeros. Note that the behavior of the complex function is unchanged and it still produces a complex value even if the imaginary part is zero. ** As a side effect of code refactoring in liboctave, the binary logical operations are now more easily amenable to compiler optimizations and are thus significantly faster. ** Octave now allows user-defined `subsasgn' methods to optimize out redundant copies. For more information, see the manual. ** More efficient matrix division handling. Octave is now able to handle the expressions M' \ V M.' \ V V / M (M is a matrix and V is a vector) more efficiently in certain cases. In particular, if M is triangular, all three expressions will be handled by a single call to xTRTRS (from LAPACK), with appropriate flags. Previously, all three expressions required a physical transpose of M. ** More efficient handling of certain mixed real-complex matrix operations. For instance, if RM is a real matrix and CM a complex matrix, RM * CM can now be evaluated either as complex (RM * real (CM), RM * imag (CM)) or as complex (RM) * CM, depending on the dimensions. The first form requires more temporaries and copying, but halves the FLOP count, which normally brings better performance if RM has enough rows. Previously, the second form was always used. Matrix division is similarly affected. ** More efficient handling of triangular matrix factors returned from factorizations. The functions for computing QR, LU and Cholesky factorizations will now automatically return the triangular matrix factors with proper internal matrix_type set, so that it won't need to be computed when the matrix is used for division. ** The built-in `sum' function now handles the non-native summation (i.e., double precision sum of single or integer inputs) more efficiently, avoiding a temporary conversion of the whole input array to doubles. Further, `sum' can now accept an extra option argument, using a compensated summation algorithm rather than a straightforward sum, which significantly improves precision if lots of cancellation occurs in the summation. ** The built-in `bsxfun' function now uses optimized code for certain cases where built-in operator handles are passed in. Namely, the optimizations concern the operators `plus', `minus', `times', `ldivide', `rdivide', `power', `and', `or' (for logical arrays), the relational operators `eq', `ne', `lt', `le', `gt', `ge', and the functions `min' and `max'. Optimizations only apply when both operands are of the same built-in class. Mixed real/complex and single/double operations will first convert both operands to a common type. ** The `strfind' and `strrep' functions now have compiled implementations, facilitating significantly more efficient searching and replacing in strings, especially with longer patterns. The code of `strcat' has been vectorized and is now much more efficient when many strings are concatenated. The `strcmpi' and `strncmpi' functions are now built-in functions, providing better performance. ** Matlab-style ignoring input and output function arguments using tilde (~) is now supported. Ignored output arguments may be detected from a function using the built-in function `isargout'. For more details, consult the manual. ** The list datatype, deprecated since the introduction of cells, has been removed. ** The accumarray function has been optimized and is now significantly faster in certain important cases. ** The behavior of isreal and isnumeric functions was changed to be more Matlab-compatible. ** The integer math & conversion warnings (Octave:int-convert-nan, Octave:int-convert-non-int-val, Octave:int-convert-overflow, Octave:int-math-overflow) have been removed. ** rem and mod are now built-in functions. They also handle integer types efficiently using integer arithmetic. ** Sparse indexing and indexed assignment has been mostly rewritten. Since Octave uses compressed column storage for sparse matrices, major attention is devoted to operations manipulating whole columns. Such operations are now significantly faster, as well as some other important cases. Further, it is now possible to pre-allocate a sparse matrix and subsequently fill it by assignments, provided they meet certain conditions. For more information, consult the `spalloc' function, which is no longer a mere dummy. Consequently, nzmax and nnz are no longer always equal in Octave. Octave may also produce a matrix with nnz < nzmax as a result of other operations, so you should consistently use nnz unless you really want to use nzmax (i.e. the space allocated for nonzero elements). Sparse concatenation is also affected, and concatenating sparse matrices, especially larger collections, is now significantly more efficient. This applies to both the [] operator and the cat/vertcat/horzcat functions. ** It is now possible to optionally employ the xGESDD LAPACK drivers for computing the singular value decomposition using svd(), instead of the default xGESVD, using the configuration pseudo-variable svd_driver. The xGESDD driver can be up to 6x times faster when singular vectors are requested, but is reported to be somewhat less robust on highly ill-conditioned matrices. ** Configuration pseudo-variables, such as page_screen_output or confirm_recursive_rmdir (or the above mentioned svd_driver), now accept a "local" option as second argument, requesting the change to be undone when the current function returns: function [status, msg] = rm_rf (dir) confirm_recursive_rmdir (false, "local"); [status, msg] = rmdir (dir, "s"); ... endfunction Upon return, confirm_recursive_rmdir will be restored to the value it had on entry to the function, even if there were subsequent changes to the variable in function rm_rf or any of the functions it calls. ** pkg now accepts a -forge option for downloading and installing packages from Octave Forge automatically. For example, pkg install -forge general will automatically download the latest release of the general package and attempt to install it. No automatic resolving of dependencies is provided. Further, pkg list -forge can be used to list all available packages. ** The internal data representation of structs has been completely rewritten to make certain optimizations feasible. The field data can now be shared between structs with equal keys but different dimensions or values, making operations that preserve the fields faster. Economized storage is now used for scalar structs (just like most other scalars), making their usage more memory-efficient. Certain array-like operations on structs (concatenation, uniform cellfun, num2cell) have gained a significant speed-up. Additionally, the octave_scalar_map class now provides a simpler interface to work with scalar structs within a C++ DLD function. ** Two new formats are available for displaying numbers: format short eng format long eng Both display numbers in engineering notation, i.e., mantissa + exponent where the exponent is a multiple of 3. ** The following functions are new in Octave 3.4: accumdim erfcx nfields pqpnonneg uigetdir bitpack fileread nth_element quadcc uigetfile bitunpack fminbnd onCleanup randi uiputfile blkmm fskipl pbaspect repelems uimenu cbrt ifelse pie3 reset whitebg curl ishermitian powerset rsf2csf chop isindex ppder saveas daspect luupdate ppint strread divergence merge ppjumps textread ** Using the image function to view images with external programs such as display, xv, and xloadimage is no longer supported. The image_viewer function has also been removed. ** The behavior of struct assignments to non-struct values has been changed. Previously, it was possible to overwrite an arbitrary value: a = 1; a.x = 2; This is no longer possible unless a is an empty matrix or cell array. ** The dlmread function has been extended to allow specifying a custom value for empty fields. ** The dlmread and dlmwrite functions have been modified to accept file IDs (as returned by fopen) in addition to file names. ** Octave can now optimize away the interpreter overhead of an anonymous function handle, if the function simply calls another function or handle with some of its parameters bound to certain values. Example: f = @(x) sum (x, 1); When f is called, the call is forwarded to @sum with the constant 1 appended, and the anonymous function call does not occur on the call stack. ** Deprecated functions. The following functions were deprecated in Octave 3.0 and have been removed from Octave 3.4. beta_cdf geometric_pdf pascal_pdf beta_inv geometric_rnd pascal_rnd beta_pdf hypergeometric_cdf poisson_cdf beta_rnd hypergeometric_inv poisson_inv binomial_cdf hypergeometric_pdf poisson_pdf binomial_inv hypergeometric_rnd poisson_rnd binomial_pdf intersection polyinteg binomial_rnd is_bool setstr chisquare_cdf is_complex struct_contains chisquare_inv is_list struct_elements chisquare_pdf is_matrix t_cdf chisquare_rnd is_scalar t_inv clearplot is_square t_pdf clg is_stream t_rnd com2str is_struct uniform_cdf exponential_cdf is_symmetric uniform_inv exponential_inv is_vector uniform_pdf exponential_pdf isstr uniform_rnd exponential_rnd lognormal_cdf weibcdf f_cdf lognormal_inv weibinv f_inv lognormal_pdf weibpdf f_pdf lognormal_rnd weibrnd f_rnd meshdom weibull_cdf gamma_cdf normal_cdf weibull_inv gamma_inv normal_inv weibull_pdf gamma_pdf normal_pdf weibull_rnd gamma_rnd normal_rnd wiener_rnd geometric_cdf pascal_cdf geometric_inv pascal_inv The following functions were deprecated in Octave 3.2 and will be removed from Octave 3.6 (or whatever version is the second major release after 3.2): create_set spcholinv splu dmult spcumprod spmax iscommand spcumsum spmin israwcommand spdet spprod lchol spdiag spqr loadimage spfind spsum mark_as_command sphcat spsumsq mark_as_rawcommand spinv spvcat spatan2 spkron str2mat spchol splchol unmark_command spchol2inv split unmark_rawcommand The following functions have been deprecated in Octave 3.4 and will be removed from Octave 3.8 (or whatever version is the second major release after 3.4): autocor cellidx gammai krylovb values autocov dispatch glpkmex replot betai fstat is_global saveimage * For compatibility with Matlab, mu2lin (x) is now equivalent to mu2lin (x, 0). * The ARPACK library is now distributed with Octave so it no longer needs to be available as an external dependency when building Octave.
remove incomplete libtoolization which made that plugins were built as executables rather than loadable modules This might cause that the pkg doesn't build on as many platforms as it did before, but it has a chance to work now. bump PKGREV
Fixes build with curl-7.21.7. Let not to include deprecated header file.
Fix configure handling of Magick option
Use BSD_INSTALL_LIB to install shared objects. Rediscovered by Taylor R. Campbell in PR 43205
Update to Octave 3.2.4, this is bug fixing release. pkgsrc changes: fix shared library versions.
fix build: libtoolization missed to link against required libraries
Changes 3.2.3: * This is a bug-fixing release.
gcc44 fixes
Update to Octave 3.2.2. Changes since previous (3.2.0) are minor bug fixes.
Update to Octave 2.2.0. User-visible changes since previous release: - Compatibility with Matlab graphics has been improved. - New graphics functions. - New experimental OpenGL/FLTK based plotting system. - Functions providing direct access to gnuplot have been removed. - The Control, Finance and Quaternion functions have been removed. - Specific sparse matrix functions removed. - Improvements to the debugger. - Improved traceback error messages. - Object Oriented Programming. - Parsing of Command-style Functions. - Block comments. - Special treatment in the parser of expressions like "a' * b". - Single Precision data type. - Improved array indexing. - Improved memory management. - Improved performance for reduction operations. - Sorting and searching. - Range arithmetics. - Various performance improvements. - 64-bit integer arithmetic. - Diagonal and permutation matrices. - Improvements to fsolve. - Improvements to the norm function. - New functions for computing some eigenvalues or singular values. - New QR and Cholesky factorization updating functions. - New quadrature functions. - New functions for reading and writing images. - Other miscellaneous new functions. - Changes to strcat. - Improvements to the help functions. - Deprecated functions.
Changes 3.0.5: * Fixed a serious file reading bug. Changes 3.0.4: * Bug-fixing release.
Add DESTDIR support. Approved by <tnn>.
Changes 3.0.3: * Bug fixes * Improvements
Changes 3.0.2: * Bug-fix release.
Use the PIC flag for Fortran that autoconf picks out. Fixes broken build on amd64 and probably others.
Changes 3.0.1: * This is a bug-fixing release.
Changes 3.0.0: * Compatibility with Matlab graphics is much better now. We now have some graphics features that work like Matlab's Handle Graphics (tm): * The way Octave handles search paths has changed. * Previous versions of Octave had a number of built-in variables to control warnings (for example, warn_divide_by_zero). These variables have been replaced by warning identifiers that are used with the warning function to control the state of warnings. * All built-in variables have been converted to functions. * For compatibility with Matlab, the output order of Octave's "system" function has changed. * For compatibility with Matlab, the output of Octave's fsolve function has been changed. * For compatibility with Matlab, normcdf, norminv, normpdf, and normrnd have been modified to compute distributions using the standard deviation instead of the variance. * For compatibility with Matlab, gamcdf, gaminv, gampdf, gamrnd, expcdf, expinv, exppdf and exprnd have been modified to compute the distributions using the standard scale factor rather than one over the scale factor.
Changes 2.1.73: * Bug fixes
Changes 2.1.72: * Bug fixes * Improvements
Changes 2.1.71: * Bug fixes
update to 2.1.71 changes: cleanup, build system fixes
Fix broken GNU configure script that was overriding the SED that was passed to it with an empty string.
Changes 2.1.70: * Bug fixes
Changes 2.1.69: * Bug fixes
Remove egcs-patch-aa from distinfo to silence pkglint.
Convert to USE_NEW_TEXINFO. Remove now unnecessary patch files.
Update to version 2.0.17. Convert to using buildlink. Summary of changes for 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.
Introduce new framework for handling info files generation and installation. Summary of changes: - removal of USE_GTEXINFO - addition of mk/texinfo.mk - inclusion of this file in package Makefiles requiring it - `install-info' substituted by `${INSTALL_INFO}' in PLISTs - tuning of mk/bsd.pkg.mk: removal of USE_GTEXINFO INSTALL_INFO added to PLIST_SUBST `${INSTALL_INFO}' replace `install-info' in target rules print-PLIST target now generate `${INSTALL_INFO}' instead of `install-info' - a couple of new patch files added for a handful of packages - setting of the TEXINFO_OVERRIDE "switch" in packages Makefiles requiring it - devel/cssc marked requiring texinfo 4.0 - a couple of packages Makefiles were tuned with respect of INFO_FILES and makeinfo command usage See -newly added by this commit- section 10.24 of Packages.txt for further information.
make sure this configures and builds correctly with either f77 or f2c.
+ move the distfile digest/checksum value from files/md5 to distinfo + move the patch digest/checksum values from files/patch-sum to distinfo