Changelog

Version 0.8.11, "The Unicode Update" (7 October 2026)

This update contains something I really hate. It has a compatibility break. We are so sorry. Here is the break: in this new version, rare complex emojis like πŸ‘©β€πŸ‘©β€πŸ‘§β€πŸ‘§ are treated as one character. In the previous versions they were multiple points. The code "length('πŸ‘©β€πŸ‘©β€πŸ‘§β€πŸ‘§')" now gives a different result. If your code depends on handling complex emojis, you should rewrite it.
But I still think it was the correct decision. The engine has been rewritten to work with UTF-32 encoding everywhere. It brings a positive message - now the support for Linux/Apple is one step closer. The support for Linux has never been so close.
There is another positive consequence. The regular expressions are now very rich and as powerful as these in JavaScript. For example, you can use them to detect Greek letters. Many popular SQL variants can't even do that.
select images
  where name regexp '\p{Greek}'
Changes:
  • [lang] support for very rich Unicode regular expressions, equivalent to modern ICU/JavaScript
  • [lang] the engine is rewritten to work with UTF-32 in every part
  • [lang] barely visible but important preparations for Linux/Apple support
  • [win-gui] special error messages related to broken Unicode text
  • [win-gui] when a file with code is opened, automatically load its location as the working location
  • [win-all] reduced dependencies so the installer is smaller (from 155MB to 55.3MB)

Version 0.8.10, "The Python Update" (24 July 2025)

The first update of 2025 is nothing short of amazing. The Python integration is finally here. We can now inject Python scripts into Perun2. The implementation is low level and designed for performance. Python and Perun2 share the same RAM memory and communicate with no delay. Python functions can be executed as often as 10.000 times per second! We can make use of any Python library and do it fast.
select images
  where askPython3('c:/path/to/script.py')
Changes:
  • [lang] 2 new commands: python3, execute
  • [lang] 1 new function: askPython
  • [lang] flag -o for max performance mode
  • [lang] general refactoring of log messages
  • [win-gui] new context menu buttons in the log box (Open, Show)
  • [win-gui] support for common keyboard shortcuts

Version 0.8.9, "The Image Update" (19 October 2024)

The biggest update in the history of WojFil Games! It weights 154 megabytes. Why so heavy? It delivers a large database of file formats. It makes possible to detect images and videos. Not just JPEG or PNG. All of them! Moreover, we can read their width and height.
select images
  where width = 1920 and height = 1080
Videos also have duration.
move recursiveVideos
  where duration >= 30 minutes
  to 'c:/movies'
I forgot to mention the new graphic design of this software. This is definitely the best update of 2024!

Changes:
  • [lang] 4 new variables: images, videos, recursiveImages, recursiveVideos
  • [lang] 5 new attributes: isImage, isVideo, width, height, duration
  • [win-gui] new dark mode graphic design
  • [win-gui] better handling of rare exceptions
  • [website] new dark mode graphic design
  • [website] links pointing to precise sections of documentation

Version 0.8.8, "The Missing Update" (16 May 2024)

This update provides several obvious features that were missing. For example, the full support of regular expressions. With the introduction of the boolean operators Between and Regexp, Perun2 is now fully compatible with SQL.
select files
  where creation between 12:30 and 17:45
  and name regexp '^[ab]'
Changes:
  • [lang] two new operators: Between and Regexp
  • [lang] new command Popup
  • [lang] added explicit loop Foreach

Version 0.8.7, "The Rizz Update" (11 March 2024)

We got a new feature - the Resembles operator. This is a fresh idea of an alternative to the Like operator from SQL. This operator checks whether the string contains another string. However, is very forgiving and tolerates spelling mistakes. Pattern matching that forgives typos and missing letters? Looks interesting. The code below would select the file data preun2.txt.
select files
  where name resembles 'perun2'
Changes:
  • [lang] introduction of the Resembles operator
  • [lang] 2 new functions: resemblance(), raw()
  • [lang] possible static analysis (the -m cmd flag)
  • [lang] additional check for working location existence
  • [win-lang] Menu Start parsing for program constants
  • [win-gui] button for code correctness check

Version 0.8.6, "The Clock Update" (19 January 2024)

We can now define clock constants. They are moments in time that use the 24-hour clock and ignore the date. Just a new form of time useful for comparisons.
select files
  where creation = yesterday
    and creation >= 13:30
    and creation < 17:45
Changes:
  • [lang] two new possible forms of time: clock (10:34:23) and shortClock (10:34)
  • [lang] 3 new functions: isNan(), isNever(), clock()
  • [lang] wrong time compared with itself now always evaluates to false
  • [lang] wrong time casted to string prints as 'never'
  • [win-gui] no longer show save changes pop-up for new global script
  • [general] small icon modification

Version 0.8.5, "The Programs Update" (24 October 2023)

This version introduces the first feature unique to Perun2. Nothing like this exists in PowerShell or any other alternative.
open gimp
Paths to popular programs. No matter what version of GIMP we have. No matter where it was installed. It will be always be found.
open files
  where extension in ('jpg', 'jpeg', 'png')
  with gimp
How does it work? Perun2 is looking for some patterns in the operating system registry. For example, path to GIMP can be found in 5 different places in the registry. We only need one success to go.

Changes:
  • [lang] 2 new variables: downloads, nan
  • [lang] 13 new program constants: 7zip, acrobat, audacity, firefox, gimp, inkscape, notepadPlusPlus, openOffice, photoshop, sumatra, vlc, winrar, word
  • [lang] numbers now can be NaN (used instead of exceptions)
  • [lang] changed comment tokenization
  • [win-gui] global scripts limit check
  • [win-gui] function hint autofill bug fix
  • [win-gui] syntax highlighting bug fix
  • [win-installer] license indentation bug fix

Version 0.8.4, "The Constraints Optimizations Update" (9 September 2023)

This update introduces a variety of optimizations. No new features, but these efficiency boosts compensate it. Take a look at the code below.
select directories
  where size < 1mb
There is not need to get the exact size of every directory. Sometimes, we just need to find a single file larger than one megabyte inside them. The result is already known and we can move on. Several recursive algorithms are now replaced with iterative alternatives.

Changes:
  • [lang] directory size incremental constraint optimization
  • [lang] counting files incremental constraint optimization
  • [lang] recursive select optimization
  • [lang] directory size algorithm is now iterative
  • [lang] binary and ternary for every data type
  • [cli] flag -c forces next arg to be the code
  • [cli] flag -n has new meaning
  • [general] icon change
  • [win-installer] remove two default global scripts
  • [win-installer] even more simplified actualizations

Version 0.8.3, "The Pendrives Update" (1 August 2023)

This version provides detection of external drives. Their interface are values pendrive and pendrives. Quite useful, as paths to pendrives may vary between computers. Can be used like below.
copy directories
  to pendrive
Changes:
  • [lang] two new constants: pendrive, pendrives
  • [lang] time variable access bug fix
  • [win-gui] actualization menu item
  • [win-installer] actualization shortcut

Version 0.8.2, "The Insignificant Update" (25 July 2023)

This version introduces several patches. Nothing really groundbreaking. An insignificant update indeed.

Changes:
  • [lang] precise syntax error messages caused by asterisks in literals
  • [lang] two new constants: nothing and never
  • [win-gui] indentation bug fix
  • [win-gui] more reliable actualizations
  • [win-all] use the latest version of .NET Framework

Version 0.8.1, "The Numbers Update" (14 July 2023)

This version extends the possibilities for numeric literals. We can now use the K and M suffixes. For example, 10k written in code equals ten thousand. K can be also used as an infix. We can write 2k13 as an equivalent to 2013.

Changes:
  • [lang] number suffixes K and M
  • [lang] number infix K
  • [lang] enable path retreats in cmd args
  • [lang] empty time filled with -1 properties
  • [win-lang] disc access speedup by large fetch
  • [win-gui] make actualizations optional
  • [win-gui] show possible actualizations
  • [win-installer] installation check
  • [win-installer] OS compatibility check

Version 0.8.0, "The First Update" (25 June 2023)

That's it. This is where we start. Despite being a beta version, it is more than just a minimum viable product. The roots of this project can be traced back to 2019.

Changes:
  • [lang-general]: introduction of Asterisk Patterns
  • [lang-general]: string manipulation optimizations
  • [lang-general]: OrderBy optimizations