Sophie

Sophie

distrib > Fedora > 13 > i386 > by-pkgid > 0c1e2ea36eddc1c136570a1fad5da7c1 > files > 2

oorexx-docs-4.0.0-2.4801.fc12.i686.rpm

                             Open Object Rexx

                              Release Notes
                              Version 4.0.0

  Copyright 2005, 2009 Rexx Language Association.  All rights reserved.
                            May 1, 2009

Installation and Configuration
==============================

Prior to Installation:
----------------------

Important:  An "upgrade" type of installation is neither tested nor
supported on any platform.  Please completely uninstall a prior version of
ooRexx before installing a new version.  Installing over the top of an
existing installation is likely to produce unpredictable results.

For installation help and other relevant notes, prior to installation,
please read the "0ReadMe.pdf" PDF file which is placed with the
downloadable files for this release on SourceForge.

A Note on Linux packages:
-------------------------

The generically named rpm packages should install on any modern
distribution that uses RPM as a package manager.  Likewise, the
generically named deb packages will install on any modern debian-based
systems.

For instance, ooRexx-4.0.0-4567.x86_64.rpm, will install on 64-bit Fedora
Core 9, Fedora Core 10, Open SuSE 11.1, etc..

In the same manner, ooRexx-4.0.0-4567.i386.deb will install on 32-bit
Ubuntu 7.04, Kubuntu 8.10, Debian 5.0, etc..

When it is known that the generic package has problems on a distribution,
the ooRexx team may build an additional package for that specific
distribution.  In which case, the installation package will have the
targeted distribution in its file name.

I.e., on OpenSuSE prior to version 11, there is a problem.  A specific
package is built for OpenSuSE prior to version 11.  The 32-bit package
name looks like:

ooRexx-4.0.0-4567.i386.suse102.rpm

Please use the generically named rpm and deb packages.  If there is a
problem on your distribution, report it by opening up a Tracker bug.
Depending on resources, the ooRexx team may be able to build a specific
package for that distribution.


Changes in ooRexx 4.0.0
=======================

New platforms:
--------------

Linux 64-bit
AIX 64-bit
Windows 64-bit

All platforms:
==============

Although not directly visible to the ooRexx programer, much of the code in
the interpreter core has been rewritten.  This enhances the interpreter in
several ways, not the least of which is the ability to compile the
interpreter in 64-bit addressing mode.  In addition, the rewritten
interpreter is now more maintainable and extensible.

A new, improved, set of application programming interfaces (APIs) have
been added.  The programmers guide has been updated accordingly.  Although
these utilize C++ they are extremely easy to use.  All of the external
function libraries have been upgraded to use these new APIs.

REXX_PATH (new in 4.0) is an additional path you can set that is used for
Rexx program searches.

A new utility class, a socket class, has been added.

New samples are included in the distribution:
---------------------------------------------

samples/scclient.rex
samples/scserver.rex
samples/sfclient.rex
samples/sfserver.rex

Unix platform:
==============

Rxapi now runs as a system wide daemon.  The use of shared memory has been
eliminated.  Rxapi now uses a socket interface for communication.

Windows platform:
=================

Improvements to ooDialog and OLEObject.

The documentation of the Windows specific classes has been moved out of
rexxref to the new document winextensions.pdf.

New samples are included in the distribution:
---------------------------------------------

samples\oodialog\examples\imageButton.rex
samples\winsystem\displayAnyMenu.rex
samples\winsystem\displayWindowTree.rex
samples\winsystem\getTheWindow.rex
samples\winsystem\menuCalc.rex
samples\winsystem\menuNotepad.rex
samples\winsystem\quickCalc.rex
samples\winsystem\quickShowAllMenus.rex
samples\winsystem\windowsSystem.frm
samples\winsystem\winSystemDlgs.h
samples\winsystem\winSystemDlgs.rc
samples\winsystem\writeWithNotepad.rex

The ooRexxTry program has been moved out of the incubator into the Windows
distribution.  It is a GUI version of rexxtry and is installed along side
of rexxtry in the installation directory.  (Which means it is in the path
and can be started from the command line.) It is also placed in the Open
Object Rexx folder on the Start Menu, next to rexxtry.  A PDF
documentation file is installed in the doc directory, and a short cut link
to it is in documentation folder on the Start Menu.

Windows Installation:
=====================

The Windows installation program has be enhanced so that it will only
remove files installed by the ooRexx package.  Files added to the
installation directory by the user will no longer be deleted when ooRexx
is uninstalled.  This behavior will be in effect for the uninstallation of
ooRexx 4.0.0 and future versions of ooRexx, there is no change in the
3.2.0 uninstallation.  When a 3.2.0, or earlier, version of ooRexx is
uninstalled, all files in the installation directory are deleted.

The installation program now correctly sets up the .rex file associations
when run with non-Admin privileges.  Note however, it is still advised to
always run the installation and un-installation program using Admin
privileges.

The installation program now sets up Rexx program files with the .rex
extension as drop handlers.  When a file is dropped on the icon for a Rexx
program, the Windows Shell passes the complete file name path as the
argument to the program.

Windows ooDialog:
=================

Documentation
-------------

Restructuring of the ooDialog reference has started.  Some areas have been
reviewed for accuracy and corrected / clarified where needed.  Anyone
using ooDialog is urged to at least read chapter 2, section 4 (2.4) which
attempts to provide some information on the future direction of ooDialog.

New classes:
------------

DlgUtil, Point, Rect, Size, Image, ImageList, and ResourceImage.

Enhanced classes:
-----------------

The following existing classes have been reviewed for correct behavior and
enhanced to provide all the functionality of the underlying Windows
control, as of Windows XP.  In essence this entails allowing the control
to be created with all of the control styles, providing a way to send all
of the messages the control accepts, providing a way to receive all of the
event notifications that the control sends.

* ButtonControl and subclasses.
* StaticControl
* ProgressBar

The above classes all have new methods.

Other New methods:
------------------

(Please use the index in the ooDialog reference to see what classes these
methods belong to.)

setItemSysColor()
getFont(), createFontEx()
getTextSizeScreen()
getExStyleRaw()
setDefaultFont(), getFontName(), getFontSize()  <- Class methods.
fontName(), fontSize()                          <- Attributes.
getTextSizeDlg()
addStatic(), addImage(), addEtchedFrame(), addEtchedHorizontal(),
  addEtchedVertical()
getGroupBox()
setSysColor()
setImageList(), getImageList()                  <- For several classes.
getColumnCount(), getColumnOrder(), setColumnOrder()
connectStaticNotify()

Windows Scripting Host:
=======================

The Windows Scripting Host support in ooRexx 4.0.0 has been temporarily
disabled.  This was done after soliciting input from users.  Temporarily
disabling WSH allows the release of 4.0.0 to be months sooner than it
would have been otherwise.  The consensus of users was that they would
prefer an early release without WSH than a later release with WSH.  The
intent is to deliver WSH as soon as possible in a follow-on minor release.

Some possible differences in program behavior:
==============================================

Files loaded by ::requires are loaded by a global package manager, and
a given file will only be loaded once in a process.  This means multiple
programs referring to a ::requires file will be accessing a single set of
created classes and routines rather than each ending up with a unique
set.

Due to a bug in prior releases of ooRexx and Object Rexx, a negative
return code from a Rexx program could be transformed to a positive return
code to the operating system.  This bug is now fixed.

Due to a bug in prior releases, methods created with ::METHOD ATTRIBUTE
or ::ATTRIBUTE did not properly recognize the GUARDED status of methods.
All attribute methods behaved like they were UNGUARDED.

The RxFuncAdd now checks that a registered function can be resolved at
registration time and will return a failure if it cannot.  This is how
many believed it worked originally.

Some returns from the rxMath package were not consistent.  As an example,
on Windows, NaN (Not a Number) was returned as the string "ERROR" while on
Linux the string "nan" was returned.  This was fixed so that the string
"nan" is returned on all platforms.

On all platforms, +infinity and -infinity are now returned as strings
"+infinity" and "-infinity".

Miscellaneous Enhancements:
===========================

A method that is declared PRIVATE has been enhanced to allow its
invocation from any of the following situations:

1) From within a method owned by the same class as the target (i.e., the
method is invoked using SELF.)  This is the same as ooRexx-3.2 and before.

2) The caller is an instance of the same class that defined the target
method (the method's scope).  This allows an instance of a class to invoke
a private method of another instance of the same class.

3) The caller is a class object that is compatible with the scope of the
method.  This allows class objects to also access private methods of its
own instances.  Useful for specialized class methods that create instances
(such as the "fromXxxxxx" methods on DateTime).

EXTERNAL is allowed on ::ATTRIBUTE and ::METHOD directives.
EXTERNAL is allowed on ::ROUTINE ::METHOD directives.
LIBRARY allowed on ::REQUIRES to load external libraries

A new ::CONSTANT directive.

The stream class supports files larger than 4Gb (on both
32-bit and 64-bit platforms).

Builtin functions:
==================

FILESPEC has new options : Location, Extension.

LASTPOS has a new parameter : length.

POS has a new parameter : length.

QUALIFY is new builtin function.

TIME has a new option : Offset.

TRANSLATE has new parameters : pos, length.

Class library:
==============

New classes:
------------

Buffer, IdentityTable, Orderable, Package, Pointer, RexxContext, Routine,
WeakReference.

New methods on Object:
----------------------

send, sendwith, startWith.

New methods on DateTime:
------------------------

offset, setTimeStamp (private), toTimeZone, utcDate, utcIsoDate.

DateTime also supports a timezone offset on class methods that create
new DataTime instances.

New methods on Method:
---------------------

package.

New methods on MutableBuffer:
-----------------------------

caselessChangeStr, caselessCountStr, caselessLastPos, caselessMatch,
caselessMatchChar, caselessPos, caselessWordPos, changeStr, countStr,
delStr, delWord, lower, makeArray, match, matchChar, replaceAt, subWord,
translate, upper, verify, word, wordIndex, wordLength, wordPos, words.

New methods on OLEObject:
-------------------------

addEventMethod, connectEvents, disconnectEvents, isConnectable,
isConnected, removeEventHandler, removeEventMethod.

New methods on RexxQueue:
------------------------

empty, makeArray, exists, open.

New methods on Stem:
--------------------

toDirectory.

New methods on String:
---------------------

replaceAt.

Also, the makearray() method of string allows for delimiters longer than
a single character.

Incubator:
==========

A beta version of RexxGTK is available.  This is a portable GUI class for
building ooRexx GUI programs.  It runs on any *nix system where GTK is
available and on Windows with the proper GTK DLLs in place.