* Relatively easy to compile and package for Windows/Linux/macOs. When bugs are found and fixed, it shouldn't take too long to get a new installer.
* Split in two : INSEL Core & INSEL GUI.
* Cooperation between Concordia & HfT Stuttgart (Guillermo, Kai & Eric).
* Updated examples.
* Automated tests with Python.
* Many bugfixes.
* Probably many new bugs. :D
### Blocks
* Every block accepting coordinates (e.g. MTMLALO, GENGT, ...) is deprecated and has a new version (MTMLALO2, GENGT2, ...) using east-positive longitude and timezones. Stuttgart (48.77°N, 9.18°E, UTC+1) is now described with (48.77, 9.18, 1) instead of (48.77, -9.18, 23).
* Models with old coordinates automatically get converted to the new convention when opened in INSEL GUI.
* ROOT, GAIN, ATT, OFFSET, DELAYS, ABS, SQRT, EXP, NOP, CHS, ANINT, INT, FRAC now accept between 1 and 10 inputs.
* PLOTv2 is now the default PLOT block.
* Models with old PLOT blocks automatically get converted to PLOTv2 when opened in INSEL GUI.
* SCREEN block displays a nicer output (only 7 significant digits, no trailing zeroes, decimal points are aligned).
* Unused parameters for WRITE block have been deprecated, and it's now possible to define Header from GUI.
* Two new constants have been defined : NaN & Infinity. NaN can be useful in order to indicated missing data in plots.
* DIFF block has been added : it calculates `x - y` directly, removing the need to calculate `x + (-y)`.
* Finer defaults for GENGT2 (± 0.1 K deviation allowed instead of ± 2K for monthly average).
* GENGT had a bug since at least 2010: temperature generation had large deviations after the first year. Monthly averages were still mostly correct, though.
* EPS output format in PLOT Block.
* Contour drawing for 3D Plots.
* MTM2 has 8 outputs by default.
* Same name for MTM2 outputs and GENGT2 inputs.
* D18599 block has been added.
### GUI
* "Show INSEL model" has a nicer output (no trailing zeroes).
* Default language is English.
* Default model size is 8x8.
* INSEL GUI now uses Java 15.
* New GUI themes (light/dark modes, high-contrast for accessibility, ...)
* New keyboard shortcuts:
*<kbd>Ctrl</kbd><kbd>R</kbd> to run a model
*<kbd>Ctrl</kbd><kbd>P</kbd> to pause a model
*<kbd>Ctrl</kbd><kbd>Z</kbd> to stop a model
* An experimental LIVECHART Block is available in the GUI. Data is displayed in real time.
### INSEL Engine
* INSEL Core can use Fortran 90.
* Easier way to integrate and share userblocks (UB library files can have any name, e.g. `libInselAlice.dll`, `libInselBob.dll`).
*`libInselCommunity` has been created, and it contains useful user blocks from the community (e.g. `UBSTORAGE`, CHP blocks, ...).
* Source can have any filename (e.g. `ubstorage.cpp`) instead of `ub1234.cpp`.
* Function names can be called `ubstorage(...)` and not just `ub0001(...)`, in order to avoid conflicts.
* Can list every available block with `insel -b`.
* Can list the version of every module with `insel -v`.
* Possible to use underscores in constants : `C stuttgart_latitude 48.77`
## Beta-testers: What to test?
* Please backup every model before opening them in INSEL 8.3!
* Please backup userblock libraries if you have any.
* Please backup your palette folder. (`%AppData%\INSEL`)
* Please keep an INSEL 8.2 installer, just in case.
* Start INSEL 8.3 GUI.
* Rebuild the palette (Right-click > "Rebuild the palette...").
* Old models should still be readable.
* Old PLOT blocks should be converted.
* Old coordinates should be converted. If they are defined via constants, please update constants manually.
* Can userblocks still be used? They probably need to get compiled again.
* Models shouldn't run slower than before.
* Please report any crash (with any `replay_*.log` and `hs_err_*.log` file you can find) (TODO: Where?).
* A gitlab project will be created in order to collect user-feedback. (TODO: Where?)
## Known bugs
* MTMUP somehow does not update MTM weather database.
* If variables are not properly initialized in blocks, they might be shared between simulation runs when run from the GUI.
* Text might not be readable in dark modes.
* Name and parameters for userblocks might not be displayed correctly.
* Underscores in filenames or function names might break documentation.
* Simulink blocks have not been tested for years, and might be broken.
## What's next?
* New GUI, based on Eclipse Sirius (with zoom / undo / web-interface / ...).
* Double-precision instead of single-precision floats.
* PVGIS Block (month as input, coordinates as parameters, monthly average irradiances and temperatures as output).
* SORT Block (n inputs, data is saved during simulation, sorted at the end according to the first input, and written to a file).
* READCSV Block.
* Updated Weather DB.
* Updated Photovoltaics DB.
* Upload install files to an official server (insel.eu?)