What's New in APL+Win 6.0
APL+Win 6.0 represents the continuing support by APL2000 for
the APL application development language on the Microsoft Windows 2000/XP
operating system platform.
Delivery of the APL+Win 6.0 is expected in the 1st
quarter of 2006. Currently the APL2000 staff is performing quality control
testing on this version, including the new Microsoft Vista operating system
platform (due to be released by Microsoft as a production release in mid-2006).
The information provided in this document is subject to
change as the testing is completed and as additional customer needs are
identified.
APL File Shell Extension:
The APLFileShExt.DLL module
displays component information about your APL share and colossal component
files in the Windows Explorer. When you look at the properties of the file
there will be another tab (Component Summary) with additional information
specific to APL component files. The information shown includes name of the
file, the component file type (original or colossal), the component index
range, the file size, and some information about space used. For colossal
files, if component 0 exists and is either a character vector or matrix or a
two-column nested array where each item is a character vector, then its
contents are also displayed.
onContextMenu Event Handler:
When the user clicks the right
mouse button in a window, the ContextMenu event fires, with the mouse position
in WARG.
New MOM Object
System:
The MOM object system extends APL
with simple facilities for object oriented programming, a predominant design
and structuring paradigm for modern programming languages. MOM objects are
typeless, classless, and inherently polymorphic. They provide syntactic and
semantic foundations for future elaboration guided by experience. Entirely
internal to APL, MOM objects are not related to WI objects, COM objects, ActiveX
objects, or any other family of objects.
More details & examples...
Implicit Output Control Enhancement:
The system command )OUTPUT helps to
manage implicit output. This command allows the programmer to turn implicit
output off or on. It also provides a means for locating code which performs
implicit output. The command sets a three state switch in the active workspace.
This switch is workspace relative. It is saved with the workspace on a )SAVE
command and loaded with the workspace on a )LOAD command.
The )CLEAR command resets it to the default value.
Implicit output states only apply
to expressions executed within a function or an event handler. They do not
apply to immediate execution statements.
The three states are set by the
following arguments to the system command:
)OUTPUT ON
This is the default state.
Implicit output is generated by any APL expression that does not assign its
result.
)OUTPUT OFF
In this state Implicit output is
not generated.
)OUTPUT ERROR
This state is used to locate
expressions that generate implicit output. In this state execution of any
expression that would generate implicit output in the default state causes an
IMPLICIT OUTPUT ERROR. An expression beginning with
0 0½ by definition generates no output and so does not cause an
IMPLICIT OUTPUT ERROR.
)OUTPUT
This command prints the current
implicit output state. The other three commands print the previous implicit
output state.
Exception Handling Control Structures Enhancement:
:TRY
APL_statement(s) performing application-specific functions
:CATCHIF APL_boolean
APL_statement(s) performing appropriate error-handling
:CATCHALL
APL_statement(s) performing additional error handling
:ENDTRY
File Open Mode Information Enhancement:
File tie state information is now
available via a new monadic variant of the NTIE, XNTIE, XFTIE, FTIE, and CFTIE functions.
Monadic forms of these functions
take a tie number as the right argument and return a two-element integer vector
indicating the file tie state.
The values of the first element are
the same as the open mode arguments to the dyadic version of NTIE and
indicate what the current open mode of the file is. These same values apply
for the component and colossal component ties. The open mode values are sums
of the following:
| |
Needed |
+ Granted |
|
| |
0 read access |
0 compatibility mode |
|
| |
1 write access |
16 no access (exclusive) |
|
| |
2 read & write access |
32 read access |
|
| |
|
48 write access |
|
| |
|
64 read & write access |
|
For native file ties, if an open
mode argument was specified when the file was tied, the result of monadic NTIE is that
value. If no open mode argument was specified the return value is dependent on
whether read or write access is granted and what value of <network> was
specified in the APL configuration file. For the component and colossal
component file ties, the values are dependent on whether the tie request was
for a shared or exclusive tie and whether read or write access is granted.
The second element indicates if the
tie was share tie (i.e. FSTIE,
XFSTIE,
or CFSTIE)
or an exclusive tie (i.e. FTIE,
XFTIE, CFTIE). Share
ties show a value of 0, exclusive ties show a value of 1. The values of the
second element are applicable only to component and colossal component file
ties. The second element value is meaningless for native file ties.
APL Delay Statement Enhancement:
DL
has been enhanced to better share CPU resources while maintaining support for
the user interface. There are no changes required to your application.
Initial Support for Unicode Character Data
UCS
system function supports a 32-bit Unicode character data representation.
Initially support is provided for some primitives and planned for others and
the other primitives yield the appropriate NONCE or DOMAIN error messages.
Unicode character data displayed in the Session Manager will be shown as <<<UCS
Characters>>>.
The WI
interface with Windows has been enhanced to interchange Unicode character data
with ActiveX controls. The unicodebstr
property has been added to control this behavior.
DR data
type for Unicode character data is 322.
Session Manager Enhancements:
The information retained in the log
file has been enhanced to include version and other data. A new INI file
setting, [Session]"Logging System Info" has been added to control this.
Including any of the following keywords, separated by commas, in Logging System
Info will display the corresponding information at the beginning of the
session:
| sysver |
|
the contents of sysver |
| exe |
|
the executable full path and file name, and it smodification time |
| user |
|
the user and computer name |
The highlight scrolling speed is now automatically
adjusted. When using the mouse to highlight text, the scrolling speed is
determined by the distance of the mouse from the client area of the session.
The further the mouse is from the client area, the faster the text is scrolled.
The rate of change is inversely dependant on the distance. So slow scrolling
changes quickly as the mouse is moved and fast scrolling changes less quickly.
If the mouse is moved all the way to the top or bottom of the screen, control
of the scroll speed is released and scrolling speed proceeds at its maximum
rate.
Compressed Data Format Support:
A new facility to deflate (compress)
and inflate (uncompress) data objects using DR. With this option it is
possible to trade the processing time to deflate/inflate for a reduction in the
volume of data transmitted over the web or stored in files.
APL+Grid Enhancements:
As presented at the 2005 APL2000 User Conference.