Skip to main content

Release notes

ReleaseChanges/UpdatesDate
Rell 0.14.0This release includes the removal of the obsolete postchain.sh script, improved test reporting with durations, updates to the REPL output format, changes to the structure of query results in rell.get_app_structure, and deterministic test block time. New features include support for default values in module_args, unified active function extensions for tests, multi-record insertion, trailing commas in lists and parameters, and enhanced SQL join syntax with outer join support. Comparison operators now handle nullable types, and new annotations allow for value aggregation in collections. Other updates include improved operation context retrieval, Ethereum crypto functions, key and index management during database initialization, and a new Rell language version control system with strict Gtv conversion mode for blockchain configuration.2024-08-19
Rell 0.13.0This release introduces several new features and updates. It adds the try_call() function for safer function execution, a new gtv.from_bytes_or_null() function for safer byte array conversion, and enhanced unit testing functions for verifying emitted events and error handling.2023-05-23
Rell 0.12.0This release introduces the big_integer type for handling large integer values, sets maximum name lengths for entities and attributes, and offers various conversion and arithmetic functionalities.2023-03-22
Rell 0.11.0This release includes an upgrade to Postchain 3.7.0, removal of reserved keywords, new methods and functions for lists, texts, and byte arrays, conversion functions between rowid and integer, enhanced unit testing, and improved validation for module arguments.2022-12-15
Rell 0.10.10This release includes an upgrade to Postchain 3.6.0, a new --test-chain option for the multirun.sh tool, and the replacement of the old "sort" syntax with @sort and @sort_desc annotations.2022-06-30
Rell 0.10.9This release includes an upgrade to Postchain 3.5.0 and adds a new --test-filter option for the multirun.sh tool.2022-06-07
Rell 0.10.8This minor update includes an upgrade to Postchain 3.4.1 and addresses several bug fixes.2021-12-20
Rell 0.10.7This release introduces extendable functions, which allow multiple extensions to a base function with different return types such as unit, boolean, T?, list<T>, or map<K, V>. Additionally, it enhances unit test output by clearly separating and listing passed and failed tests, providing detailed error reports and exception stack traces for better debugging.2021-09-21
Rell 0.10.6This release includes major updates such as breaking changes to tuple syntax and map item types, new language features like function types and partial function application, and enhanced global constants with new restrictions. It introduces the iterable<T> concept for uniform sequence processing and adds null.to_gtv() for Gtv-equivalent of null. The cryptographic library gains new functions under the crypto namespace, and the run.xml tool now supports configurable merging modes for GTV files.2021-09-02
Rell 0.10.5This release reverts the restrictions on database modifications in object attribute expressions that were introduced in 0.10.4. This change restores the ability to perform initialization using these expressions, which some existing Rell code relied on. Future updates will introduce a special initialization operation, prohibiting database modifications in object attribute expressions while maintaining compatibility mode for older code.2021-07-17
Rell 0.10.4This release includes major updates such as an improved test transaction API with new types and functions for building and running tests. It also introduces new functions for asserting values, working with text and byte arrays, pattern matching with text.like(), and inferring collection types. It now supports the continue statement in loops, offset clause in at-expressions, at-expressions for filtering and transforming collections, new syntax for key and index attributes, new types struct<entity>, struct<object>, struct<operation>, struct<mutable T>, nested at-expressions with exists(), empty(), in and for collection operators, a binary operator not in, the ability to specify source code compatibility version in blockchain configuration, the option to run unit tests via run.xml and command-line interpreter, and new Postchain API functions.2021-06-25
Rell 0.10.3This release includes several enhancements. Function return types are now inferred automatically. Guard blocks separate argument verification from operation code. Queries can be called from code and REPL. A shorter syntax for nested namespaces is available. Operations return objects for constructing transactions and blocks. New functions rell.gtx.block and rell.gtx.tx aid in block and transaction manipulation. REPL now supports executing transactions and blocks. Named function arguments and default parameter values have been added. A Group By feature allows for data aggregation. New cryptographic functions, including sha256, keccak256, and eth_ecrecover, improve hash calculations and signature verification.2020-09-24
Rell 0.10.2This release includes several features. Imports are now public by default, with no option for private imports. Specific definitions and wildcard imports can be specified, with support for import aliases and renaming. Namespaces can be split across multiple files. The REPL shell in the Rell interpreter allows for interactive evaluation of expressions, statements, and definitions.2020-02-26
Rell 0.10.1This release includes several updates. The @external annotation replaces external blocks. Modules can now be marked as @external and imported as such. Abstract modules and functions allow for customization. The @omit annotation excludes fields from at-expressions. Sorting now uses @sort and @sort_desc. Enum value attributes can be used in at-expressions. New exists() and empty() functions for collections. Run-time errors include detailed stack traces. System queries provide version, build, and application structure information. Run.XML format changes include updates to blockchain RID and dependency specifications.2019-12-10
Rell 0.10.0This release includes major updates. A new module system replaces the old "include" directive, allowing modules to import each other and be organized in directories. Classes are renamed to entities and records to structs, with a migration tool available for code updates. The @mount annotation specifies arbitrary mount names for definitions. Annotation syntax is updated to be more consistent. Anonymous namespaces allow applying annotations to multiple definitions. Name inference is improved to support qualified type names. Tuple field access by index is now supported. The compiler can report multiple errors. A new sha256() function for byte_array is added. Deprecated functions are now fully removed, with a migration tool to assist in updating code.2019-11-04
Rell 0.9.1This release introduces a new decimal type for handling real numbers with high precision. The decimal type supports up to 131072 digits before the decimal point and 20 digits after. It includes global functions for conversion and basic operations, member functions for advanced operations, and constants defining precision and range. The integer.signum() function has been deprecated in favor of integer.sign().2019-08-30
Rell 0.9.0This release includes an upgrade to Postchain 3.0, renames GTXValue to gtv, and adds the virtual<T> type for data structure verification. It introduces the ?? null check operator, namespace support for operations and queries, and standardized function names. New functions for decimal and byte_array operations, improved Gtv conversions, and cryptographic functions are included. Integer operations now throw exceptions on overflow, and a new rowid type allows database primary key access. The run.xml format simplifies multi-chain configuration.2019-07-24
Rell 0.8.0This release brings in several updates, including the include directive for importing files, support for namespaces for organizing definitions, and the addition of external block functionality for accessing classes from other blockchains. It introduces the when statement for conditional logic, tuple unpacking, and implicit casting for nullable variables. The release also adds increment/decrement operators, enforces checks for uninitialized variables, and allows late initialization of val variables. Additionally, it introduces new library functions, changes table naming conventions, updates configuration paths, and fixes slow compilation issues.2019-05-08
Rell 0.7.0This release adds singleton object classes, enum types, and expression support for if. Updates and deletes now use cardinality operators and a simplified syntax. Multi-class updates and deletes have a new syntax. System classes block and transaction are introduced, and op_context.transaction is added. Log-annotated classes are immutable and non-deletable. The chain_context includes new configuration options, and table names are prefixed by blockchain ID to prevent conflicts.2019-02-20
Rell 0.6.1This release includes updates such as requiring .. to access class attributes in @-expressions, replacing = with == for equality checks, and using = for named tuple fields. New record types and functions are introduced, along with GTXValue for encoded data. GTX-compatible parameters/results and new reference comparison operators (=== and !==) are added. Immutable types are now the only option for map keys or set elements, and class declaration order no longer affects cyclic records and complex structures.2018-12-21
tip

For more detailed changes in each version, please refer to the specific release file.