This file describes the changes in every new release version of Fresh IDE
The date format: DD.MM.YYYY

This file contains only a brief notes about changes from version to version and only for the official releases.
As long as the file is created by hand, some information (even important) can be missed or not accurate.

For very detailed and accurate information about the changes, see the timeline in the source code repository:

https://fresh.flatassembler.net/fossil/repo/fresh/timeline

version 2.7.0 (09.07.2019)

Huge period of time passed, and many changes to the source. For those, using BleedingEdgeFresh update tool
most of the changes are known, but there are some from the last hour.

    [+] FASM compiler has been updated to v1.73.12
    [+] FreshLib has been updated to the latest FreshLibDev with major changes to the GUI part.
        The GUI library is still not ready for production, but it is now on the right path, so
        more updates are to be expected soon, especially related to Fresh IDE v3.0 that is
        developed in parallel.
    [+] New editor feature has been implemented - user defined syntax highlight keywords.
        This way, some key macros can be colored in the right semantic colors in order to
        make the source more readable.
    [+] Two built-in fonts has been added to the themes. Liberation Mono Asm (with modified "b" character)
        and FixedSys excelsior. The idea is to guarantee the appearance of the themes on the systems
        that have no these fonts installed.
    [-] Some visual, font related quirks of AsmEdit in Windows 10 has been fixed.
    [-] Countless more or less minor bugs are fixed. Some more extended tests on Windows 10 are provided.
    [-] The examples has been revised and fixed according to the latest changes of the library.
        Now they compile and run. But unfortunately, the whole examples code there is pretty obsolete.
        So, use with care.
    [-] Two of the application templates are removed, because are too obsolete. They will be replaced
        in the future releases.


version 2.6.3 (??.06.2018) Never released!

Time for the next release. As a whole the main work happens in the FreshLib GUI libraries, but they are
not ready for release yet. So, in the release there are mainly bugfixes:

    [+] FASM compiler has been updated to version 1.73.04
    [+] FreshLib has been updated to the latest FreshLibDev version.
    [-] Fixed bug in AsmEdit related to the line operations: indent/outdent and comment/uncomment.
    [-] Fixed bug that prevented the acceleration keys to work in some circumstances in Linux/Wine

version 2.6.2 (30.12.2017)

The main goal of this release is to fix a bug, causing crash in Windows 10. But as an addition, other updates are provided as well.

    [-] Fixed a crash on SaveAs dialog, in Windows 10
    [-] The CSS for the help files are now in external file, making the help styling easier.
    [+] FASM compiler has been updated up to version 1.73.02
    [+] FASM reference manual has been updated as well.

version 2.6.1 (29.10.2017)

Quick bugfix release.

    [-] Fixed the broken form for "Labels explorer".
    [-] Fixed missing file from the binary distribution.
    [+] Changed the "Labels explorer" to show only used labels.
        It should fix the problem with the big amount of labels.
        At least partially.

version 2.6.0 (27.10.2017)

Because of FASM milestone version v1.72 and because of big time passed since the last official release, I decided to switch directly
to v2.6.0; For detailed information about the changes, see the

    [+] Brand new design of the GUI with two themes (for dark and for light OS theme) and adjustable icon sizes for the menus and toolbars.
    [+] The latest milestone FASM version: v1.72
    [+] Updated FreshLib to the latest FreshLibDev, bugfixed and improved.
    [+] Updated the FASM manual to the latest version.
    [+] Added a new help book about the assembly instructions with detailed explanation and useful information.
    [+] Improved code completion search algorithm in order to hit the proper name with less typing.
    [+] Wide use of PNG images for all icons that make the icons better quality and the size of the executable smaller.
    [-] Bugfixes.

version 2.5.1 (19.12.2016)

    [+] Removed the dependency on google for the web search. Now the web
        search engine is user selectable. The default is duckduckgo.com
    [+] FASM compiler has been updated to v1.71.58
    [+] Added an example for using FreshLib for simple graphics drawing.
    [-] Fixed regression in "Goto interface" funtion.

version 2.5.0 (16.10.2016)

    For detailed description of the changes, read the timeline in the source code repository:
    https://fresh.flatassembler.net/fossil/repo/fresh

    [+] Small fixes here and there improving the user experience.
    [-] Fixed all reported bugs from v2.5.0RC and also many found in the process of testing.

version 2.5.0 RC (03.10.2016)

    For detailed description of the changes, read the timeline in the source code repository: https://fresh.flatassembler.net/fossil/repo/fresh

    [+] Single window interface is finished and working.
    [+] Improved compiler speed by more aggressive memory allocation and avoiding the reallocations.
    [+] Improved visual form editor with the hidden source displayed in the editor in read-only mode.
    [+] The options dialogs are joined in one dialog: Options|IDE options
    [+] FASM compiler has been updated to v1.71.57
    [-] A large number of bugs has been discovered and fixed. (and probably even more new introduced).

version 2.4.0RC

    THIS VERSION WAS CANCELED. See v2.5.0RC for details why.

    [+] Huge changes - the whole IDE was changed in order to support Unicode instead of ANSI.
        Almost every file of the IDE has been changed. That is why it was anounced as a release candidad.


version 2.3.0 (02.09.2016)

    [+] FASM compiler has been updated up to v1.71.54
    [+] Some documentation updates.
    [+] A lot of work on the GUI part of FreshLib. The GUI part is still not finished.
    [-] Some bugs, both in FreshLib and the IDE have been fixed.

version 2.2.5 (28.11.2015)

    [+] FASM compiler has been updated to v1.71.48
    [+] AsmEdit has been changed in order to allow better performance in WINE.
        Also, the caret display in WINE seems to be fixed now. Some other WINE related fixes and
        workarounds has been implemented. As a result the work in WINE is much better now.
    [-] The template projects and the examples has been updated to properly work with the latest FreshLib.
    [-] Several minor bugs fixed here and there.


version 2.2.4 (09.09.2015)

    [+] Improved the system that builds the labels list when the source can not be compiled
        because of some errors.
    [-] After some bug fixes, now Fresh should work properly on Windows 8 and Windows 10.
    [-] Fixed bugs related to multi-monitor work.


version 2.2.3 (21.05.2015)

    [+] FASM compiler has been updated to v1.71.39
    [+] Added "Open Linux terminal" feature.
    [+] Added option to strip WinApi function suffix on searching in the help system.
    [+] Changed the format of "index.help" file in order to support meaningful titles in the "Help file" feature (Ctrl+F1);
    [+] Merged with the latest FreshLibDev branch.
    [-] Fixed an old bug, related to menu painting with different fonts/sizes.

version 2.2.2 (??.10.2014)

    [+] FASM compiler has been updated to v1.71.22
    [+] Merged with the latest development version of FreshLib.
    [-] Fixed an old bug, causing wrong positioning in the editor for the .frm files (the hidden rows not counted).
    [-] Fixed focusing behavior of the IDE.
    [-] Fixed bug in the help server code.
    [-] Fixed bug in the windows auto-arrange feature, placing the IDE windows under the task bar.


version 2.2.1 (11.05.2014)

    [+] Implemented important feature "Unroll macro" that lists what some line of the code
        generates after preprocessed.
    [+] The code style was improwed towards portability.
    [-] Fixed stupid bug in ConvertPath procedure causing invalid paths when started from
        several threads simultaneously. It was an old bug, but only the help server calls
        it from several threads simultaneously.
    [-] Fixed bugs and code cleanup in the debugger. It is still not very useful...
    [-] Fixed bugs in the "Goto interface" feature. Also, it now acts like "Goto definition" if
        the label is not created by interface/body macros.
    [-] Fixed an old misbehavior of the IDE, that the "Exit" function once activated can't be canceled.
    [-] Fixed old bugs in the strlib.asm and arrays.asm libraries.


version 2.2.0 (01.05.2014)

    [+] Fresh IDE has been converted to use uConfig library. The Win32 API functions are not
        used anymore for handling .ini files. This way, the project makes one more step towards
        the full portability. That is why the version is changed to 2.2.0
    [+] The themes file format has been changed to utf-8 text format (using again uConfig library).
        The current theme is stored now in the main config file.
    [+] The editor font now can be set to be bold and/or italic.
    [+] 3 new editor themes has been added - based on popular IDE themes - "Solarized" (light and dark) and
        "Vibrant ink". They use the popular "Consolas" font, so it have to be installed by the user.
    [+] The existing (but not widely used until now) listing window is converted to an universal, fast access
        scratchpad editor. All source navigation functions work inside it (code completion, goto definition,
        cross reference, arguments hint, embedded help, etc.) It is very useful for checking label values,
        searching for some label, copy/paste operations, etc.
    [+] With the latest version of FreshLibDev, the performance of some string intensive functions raised
        more than 10 times. The IDE UI now is more responsive, especially in Linux. All code navigation
        features are faster. The context help system is also affected by this improvement.
    [+] The first time setup procedure has been improved to provide better font settings for Windows and Linux.
    [-] As always, some minor bugs has been fixed here and there. Probably some new was introduced as well. :)


version 2.1.10 (23.04.2014)

    [+] Improved handling of the procedure arguments hint.
    [+] Some tipos and label texts fixed in order to provide cleaner interface.
    [+] Added missing source files (help server) in the release packages.
    [-] Fixed very stupid bug in the options dialogs. Detected, reported and tested on
        Windows Vista by l_inc.

version 2.1.9 (15.04.2014)

    [+] FASM compiler has been updated to v1.71.20
    [+] FASM documentation has been updated to v1.71
    [+] Added "View|Hide palette" feature, that can hide the component palette and thus
        improve the screen usage.
    [+] New features for the help system - now it can use HTML and markdown files for context help.
        The .html and .md help files are served by an built in web server.
        It can render markdown help documents on the fly this way allowing direct use as a help files
        without need to keep the rendered .html files on the disk.
        The structure of the new help system is described in %FreshHelp%/tips.md file.
    [+] Automatic setup of the web browser path has been implemented in order to provide flawless help
        system use from the beginning.
    [+] Added LSCR help files for Linux system calls - it is really the best assembly-centric Linux sys call
        reference.
    [-] All example has been fixed to work with the latest FreshLibDev library.
    [-] Several small bugs fixed.


version 2.1.8 (18.02.2014)

    [+] FASM compiler has been updated to V1.71.19
    [-] Fixed bug with the "executable" flags in compiled Linux ELF files.
    [-] Fixed small misbehavior in WINE - not properly aligned components palette on startup.
    [-] Fixed number of small bugs here and there.
    [+] The structure of the definition search algorithm has been improved in order to allow
        the future improvements and OS independence.
    [+] Merged with the latest version of FreshLibDev that uses postpone macro to generate
        the imports and globals and partially the new interface/body macros.


version 2.1.7 (11.07.2013)

    [+] FASM compiler has been updated to v1.71.11.
    [+] FreshLib has been updated to the recent FreshLibDev version.
    [+] Linux scripts has been added in IDE/mime_types directory for easier integration in Linux desktops.
    [-] Several small bugs fixed.

version 2.1.6 (12.03.2013)

    [-] Fixed regression, related to the missing structure MONITORINFO in the equates and the incorporation
        of the new i18n text macros in the native Win32 programs.

version 2.1.5 (10.03.2013)

    [+] From this version Fresh IDE is distributed under the terms of EUPL. Read License.txt for details.
    [+] The functions "goto definition" and "embedded help" was changed to be able to search for labels created
        through preprocessor lists - i.e. "text" and "itext' macros.
    [+] Added new project template that uses the visual forms with FreshLib portable application.
    [+] FreshLib updated with the latest development version. Included new library for easy internationalization.
    [+] Added new chapter to FreshGuide.chm - "Chapter 7. FreshLib user guide" describing the use of
        FreshLib for different tasks.
    [+] The icon files was moved to "./IDE/mime_types/" together with some .xml and .desktop files
        aimed to be used for integration with Linux desktops.
    [+] Updated FASM compiler to v1.71.08

version 2.1.4 (06.12.2012)

    [+] Added png and svg icon files (Fresh.png and Fresh.svg) in the root directory in order to be used as an
        icon on the Linux distributions.
    [+] FreshLib updated from the latest FreshLibDev branch.
    [-] Code completion engine optimized for better performance under WINE.
    [-] Fixed small bug causing flickering in the editor window, when working under WINE.
    [-] Fixed small bug causing new opened forms to be claimed already changed.

version 2.1.3 (26.11.2012)

    [+] Updated FASM compiler to v1.71.06

version 2.1.2 (10.11.2012)

    [-] Fixed several bugs, that manifest themselves on Windows 7 64bit version.
        One of them caused crash of Fresh IDE when compiling source with errors.

version 2.1.1 (03.11.2012)

    [+] Added better keyboard control on the cross reference window. ENTER opens the file and ESC closes the window.

    [+] Added support for the local labels in "Goto definition" and "Cross reference" functions.

    [+] Added remembering of the source browsing history and corresponding items in the
        main toolbar and main menu ("go back" and "go forward").

    [-] Fixed bug in the new cross reference processing code.

    [-] Fixed user cancelation of the compilation. Now it stops instantly.

    [-] Some code cleanup.

    [-] Fixed relatively big memory leak.

    [-] Fixed casual zombifying after closing the IDE.


version 2.1.0 (30.10.2012)

    [+] Auto completion function for the local labels added! It was one of the most important
        unsolved problems in Fresh IDE. Now it is solved.

    [+] Huge speedup of the cross reference data processing on compile.

    [+] Updated FASM compiler to version 1.71.05

    [+] Merged with the latest FreshLibDev - added partial KolibriOS support and templates for
        easy porting to new OSes.

    [+] New feature: When no Linux terminal is configured, Fresh runs the Linux ELF binaries
        directly, without terminal.

    [-] Fixed small bug in the project manager (alias quick change menu),
        which made values to disappear when more than two values was set
        for one alias.

    [-] Fixed bug concerning working in Linux (Wine). When Fresh compiles some ELF executable
        it could not set the executable permissions. Now it is fixed.


version 2.0.9 (22.09.2012)

    [!] This release introduces some incompatibility with the earlier sources. Read below.

    [+] New FASM 1.71 compiler with address space labels.

    [+] Removed GlobalAPI symbol. Now, when Win32 API is used, the user must provide the
        full function name. This approach makes the syntax more simple, clear and portable.

    [+] Merged with FreshLibDev - new "uses" macro, more flexible dll import macros.
        New "text" macro that avoids text constants duplication. Stdcall macros now
        allows using string constants directly.

    [+] Examples and project templates adapted to the new style of importing functions.

    [-] Fixed missing syntax highlighting of the data definition directives.

    [-] Fixed rare bug - crash when some file is 1.in the project, 2.does not exists on disk
        and 3.the user choose to keep it in the project. Then on compilation, when the compiled
        file uses this missing file, Fresh crashes.

    [-] Fixed long waiting bug with editor "indent" and "comment" features, that made one more line
        to be commented/indented.

version 2.0.8 (26.08.2012)

    [+] Merged with the latest FreshLibDev with sockets library.
    [-] Fixed buggy behaviour of the background .fas file processing.
    [-] Fixed wrong working directory of andLinux running applications.


version 2.0.7 (22.07.2012)

    [+] Added new application templates - FreshLib based portable console and
        GUI applications.
    [-] Empty templates removed.
    [-] "New application" template dialog behavior fixed.
    [+] Latest version of FreshLibDev merged.
    [+] FASM 1.70.03 compiler.
    [+] New help file with FASM 1.70 manual and FreshLib reference.
    [+] New feature: "Help file Ctrl+F1" - the user can open the configured
        help files individually.
    [+] New feature: Embeded help. Fresh extracts the comment blocks from the
        source files and displays them as a hint in the editor.
    [+] Time consuming processing of the .fas file was moved to the
        background thread and does not slow the IDE.
    [+] The cross-reference window can be closed by ESCAPE key from the editor.
    [+] Autoinstalation now set FreshGuide.chm as a help file.
    [-] More FreshLib and less Win API used.
    [-] Increased default memory, allocated for the compiler.
    [-] Some obscure bugs fixed, including all tickets from the repository.

version 2.0.6 alpha (27.04.2012)

    [+] More informative error messages when missing debug information.
    [+] Symbols cross reference functions (in the label explorer and in the source editor)
    [+] Latest version of FreshLib
    [+] Updated FASM compiler to version 1.70
    [-] Some bugs fixed

version 2.0.5 alpha (13.01.2012)

    [+] Native support for running and debuging Linux executables. Now Fresh can run in
        Linux|Wine and to run ELF executables directly.
    [-] Fixed bug in the editor themes load/save dialog. There is still some inconsistent
        behavior, that have to be fixed later.

version 2.0.4 alpha (25.12.2011)

    [+] Updated FASM compiler to 1.69.35
    [+] The project is managed by Fossil VCS now.
        The repository is hosted on [http://chiselapp.com/user/johnfound/repository/FreshIDE]
        Of course the full source code is still available with the release packages,
        but it is often outdated, especially in FreshLib part that is in heavy development now.
    [+] Merged with the latest development version of FreshLib.
    [-] Fixed old bug. Now in form editor ESC key works - selects the parent window in properties editor.
    [-] Fixed bug in form editor that was unable to create new forms.

version 2.0.3 alpha (15.01.2011)

    [+] The next in a row, big restructure of the source code:

        FreshLib is implemented for following libraries:
           - macros (macro/allmacros.asm)
           - equates (equates/allequates.asm)
           - imports (imports/allimports.asm)
           - the structure of the program ( compiler/executable.inc )
           - memory allocations ( data/memory.asm )
           - data handling (data/arrays.asm; data/memstream.asm)
           - file operations (data/files.asm)
           - String operations (data/strlib.asm) StrLib is now portable as well.
             For details, read the header of StrLib.asm file.
             Some functions are not backward compatible with the old version.

    [+] Updated compiler to FASM v1.69.29
    [+] New 'text' macro introduced. The final goal is to provide automatic handling
        of the string constants in order to avoid duplications in definitions and
        waste of label names. Unfortunately, the speed of the macros is too low for
        practical use, so now only a stub is provided for future development.
    [-] Auto set for "lib" directory alias in Fresh.ini
    [-] Fixed bug in AsmEdit
    [-] Fixed bug in AddCompilationStatistics (fasm.asm)
    [-] Fixed very old bug in LabelsList.asm.

version 2.0.2 alpha (23.11.2010) - silent release :)

    [-] Fixed bug in editorhost.asm that crashed Fresh in some cases.
    [-] Fixed bug in PAHint.asm
    [-] Fixed some include files, not properly updated after changes for this version.
    [-] Fixed example projects that refused to compile, because of the updates.
        It was because of biger memory needed and because of some not fixed include files.
    [-] some Cleanup in the XLib example to make it smaller and cleaner.
    [-] Fixed macro/exceptions.inc library to use the new FASM macro syntax.

version 2.0.2 alpha (22.11.2010)
    API include files replaced with new, builded with ImportDB tool. Several bugs fixed.

    [+] Replaced all import files. There is no apia and apiw directories but only one "api".
        All API files are build with ImportDB utility and contains almost all API functions
        from WinXP dlls. Also, the api files now contain the argument description for almost
        all API functions.
        The type of api is set with GlobalAPI symbolic constant. It accepts following values:

            GlobalAPI equ               ; empty value means, all functions will be imported
                                        ; exactly as they are exported from the libraries.

            GlobalAPI equ ascii         ; ASCII functions will be imported without suffix.
                                        ; Unicode functions will be imported with suffix W.

            GlobalAPI equ unicode       ; ASCII functions will be imported with suffix A
                                        ; Unicode functions will be imported without suffix.

    [-] Changed font of the procedure arguments hint window to "Trebuchet MS" that is
        more readable for programming needs.
    [-] buttonedit.asm and buttonedit.inc moved to '%finc%\libs\' where is the
        right place for these files.
    [-] Minor changes in some of component libraries (TForm and Action lists.)
        in order to cleanup dependencies with other libraries.
    [-] Fixed bug on counting arguments in PAHint, when there are quoted commas
        in the arguments.
    [-] Fixed bug on fake compilation that caused crash in some circumstances.
    [-] Fixed very old bug in ButtonEdit.asm, that manifested itself only in Wine.
    [-] Fixed bug in TDataGrid, that sometimes caused crash on closing Fresh.

version 2.0.1 alpha (14.11.2010)

    One new feature and several bug fixes.

    [+] Procedure arguments hint - when the user type call statements, it shows arguments
        of the procedure. It can be used with imported functions too, but the argument
        descriptions for these is limited for now.
    [-] Changes in CCList.asm in order to make things more clear and to collect the code
        in one place.
    [-] Partially edited user32.inc file to insert procedure arguments.
    [-] Fixed wrong size on save of editor theme.
    [-] Bug fix in TForm window class. It concerns the proper WM_COMMAND processing when
        the form is open as modal dialog and have some parent.
    [-] Fixed missing file from the template directory.
    [-] Several other bug fixes here and there.


version 2.0.0 alpha (09.11.2010)

    First version officially published after the project revival. :)

    [+] New project format with converter from the old projects.
    [+] New Linux execution engine, based on andLinux.
    [+] New icon set.
    [+] New help system, that allows multiply help files to be searched.
    [+] New interface to FASM compiler.
    [-] Many bugfixes here and there.
    [-] Little bug fixed in "Create new application" function.
