Version 2.7 / May 2020

Top  Previous  Next

Version 2.7 introduces encoding for Ruby 2.7, new loaders, new starter code and loader and bug fixes. As usual we are looking forward to hearing from our customers about suggestions for improving RubyEncoder and we are open to new ideas. Here is a list of the recent version 2.7 changes.

 

 

NEW FEATURES

 

 

Encoding for Ruby 2.7

 

We have added full support of encoding for Ruby 2.7 including all the newest language features. In order to encode for Ruby 2.7, please select an appropriate checkbox in your project settings or use the --ruby 2.7 option if you prefer to use the command line encoder. As usual you may combine encoding for different versions of Ruby but your code must be compatible with all the selected versions.

 

We updated a built-in starter code which you can see at the beginning of every RubyEncoder encoded file. The starter code is looking for an appropriate binary loader when the encoded Ruby code runs. Now it also checks a version number of the loader required for running the current encoded code and the loader which may be already loaded by another encoded file probably encoded with an older version of RubyEncoder. In the previous versions of RubyEncoder this may cause a problem when the newer encoder file can't run because of decoding by an already loaded older loader. Now the new starter code can re-load the newer version of the loader which is required by the current code. Newer loaders are always compatible with older encoded files and can run both old and new encoded files.
 
Minor update for directories recursive search on Windows for the CLI version. Directories might appear in the log with an error which did not cause any issues though, we have fixed it in the new version.
 
For the CLI version --ruby X.Y option was updated when used for excluding a range of target Ruby versions. This works as follows:

       --ruby x.y        adds x.y version only (no changes)

       --ruby x.y+        (plus sign) adds x.y and higher versions (no changes)

       --ruby x.y-        (minus sign) skips x.y version only (new)

       --ruby x.y--        (double minus sign) skips x.y and lower versions (previously worked with a single minus)
 

       Note, the order --ruby options appear in the command line does matter.

 

RGLoader::rg_get_const() API function returns an array of all the constants if no arguments are given
 
MacOS Catalina support

 

Optimized support for Ruby 2.6 and 2.7 global variables.

 

 

SUPPORTED RUBY VERSIONS

 

Encoding for Ruby 1.8.7 to 2.7 are fully supported

 

 

SUPPORTED OS

 

Encoder is available for MacOS including MacOS 10.15 Catalina, Linux and Windows.
We removed support for i386 32-bit MacOS
We reverted support for Linux i386 32-bit platform since you asked us for it.  
GUI and command line encoders and tools are included.
Loaders are available for desktop and server platforms running MacOS, Linux, FreeBSD, Windows (rubyinstaller.org MinGW), Windows (native) and embedded platforms running ARMel Linux, ARMhf Linux (Raspberry Pi, BeagleBoard etc)