New Features and Fixes in the Delphi Prism May 2009 Release

By: Tim DelChiaro

Abstract: This article lists all the new features and fixes included in the Delphi Prism May 2009 Release

This article lists all the fixes included in the Delphi Prism 2009 May 2009 release. You can also view it with clickable links to more information on the new features on the Delphi Prism Documentation Wiki.

If you have the initial release of Delphi Prism 2009, you can download the May 2009 release free of charge from http://cc.embarcadero.com/reg/delphi_prism. If you have RAD Studio 2009 with Maintenance you will receive a download notification from Embarcadero Support. The Delphi Prism May 2009 release is not available to RAD Studio 2009 users who haven't purchased maintenance.

If you're unsure which release you have, select Help | About in the IDE. The original release will display Embarcadero Delphi Prism 3.0.14.559. The February 2009 release will display 3.0.17.591. The May 2009 release will display 3.0.19.611.

    May 2009 Release (3.0.19)

Major Compiler Features

  • RemObjects Cirrus: AOP for Oxygene (shipping as Tech Preview)

  • Standard Aspects Library for RemObjects Cirrus (shipping as Tech Preview)

  • Unmanaged Exports

  • Generic Type Variance

  • Volatile fields

  • CLSCompliantAttribute support and compiler warnings

  • New LINQ Query Expressions operators Skip, white, take and take while

    Minor Compiler Features

  • Unquote expression support (mainly to support Cirrus)

  • $DELPHICOMPATIBILITY compiler directive and project option

  • Runtime range checking

  • Range Enum Types (e.g. "type Ten = 1..10;")

  • Read-only classes

  • Support for negative low bounds in Array Types

    Other New Features

  • CodeDom enhancements to support OxygeneInterface, OxygenePartial and OxygeneEmpty tags in UserData

  • Pre/Post build events

  • Debug options: Remote Machine

  • Custom "Add Reference" pane for adding Mono assembly references

  • New MVC ASP.NET Project and Item Templates

  • New Monobjc Template and Monobjc libraries deployed with Delphi Prism

  • Updated setup to install the latest Mono 2.4

 

    Change Log

New in Version 3.0.19 (Build .611)

(Status: May 7, 2009)

Features

  • 5737: New Monobjc support and templates (and ship Monobjc libraries with setup)
  • 5724: New $DELPHICOMPATIBILITY Flag and Project Option (currently controls = vs := and nested classes syntax)
  • 5689: New MVC ASP.NET Project and Item Templates
  • 5667: Support for compiler warnings when using the CLSCompliantAttribute
  • 5647: Runtime range checking
  • 5627: Range enum types ("var x: 10..20")
  • 5561: Support for Delphi class nesting syntax (when using $DELPHICOMPATIBILITY)
  • 5540: LINQ Expression Quoting support (for Cirrus)
  • 5502: Support for negative low bounds in arrays (RAID 266750)
  • 5334: Volatile fields
  • 5289: Unmanaged exports
  • 5273: Generic type variance
  • 5146: CodeDom enhancements to support OxygeneInterface, OxygenePartial and OxygeneEmpty UserData tags
  • 5127: LINQ: Skip/White/Take/TakeWhile operation
  • 4810: Read-only classes
  • 4253: Pre/Post build events
  • 3934: New debug option: Remote Machine
  • 3823: Provide a custom "Add Reference" pane for Mono

Tech Preview Features

  • 5645: Cirrus: Standard Aspects dll for Prism
  • 5480: Cirrus: AOP for Oxygene

Enhancements

  • 5753: Deploy to latest Mono distro (2.4)
  • 5694: Automatically hide PW3 for constructors (but warn whenassigning "a := a")
  • 4800: Optimize inline sets when a sequence matches

Fixes

  • 5794: TakeWhile produces an internal error
  • 5791: Form Designer cannot open (a specific) form when VS is started
  • 5784: Generic Handler produces source code that doesn't compile
  • 5780: No CC inside @ handler
  • 5779: "in" is not allowed in or before inherited ctor calls
  • 5777: Add nesting for .ashx and related files
  • 5775: Method types with "out" or "var" parameters do not compile (RAID 269106)
  • 5771: Internal error in compiler when mixing generics & classrefs
  • 5767: Debug Position of a VAR statement is too short
  • 5766: Params should check if it's actually an array type
  • 5765: When completing a property through cSpace, the IDE adds full types
  • 5761: Delphi Prism functionality is not available to users on the same Windows machine who did not install the product (RAID 269040)
  • 5760: When invoking CC on a generic and nested class, Visual Studio disappears (RAID 269061)
  • 5755: Forgetting to supply arguments when raising an event causes an internal error in the compiler (RAID 268979)
  • 5751: Silverlight project loses CC after first compile/debug
  • 5748: Error when using component designer in ASP.NET Web Application Project
  • 5746: Invalid "unreachable statement detected"
  • 5745: Code causes IECW
  • 5743: End row/column of a parent statement should be the start of an anonymous method when there is one in the static
  • 5742: "Default Namespace" gets lost when editing project properties
  • 5738: EE fails to show data for any generic collection
  • 5735: GetMembers not working for internal types
  • 5733: Cannot use Saxon .NET Assembly (RAID 268929)
  • 5732: Error: generic paramter T for this method call could not be fully resolved (RAID 268928)
  • 5731: Application failure at runtime when using compiled code
  • 5730: SetBody with RequireParameters fails
  • 5728: TypeLoad exception with changed method visibility (RAID 268836)
  • 5727: Internal error with UIn32 -> constant double conversions
  • 5726: Fix the fonts in the Project Options panels & Mono panel
  • 5721: Compiler error on use of parameterized method (RAID 268765)
  • 5720: Can't declare parameterized type in implementation section (RAID 268764)
  • 5712: snippet is generating a PH4 warning (never used) on the fConnector field (RAID 268690)
  • 5704: Inconsistent method type and anonymous method declaration (RAID 268611)
  • 5701: .NET Tools Not Executable From Oxygene Command Prompt (RAID 268242)
  • 5695: CodeModel does not complete in two places
  • 5693: The compiler cannot find a declared class
  • 5685: No CC in "if" after "= nil" expression
  • 5684: ASP.NET debug positions are off
  • 5683: MH shows badly for Extension Method
  • 5682: Completion between two dots gives no CC
  • 5681: "join" CC can do with some work
  • 5678: Code completion issues in web project
  • 5673: Invariants: no check for private fields (RAID 268336)
  • 5672: Bad CC after 'class'
  • 5671: Can't compile the following code with generics. "GetMetaClass" missing. (RAID 268358)
  • 5670: Method Hints show positive default values instead of negative (RAID 268318)
  • 5669: Use of the "async" keyword can produce an internal compiler error (RAID 268317)
  • 5649: integer out of range error for ushort
  • 5648: anonymous class with "nullable Guid" fails on nil Guid
  • 5639: CC not working in default indexer at times (RAID 268098)
  • 5624: Debugger can't be used to evaluate type argument in generics (RAID 268033)
  • 5621: Newly created event handler in ASP.NET isn't shown immediately
  • 5619: Bad CC in the implementation section
  • 5612: Code completion list has repeated properties.
  • 5601: .NET 3.5 references in new project from templates show as broken on Windows 7 (registry paths got changed)
  • 5600: Bad indentation for "implement interface"
  • 5593: IDE crashes after a period of time
  • 5590: Pull WPF Browser template again, until it works right
  • 5572: Cocoa apps shouldn't be runnable on windows
  • 5566: Can't use a generic interface with a nested class
  • 5515: "locking" and class contracts problem (support for locked methods with invariants in them) (RAID 266848)
  • 5485: Element does not show in CC
  • 5402: Mixing "notify" with existing PropertyChanged event doesn't work
  • 5315: ASP.NET web app cannot load in browser without opening the Global.asax.pas file in visual studio.
  • 5117: EE doesn't support RefAny type (used by new WITH syntax)
  • 5064: Array element access doesn't work in EE
  • 5063: Unused namespaces aren't accessible from the EE
  • 4980: Coerce/fnn #2
  • 4200: need TType.GetAttributes

    Fix List

New in Version 3.0.17 (Build .591)

(Status: February 20, 2008)

Features

  • 5573: Ship Internet Pack as integrated part of setup
  • 5543: Integrated F1 help based on offline wiki (RAID 265728)
  • 5317: Need Templates for ASP.NET Web Projects (RAID 266466)

Enhancements

  • 5586: Update Setup to install Mono 2.2 instead of 2.0
  • 5567: Optimisation for integer constants in floating-point expressions (RAID 267782)
  • 5553: Compiler only uses the 4 string overloads of String.Concat (RAID 267625)
  • 5546: Multiline "else" support in "case" statemements, for Delphi compatibility (RAID 267618)
  • 5454: Setup should persist for future installs whether "Show Readme" was checked
  • 5518: New LINQ example
  • 5504: Calling a Final Method uses callvirt (RAID 266754)
  • 3563: New WCF sample
  • 1969: Support for emitting x64/ia64 assemblies

Fixes

  • 5611: Sometimes "Complete Class" command doesn't work
  • 5599: Silverlight: "operation could destabilize the runtime" (RAID 267962)
  • 5589: Problem with Silverlight app
  • 5585: "System.String.String" passed to help engine
  • 5584: Cmdline setup deploys wrong license
  • 5577: Anonymous methods don't initialize their fields (RAID 267838)
  • 5565: NHibernate Linq Example in Delphi Prism and csharp do not produce the same results (RAID 267780)
  • 5564: Compile error on use of < operator (RAID 267696)
  • 5563: compiler generates invalid IL (RAID 267688)
  • 5559: IDE messes up project references
  • 5557: CC goes away after first expression term
  • 5556: The debug engine locks pdb/exe files.
  • 5555: "Create installer" not working in service project
  • 5552: Comments interfere with code completion (RAID 267624)
  • 5551: Generic constraint not validating (RAID 267623)
  • 5550: Mixing the async-statement with invoking an anonymous method doesn't work (RAID 267622)
  • 5549: Generics, iif and nil problem (RAID 267621)
  • 5548: Can't set a default value of Nil for a Nullable method parameter (RAID 267620)
  • 5547: ^ as a type (RAID 267619)
  • 5544: Adding a ref to Mono.Security.ddl is mistakenly as a COM dll
  • 5541: String encoding problem in compiler
  • 5536: Debugger can't be used to evaluate a collection expression (RAID 267357)
  • 5535: Debugger can't be used to evaluate array expression (RAID 267356)
  • 5533: The CodeDom won't escape members/types named "property" (RAID 266915)
  • 5532: IDE freezes when "Saving As" (RAID 266914)
  • 5526: Click Event Handler in Properties' event may not move cursor to correct handler code (RAID 266893)
  • 5521: "for matching" in iterators yields bad IL (RAID 266865)
  • 5520: CC shows two overloads for System.Exception.GetType (RAID 266863)
  • 5514: "of" omission from CC after "array" (and sequence and all) (RAID 266844)
  • 5507: Class completion knocked out by changing Build options (RAID 266778)
  • 5503: Error when invoking "New Project from Existing Source" in Shell (RAID 266751)
  • 5501: Issues with overriding properties (RAID 266734)
  • 5491: Problems adding datasource web reference
  • 5490: bug in anonymous replacer code: (Old style) Locals that are used in LINQ are removed but locals after it are not properly moved
  • 5483: Invalid Compiler Warnings
  • 5476: Problem with colon operator in "require"
  • 5473: CodeDom's GeneratePrimitiveExpression doesn't support unsigned ints and other non-CLS value types
  • 5471: Code Editor and try except finally end
  • 5470: Problem with "For each matching" on String
  • 5466: Certain Code gives runtime "invalid code" error but peverifies ok
  • 5465: CustomTool on RESX should not be set when adding existing/moving from other project when it can be paired with a form
  • 5464: IDE freezes up for a few seconds after simple property change
  • 5463: Component licensing fails if MacPack renames executable to match bundle name
  • 5462: LICX fails to load project refs from network drive
  • 5459: SupressUnmanagedCodeSecurityAttribute needs an implicit HasSecurity flag
  • 5458: Assigning arrays to parallel sequences
  • 5457: another MOQ issue
  • 5456: Problems navigating to existing event handlers in ASPX after page or project was reloaded (RAID 266878)
  • 5450: Loads of internal "ArgumentExceptions" in UpdateSolution_begin/Done"
  • 5448: Reference path smarts do not work for refrences added from DB wizard
  • 5447: Bad code generation: Anonymous methods, BeginInvoke and Inherited properties (RAID 266834)
  • 5432: Error adding a Calendar control to a Silverlight application (RAID 266795)
  • 5412: Compiler sometimes requires unnevcessary semicolon after conditional code
  • 5404: LocalXMLDataStore.2008 shows build warning (RAID 266700)
  • 5403: Can't create an array of Nullable Integers.
  • 5402: Mixing "notify" with existing PropertyChanged event doesn't work (RAID 266697)
  • 5396: 50K memory increase per new project and close (RAID 266669)
  • 5392: Implement VSProject.GenerateKeyPairFiles
  • 5380: IDE freezes when double-clicking an event handler
  • 5379: Bad program info in Add/Remove programs
  • 5376: After adding a new XSD, the .designer.pas shows as "...\" (RAID 266654)
  • 5375: PDB files get locked in IDE
  • 5366: Ship "Prism" IDE package localizations (RAID 266567)
  • 5359: optimize: make sure GetInterface doesn't create a new instance
  • 5340: Failure to load obfuscated dlls
  • 5333: "Error in code model - can't complete class" is not translated (RAID 266512)
  • 5321: Unchecking "Save on Create" stops all saves (RAID 261795)
  • 5307: Translation of "Oxygene Development Setting" (RAID 266459)
  • 5287: Web Service including .XSD can't be imported. (RAID 266373)
  • 5284: make auto-reload rebuild CM immediately (RAID 266348)
  • 5279: Cannot select UTF-8 when unicode included in text code (RAID 266261)
  • 5254: Save As destroys form / project (RAID 266272)
  • 5253: Winform designer: After renaming file or "Saving As", the form loses controls
  • 5251: Can't launch menu for "Web Reference" in ASP.NET Application. (RAID 266256)
  • 5162: Fixes to Silverlight output directory handling
  • 5157: Parallel loops when altering local variables result in no changes to local variable (side effect of closure variable handling)
  • 5114: Avoiding CC collisions between single-characther lambda variables and auto-uses
  • 5082: Three project files/project creation issues
  • 4970: CC in extended ctor call doesn't work when it's used the first time
  • 4948: Bad CC inside a method call that can't be resolved
  • 4929: Issue with generics that constrain eachother
  • 4865: Duplicated MH-list and missing parameter XmlDoc
  • 4861: No event-method-create for generic types in "with"
  • 4661: Fixes to Silverlight Build options
  • 4393: Fix web property page & start page persistence


Server Response from: ETNASC04