RemObjects Elements Releases

Learn what's new across releases, with details of features, enhancements, and resolved issues.

Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
RemObjects Elements v12.0.0.3071Apr 4, 2026
Features
  • Core
    • Debugger/.NET: Added support for boolean operators.
    • Android: B0undle tool updated to 18.3.
    • Android: Added new Wear OS project templates.
    • Delphi Compatibility: Added support for {$IF Declared(X)} in legacy preprocessor.
  • Fire & Water
    • CodeBot: Added a new replaceSymbol function.
Fixes
  • Core
    • Android Templates: Visual Studio asks to choose Target Framework, which is not applicable.
    • Android: Fixed Android Sample Projects for build and deployment issues.
    • Cocoa: InstanceType-inferred variable cannot be reassigned.
    • Debugger/Echoes: BreakpointID isn't set correctly in x86 mode.
    • NRE when trying to Go to Definition inside a directive.
    • Raw strings: line 'numbersfor' errors sometimes were off.
    • Refactor: doesn't find all vars.
    • File-scoped must symbols use different mangling on Java ($ not <>).
    • Reloading references fails after they were rebuilt.
    • N13 “Method CreateFromFile exists, is there a semicolon missing?” error with linebreaks in method call.
    • E26513: Wrong error code (E271 custom error) for missing type in method declaration.
    • Android: Fixed "obsolete" warning in the Android’s Tabs app template.
    • Android: Set Android min SDK in the project settings.
    • CC regression: Insert text include "in " when namespace is inserted.
    • HI: don't emit default namespace for each type, for codegen option.
    • Island/Delphi: duplicate symbol: __unnamed_1 at building island/Delphi app -- Use InternalLinkage for the delphi type name in GenerateTypeInfoFor.
    • CC: DisplayText had changed to include the namespace, leading to duplicate info.
    • CM: NRE in GetShortName for method having array result.
    • NRE in Go to Definition.
    • Change nested type name separator to "+" (to match ToString).
    • Confusing error locations for prematurely terminated raw string.
    • Debugger/Island: Get Locals fix.
    • Debugger: CLR: Error when trying to call a non-static member on TypeValue self.
    • Debugger: CLR: fixes for indexer evaluations.
    • Debugger: Island/Darwin Release build doesn't break on exceptions.
    • Debugger: Log exceptions raised when reading debug files.
    • Debugger: NRE when evaluate anonymous method (not supported for now though).
    • Delphi Compatibility: $ZEROBASEDSTRINGS directive is now ignored for OFF, and errors for ON.
    • Delphi Compatibility: const Empty: TEmpty = () recognised as empty named-field record init.
    • Delphi Compatibility: const Lambda: Func<Integer> = () -> 99.
    • Delphi Compatibility: deprecated directive’s message was ignored.
    • Delphi Compatibility: Allow 'label' section after 'var' section (while still allowing 'label' as a variable name).
    • Delphi Compatibility: Fix for include search path being tied to legacy preprocessor; allow relative include search path.
    • Delphi Compatibility: Handle goto label inside case statement.
    • Delphi Compatibility: Ignore additional preprocessor directives: INLINE, LEGACYIFEND, DEFINITIONINFO, J+/J-, O+/O-, T+/T-, X+/X-, A1-A16.
    • Delphi Compatibility: Warn if enum and label names shadow/duplicate).
    • Delphi import: cleaner exception type.
    • Installer: Reset files association to defaults after Elements deinstallation.
    • Internal: Adjustments to “E27569: C#: inconsistent initialization for out vars in Cocoa vs .NET”.
    • NRE fix (ExactBefore and ExactAfter could be nil).
    • Oxygene Delphi Compatibility: absolute keyword (Island, Echoes, Toffee; not implemented for JVM).
    • Oxygene Delphi Compatibility: label keyword recognised after var/const (was interpreted as var/const name).
    • Oxygene Delphi Compatibility: weak keyword/type disambiguation.
    • Oxygene Delphi Compatibility: adjust DCM-gated keywords: Oxygene allows initialization/finalization, cdecl/stdcall (supported for external methods), overload (doc-ed as ignored). 'packed' is DCM, use [Packed].
    • Oxygene Delphi Compatibility: Allow accessing @TType.InstanceMethod (static type, not an instance) as a method pointer.
    • Oxygene Delphi Compatibility: Allow cast from method pointer to pointer and back (requires DCM; unsafe in Echoes).
    • Oxygene Delphi Compatibility: Function name can mean function address in DCM mode (missing @).
    • Oxygene Delphi Compatibility: Legacy Preprocessor: avoid mutating types.
    • Oxygene Delphi Compatibility: Legacy Preprocessor: can resolve sizeof() for compiler inbuilt (e.g., Integer, Pointer) and referenced types (e.g., TMethod).
    • Oxygene Delphi Compatibility: Legacy Preprocessor: Support SizeOf(pointer).
    • Oxygene Delphi Compatibility: Pointers to functions implicitly convert to untyped Pointer in DCM mode.
    • Oxygene Delphi Compatibility: Support $MESSAGE directive (and ignore the $WARNINGS and HINTS directives).
    • Oxygene Delphi Compatibility: support (field: @func) const init syntax in DCM.
    • Oxygene Delphi Compatibility: Support self-referential typed constants (@ConstName.Field in own initializer).
    • Oxygene Delphi Compatibility: Tweaks for generic and non-generic types of the same name.
    • Oxygene: packed is back as a normal keyword (used often).
    • Oxygene: bad reformat.
    • Oxygene: parser fixes for Delphi compatibility.
    • Templates: New Android Tabs-based App added.
    • VS: Internal error when evaluating "x.Where(b-> b = 'a')".
    • C#: inconsistent initialization for out vars in Cocoa vs .NET.
  • Fire & Water
    • Show hints in jumpbar drop-down list.
    • Water: CTRL+D window is sometimes too small (regression).
    • Water: show full file path via hint.
    • Water: when Water is in maximize state, an auto-hidden taskbar cannot be shown.
    • Auto-fix is applied several times for files in shared project.
    • CodeBot: Analysis for selection didn’t use proper line numbers.
    • CodeBot: Minor tweaks for issues identified by Codex.
    • CodeBot: re-format code inserted by CodeBot.
    • CodeBot: run some editor-AI in the background and not the main chat.
    • CodeBot: Some internal cleanup & better prompt for file analysys.
    • Context menu cleanup..
    • Context menu option to open “Intermediate Folder”.
    • Context menu “Copy Path" on References only copied the name.
    • Debugger console: thread frame.
    • Debugger console: option to collapse single-letter commands (efg tfl for thread frame list).
    • Debugger: handle/highlight which thread is “current” dynamically, based on the current stack frame.
    • Editor: packed should be a regular keyword, not DCM.
    • Editor: Allow CC popup to grow further to the left, when invoking CC near the right edge.
    • Editor: CC error messages parsed badly when the filename/path contained parentheses.
    • Editor: CC: types from unused namespaces showed the namespace twice.
    • Editor: Color fix for Strings in white theme.
    • Editor: Detect DelphiCompatibility for highlighting if file has no active target but the setting is set project-wide.
    • Editor: highlight current type too, if available.
    • Editor: NRE proofing for the current block detection code.
    • Editor: Regression: cannot copy message popup with Cmd-C.
    • Editor: Shortcuts/menus to copy current type/block/member.
    • Exception logging proofing.
    • Extended Option-Cmd-Up/Down message navigation to build log.
    • Fire: CC popup is one pixel too small, causing scrolling/jitter.
    • Fire: Menu cleanup.
    • Fire: Restructured the Debug menu to match previous changes to Water.
    • Fire: Show message navigation commands in the menu (Water already did). Also added proper validation to them.
    • Generate Code from .RODL could hang in some cases.
    • Hide "empty" folders in the project tree, if all their files are in other virtual folders (regression: don't hide empty folders that didn't have virtual files.
    • If a project/target has more than one output, show the “Reveal Output _Folder" menu, instead of disabling it.
    • Island/Delphi: allow specifying just "Delphi" w/o number to target the latest available version.
    • Logging for Certificate filtering (for Jeremy ;).
    • Made the per-target target “Manage References" sheet easier to get to in multi-target projects, if the current node is associated with one of the targets.
    • NRE fix in desiredDefaultArchitectureForConfiguration.
    • Project Settings: Crash regression for Toffee/iOS.
    • Project Settings: Don't show unsupported architectures in picker for Island/Delphi (i.e. Windows/arm64 for Delphi 12 and below).
    • Project Settings: Don't use unsupported local device architecture as the default/desired architecture for Island/Delphi.
    • Project Settings: Settings tweaks/cleanjup for Delphi Compatibility.
    • Project Settings: Sort architectures properly and consistently (best first).
    • Regression: Island/Android defaulted to wrong (local computer) architecture.
    • RO/DA: Connect button should enable as soon as a valid URL is typed.
    • RO/DA: Don't generate _Invk for .remoteRODL files, even if the project uses Server.dll.
    • RO/DA: Don't generate ServerAccess file when using local RODL file.
    • RO/DA: Fix the Connect button and Browse dialog in Connect To Remoting SDK Server.
    • RO/DA: Newly generated _Intf files were (sometimes?) creating an implicit Target.
    • Show nested types in the types tree.
    • The type member dropdown was not always sorted consistently.
    • Water: allow filter/search in Exceptions Manager.
    • Water: avoid Internal exception when the webview for Codebot was accessed before being fully initialized.
    • Water: can't open .elements/.sln if it was specified w/o full path in the command line.
    • Water: CodeCompletion message "no match" has the wrong size.
    • Water: CTRL+D window is sometimes too small.
    • Water: don’t capture image for exception sheet, as that hangs (sometimes?).
    • Water: Dropdown list for project creation style fixed.
    • Water: Fixed a duplicate separator in the Target context menu.
    • Water: hide "Open in Service Builder" button for .remoteRODL files.
    • Water: Improved color for tree view disclosure triangles.
    • Water: NRE closing/switching to another project while the current project is debugging.
    • Water: Problems with syntax highlight in XML files.
    • Water: show full file path in treeview hint.
    • Water: some missing icons in the jumpbar.
  • EBuild
    • Android: bundletool updated to 18.3.
    • Delphi Project Import: avoid empty architecture in settings.
    • Delphi Project Import: reference Vcl or Fmx automatically if needed.
    • Delphi Project Import: Set better default uses prefixes for Windows.
    • Delphi Project Import: Set generic "Delphi" SDK version to always use latest.
    • Delphi Project Import: Support for Windows/arm64.
    • Delphi Project Import: Tweaks; enable Island/Delphi mode only for supported platforms.
    • Expose OutputFolder to FinalOutput.xml.
    • Ignore "empty" architectures resulting from a leading or trailing semicolon in the setting.
    • Island/Delphi: Allow specifying just "Delphi" w/o number to target the latest available version.
    • Island/Delphi: More clear errors when trying to build for a platform not supported for Delphi.
    • Island/Delphi: Support for importing Windows/arm64.
    • Island/Delphi: support for importing Windows/arm64 if present (wip, disabled).
    • Island: fixes for renamed debug symbol cache files in macOS 26.4.
    • Provide IntermediateFolder in FinalOutput.xml.
    • Set UseLegacyPreprocessor to true when importing Delphi & Lazarus projects.
    • Sort supported architectures properly and consistently (worst to best/newest).
  • Island Delphi Support
    • DelphiExtended80: Added ToString method and updated Exponent, Fraction, and Sign properties for improved clarity.
    • Implicit casts from integers, floats and TDateTime to Extended.
    • Keywords: change 'packed' (Delphi compatibility keyword) to '[Packed]' attribute.
    • Made all Extended casts implicit.
    • Operators for concatenating char+string.
    • Support for Windows/arm64.
  • Elements RTL
    • Add a constructor withCapacity to the Queue class.
    • Use CallingConvention attribute instead of stdcall directive.
  • Island RTL
    • Don't optimize Island RTL for Windows, until we fix the index out of range issue.
    • IslandRTL: change 'packed' keyword to '[Packed]' attribute (packed is DCM-only).
RemObjects Elements v12.0.0.3059Feb 20, 2026
Features
  • Core
    • Oxygene: Now allows finding .inc files anywhere in the project, if used w/o path (all .inc files need to be added first).
  • Fire & Water
    • CodeBot: Access to error messages in current file.
    • CodeBot: Access to error messages in the current file.
    • Context menu to remove bookmarks.
    • Editor: Added 'field' keyword for Oxygene.
    • Editor: Added another highlighting regression/tweak for raw strings.
    • Editor: Cleaned \u2028 and \u2029 on paste.
    • Expose "Convert Solution to x-style linebreaks" menus like Fire has.
    • Fire: Added consistent icons for Fire, File, and Edit menus on Tahoe.
    • Water: Now shows horizontal scrollbar in tree.
  • EBuild
    • Defaulted to arm64 for all macOS-based platforms, when no actual local arch is known (i.e. on Windows).
    • Merged ROCodeGen.
    • Added support for .NET Core 11.0 (Preview).
  • Island RTL
    • Defined C RTL methods via SymbolName for Linux/WASM targets to be able to link Island-emitted mod/fmod and others.
    • Better ifdef/error for structUnwind_Exception.
    • Better ifdef/error for __struct__Unwind_Exception.
Fixes
  • Core
    • VS: NRE after typing comma in multidim array (array [0..1,]).
    • Wasm: NRE in linker with legacy Delphi RTL library.
    • 'field' as an alternate keyword to 'var' for class fields.
    • 'file' scope on members (C#).
    • Bad autofix for missing end.
    • C#11: 'file' level type visibility.
    • Could not use variable from with matching in LINQ.
    • Cocoa: ARC issue causes AV when inherited ctor call throws an exception.
    • Code completion does not show variable 'i'.
    • Confusing behavior with invalid type declarations inside IF EXISTS.
    • Field-backed properties (C#14, Oxygene).
    • file-scoped members caused Toffee unrecognised selector (removed mangling on members).
    • Fix conditional directive evaluation for type aliases using exists().
    • Go: Regression: Cannot have label and var with the same name.
    • IE with interpolated string.
    • Island: Debugger shows confusing info for nil DateTime (or struct in general).
    • Local Fields (Oxygene).
    • Oxygene: Cannot use colon operator in raw string interpolation.
    • Refactor: Converting from unified to classic implementation lost array dimension.
    • Refactoring: Move body out of class definition works incorrectly with string parameters.
    • Regression fix for changed error message numbers.
    • Store source files checksum into .pdb.
    • Visual Studio: AI suggestions can’t be accepted.
    • VS: All file content in Go/Java/Mercury/C# files collapses to CSharpNamespace.
    • VS: Text paste inserts mixed indentation (6 spaces instead of tabs).
    • Android: ListView templates fix.
    • Fix for Go/Echoes shipping with wrong Echoes dependency.
    • Header Importer: skip wildcard subfolders not found in any include path.
    • Merged CodeGen4.
    • Merged EBuild.
    • Merged EUnit.
    • Merged GoBaseLibrary.
    • Merged IslandRTL.
    • Merged ROCodeGen.
    • Merged RTL2.
    • Reverted E27154 due to regression on C# formatting.
  • Fire & Water
    • Water: Bad default architecture arm64 for watchOS, Water only.
    • Water: Don't "bold" words inside XML comment.
    • Auto-case-fix for E468.
    • Fire: Auto-layout bug caused a maximum size for the Reference view.
    • Menu actions to uppercase/lowercase selection or token.
    • Menu: general menu cleanup and consolidation into 'Edit|Modify' submenu.
    • Regression: Internal NRE opening project with an unknown CrossBox server set.
    • Support automatic fix-it for E468 (case mismatch).
    • Water: Fixed bad default architecture arm64 for watchOS (Fire is fine).
    • Water: Regression: Disabled projects were no longer grayed out.
  • EBuild
    • Bad fallback if DesiredDefaultArchitecture is not available caused Water to show $(DesiredDefaultArchitecture) as default setting.
  • Elements RTL
    • Path fixes in project refs for tests.
    • Test fixes.
    • Regression: Duplicated variable" errors when same type is declared in multiple IFDEfs.
  • Island RTL
    • Fixed IFDEFs for IslandMath to only be used for Windows and macOS.
    • IslandMath linking issues (should not be used) on Linux.
    • Test fixes.
RemObjects Elements v12.0.0.3051Jan 23, 2026
Features
  • Core
    • Visual Studio: Added Java tag to Cooper project templates.
Fixes
  • Core
    • Afterhours: Fix for Oxidizer tests.
    • Bad error handling with extra (escaped) } in interpolated string.
    • CM: Highlighting works incorrectly.
    • Oxygene and C#: Hint for “unused multiline string variable” has incorrect in-editor highlighting range.
    • CodeModel: NRE fix in GetCurrentMember.
    • Debugger: CLR: Could not evaluate fields in nested methods (they have static attribute even if they are not static).
    • Debugger: CLR: Fix in ValuePath for CLRDebugValue.
  • Fire & Water
    • Possibility to go to breakpoints from Breakpoint Manager (fix for Fire).
    • Typo fix.
  • EBuild
    • Conditional defines fix.
RemObjects Elements v12.0.0.3049Jan 16, 2026
Features
  • Core
    • Oxygene & C#: interpolated strings: extra } is added when having double } -- escape } too, for C#.
    • Oxygene raw string issue with } inside interpolation.
    • Support known conditional defined symbols in CC for $IF/#if.
    • Elements: remove Win/i386/FPU option (i386 is always SSE2) for Islanf.
    • Jumpbar: display C# unnamed constructor as "this".
    • Version-based define fixes for Elements 12.
    • Merged EBuild.
  • Fire & Water
    • Support for Raw Strings similar to C#11 (fix for no non-whitespace before curly).
    • Editor: allow code snippets to have a section of text pre-selected to be typed over.
    • Editor: highlighting fixes for C# non-raw interpolated strings to match Oxygene.
    • Editor: highlighting fixes for Swift interpolated strings to match Oxygene.
    • Editor: highlighting fixes/tweaks for Oxygene interpolated and raw strings.
    • Editor: Use #"" in Oxygene snippets.
    • Water: Possibility to go to breakpoints from the Manage Breakpoints dialog.
    • Water: Multiselect row support in sheets with table views.
  • EBuild
    • EBuild: remove i386-FPU (i386 is always SSE2).
RemObjects Elements v12.0.0.3047Jan 9, 2026
Features
  • Fire & Water
    • Editor: Added support for Oxygene Strings.
    • Editor: Now allows code snippets to have section of text pre-selected to be typed over.
  • Island RTL
    • Updated conditional compilation for platform support in math implementation.
Fixes
  • Core
    • C#: 2 bad reformats (trailing closure w/o (), private set).
    • Delphi Compatibility: noreturn keyword, behaves same as existing NoReturn aspect.
    • Oxygene: Final tweaks for Raw Strings.
    • Water/Debugger: It was impossible to the check length of byte[] - A class is not loaded.
    • Debugger: CLR: Would show an empty string if ToString returns nil.
  • Fire & Water
    • Water: Rename file doesn't show old file name.
    • Editor: Highlighting for Delphi compatibility Mode noreturn keyword.
    • Fire: Active tab had wrong color in Dark themes.