There are a number of changes to the J7 environment that cause problems with
compatibility for addons (and presumably other code).
* standardise on '/' as path separator
* use of IFWIN instead of IFWIN32 for platform testing
* there are probably others?
The changes seem sensible to me. The challenge is how best to manage them to
minimize the need to handle compatibility going forward.
One option is to continually add version checking code to any addon or library
script that needs it. For example:
3 : 0''
if. 7 > 0". 1{ 9!:14'' do. IFWIN=: IFWIN32 end.
)
This seems a messy solution and prone to error.
Where possible, my preference would be to see some additions to the J6 base
library to make it forward compatible with the J7 changes. This keeps the addon
code, the J7 base library code and future addon code clean. So far the
necessary additions to the J6 base library would be the following:
IFWIN=: IFWIN32
jpathsep=: jhostpath
Addons and user code could then be updated to use IFWIN & jpathsep (rather than
IFWIN32 and jhostpath) and would then be compatible with both J versions.
Under this scenario users who don't update currently installed addons or base
library won't be affected. If the user is updating their addons from JAL via
Package Manager (or jpkg), they will at the same time be notified that their J6
base library is not up-to-date. If they update that too, then the updated
addons should continue to work. (If they don't update their base library then
the addons will potentially not work).
Maybe there are other issues that I haven't considered? I would like to hear
other opinions on how best to manage these issues.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm