Up to [cvs.NetBSD.org] / pkgsrc / math / octave
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
*: Revision bumps for ncurses 6.5 overhaul.
*: Recursive revbump from audio/libopus 1.4
*: bump PKGREVISION for flac shlib bump
*: recursive bump for perl 5.36
m*/*: revbump(1) for libsndfile
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"`
math/blas, math/lapack: Install interchangeable BLAS system Install the new interchangeable BLAS system created by Thomas Orgis, currently supporting Netlib BLAS/LAPACK, OpenBLAS, cblas, lapacke, and Apple's Accelerate.framework. This system allows the user to select any BLAS implementation without modifying packages or using package options, by setting PKGSRC_BLAS_TYPES in mk.conf. See mk/blas.buildlink3.mk for details. This commit should not alter behavior of existing packages as the system defaults to Netlib BLAS/LAPACK, which until now has been the only supported implementation. Details: Add new mk/blas.buildlink3.mk for inclusion in dependent packages Install compatible Netlib math/blas and math/lapack packages Update math/blas and math/lapack MAINTAINER approved by adam@ OpenBLAS, cblas, and lapacke will follow in separate commits Update direct dependents to use mk/blas.buildlink3.mk Perform recursive revbump
*: revbump for libsndfile
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"
Use standard way to test for build options.
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.
Bump all packages that depend on curses.bui* or terminfo.bui* since they might incur ncurses dependencies on some platforms, and ncurses just bumped its shlib. Some packages were bumped twice now, sorry for that.
Bump PKGREVISION for ncurses shlib bump.
recursive bump from hdf5 shlib major bump.
Recursive ABI depends update and PKGREVISION bump for readline-6.0 shlib major change. Reported by Robert Elz in PR 41345.
Simply and speed up buildlink3.mk files and processing. This changes the buildlink3.mk files to use an include guard for the recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS, BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of enter/exit marker, which can be used to reconstruct the tree and to determine first level includes. Avoiding := for large variables (BUILDLINK_ORDER) speeds up parse time as += has linear complexity. The include guard reduces system time by avoiding reading files over and over again. For complex packages this reduces both %user and %sys time to half of the former time.
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.
PR#36479 fix plus pkglint cosmetics
PKGREVISION bump for flac shlib major bump and corresponding ABI depends bump.
Replace mk/bsd.prefs.mk includes with bsd.fast.prefs.mk includes. The redundant parsing of bsd.prefs.mk is mostly avoided now and parse time e.g. for x11/kdebase3 gets reduced by up to 10%.
Change the format of BUILDLINK_ORDER to contain depth information as well, and add a new helper target and script, "show-buildlink3", that outputs a listing of the buildlink3.mk files included as well as the depth at which they are included. For example, "make show-buildlink3" in fonts/Xft2 displays: zlib fontconfig iconv zlib freetype2 expat freetype2 Xrender renderproto
Track information in a new variable BUILDLINK_ORDER that informs us of the order in which buildlink3.mk files are (recursively) included by a package Makefile.
Changes 2.1.73: * Bug fixes
Over 1200 files touched but no revisions bumped :) RECOMMENDED is removed. It becomes ABI_DEPENDS. BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo. BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo. BUILDLINK_DEPENDS does not change. IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS which defaults to "yes". Added to obsolete.mk checking for IGNORE_RECOMMENDED. I did not manually go through and fix any aesthetic tab/spacing issues. I have tested the above patch on DragonFly building and packaging subversion and pkglint and their many dependencies. I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I have used IGNORE_RECOMMENDED for a long time). I have been an active user of IGNORE_RECOMMENDED since it was available. As suggested, I removed the documentation sentences suggesting bumping for "security" issues. As discussed on tech-pkg. I will commit to revbump, pkglint, pkg_install, createbuildlink separately. Note that if you use wip, it will fail! I will commit to pkgsrc-wip later (within day).
Recursive revision bump / recommended bump for gettext ABI change.
Include devel/hdf5/buildlink3.mk if octave is built with hdf5.
buildlink3 fix
Changes 2.1.69: * Bug fixes