What's new in Elements | RemObjects Software

Weekly Progress

What’s New

A live running view of what is changing across Elements, updated from the same content that already powers the page today.

Recent Highlights

Elements 13 wraps together many exciting improvments from 2025 and 2026, with work ranging from major CodeBot upgrades and deeper Delphi compatibility to Android, Island, RTL, Fire, and Water improvements.

CodeBot v3

CodeBot has grown into a more agentic assistant with MCP access, skills, action items, sub-agents, diff views for code changes, build tools, safer approvals, smarter Smart CC, and deeper editor integration.

Oxygene and Delphi Compatibility

Oxygene gained raw strings, field-backed properties, local fields, the new field keyword, and a long run of Delphi Compatibility Mode improvements including legacy preprocessor work, message directives, untyped parameters, method pointers, labels, typed constants, absolute, weak, noreturn, and packed.

Island/Delphi and Delphi Import

Island/Delphi gained support for Delphi 13 import, .grouproj conversion, better SDK import workflows, automatic SDK-import prompts, Windows/arm64 preparation, and broader DelphiSupport coverage.

Android and Platform Tooling

Android builds received a steady refresh: modern aapt2, Predex and Gradle resolution fixes, app version settings, APK/AAB filename improvements, bundletool 18.3, new Wear OS templates, and updated ListView and tabs templates.

Fire, Water, and macOS 26

Fire and Water picked up new Account and License Managers, macOS 26 Tahoe styling work, Water IDE theming, toolbar and icon updates, smarter jump bars, improved project reload behavior, .slnx support, XAML Preview work, and many debugging and navigation refinements.

Elements RTL and Serialization

Elements RTL added YAML serialization for JSON documents, better JSON parser location diagnostics, XML conveniences, HttpStringRequestContent, JsonObject dictionary construction, Convert.DaysToPrettyString, and serialization improvements for Decimal and string-valued enum members.

This page provides the highlights, major features and improvements;
please also check each week's change log for a detailed list of all fixes and enhancements.

New in 2026

  • All new CodeBot v3: new agentic mode with better orchestration, more tools, scoped approvals and many other enhancements.
  • .xaml preview in both Fire and Water
  • Oxygene:
  • C#
    • file-level visibility for types and members
    • Support for C# 14's field-back properties

New in 2025

  • Account Manager in Fire/Water
  • License Manager in Fire/Water
  • CodeBot
    • improvements for more targeted platform- and language-specific guidance
    • uses the new account manager & option to register multiple API keys for the same provider
  • Full Support for building for the Windows/arm64 platform
  • CrossBox menu now allows picking the run architecture for Island/Windows projects
  • Improvements to the Island/Delphi toolchain
  • New [Codable] Aspect for seamless Json and Xml Serialization
  • Fire/Water:
    • CodeBot 2.0, with tighter integration, project access, and support for more backend models
  • Support for Delphi-compatible multi-line strings in Oxygene

New in 2024

  • Support for .NET Core 9
  • Oxygene:
    • treat missing var as keyword recoverable.
    • shortcut syntax for abstract properties (don't require read/write)
    • Type inference for new, where possible
  • Fire/Water:
    • Enhancements to CodeBot
    • Option to "Paste Json as Class"
    • Option to smart-preserve case in search/replace
    • Integration with custom Data Abstract servers

New in 2023

  • CodeBot Preview
  • New Island/Delphi platform for using Embarcadero Delphi libraries and creating Delphi object-model classes.
  • Yet once again more Delphi Compatibility improvements in Oxygene
  • Support for .NET Core 8
  • Oxygene:
  • C# 11 Language Features
    • main attribute prefix
    • Lambda default parameters
    • newline in string interpolation
    • file level type visibility
    • Lambda default parameters
    • nameOf(parameter)
    • Required properties

New in Q4/2022

  • Fire/Water:
    • Git integration
    • Dim inactive code sections
    • UI for per-Target project settings

New in Q3/2022

  • Yet more Delphi Compatibility improvements in Oxygene
  • Island/Linux: COM Interop
  • Enhancements to DateTime and Double in Elements RTL
  • Allow "InstanceType" to be used in operator definitions
  • New “Default Uses Prefixes" setting
  • Expose .fx codegen via EBuild's --dump parameter
  • Toolchain support for Grpc and Google ProtoBuffer .proto files
  • New/enhanced project upgrade/migration logic using CPS in Visual Studio
  • Cross-platform support for Index and Range types
  • Fire/Water:
    • Debugger: support for instruction-level StepInto/Over in Disassembly
    • Debugger: support for registers in Debug Inspector
    • Debugger: Option to turn off "stop on (any) Exceptions" from the Exception Sheet in Fire
    • Debugger: Option to use breakpoints from all open Solutions in Fire
    • Remoting SDK and Data Abstract integration improvements
    • Support for recursive **.pas wildcards
  • Support for running Water on .NET Core 6, including natively on Windows/arm
  • Support for running EBuild and compiler on .NET Core 6, including natively on Windows/arm
  • Support for Xcode 14.0 GM SDKs
  • Support for older v2 NuGet repositories

New in Q2/2022

  • More Delphi Compatibility improvements in Oxygene
  • Oxidizer: new Keyword Escaper for escaping non-Delphi Oxygene keywords in a .pas file.
  • Debugging Rosetta apps in Fire
  • Fire/Water:
    • Debugging a specific architecture for Island/Windows and Linux projects
    • Replace in Selection
  • Support for .NET Core 7 (Preview)
  • New Cirrus API for creating Extension Classes
  • Support for "safecall" methods on Island
  • Support for the Xcode 14 beta SDKs

New in Q1/2022

New in Q4/2021

  • Official support for .NET Core 6.0 and Visual Studio 2022
  • C# 10.0
    • Enhanced line directives
    • Extended property patterns
    • Lambda improvements
    • Global using directives
    • Record structs (all languages)
    • Caller Argument Expressions
    • Constant Interpolated Strings
    • File-scoped Namespaces
    • Generic Attributes
  • C# 7.2
    • Compile time enforcement of safety for ref-like types
  • Mercury
  • Oxygene
    • allow "async main" with begin/end.
    • Allow for/to loop variables to be inferred, just like for each.
  • New literal() CMF
  • WebAssembly: allow external method syntax to define strongly-typed Eval() wrapper
  • Optional Exception support in WebAssembly
  • Compiler now uses Island SDK imports for all Cocoa projects
  • Smaller download sizes by off-loading Go library

New in Q3/2021

  • Await support for dynamic in WebAssemnbly
  • Proper EBuild-style NuGet support in Visual Studio
  • Island Debugger now honors Just My Code setting in Visual Studio
  • New "ActiveX Library" project template (C#), and related Aspect
  • Oxygene: support for multiple uses clauses
  • Combined Interfaces in Oxygene
  • (Experimental) support for Visual Studio 2022 Preview
  • Oxygene: Support for params with sequence types
  • C# 9: [ModuleInitializer] attribute (all languages and platforms)
  • C# 9: Pattern matching enhancements
  • C# 8: async streams
  • C# 7.3 Stackalloc array initializers.
  • C# 7.3: Pattern-based fixed statement
  • C# 7: task types

New in Q2/2021

  • Official "1.0" release of Mercury
  • Property Wrappers
  • Swift 5.5: async/await
  • Breakpoint Actions in Fire and Wateer
  • New Code-Behind development model and templates for WebAssembly
  • Go language improvements and new Memory<T> type
  • Decimal type support on all platforms (previously .NET only)
  • C# 9.0
    • Top Level Statements
    • Attributes on Local Functions (all languages)
    • target-type conditional expressions (all languages)
    • Static anonymous functions (C# and Oxygene)

New Q1/2021

  • C# 9.0
    • Record types (all languages, native keyword for C# and Mercury)
    • "x with {}" in LINQ (C# only)
    • Allow GetEnumerator to be implemented in Extensions (all languages, .NET)
    • Co-variant returns (all languages)
    • Lambda discard parameters (all languages that have discards)
  • Mercury
  • Languages
    • Allow "locking on nil" to be a no-op
    • Support for subclassing records/structs (all languages)
    • Oxygene: allow initializer on a property that has e.g."read private write" delegate-declarations)
  • Fire and Water:
    • Allow building/running individual non-active projects from the context menu
    • Support for converting all .vbproj/.csproj projects in a solution in one go, updating all project references
    • Support for dragging `.xcframeworks into Fire to create an Import Project and project reference
    • Expose settings for upper-casing Oxygene keywords/directives
    • Option to build "missing" project references, if the project file can be resolved (--build-missing-projects)
    • Option to hide hints and warnings from remote references & missing projects
    • Oxygene: convert keywords to upper-case after space, if that option is set
    • Water: expose "Help|Generate Report for Code Completion" menu
    • Option to Import or Convert Delphi (.bdsproj) and Lazarus (.lpr) projects.
  • Tool Chain
    • New "Island Debugger" is now the default for Cocoa, replacing LLDB
    • Support for importing .xcframeworks
    • EBuild: Detect and cleanly fail on recursive (even indirect) project dependencies
  • Other
    • Option to not install support for all platforms, to save disk space
    • Improved Reflection API in Elements RTL
    • New conditional define, ELEMENTS+current build number (eg ELEMENTS2599)

New in 2020

  • Fire (and the entire compiler tool chain) nor run natively as Arm code on Apple Silicon Macs

Languages

  • Oxygene: while matching for Oxygene (https://docs.elementscompiler.com/Oxygene/Delphi/DelphiCompatibilitySettings/), and to allow more unsupported syntaxes in code that is IFDEF'ed out
  • Oxygene: Support for using the in operator on Arrays and Collections
  • Vast collection of Mercury improvements, as we ready for RTM
  • C# 9.0: init properties
  • C# 9.0: omitting the type in new() expressions

Note: C# 9 language features in RemObjects C# will be available for all platforms and all .NET versions, not limited to the .NET Core-based .NET 5.0.

Delphi Compatibility:

Platforms

  • Apple Silicon Support
    • Building Mac apps for arm64 aka "Apple Silicon"
    • Support for automatically signing arm64 binaries as needed to run locally, on Apple Silicon
    • Support for arm64 for the iOS, tvOS and watchOS Simulators, on Apple Silicon
    • Building Mac Catalyst apps for arm64 aka "Apple Silicon"
  • Support for iOS, iPadOS and tvOS 14, watchOS 7 and macOS 11 SDKs
  • Improved support for the official final release of .NET Core 5.0

Tool Chain

  • Tentative support for Water and certain tool chains on Windows/ARM
  • Support for running .resx/.settings Generator tools as part of the build, instead of manually in the IDE
  • New and improved "Island" debug engine will now be used as default for Cocoa apps, on Big Sur and later
  • Android: Manifests file merging: support for uses-feature
  • Android Debug Hosts
  • Android tool chain improvements: merge Manifests from packages & other tweaks
  • Improved My class support
  • Debugger improvements for Cocoa, .NET Core and WebAssembly
  • New AllowUnsafeCodeImplicitly setting to mark all code in a project to use "unsafe" code on .NET
  • EBuild can now automatically download older or newer versions of Island and Cocoa SDKs not installed locally
  • New Oxidizer.exe command line tool
  • Support for the new D8 dexer for Android
  • Improved Code Completion for uses/using/import clauses

APIs

  • More exposed APIs in Go Base Library
  • New caseInsensitive() String API in Elements RTL
  • Improvements to Browser DOM classes for WebAssembly
  • Improvements to Delphi RTL
  • Strongly typed interfaces for Browser and DOM, in WebAssembly
  • New [Module] aspect to achieve VB-like module behavior in all languages
  • Go Base Library has been updated to Go 1.13.5
  • new Observer class for working with Property Notifications in a platform-agnostic way.
  • New visual test activity for EUnit on Android

Fire and Water

  • Support for "Refactor: Rename"
  • Support for showing all code references to the current identifier
  • Support for disabling individual breakpoints w/o removing them (via context menu or Command-Click)
  • New backtrace all/bt all command in Debug Console
  • Support for launchSettings.json in ASP.NET Core propject and launching the Browser on first start
  • Better handling for "Reveal/Open output folder in..." For multi-target projects
  • Do fewer redundant builds when building and then running/testing
  • Support for managing references per target, in multi-target projects
  • More granular navigation stack, when navigating within the same file with Go to Definition and the like
  • Option to explicitly find and list all search occurrences in a single or all files
  • Oxidizer for Mercury
  • Improved folder refresh in Fire/Water for Website Projects
  • New "Messages" tab in the navigation pane
  • Option to set/toggle Copy To Output flag on content files
  • New "Go to Type Definition" command
  • Support for surrounding the selection when typing (, " or similar characters

  • Fire now runs on the Hardened Runtime on macOS Catalina

  • Fire: UI tweaks for macOS 11 Big Sur's new look and feel
  • Fire: UI sounds when builds and debug sessions succeed/fail
  • Fire: Various improvements for running on Apple Silicon Macs
  • Fire: support for deploying/debugging on iOS devices via WiFi, w/o USB connection
  • Fire: Support for running/debugging iOS apps locally outside a simulator, on Apple Silicon
  • Fire: Support for running/debugging macOS apps as x86_64 under Rosetta 2 explicitly, on Apple Silicon

New in 2019

Languages

Platforms

  • Support fore arm64_32 and improvements to the watchOS tool chain
  • Support for optionally filtering/selecting profiles and certificates by "Teams" in Fire/Water, for Cocoa projects
  • Project Templates for Remoting SDK for .NET Core in Fire
  • ASP.NET Core project templates for all four languages
  • Support for Node.js in WebAssembly, including new Templates
  • Support for ASP.NET Core and Razor
  • Support for the iOS 13.2 Beta SDK
  • Mixed mode debugging for Android NDK Extensions inside an Android SDK App
  • Support for 64-bit ARM Linux (aarch64)
  • Support for building UIKit for Mac apps
  • Support for deploying and launching standalone watchOS 6.0 apps to the Simulator
  • Support for macOS 10.15, iOS 13, tvOS 13 and watchOS 6.0 Beta
  • Support for building Cocoa .frameworks
  • Native COM support for Island

Tool Chain

Fire/Water:

Support for Visual Studio 2019

Enhancements to EUnit

New in Q3 and Q4/2018

  • Major documentation overhaul (work in progress)

  • Very Sneak Preview for Go support in Fire and Water

  • Toolchain Improvements

    • Further steps towards maturing Island/Darwin platform
    • Support for iOS, tvOS and watchOS
    • Support for mixing Cocoa and native class types
    • Support for architecture merging, app bundle creation and other Toffee toolchain phases
    • .NET Core tool chain improvements
    • .NET Core debugging on macOS
    • Debugging and RTL improvements for Island
    • EBuild is now the default build chain for plain Echoes projects, in Visual Studio

EBuild is now the default/only toolchain for everything except Silverlight and Universal Windows/WinRT projects, across all IDEs.

  • IDE Improvements

    • Official first release Water of Water
    • Improved Welcome experience in Fire
    • Support for creating XAML event handlers via CC
    • Fire & Water Editor:
    • Improvements to smart-enter
    • Smart keyword expansion when pressing Space
    • Smart-for Oxygene
    • Improvements to how CC works in shared projects when being invoked within "wrong" defines.
  • Language Improvements

  • Other Enhancements

    • Cirrus improvements
    • Cocoa: support for SIMD types
    • Delphi VCL Preview

New in Q2/2018 (.2283 - .2301)

  • Core

    • Iodine: support for auto-release pools on Cocoa
    • Improved Flow Control logic and hints
    • Oxygene: Interpolated Strings
    • Island/Windows: .res file support
    • Blocks defined inside an if #available should inherit that deployment warnings are hidden
    • Vast CC improvements
    • String to HSTRING (Island/Windows)
    • CC Stability improvements
    • Swift: SE-0043: Declare variables in 'case' labels with multiple patterns
    • Automatically hide CPW warnings inside per-platform defines
  • More C# 7.2 and 7.3 feature parity:

    • C# 7.3: field: attribute on prop fields
    • C# 7.3: Infer tuple names (aka. tuple projection initializers)
    • C# 7.3: Ref Local Reassignment
    • C# 7.3: Support for == and != on tuple types (all languages)
    • C# 7.3: System.Enum, System.Delegate and unmanaged constraints
    • C# 7.2: conditional ref
    • C# 7.2: Non-trailing named arguments
    • C# 7.2: Reference semantics with value types
  • Iodine: __event declaration support

  • Oxygene Editor: automatically correct <=, >=, != to =, =, ?
  • CC: Improvements when same type name exists in two (used) namespaces

  • .NET Core Toolchain enhancements

    • Debugging (in Visual Studio, Fire and Water)
    • Run w/o debugging (Fire and Water)
    • generate .runtimeinfo.json and /deps.json files
    • New project settings for picking desired Core SDK and Runtime
  • Island/Darwin (Native macOS) Preview

  • Build Chain

    • Fire and Water are now EBuild-exclusive
    • Significant Build speed improvements for PrepareToffee and for copying .app bundle to output
    • Visual Studio now uses CrossBox 2 for debugging Cocoa projects
    • Visual Studio now uses EBuild for building Cocoa projects
    • New Debug API, shared with Fire, Water and Visual Studio and across all platforms, with more consistent boot/upload/deploy/launch infrastructure.
    • Support for pre-compiling .metal shader files on Cocoa
    • Support for building for the 'Hardened Runtime" for macOS Mojave
    • Support for iOS 12 and macOS 10.14 Mojave Beta SDKs
    • Support for SiriKit Intents and extensions (iOS 12 Beta, wip)
    • New compiler-internal obfuscation support, all platforms
  • Fire and Water

    • Setting for choosing radix for debug evaluations
    • Option to convert legacy .gradle files
    • Support for Detaching from debugger, in Cocoa
    • New "Exception Manager" to configure ignored exceptions
    • New "Breakpoint Manager"
    • Editor: Improvements for typing Tab in CC to forward to next PascalCase upper character
    • Editor: Smart closing } in Fire and Water
    • History for debug console commands
  • Fire

    • Fully embrace macOS dark theme when editor theme is black
    • Filtering in Arguments Manager
    • Support for Dark Mode for Fire on macOS Mojave
    • New Auto-Updater for Fire (experimental)
  • Water:

    • massive UI improvements to tree views
    • Debug Inspector is now usable
    • Vast CLR Debugger improvements
    • Debugger: "Add breakpoint" sheet (by location or symbol)
    • Debugger: "Attach to Process" (32-bit CLR; 64-bit CLR and Island coming next week)
    • Paste & Split in Arguments Manager
    • Preferences: Paths page
    • Editor: Shift-click to extend selection, alt-drag to select rectangular
    • Editor: Support for underscore and tab in CC, matching Fire
    • Editor: Support for search tokens and Tab to jump to them
    • Data Abstract and Remoting SDK: "Connect to ROSDK Server"
    • Data Abstract and Remoting SDK file actions are now available in Water
    • Project Settings view (fully functional)
  • Visual Studio

    • Island, Cooper and Gotham now always use EBuild
    • Support for parsing //TODO tags

New in Q1/2018 (.2239 - .2269)

  • Core

    • Improved DllImport/DllExport
    • Incremental compile for Cocoa and Island
    • first bits of Swift 5 features
    • "Back-mapped methods" in mapped types
    • Class Contracts for C#, Swift and Java
    • Show require/ensures in CC and enforced some at compile time
    • Default interface implementations
    • Speed improvements in Cocoa .fx files with many extensions (such as Foundation)
    • async in main() – all languages, .NET
    • Support for static arrays for C#
    • Support for WebAssembly as new sub-platform in Island
    • is and case/when pattern matching in C#
    • InstanceType is now supported on all platforms
    • New cross-platform Instrumenting Profiler
  • EBuild

    • Support for building Toffee apps from Windows via CrossBox 2
    • XAML/WPF Support in EBuild, including building WPF on Mac
    • EBuild is now the default tool chain in Water
    • Support for Cirrus references for all platforms in Fire/Water and EBuild
  • Fire and Water:

    • XAML Code Completion
    • Smarter “Comment/Uncomment Selection (Cmd+/)” for partial lines
    • Integrated Help for core Elements docs & platforms
  • Fire:

    • Support for Symbolic breakpoints
    • Better Breakpoint UI
    • Exception Manager
    • Support for FXGen Framework import
    • Exposed more Refactorings
  • Water

    • Project Settings view (preview)
    • Cocoa/Mac debugging via CrossBox 2
    • Support for Code Snippets
  • Visual Studio:

    • "Sort methods" refactoring for Silver and Iodine

New in Q4/2017 (.2215 - .2231)

  • Core

    • support for multiple properties in [Notify]
    • [Notify] support for Island
    • Java Compatibility: Catching Multiple Exceptions
    • Java Compatibility: Rethrowing with Improved Type Checking
    • Java Compatibility: try-with-resources Statements
    • WebAssembly support in Island
    • C#: Syntax for defining (non-local) type aliases
    • Iodine: Support for array literals and NSArray via {…}
    • Tuple operators
    • Oxygene Discardables (similar to (C#)
    • Swift supports #defined(x) now, for symetry
    • C#7 discards
    • C#7 deconstruction
    • C#7 and Oxygene default literals
    • C#7 tuples and tuple element names
    • C#: Type Aliases
    • C# and Oxygene: throw/raise as expression
    • C# 7.0 and Oxygene: out var declarations
    • Silver: Support for case - let - as in switch
    • Support for Portable PDB on .NET
    • Support for Codeview debug symbols on Island/Windows
  • EBuild

    • Massive improvements on many fronts, large parts of the binaries we ship as part of Elements are now built with EBuild, including Fire itself.
    • Support for watchOS and iOS Extensions via project references
    • Support for .ipa generation on Toffee
    • EBuild is now the default build engine in Fire for all platforms.
    • Support for Java 9 JDK and jmod files (EBuild-only)
  • Fire and Water

    • Show resolve log for referencess view
    • Show (and persist) failed build task and project in status bar
  • Fire

    • show error message for non-text files (such as .xcasset, .xib)
    • Performance improvements
    • Non-text file viewes siuch as .xcasset now can also show build messages
    • FXGen is now integrated (SDK import only in this build)
    • Show build/debug status in tab, on High Sierra and later
  • Water

    • Open Quickly sheet has been ported
    • Many small improvements
    • Debugger UI improvements

New in .2213 — First Elements 10 Preview, November 4, 2017

Major highlight for this build is the new defined() compiler magic function, which lets you wrap #ifdef logic into actual langage flow structures, instead (we'll have an upcoming blog post about this, next week).

  • Support for if defined()
  • C# Improvements:
    • C# 7.2 private protected visibility
    • C# 7 Local Functions
    • C# 7 Tuple support
  • Oxygene Improvements
    • Full support for local/nested functions, same as C# and Swift.
    • Oxygene: support for type to make type alias incompatible
    • New static; syntax for static members w/o class
  • Iodine Improvements:
    • Property support
    • Block/delegate syntax (__block)
    • Java Compatibility: Type Inference for Generic Instance Creationsr
    • __weak/__strong/__unretained keywords
    • __selector syntax
    • default()
    • Syntax to force a non-nullable (!, like in C#)
    • Java 9 compatible lambda syntax (->)
    • Syntax for mapped class
  • Other Compiler Improvements
    • Variable inferred with explicit "as not nullable" should be considered non-nullable
    • Advanced assignment operators for Island/Toffee Records
    • Allow . for pointers to do an implicit dereference
  • Fire improvements
    • streamlined memory footprint and processing overhead for shared files in the managed projectsystem.
  • Misc
    • Finally renamed all RemObjects.Oxygene dlls to RemObjects.Elements

Check out the complete change logs with each build, for more details.

See also what was new in Version 9.3 and earlier…