Download Elements. A new build of Elements comes out every week. | RemObjects Software
Languages Platforms IDEs | Download Pricing |

Changes in .3071 since .3059

Core

  • E27587: Android Templates: VS asks to choose Target Framework, which is not applicable
  • E27535: Android: Fix Android Sample Projects for build and deployment issues
  • E27569: C#: inconsistent initialization for out vars in Cocoa vs .NET
  • E27556: CC: DisplayText had changed to include the namespace, leading to duplicate info
  • E27558: CM: NRE in GetShortName for method having array result
  • E27326: Cocoa: InstanceType-inferred variable cannot be reassigned
  • E27577: Debugger/.NET: support for boolean operators
  • E27602: Debugger/Echoes: BreakpointID isn't set correctly in x86 mode
  • E27575: file-scoped must symbols use different mangling on Java ($ not <>)
  • E27269: HI: don't emit default namespace for each type, for codegen option
  • E27450: Island/Delphi: duplicate symbol: __unnamed_1 at building island/Delphi app -- Use InternalLinkage for the delphi type name in GenerateTypeInfoFor
  • E27574: NRE in Go to Definition
  • E27571: NRE when trying to Go to Definition inside a directive
  • E27520: Raw strings: line numbersfor errros sometimes were off
  • E27367: Refactor: doesn't find all vars
  • E27513: Reloading references fails after they were rebuilt
  • E27596: Weird 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: bundletool updated to 18.3
  • Android: Fixed "obsolete" warning in the Android’s Tabs app template
  • Android: New Wear OS project templates
  • Android: Set Android min SDK in the project settings
  • CC regression: Insert text include "in " when namespace is inserted
  • 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: experimental added
  • 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: Support {$IF Declared(X)} in legacy preprocessor
  • Delphi Compatibility: Warn if enum and label names shadow/duplicate)
  • Delphi import: cleaner exception type
  • Delphi Package Import: Windows/arm64 (wip)
  • Installer: Reset files association to defaults after Elements deinstallation
  • Internal: Adjustments to “E27569: C#: inconsistent initialization for out vars in Cocoa vs .NET”
  • Island/Delphi: Support for Windows/arm64 prep-work (wip)
  • Merged CodeGen4
  • Merged EBuild
  • Merged InternetPack
  • Merged IslandDelphi
  • Merged IslandRTL
  • Merged ROCodeGen
  • Merged RTL2
  • Merged Samples
  • 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')"

Fire & Water

  • E27599: Show hints in jumpbar drop-down list
  • E27581: Water: CTRL+D window is sometimes too small (regression)
  • E27576: Water: missings in jumpbar
  • E27578: Water: show full file path via hint
  • E27488: 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: new replaceSymbol function
  • 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: experimental keyword for Oxygene (DCM only)
  • 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 DelphiSupport

  • 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)