Release Notes - Curl RTE 8.0
Known Issues - Curl RTE 8.0Contents
- Installer
- Compiler
- Core Library
- GUI and Graphics
- File Manipulation, I/O, OCC and Persistent Data
- OS, Browser and Server Issues
- The Curl Control Panel
Installer
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 does not create Start Menu entries.
Workaround: Run these applications from the command line.
Curl RTE => /opt/curl/surge/9/surge
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
Local variable won't update in tagged loops under rare conditions
We have discovered an issue in the handling of some cases of tagged 'continue' statements that continue to an outer 'for' loop or an outer 'while' loop that contains a 'next' clause. If the 'continue' statement is in a conditional block that is followed by a statement that updates a local variable declared outside the outer loop, the update may not be properly executed if the 'continue' statement is executed. For example: let x:int = 0 {for tag=outer, i = 0 to n do ... {while some-condition do {if jump-out then ||: {do-nothing x} {continue tag = outer} } {inc x} } } Once the 'continue' statement has executed, the outer loop will not reflect the correct value of 'x'.
Workaround:
If you observe this problem, one easy workaround is to insert a call to an
empty function that takes 'x' as an argument (such as:{do x}
).
The function can be an empty function containing no statements. The call
can be inserted just before the 'continue' statement.
Core Library
Calling encryption API might cause error dialog showing: "CryptAcquireContext(encryption) Failed: Access denied. (5)"
If "Special permissions" have not been granted for the Everyone group in the following folders, when calling the encryption API (e.g. the constructor of SessionKey), the "CryptAcquireContext(encryption) Failed: Access denied. (5)" error dialog may appear.
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
Workaround: Execute the following command to grant "Special permissions" to the Everyone group in the above folder. (Execute with administrative privileges if necessary.)
icacls "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" /inheritance:e /grant Everyone:(RD,RA,REA,WD,AD,WA,WEA,RC)
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
Some characters cannot be entered correctly with the IME pad on Windows 10.
If you select a surrogate pair character such as a four-byte Unicode (SMP) from the IME pad's "character list" - Unicode(SMP), it will not be entered correctly on Windows 10 and will be displayed as "??".
This was caused by a bug in the IME updated with Windows 10 May 2020 Update (Windows 10 version 2004).
Workaround: In Windows 10 IME settings, enable "Use previous version of Microsoft IME", or upgrade your Windows 10 to Windows 11. *
* This issue won't happen on Windows 11.
On Windows 11 22H2, the print-grpahic (when calling with show-printer-dialog? = true), Printer.open and Printer.get-printers may not work as expected.
On Windows 11 22H2, when you call print-grpahic ( show-printer-dialog? = true) or Printer.open with parameters such as orientation, the corresponding parameter specification is not reflected on the print dialog.
- Some printers in the list of printer names obtained by calling Printer.get-printers may not appear in the printer drop-down list displayed in the print dialog.
- The printer name specified in "printer-name" is not reflected on the print dialog, the default printer is selected instead of the specified one.
- The print orientation specified in "orientation" is not reflected, and the printer's default setting is used
- Paper size specified in "page-description" is not reflected
- Specifying the last page to be printed in "to-page" won't work. For example, if you specify a range of 2-3 pages(with param from-page=2, to-page=3), it will be displayed as "2-"
- Legacy print dialog may be shown when printing with dialog, once after which the new style dialog will always be shown.
The above problem does not occur if show-printer-dialog? = false is specified when calling print-graphic.
However, only 1 copy is always printed even if the number of copies specified in "copies" is two or more, no mater with or without showing the print dialog.
Solution: This issue can be resolved by applying the latest Windows update.
* This issue has been confirmed to not occur on Windows 11 22H2 with "November 14, 2023 - KB5032189 (OS builds 19044.3693 and 19045.3693)" applied.
While editing a cell in RecordGrid, changes in the cell will be dropped when moving the focus to another row with up/down arrow keys.
When editing a cell in the RecordGrid, if the focus is moved to another row using the up/down cursor keys, the changed cell value will be dropped.
This issue does not occur when the Enter key is pressed before moving up/down arrow keys.
Workaround: This issue could be avoided by specifying a custom Cell class to the related column, which inherits from StandardStringCell and override the on-key-press method to commit the value in the cell when the up/down arrow keys are pressed. Please refer to the sample code below.
{define-class public open MyStandardStringCell {inherits StandardStringCell} {method public {on-key-press ev:KeyPress }:void || make sure only Key UP or key DOWN is pressed {if (ev.value == KeyPressValue.up or ev.value == KeyPressValue.down) and ev.unmodified? then {super.commit-pending-value} } {super.on-key-press ev} } }
It may not display properly in a multi-display environment with mixed displays' scale settings
For example, if you use a sub-display with a different scale than the main display, layout of your application may show in a way you wouldn't expect
Workaround: If you have multiple displays, use the same scale settings or use the Curl application within the main display.
PDF file created by print-graphic-pdf sometimes corrupts
Using print-graphic-pdf procedure to print a PDF file may produce a corrupted file if IPAmjMincho font is used.
Workaround: Workaround: Instead of using pring-grpahic-pdf procedure, use a virtual PDF printer (such as "Microsoft Print to PDF") to print Curl applet screens.
Non-breaking hyphen (Unicode: \u2011)sometimes cannot be printed as expected
When printing a non-breaking hyphen with Curl, it may not be printed properly, some extra spaces could occur
Workaround: use other characters instead of \u2011. Or specify a font name like Arial Unicode MS(Windows7), SegeoUI (Windows8.1 and later) that have been verified it could be correctly printed
RecordGrid sometimes can't IME-convert initial character when jumping into selected cells.
If you have already turned on Japanese IME(such as Hiragana input mode), when there is a selection but no cell is active in a RecordGrid, the first input key won't be converted. if the user was expecting to enter the Japanese character 'か' ('ka') into a RecordGrid selection, they will instead end up with "kあ" (k-'a')
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.
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.
Fonts in Mixed Locales
There are three font aliases in the Curl RTE. These are "serif", "sans-serif" and "monospace". The RTE uses the working locale to map these font aliases to a particular font family name.
If an attempt is made to display Japanese string when the working locale is English the alias could resolve to a font that does not contain the Japanese characters. Such characters will render incorrectly, usually as a small rectangle. This will only occur if the host locale is "ja" and the working locale is "en".
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.
File Manipulation, I/O, OCC and Persistent Data
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.
Crash when 127.0.0.1 is denied
Do not deny connections to ip address 127.0.0.1 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.
OS, Browser and Server Issues
Closing Edge window with an Curl applet running in IE mode might crash the RTE.
Closing Edge window sometimes crashes Curl RTE when running curl legacy
applet(file extention: .curl) with IE mode of Edge on Windows 7 and Windows8.1.
Use IE directly instead of IE mode of Edge on old Windows systems because IE will still be supported within the OS's lifecycle.
Embedded Curl applet in HTML page sometimes loose params specified by DATA property of <object> tag.
Embedded Curl applet in HTML page sometimes loose params specified by DATA
property of <object> tag, if the page is loaded with IE mode of Edge instead of IE.
Example of the bad case:
<object type="text/vnd.curl" DATA="tags-headers-test.curl?display-html-tag" width=550 height=150></object>
Workaround: Add a PARAM tag to specify the URL's parameter part, like the following:
<object type="text/vnd.curl" DATA="tags-headers-test.curl?display-html-tag" width=550 height=150> <PARAM NAME="SRC" VALUE="tags-headers-test.curl?display-html-tag"> </object>
Drag&Drop will no longer work after a basic authentication dialog from Windows is shown within a Curl applet, if this applet is run on Windows 10(Version 1607)
When you run a Curl applet on Windows 10(Version 1607, aka Windows 10 Aniversary Update), and it happens to access data protected by a web server with basic access authentication over HTTP, after you close this authentication dialog, Drag&Drop in this Curl applet will no longer work, unless you restart your Curl RTE.
This is caused by a bug in WIndows 10 (Version 1607), and it cannot be avoided by our RTE if only such a dialog is shown without waiting for a fix from Microsoft(R). However, you can avoid this problem by either of the following two choices.
1. Avoid showing up the basic access authentication from Windows OS side.
2. Avoid upgrading to Windows 10 Versio 1607( do not apply the Windows 10 Aniversary Update)
We recommend you use the first one to workaround this issue if your applet need drag&drop feature. This way you need provide an authentication dialog using Curl Dialog as a replacement of the dialog from Windows side, requiring a user input the user name and password for this basic access authentication, then get the user name and password in your curl programm, and make a call to {set-http-authentication} like the following code, then make your HTTP access to the data on the server as usual.
{set-http-authentication {url "your-server-url"}, || the url that is protected with basic auth. realm="basic", || realm, usually you need not to change it. "user name", || user name to access the server "password" || password to access the server }
For details about set-http-authentication, please refer to Curl API reference shipped together with Curl CDE/IDE.
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.
.curl links that open in IE fail with anchors
A link from a Curl applet to another Curl applet via a file URL that contains an anchor string will not behave properly in Microsoft Internet Explorer.
An example of this type of link is:
{link {url "file:///c:/my-directory/document.curl#destination"} Click here!}
Internet Explorer will link to "document.curl" but will not scroll to the anchor, "#destination".
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.
On Linux, the Curl RTE doesn't copy over Firefox profiles so user settings will be ignored
The 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 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
IE thinks Curl applet is still loading when running file from the IDE
If you use Internet Explorer with the tabbed browsing feature turned off, when you run a Curl applet you may see that IE displays the animated spinning icon by the address filed, indicating that IE thinks the applet is still loading although the file has completed loading.
If you reload the applet in IE, the animated spinning icon will stop when the appplet finishes loading.
In IE Quick Tabs view, Curl Applications are displayed as an
Due to a limitation in Internet Explorer, the Internet Explorer Quick Tabs view will show Curl language applets as just an icon, and will not show an image of the Applet content
The Curl Control Panel
The Curl Control Panel is available by clicking on the Curl icon in the system tray, then clicking Show Curl Control Panel. If the icon is not visible, you may raise the Control Panel via the Windows® Start menu.
Control Panel: No syntactic validity checking for hosts and directories
Privileged hostnames in the Control Panel are not validated.
There is no semantic validity checking for hostnames you enter as privileged locations in the Curl Control Panel. Also, the preceding http:// is assumed, so you should not enter it.
There is syntactic validity checking, to the extent that location names containing spaces are rejected.
Difficult to edit in trusted location of Control Panel
You cannot edit a Privileged Location in the Curl Control Panel. To change an entry, first remove it (by clicking the revoke privilege link) and then add the desired entry.