HOME > Download > Release Notes - Curl IDE 8.0.1001 - 8.0.7001
Download : Release Notes

Release Notes - Curl CDE 8.0.1001 - 8.0.7001

This is the release notes for the Curl Development Tools for Eclipse (CDE) and Curl IDE version 8.0.1001 - 8.0.7001

Curl IDE release notes are available.

The following bugs have been identified for the CDE in the 8.0.1001 release:

34129 If you start Coverage Viewer or HTTP Monitor before starting CDE, you cannot start CDE even if close the tools.

Workaround: Shutdown Curl process via Curl Control Panel. Then you can start CDE.

29084 If a Curl source file define a Byte Order Mark for a UTF-8 encoding then CDE will use UTF-8 to decode the contents, regardless of the "curl-file-attributes" value defined in the source.

29115 The Run | Toggle Method Breakpoint menu pick is not implemented.

29425 On Linux, sometimes when you open a Curl file the Curl editor commands are disabled.

Workaround: You can refresh the commands to be enabled by toggling focus of the Workbench window. You can also click another editor or any Eclipse part, and click back in the Curl editor.

31979 In the Classic IDE, if a runtime exception ocurred inside code for which there was no source information, the stack would be searched for the first frame where there was such information and that frame would be selected to show the error. In CDE2, the first frame in the stack is always selected whether or not it contains source information.

32098 If you are debugging a project in the CDE and attempt to switch workspaces or restart Eclipse, the classic IDE will startup when Eclipse restarts.

Workaround: You can close the classic IDE and continue to use Eclipse.

32720 There are some compatibilities issues with the SVN plug-in with the default SVN settings. The command "Synchronize with Repository" will fail when invoke from a package node in the project explorer. Workaround: open the SVN preference page, select the "View Settings" tab, and uncheck "Allow models (e.g. Java) to participate in synchronizations".

32906 Any Curl applets being debugged can be left active (not terminated) when you shutdown Eclipse. You can terminate these applets manually by quitting the applet or terminating them from the Curl Control Panel.

33668 CDE - Scratch Pane: focus issue after focusing in curl applet area
On Linux platform, after executing the scratch pane, if you click in the curl applet area, then click back in the input area (or any eclipse widget accepting keyboard events), you'll notice that keyboard events are ignored. The workaround for now is to terminate the scratch pane applet (click the red button "Stop Execution"), terminating the applet has the side effect of transferring the focus back to eclipse.

Release Notes - Caede Development Tools 3.0.0 for CDE

This is the release notes for the Caede Development Tools(v3.0.0) for CDE

The following bugs have been identified for the Caede Development Tools in the 3.0.0 release:

caede 4198 Eclipse v4.2 sometimes crashes when closing a Caede application preview dialog.

Workaround: Use Caede development tools with eclipse version 3.7.2 or 4.3.2 instead.

Release Notes - Curl IDE 8.0.1001 - 8.0.7001

Known Issues - Curl IDE 8.0.1001 - 8.0.7001



Must log out and log in again to see linux start menu items

On Linux systems running the Gnome window manager, the Start Menu items are not displayed following installation of the Curl IDE.

Workaround: Log out and log back in to force the Start Menu items to display.

Linux start menu items not created for KDE

On some versions of Linux running KDE, installing the Curl RTE and Curl IDE does not create Start Menu entries.

Workaround: Run these applications from the command line.

Curl RTE => /opt/curl/surge/9/surge
Curl IDE => /opt/curl/surge/9/surge-lab

Note that if more than one numbered subdirectory exists, you need to invoke the highest numbered one. That is, /opt/curl/surge/6/surge rather than /opt/curl/surge/5/surge


Compiler sometimes generates bad code under rare conditions

When calling continue with a specified tag in multiple loops, variable defined outside the loops may not be updated(when it should be) under rare conditions.
Here is a piece of sample code:

{define-proc {bar}:void
    || Block B0
    let x:int = 0, i:int = 0

    {while tag=out, i < 2 do || B1,B2
        || Block B3
        let j:int = 0
        {for m:int = 0 to 3 do
            {while j < 2 do || B5, B5

                || Block B6
                || {do x} || uncomment to make bug go away
                {if i == 1 and j == 1 then || B7
                    || Block B8
                    {output "  continue"}
                    {continue tag = out}

                || Block B9
                {inc x}
                {dump x, i, j}
                {inc j}
     next || B10
        || Block B11
        {inc i}

    || Block B12
    {dump x} || B12
} || B13

At "Block B12", "3" should be dumped out, but "2" is printed instead.


before calling {continue tag=out}, call {do x} (where x is the variable that is in trouble, this non-op code will do no harm to your application).

Core Library

round-to-even? option is not implemented in Decimal.round-to-scale

The Decimal.round-to-scale method has a round-to-even? keyword argument but the value of this argument is ignored; the computation always proceeds as if this argument had the default value of true. For example, the Curl expression {value def v = 1.545i {v.round-to-scale 2, round-to-even? = false} } will return 1.54, even though it should return 1.55.

GUI and Graphics

Underline on trademark symbol on Linux

If an underline style is applied to a trademark symbol, the underline position may be offset relative to adjacent characters on certain Linux systems.

DrawableGraphic.occlusion-performance-mode limitation

There are three possible settings for DrawableGraphic.occlusion-performance-mode, "high-performance", "accurate-occlusion", and "best-effort". At the present time, "best-effort" is the same as "high-performance" mode. If your applet requires DrawableGraphic objects to overlap with other kinds of graphical objects, specify "accurate-occlusion" mode explicitly.

BasicConnectedRecordSet converts empty strings to null value

In a ConnectedRecordSet, empty strings in nullable columns get converted to nulls when the recordset is committed. This is an unusual case, and can be avoided by using stricter table definitions (specifically, non null constraints).

Letters in italics sometimes clipped

Any character has one bounding box that is appropriate for text layout and possibly a different bounding box that is appropriate for drawing. The Curl RTE uses the layout box in both cases. As a result, the first or last character in a line can sometimes be clipped slightly. The same effect is at times seen in most web browsers.

Directory names for Find in Directory are Case Sensitive

If you use the IDE's Find dialog to search in a directory, you can specify a regular expression for the file names to look for. On windows, this regular expression matching should be case insensitive, for example, the pattern "*.h" should match the file "WINERROR.H".

Modal Dialogs on Linux

Modal dialogs do not disable the parent window on Linux. They are still effectively modal, however.

TextShape with Negative Scale Rendered Incorrectly

If you use a negative scale amount on a TextShape, the text should be rendered in a mirror image. This does not work correctly on all renderers. There is currently no workaround for this problem.

Transparent backgrounds and pointer event propagation

If a background is set on an object, it is assumed to be opaque. This means that even though you may see another object behind an object with a transparent background, pointer events are blocked by the object in front. The workaround is to unset the background of the object in front instead of setting it to "transparent".

QuickTest Playback of right-click Menus not Implemented

If you record a right-click menu action using Mercury QuickTest, it will not play back properly. In most cases the same action will be available on the main menu and/or via a keyboard shortcut. Recording one of these alternatives can be used as a workaround.

Quick Test Professional could no longer record actions in Curl applets

From Windows 8, Curl applets can not be recorded by QTP . If you want to record actions on Curl applets, please use Windows 7 and QTP version 10.00

In QTP, GroupBox label Used to Describe Control

The QTP "test-name" property is not always the same as the test-name property on Curl controls. The QTP test-name is the control is the Curl test-name if there is one, otherwise it is the "description" of the control. Also, many controls do not have a description internally (such as a button label) so they look for a label preceding themselves and use that as the description. The first control in a GroupBox may therefore end up using the GroupBox label for its description. The workaround is to assign a test-name in the Curl code for this control.

QTP user functions cannot have the same name as Curl objects when TEA-manager.xcurl is running

When using Mercury's QuickTest Professional (QTP) to test Curl applications, the test names given to the Curl controls in the appolication cannot be same as any QTP user function.

Unregister QTP button on control panel does not work on Vista

When running the Curl RTE and Mercury's QuickTest Professional on the Microsoft Vista operating system, you will only be able to use the Register and Unregister QuickTest button on the Curl RTE Control Panel unless you turn off User Access Control (UAC) on Vista.

Using CTRL+click or Apple Key+click on a link to a Curl applet does not open new tab

If you hold down the control key on a PC or the Apple key on a Mac and click on a link to a Curl applet, the linked applet will not open up in a new tab.

GDI+ can use invert-destination via GDI now

On Windows, if you perform 2D rendering with DrawOperation.invert-destination on a Renderer2d based on Microsoft's GDI+, instead of inverting the destination, the renderer will use a hatched pattern. (You will be using GDI+ if you set the global or View RenderingMode to high-quality, or if you use a Canvas, AntialiasedFrame, or offscreen Renderer2d with use-host-rendering? = false and support-advanced-draw-operations? = false.) Please note that this behavior may change in a future release of Curl.

The height of a DropdownList will shrink if an empty string is one of the list members

The height of a DropdownList may vary depending on the item selected, if the items in the list do not all have the same height. One common case that there is a blank item in the list. This can be coded to use a nonbreaking space for the label of the item where the value is the empty string:

    {ListValueItem "", label = {text \ }}

Curl IDE, VLE and Documentation

Incomplete file for Debugging

If you set a breakpoint at the top level of an applet loaded from an http URL, when you hit the breakpoint the file may be only partly displayed.

The recommended practice is to to use the IDE's server mapping feature to debug files from an http server. In the IDE, choose Preferences... from the Edit menu and select the General tab. Check the Enable URL mapping button and fill in the information required.

VLE Extension Editor Can't See Unsaved run-time Package Files

VLE Extension Editor will not be aware of any changes to files open in the IDE with changes that have not been saved. To work around this problem, save all modified files in the IDE before working with the Extension Editor.

Linux: User can launch IDE before package caching completes

Developers are not prevented from launching the Curl IDE on Linux before the installation process has completed; there is no visible indication that the installation has completed fully.

Workaround: After installing the Curl IDE, and once the 'rpm' command invocation has returned successfully, some installation tasks to compile and cache IDE packages continue in the background. Invoke 'ps' and look for instances of the 'surge' process. When none appear, installation is complete. On a very low end machine, or a very busy one, this background processing may take a few minutes. On more powerful machines, this step rarely takes more than 1 minute.

The Curl IDE will execute properly even if it is started before these background installation tasks complete. However, performance may suffer both initially and going forward, so waiting for background installation tasks to complete is strongly recommended.

pcurl evaluates conditional 'include's based on deployer's environment rather than on user's

Conditional includes in pcurled package files are evaluated based on the deployer's machine environment, not the user's. This behavior is wrong since the pcurl version should behave identically to the Curl source version, which evaluates conditional includes based on the environment where execution takes place.

A package should behave the same after pcurling as before. Use of api-version-switch, platform-switch, etc. can lead to misbehaviors in pcurled package files.

For example, consider this code fragment.

   case "7.0" do
      {include "old-source-file.curl"}
   case "8.0" do
      {include "new-source-file.curl"}
      {error "error"}

This code will work fine during developer testing, but will include the version of the file which is chosen based upon the developer's api-version when the project is deployed.

Workaround: Do not use conditional includes in deployed packages.

Expanding a Large Array in the Debugger

Use care when expanding an array in the debugger. There is currently no limit on the number of items that can be displayed.

Changed project settings are not undone by Undo Checkout

Changed project settings are not undone by Undo Checkout. You must close and re-open the project after the undo operation. This problem only affects users that Undo Checkout on a project file, and only in the case where the project's target settings were changed.

Chart Invisible Until width and height are Set

In many circumstances a Chart object will be invisible unless you set the width and height explicitly. If you add a Chart to a layout in the VLE and it is not visible, try setting the width and height.

VLE Allows Top Level Objects for Wrong API Version

The VLE's New File and New Layout dialogs let users specify the type of container object to create for the layout's top-level object. However the VLE makes no attempt to limit this list to only the objects that are valid for the file's API version. For example, if you have a 3.0 project, open the VLE, and choose New File, the dialog shows a default API Version of 3.0. However, the list of top-level containers includes 5.0 containers such as TabAccordion. If you are working in an older project, be careful not to choose an inappropriate top level container.

VLE Extension editor Supports Current Version Only

The VLE Extension Editor only supports the current API version. To construct or modify a VLE Extension for a particular IDE version, you must install that IDE.

IE 7 thinks Curl applet is still loading when running file from the IDE

If you use Internet Explorer 7 with the tabbed browsing feature turned off, when you run a Curl applet you may see that IE 7 displays the animated spinning icon by the address filed, indicating that IE 7 thinks the applet is still loading although the file has completed loading.

If you reload the applet in IE 7, the animated spinning icon will stop when the appplet finishes loading.

Debugger cannot find source for applet stopped due to RTE error

In the Classic IDE, if a runtime exception ocurred inside code for which there was no source information, the stack would be searched for the first frame where there was such information and that frame would be selected to show the error. In CDE2, the first frame in the stack is always selected whether or not it contains source information.

File Manipulation, I/O, OCC and Persistent Data

Curl exiting doesn't flush I/O buffers

If you open a Curl file, write to it and exit, any buffered data will be lost when Curl exits. This results in not all the data appearing in the file. In order to get around this problem, "flush" must be explicitly called, or the file must be closed before Curl exits.

curl://occ always opens in default browser

On Windows, OCC applets ("curl://occ/...") open in the default browser even when the Url is entered in the address field of a browser which is not the default.

Last Modified time sometimes shown as None with IIS server

The Last Modified time in the Temporary Internet Files is correctly set the first time a package is loaded, but on subsequent loads (with IE and Curl shut down while the package is edited to change it) the Last Modified Time is shown as None.

Because the 'resync-as-of' parameter in manifests and applets depends upon the Last Modified Time, manifests and applets appear to be up to date even when they have changed.

Workaround: No recommended workaround is known at this time. This problem appears to be a limitation in the IIS web server, so deploying to other web servers will avoid the problem. Changing the 'resync-as-of' time to a value in the distant future will force the applet or manifest to always reload, which is not advised for performance reasons.

Linux: Need support for 'network-offline-mode?'

'network-offline-mode?' is not supported on Linux.

Workaround: Use 'network-disconnected?' to determine whether or not the network is accessible as a close proxy for 'network-offline-mode?' on Linux.

curl://offline doesn't update the OCC applet from 6.0 to 7.0 or above

Curl has redesigned its Occasionally Connected Computing (OCC) feature in its 7.0 release. In 7.0, OCC applets can be installed and registered with the host OS much like any other application, complete with launcher icons and uninstallers. Installed 7.0 applets run off the local disk and are automatically updated from the network when Curl detects an update on the applet's originating server.

With 7.0 installed, 6.0 OCC applets continue to behave as before. A 6.0 OCC applet runs its network copy when the network is available, falling back to the local copy only when its computer is offline. Because of this difference between 6.0 and 7.0, it is not possible to use Curl OCC's automatic applet updating feature to migrate a locally-installed OCC applet from version 6.0 to version 7.0 of the RTE.

If you have an OCC applet coded to the 6.0 API version of the Curl RTE, and you want to update it to use the improved OCC features of 7.0, you have two options. First, you can deploy the 7.0 version with a different URL from its 6.0 version. The 7.0 RTE will treat the new URL as a different applet and offer to install it as with any other new OCC applet it detects. An alternative is to instruct the users of your 6.0 applet to uninstall it before running the new 7.0 version of the applet. The 7.0 Curl Control Panel provides a new "Installed" tab to manage the local disk support for installed applets. Local support is organized by webserver hostname. Clicking the "Remove all local support for server" link will delete any legacy OCC applets installed using the Curl RTE versions 6.0 and earlier.

Operating System, Browser and Server Issues

IE Javascript problem with window containing Curl applet

If an applet is opened using JavaScript's window.open call in Internet Explorer, that window will not be closeable using window.close, unless the window.open call has happened again while the window was already open.

Workaround: If an HTML page with the applet in it using an EMBED/OBJECT/IFRAME tag is opened with window.open, then the window will be closeable with window.close. This bug is known to Microsoft, and may be fixed in future OS service packs.

IDE does not unminimize existing Firefox window when running applets

If Firefox is your default browser, and it is running with its window minimized, when running an applet from the IDE, the applet runs in the browser, but the browser window remains minimized instead of being restored.

Issues with tabbed browsing in Firefox

The use of tabbed browsing in Firefox is not fully functional when viewing Curl applications.

We treat all applets as sticky on mozilla-based browsers

In the following browsers, all Curl applets are "sticky". That is, they run as if '{applet.become-sticky}' appears in the applet source code. Therefore, browsing to the Url of an applet which is already in the browser history simply returns to the existing applet instance.

This limitation affects:

  • all versions of Firefox

Workaround: None. This is a limitation in the Mozilla-based browsers, which do not support providing history information to plugins.

Crash when is denied

Do not deny connections to ip address in your firewall. The Curl RTE and Curl IDE rely on this loopback address for internal purposes. These products will not function if access to ports on this address are blocked.

Our Mozilla lacks Japanese resources

The Curl RTE on Linux will use a copy of the Mozilla browser which is included with the Curl RTE, when it needs to spawn a web-browser, if it can't find a suitable web-browser already installed on the machine. This copy of Mozilla only includes English resources, regardless of what language the user might use.

Linux: "control-key shows mouse cursor" prevents Curl's control-key processing

On Linux, if you select "control-key shows mouse cursor" it prevents the Curl runtime from receiving the control-key state.

On Linux, Curl doesn't copy over Firefox profiles so user settings will be ignored

Curl RTE on Linux uses Mozilla based libraries to handle http: and https: URLs, and makes copies of the user's most recently used Mozilla profile to get various settings like Proxy servers to be used and client side certificates to use. However the Curl RTE does not copy over Firefox profiles, so Firefox users would need to run Mozilla to make changes to settings that would be seen by the Curl RTE.

Security warning when starting surge on Vista with IE 7 in protected mode

If you install the Curl RTE or Curl Lab on Microsoft's Vista with the process ieuser.exe running, when you try to load a Curl applet, you will get a security warning indicating that:

"A website wants to open web content using this program on your computer...."

To workaround this problem, you can:

  • make sure that ieuser.exe is not running when you install the Curl RTE, or,
  • reboot after installing the Curl RTE

In IE7 Quick Tabs view, Curl applications are displayed as icons.

Due to a limitation in Internet Explorer, the Internet Explorer 7 Quick Tabs view will show Curl language applets as just an icon, and will not show an image of the Applet content.

Curl applet open in both new tab and new window in IE with multi-tab setting

With newer versions of Internet Explorer, version 7.0 and newer, if you have IE set to use tabs and display new pages or links in a new tab, you can get a new version of a the Curl applet in a new tab each time you run the Curl applet from the IDE.

Workaround: Change the setting for opening new pages or links to open in the same page in IE.

API - Language Issues

Indeterminate atan2 results vary between platforms

The math library function atan2 behaves differently on different platforms in the indeterminate case when both of its arguments are infinities. On some platforms, not-a-number is returned, while on other platforms, a finite number is returned. This difference results from differences in atan2 in the underlying standard math libraries on the different platforms.