Merge remote-tracking branch 'origin/6.0' 02/19502/3
Antoine ELIAS [Mon, 23 Oct 2017 16:43:25 +0000 (18:43 +0200)]
Change-Id: I2183870c945016a9e30a2bbfca3f64c32b5b7a83

19 files changed:
1  2 
scilab/CHANGES.md
scilab/Scilab.sln
scilab/bin/bin.iss
scilab/bin/scilab
scilab/modules/development_tools/macros/test_run.sci
scilab/modules/fileio/src/cpp/mgetl.cpp
scilab/modules/functions_manager/src/cpp/dynamic_modules.cpp
scilab/modules/helptools/data/configuration/scilab_macros.txt
scilab/modules/helptools/sci_gateway/cpp/sci_buildDoc.cpp
scilab/modules/history_browser/src/c/history_browser.vcxproj
scilab/modules/randlib/sci_gateway/cpp/sci_grand.cpp
scilab/modules/signal_processing/Makefile.in
scilab/modules/signal_processing/sci_gateway/cpp/signal_processing_gw.vcxproj
scilab/modules/slint/src/cpp/DeprecatedChecker.cpp
scilab/modules/sparse/Makefile.in
scilab/modules/sparse/sci_gateway/cpp/sparse_gw.vcxproj
scilab/modules/windows_tools/src/c/WScilex/WScilex.vcxproj
scilab/modules/windows_tools/src/c/scilab_windows/scilab_windows.vcxproj
scilab/modules/windows_tools/src/c/windows_tools.vcxproj

@@@ -37,11 -51,13 +37,13 @@@ Installatio
  Compilation
  -----------
  
 -To build Scilab from sources, or to build extensions code (Toolboxes):
 -* A C++11 compliant compiler is now needed.
 -* Java 8 is now required to build Java code (version switch to 1.8).
 -* Ant minimal version switched to 1.9.0 (for Java 8 compatibility).
 -* ecj minimal version switched to 4.4.0 (for Java 8 compatibility).
 -* `--without-xcos` now only disable Xcos compilation. Xcos graphical interface is disabled using `--without-gui`.
 +* GNU autotools have been updated to :
 +   - automake 1.15
 +   - autoconf 2.69
 +   - libtool 2.4.6 (patched for Mac Os X)
 +
++* Migration to Microsoft Visual Studio 2017 and Intel Composer 2018
  
  Dependencies
  ------------
@@@ -50,8 -71,8 +52,9 @@@
  Packaging & Supported Operating Systems
  ---------------------------------------
  
 -* Scilab embedded JVM has been upgraded to Java 1.8. To run or compile Scilab 6.0.0 you need at least:
 +* Scilab embedded JVM is Java 8. To run or compile Scilab you need at least:
    - Windows:
++     - Windows 10 (Desktop)
       - Windows 8 (Desktop)
       - Windows 7
       - Windows Vista SP2
  
      For more information, please consult: [What are the system requirements for Java?](http://java.com/en/download/help/sysreq.xml)
  
- * [SSE2](https://en.wikipedia.org/wiki/SSE2), Streaming SIMD Extensions 2 support is mandatory.
+ * [SSE2](https://en.wikipedia.org/wiki/SSE2), Streaming SIMD Extensions 2 support is now mandatory to run Scilab on Linux i686.
  
  
  Feature changes and additions
  -----------------------------
  
 -* Addition or subtraction with an empty matrix now returns an empty matrix.
 -* `scatter/scatter3` plot with different mark colors is now available.
 -* `parulacolormap` is now available.
 -* `name2rgb` can now handle a single string and a matrix of strings.
 -* `isoview`, `isoview on`, `isoview off`, `isoview(idGraphics, "on"|"off")` are now supported.
 -* `twinkle` and `twinkle(n)` are now supported: by default, the current element `gce` blinks.
 -* `replot` has been upgraded:
 -  - a bound set to `%inf` now gets the position of the most marginal object,
 -  - `replot` can now be used to reframe axes to all their contents,
 -  - option `tigh_limits` added,
 -  - Any handle having some Axes as direct children -- as uicontrol-frame -- is now supported.
 -* `householder` can now return the reflection matrix, and has a demo.
 -* `ndgrid` can now works with any types of homogeneous data
 -* `permute` now supports arrays of rationals.
 -* `bench_run` can now return its results and/or record them in a file
 -* `typeof(.., "overload")` allows now to get the overloading type-code of an object
 -* `sign` can now handle a sparse matrix.
 -* `sleep(..,'s')` allows now to specify the duration in seconds.
 -* `real`, `imag`, `conj` and `isreal` now accept rational fractions.
 -* A call stack limit has been introduced. Default maximum depth is setup to `1000`
 -and can be changed by `recursionlimit` or through the Preferences interface.
 -* The floating point exception mode `ieee` is now set to `2` by default: floating
 -point exceptions now produce `Inf` or `Nan`, and do not cause any error.
 -The previous behavior can be recalled by simply calling: `ieee(0)`.
 -* Datatips:
 -  - The property `z_component = 'on|off'` is renamed to `display_components = 'xyz'`.
 -  It is now possible to choose which components to display, and in which order.
 -  The `.z_component` property will be ignored in former `*.scg` files.
 -  - A new `detached_position` property is available to display the datatip away from but linked to
 -  its anchor on the curve.
 -  - A new `Polyline.datatip_display_mode` property now allows to display each datatip of the curve
 -  only on `mouseover` its anchor or only on `mouseclick`.
 -* Valgrind error detection added to `test_run` (on Linux only).
 -* `amell` now:
 -  - checks if its parameters are real numbers,
 -  - throws an error if the second parameter is not a scalar.
 -* The use of I/O console is now allowed with the following functions: `mget`,
 -`mgetl`, `mgetstr`, `mput`, `mputl` and `mputstr`.
 -* `mclearerr` now returns a flag indicating the file identifier validity.
 -* `fileinfo` can now take a row vector as input.
 -* `msprintf` does not return an error message anymore when there are too many
 -input arguments (more values that format needs).
 -* `deletefile` can delete multiple files at once.
 -* `exec` of macro executes the body in the current scope, but the prototype must have zero
 -input and output arguments.
 -* `error`: an error number in input is deprecated.
 -* `impl`: Recall `impl` with the same parameters as in its previous stop is now available.
 -* `ode`: `y0` is restricted to a column vector.
 -* `pppdiv`: Returns a scalar of type 'constant' when the rank is 0.
 -* `pdiv`: Returns a matrix of type 'constant' when all the rank are 0.
 -* `test_run` can now take `[]` as argument to be used on console; for instance: `test_run string [] no_check_ref`.
 -* `typeof(:)` and `typeof(n:$)` now return `"implicitlist"` instead of respectively `"constant"` and `"size implicit"`.
 -* `linspace(a, b, n<=0)` now returns `[]` instead of b.
 -* `strange([])` now returns `%nan` instead of `[]`, as all other functions for statistical dispersion.
 -* `stdev(x, dir>ndims(x))` now yields an error instead of returning `zeros(x)`.
 -* `mean` and `stdev` can now be overloaded.
 -* `write`: Writing string or string matrix in a file does not add blank space before each value.
 -* `bitor`, `bitxor` and `bitand` are upgraded:
 -   - positive signed encoded integers are now accepted.
 -   - inputs with new `int64` or `uint64` encodings are now accepted.
 -   - operands with mixed types or/and inttypes are now accepted.
 -   - distributive input scalars as in `bit###(scalar, array)` or `bit###(array, scalar)` are now accepted.
 -   - results with decimal-encoded integers > 2^32 are now correct.
 -   - decimal-encoded integers > 2^52 are now supported up to the biggest 1.80D+308.
 -   - `bitxor` is now vectorized and fast.
 -* `resize_matrix`: Its conversion option is extended to the new `int64` and `uint64` integer types.
 -* Interactively setting a common zoom box on multiple neighbouring or overlaying axes, and with
 -bounds selected out of the axes areas is now restored, after the Scilab 5.4 regression.
 -* Scroll to zoom:
 -  - Scrolling over overlaying axes now zooms all of them together.
 -  - Pressing CTRL while scrolling now zooms all axes in the current figure.
 -* `MPI_Create_comm` creates a new communicator from MPI_COMM_WORLD using MPI world ranks.
 -* The `grand` non-free `fsultra` generator is no longer available.
 -* The original `rpoly` algorithm is removed in favor of a C++11 implementation
 -* When `Axes.view=="2d"`, the rotation is now impossible.
 -* The zero-pole-gain (zpk) representation is now available for linear dynamical systems.
 -* On a figure, the contextual menu now proposes an entry `Label -> Title` to interactively set the title of any axes.
 -* `getPreferencesValue` can now read a tag having multiple occurrences, and accepts the path to a preferences file instead of its XML handle.
 -* The function `stripblanks` now supports an option to remove trailing or leading spaces or both.
 -* `atomsSetConfig` does not update cache.
 -* `lqi` function added to compute "linear quadratic integral compensator".
 -* A new console `File => Go to Favorite directory` menu allows to go to a favorite directory selected
 -  in a dynamical list set from Scinotes favorite and most recent directories.
 -* The console `File => Open a file` menu allows now to open *.xcos *.zcos *.scg or lib files with
 -   the proper Scilab component, and other files with the proper OS application.
 -   All files were formerly opened in Scinotes and could make it frozen.
 -* `size` can now be overloadable for tlist lists, as it already could for mlist lists.
 -* `gcd` now accepts `int64` and `uint64` integers. The input can now be any array instead of a row.
 -* `cat` has been rewritten. It is now fast and can process heavy arrays at high dimensions.
 -* `fplot3d1` remove warning messages when it was called without option.
 -* `whereis` has been upgraded:
 -  - It can now be used for builtin functions.
 -  - When the same function name is registered in several libraries, `whereis` now returns all of them instead of only the last loaded one.
 -  - For unregistered user-defined macros, `"script"` is now returned instead of `[]`.
 -* `mgetl` speed have been improved for files with a lot of lines.
 -* `ndgrid(x)` now accepts only one input `x`, with by default `y=x`.
 -
 +* Empty strings are used as the default values on String allocation
 +* HTTP get, post, put, upload, patch, delete functions added
 +* JSON encoding / decoding for Scilab datatypes added
 +* Memory invalid accesses have been greatly reduced thanks to :
 +  - PVS-Studio inspections blog report
 +  - Coverity scan weekly source analysis
  
++  
  Help pages:
  -----------
  
@@@ -94,9 -270,28 +97,6 @@@ Data Structure
  Xcos
  ----
  
- * scicos_log() support options parameters to retrieve model statistics.
- * Added two new blocks `SCALE_CSCOPE` & `SCALE_CMSCOPE` which are `CSCOPE` & `CMSCOPE` blocks (resp) with additional feature of autoscaling of graph. It takes a parameter (1 for Yes or 0 for No) for scaling or no-scaling.
 -* Major rewrite of the data structures, huge models should load and save faster.
 -The memory usage on diagram edition is also slightly reduced.
 -* ZCOS and XCOS file formats have evolved to reduce the duplicated information.
 -Scilab 5.5.2 is able to open the newly saved files, but the ports have to be repositioned manually.
 -* Implicit fixed-size step ODE solver added: Crank-Nicolson 2(3).
 -Added to the CVode package, it also benefits from the CVode rootfinding feature.
 -* Added a new link style (`Optimal`) for automatically finding the optimal route.
 -* Automatically reposition split blocks for better-looking layout.
 -* Block modifications:
 -  - `INVBLK`: add a divide by zero parameter to ignore the error
 -  - `PRODUCT`: add a divide by zero parameter to ignore the error
 -* The palette browser has been improved. The following features were included:
 -  - search engine
 -  - history (go forward or backward)
 -  - drag and drop multiple blocks at once
 -  - navigate using the keyboard arrows
 -  - add blocks to the most recent diagram by using the ENTER key
 -  - dynamic palette with the last used blocks
 -  - zoom using CTRL(+), CTRL(-) and CTRL(mousewheel)
 -  - load SVG icons
 -* Deleted obsolete WFILE_f block, please use WRITEC_f instead.
 -
  
  API modification
  ----------------
@@@ -466,8 -518,8 +466,10 @@@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C
  EndProject
  Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "scicos_blocks-cli_f", "modules\scicos_blocks\src\fortran\cli\scicos_blocks-cli_f.vfproj", "{3E0FF981-B5FB-4FC2-B6D8-8C1091FBB23A}"
  EndProject
 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webtools", "modules\webtools\webtools.vcxproj", "{8DBF9BA7-ABB8-4C35-A82A-0ADBEB7E5331}"
 +EndProject
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WScilex-cli", "modules\windows_tools\src\c\WScilex\WScilex-cli.vcxproj", "{1633D502-8B08-442B-923F-F83F3213EEF3}"
+ EndProject
  Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Win32 = Debug|Win32
                {3E0FF981-B5FB-4FC2-B6D8-8C1091FBB23A}.Release|Win32.Build.0 = Release|Win32
                {3E0FF981-B5FB-4FC2-B6D8-8C1091FBB23A}.Release|x64.ActiveCfg = Release|x64
                {3E0FF981-B5FB-4FC2-B6D8-8C1091FBB23A}.Release|x64.Build.0 = Release|x64
 +              {8DBF9BA7-ABB8-4C35-A82A-0ADBEB7E5331}.Debug|Win32.ActiveCfg = Debug|Win32
 +              {8DBF9BA7-ABB8-4C35-A82A-0ADBEB7E5331}.Debug|Win32.Build.0 = Debug|Win32
 +              {8DBF9BA7-ABB8-4C35-A82A-0ADBEB7E5331}.Debug|x64.ActiveCfg = Debug|x64
 +              {8DBF9BA7-ABB8-4C35-A82A-0ADBEB7E5331}.Debug|x64.Build.0 = Debug|x64
 +              {8DBF9BA7-ABB8-4C35-A82A-0ADBEB7E5331}.Release|Win32.ActiveCfg = Release|Win32
 +              {8DBF9BA7-ABB8-4C35-A82A-0ADBEB7E5331}.Release|Win32.Build.0 = Release|Win32
 +              {8DBF9BA7-ABB8-4C35-A82A-0ADBEB7E5331}.Release|x64.ActiveCfg = Release|x64
 +              {8DBF9BA7-ABB8-4C35-A82A-0ADBEB7E5331}.Release|x64.Build.0 = Release|x64
+               {1633D502-8B08-442B-923F-F83F3213EEF3}.Debug|Win32.ActiveCfg = Debug|Win32
+               {1633D502-8B08-442B-923F-F83F3213EEF3}.Debug|Win32.Build.0 = Debug|Win32
+               {1633D502-8B08-442B-923F-F83F3213EEF3}.Debug|x64.ActiveCfg = Debug|x64
+               {1633D502-8B08-442B-923F-F83F3213EEF3}.Debug|x64.Build.0 = Debug|x64
+               {1633D502-8B08-442B-923F-F83F3213EEF3}.Release|Win32.ActiveCfg = Release|Win32
+               {1633D502-8B08-442B-923F-F83F3213EEF3}.Release|Win32.Build.0 = Release|Win32
+               {1633D502-8B08-442B-923F-F83F3213EEF3}.Release|x64.ActiveCfg = Release|x64
+               {1633D502-8B08-442B-923F-F83F3213EEF3}.Release|x64.Build.0 = Release|x64
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
Simple merge
Simple merge
@@@ -31,12 -35,12 +35,7 @@@ extern "C
  #include <Windows.h>
  #endif
  
--#ifdef BUFFER_SIZE
--#undef BUFFER_SIZE
--#endif
--#define BUFFER_SIZE 4096
--
- static const unsigned char UTF8_BOM[] = { 0xEF, 0xBB, 0xBF, 0x00 };
+ static const unsigned char UTF8_BOM[] = {0xEF, 0xBB, 0xBF, 0x00};
  
  int mgetl(int iFileID, int iLineCount, wchar_t ***pwstLines)
  {
@@@ -92,14 -92,11 +92,16 @@@ std::unordered_map<std::wstring, std::w
  {
      // TODO: get this list from a conf file
      std::unordered_map<std::wstring, std::wstring> map;
 +
 +    // Scilab 6.0.0 => 6.1.0
 +    map.emplace(L"hypermat", L"matrix");
 +    map.emplace(L"square", L"replot");
 +
-     // Scilab 6.0.0 => 6.0.1
+     // Scilab 6.0.x => 6.1.0
      map.emplace(L"nanmin", L"min");
      map.emplace(L"nanmax", L"max");
+     map.emplace(L"square", L"replot");
+     map.emplace(L"xgetech", L"gca");
  
      // Scilab 5.5.2 => 6.0.0
      map.emplace(L"fort", L"call");
Simple merge