Weekly Progress

Elements Channels

A new Elements build comes out every week. Pick the channel that matches how close to the edge you want to work.

Change Log

Loading change log…

Core

  • E27945: Allow widening for nullable inputs in overrides
  • E27941: Keep old contract snapshots alive through postconditions
  • E27952: Preserve signed zero bits in JVM constants and constant-pool deduplication
  • E27940: Run return cleanup before contract postconditions
  • Accept nullable entry-point string arrays across targets while preserving declared signatures
  • Add centralized message levels with Unverified severity and regression coverage
  • Add named string conversion for Toffee booleans, too
  • Add named string conversion for Toffee enums, including flags, aliases, nullable and imported enums
  • Adjust erased-lambda regression execution
  • Don’t route unknown source file extensions to Oxygene
  • Enforce file-scoped property accessor visibility, including backing-field optimizations
  • Enforce visibility of indexed property accessors
  • Exclude scalar helpers from dynamic lookup
  • Fix Core runtime symlinks to use the appropriate Elements and Echoes assemblies
  • Preserve constructor initialization of getter-only automatic properties while enforcing accessor visibility
  • Preserve typed Cocoa collection element types during fast enumeration, including remapped native collections and dictionary keys
  • Preserve typed Cocoa sequence lambdas and reject erased overload fallback
  • Reconcile Samples mirror with its recorded subtree baseline
  • Retain called private methods on native backends and add Cocoa regression coverage for empty partial methods
  • Simplify sample packaging with recursive wildcards and exclude build artifacts, IDE metadata, version-control files, and system clutter
  • VS: Project doesn't compile after adding WinForm or User control to the project (VS)
  • Water: SO and crash when particular project opens
  • Merged CodeGen4
  • Merged cooper.jar
  • Merged EBuild
  • Merged Echoes.dll
  • Merged IslandRTL
  • Merged libToffee
  • Merged RTL2
  • Merged RTL2.Web
  • Merged Samples

Island and Idsland/Delphi

  • E27890: Compiler: error loading .fx with intrinsic inline info
  • E27889: Compiler: Error while inlining call when building DelphiSupport library
  • E27949: Delphi SDK array-of-const calls failed for literals and strings
  • E27948: Importing DelphiSDK/FX lost default values for interface methods
  • E27898: Island/Delphi: add complete coverage test to delphi generics and fix discovered issues
  • E27894: Island/Delphi: Fail to compile complex generic type: TStack<TDictionary<Integer, TPair<integer, string>>>
  • E27891: Island/Delphi: Instantiate delphi generics
  • E27897: Island/Delphi: Issues instantiating complex type
  • E27893: Island/Delphi: TList.ToArray returns always nil
  • E27833: Island/Delphi: undefined symbol error at building of empty project -- the filter for generating (or not) the delegate invoker was too broad
  • E27831: Island/Delphi: warnings processing rtl.dcp
  • E27942: Preserve reference result ownership through contract checks
  • Fix ARC lifetime for conditional Delphi string temporaries and add native regression coverage
  • Fix Delphi ARM64 metadata, generic specialization and Mach-O RTTI symbols
  • Fix Delphi generic inline lowering and native record ABI handling
  • Fix Delphi interop inlining, ARC cleanup, open-array symbol mangling, and LLVM constant extension handling
  • Fix Delphi Linux x64 generics and native ABI interoperability
  • Fix Delphi open-array and padded record ABI handling
  • Fix duplicate swiftself attributes in Swift array removal ABI
  • Fix forwarding of Delphi array-of-const parameters by preserving the incoming pointer and high bound
  • Fix WebAssembly closure lifetime during garbage collection
  • Fix Win32 Delphi generic ABI lowering and preserve imported class models
  • Fix Win32 Delphi generic collections and native ABI handling
  • Fix Win64 Delphi record returns and string interoperability
  • Fix Windows catch exit dispatch and nested finally calls
  • Island/Delphi: Canonicalize imported Delphi generic names and preserve nested type owners
  • Island/Delphi: Fix generic import remapping for dependency globals, anonymous callbacks, nested types, constructors, accessors, and comparison opcodes
  • Island/Delphi: Fix Island ARM64 Delphi record ABI handling, char-to-string conversion, and Mach-O RTTI linker options
  • Island/Delphi: Pass const records by address on ARM64, keep const parameters through generic specialization, and resolve nested and dependency types in imported generic bodies
  • Island: retain native methods referenced only by dynamic calls
  • Massive improvement to Delphi 13 import...
  • Match generic arity before decoding overload return types
  • Resolve owner-unspecified Delphi FX types through declared package dependencies
  • Separate contract lifetime changes from the concurrent formatter commit
  • Stabilize FX fixture cleanup and correct Cocoa Boolean expectations

Fire & Water

  • Add a menu command to copy the solution path
  • Add centralized message levels with Unverified severity and regression coverage
  • Add extensible project settings picker verbs with safe deferred actions
  • Fix ambiguous text field layout in preferences
  • Handle terminal ESP live server failures without duplicate exit errors
  • Improve project file nesting logic
  • Make platform icons more theme-aware and update Cooper's colors
  • Retry initial license recovery once and reveal projects that remain invalid after revalidation
  • Use language-specific comment prefixes for code diagnostic messages

CodeBot

  • Add CodeBot tools for App Store Connect provisioning, deployment, and signing
  • macOS: Use native process activities instead of caffeinate to prevent system sleep when CodeBot is bsy
  • Update OpenAI model strategies to use GPT-6.1 Terra

EBuild

  • Add centralized message levels with Unverified severity and regression coverage
  • Fix RESX type resolution when Windows environment variables are missing or empty, and prevent shared-framework sibling paths from matching. Add regression tests for configured and absent roots.
  • Fix script interpreter condition parsing and add pre-build hook regression tests
  • Handle deployment target upgrade for watchOS/arm64
  • Honor selected watchOS SDK architectures and resolve Linux Delphi support folders by SDK name
  • Normalize arm64e.x1 CPU variants reported by devicectl to arm64 deployment target
  • Preserve legacy target mode inference when scoped settings create placeholders
  • Report occupied ESP listener ports cleanly with recovery guidance and fatal events, while preserving other startup errors; add diagnostics and integration coverage for console and Fire logging.
  • Resolve app host templates for the exact requested runtime version
  • Support optional assembly references with cache invalidation and dependency manifest updates

Elements RTL

  • Allow assembly-wide writes to the response exception property
  • Use tolerant decoding for streamed response data and update exception construction

Island RTL

  • Accept Cocoa record boxes without treating them as Island objects
  • Add Single min, max and sign overloads without changing Double semantics
  • Avoid boxing scalar comparisons and honor custom equality
  • Avoid recursive roundf calls by binding directly to the SLEEF rounding export
  • Bound parallel workers and return safely after loop failures
  • Clear disposed GC handles and fix reuse of freed slots on 64-bit targets
  • Compare string buffers directly to avoid repeated bounds checks
  • Complete Fuchsia runtime support
  • Declare Darwin autorelease and scalar math imports
  • Document shared Island runtime entrypoint and CI failure propagation
  • Explain why Island MethodInfo.Invoke copies argument bits unchanged
  • Expose string bounds checks so character loops can vectorize
  • Fix condition-variable deadlines and infinite waits on POSIX
  • Fix container growth, enumeration and range handling
  • Fix file access and transfers, and parse integers without temporary arrays
  • Fix foreign GC references to retain objects instead of boxed pointers
  • Fix Island fallback Floor changing negative integers and losing signed zero
  • Fix Island MethodInfo.Invoke passing zero for Single(1) on macOS ARM64
  • Fix Linux constructor-table overread and ARM64 FFI selection
  • Fix Pascal set boundaries, enumeration and subset operations
  • Fix sequence results and preserve data through stream and range operations
  • Fix StringBuilder edits and avoid temporary copies
  • Fix Win32 Int64 division and remainder for negative operands
  • Fix Windows C string searches and strncpy return value
  • Fix x64 rounding exports, exception handling and event creation
  • Group runtime regression tests and check container roots through collection
  • Guard array iteration and bounds before changing loop lowering
  • Handle null arguments during dynamic invocation and test reference and value type binding
  • Honor requested StringBuilder capacity
  • Implement Windows ARM64 reflection calls and repair exception unwinding
  • Island Win32: repair catch bridge and unwind state; share EH regressions across platforms
  • Keep foreign GC roots keyed by the original object
  • Keep native references alive in Cocoa record boxes
  • Keep parallel enumeration on the caller and close runtime ownership gaps
  • Keep pool saturation guard occupied through every nested check
  • Keep POSIX exceptions rooted and preserve handlers through nested cleanup
  • LLVM 23 upgrade: add Single Sleef math overloads and break Windows roundf recursion
  • Match signed-zero hashes and correct integer type classification
  • Modernize native socket support and tests
  • Preserve fractional seconds in POSIX DateTime.UtcNow
  • Preserve owned record values when copying and clearing collections
  • Preserve record ownership and boxed receivers in ARM64 reflection
  • Preserve Windows ARM64/x64 exception state across locally handled cleanup exceptions
  • Prevent Island Win32 sqrt exports from recursing through SLEEF
  • Remove StringBuilder append temporaries and reject overflowing ranges
  • Return correct task wait results and close waiter events safely
  • Speed up Island string loops with one unsigned bounds check
  • Speed up string search and comparison without temporary objects
  • Speed up Windows ARM64 memory helpers and fix memset
  • Stop sequence reads at their limit and release comparison enumerators
  • Test array loop source evaluation, references and iterators
  • Test array transforms at vector boundaries and preserve writes before bounds errors
  • Test bounded string scans at vector and protected-page boundaries
  • Test empty set membership through its supported operator
  • Test ordinary workloads so optimization changes preserve their results
  • Tests: Isolate Windows thread-pool regression guards in child processes to avoid reused workers affecting strict pool-limit tests
  • Transfer foreign exception ownership after selecting an Island catch
  • Treat nil sets as empty during membership checks
  • Use base FX x64 define for POSIX reflection bridge
  • Use exact reduction so IEEE remainder handles ties and extreme quotients
  • Use nearest-even public rounding while preserving C round semantics
  • Use SLEEF math on Linux ARM64 and x64 and provide x86 roundf
  • Validate native command-line arguments during startup

Internet Pack

  • E27926: ESP Response.Status ignores a custom status description on the wire
  • E27927: Support chunked request bodies in the ESP host