J602 Release Highlights and Overview
If your are familiar with the previous release (J601) see J602 Features for an overview of what's new.
If your are familiar with J50x, see J601 Features for an overview of those changes before reading J602 features.
J has a console interface called Jconsole and a GUI interface called Jwd. Use Jwd for an easier introduction to both standard and new features. In Windows start Jwd with the blue J icon in the J program group. In Linux start Jwd by running jwd in the J bin folder (for example, ~/j602/bin/jwd). In Mac start Jwd with the red J icon in the J folder.
The system includes 3 online books that are introductions: J Primer by Eric Iverson, J for C Programmers by Henry Rich, and Learning J by Roger Stokes. They vary in approach and you can probably benefit from reading all three. Hopefully you will find one which matches your requirements and outlook.
Take the time to read the User Manual chapter J System Overview.
Whether you are new to J or an old hand, it is a good idea to start by exploring the Jwd menu. Browse the Help menu to get an idea of what is there and how to navigate. Try Studio|Demos to get an idea of what J can do. And do some of the labs in Studio|Labs.
www.jsoftware.com, www.jsoftware.com/jwiki, and the J forums are J resources. Take some time and explore J on the web.
See Release Notes (Help|Release Notes) for a summary of J Engine changes.
M. memoization will be of interest to some users.
_. (IEEE floating point NaN (Not A Number)) treatment has changed. See Release Notes and Indeterminate for details.
Readonly is default for ijs (script edit) window. Edit|Read Only (Ctrl+T) toggles readonly. Edit|Configure|Session sets file categories to open readonly.
Menu File|Open creates and opens a non-existent file name.
Prompts to delete or save temporary scripts (n.ijs for integer n) are removed. They are saved as required and are not deleted unless empty.
Session close dialog is shown if CONFIRMCLOSE_j_ is set to 1. The default value is 1 and can be changed in Edit|Configure|Session.
Installation has been changed to be simpler for each platform.
A standard install puts the J install and user folder in your home folder. For 32 bit systems the install folder is j602 and the user folder is j602-user. For 64 bit they are j64-602 and j64-602-user. Vista home is similar to Unix. XP home is "\Documents and Settings\username".
A standard install in home rather than a system folder such as "Program Files" or /usr... requires no admin privilege for either the install or for JAL updates.
See Install for details.
Package Manager (pacman)
Package Manager is the extensibility platform for J programming systems, consisting of the core system library and addons contributed by J users. It features online package updating from portal www.jsoftware.com with addons documentation, source versioning, build and distribution systems. Pacman is sometimes referred to as J Application Library (JAL).
Pacman is a critical step that opens J development to shared contributions from users. We urge you to take a look at what is already available and to take the time and effort to provide your own contributions back to the J community.
Pacman beta versions that ran on J601 required sometimes problematic install steps and configuration. J602 JAL should run 'out of the box' on all platforms without any extra steps or configs. In part this was done by providing the new tools folder that includes the zip and wget tools required in Windows.
Treeview control (built on isigraph as are grid and plot controls) is now available. See treeview demo.
Splitter control (built on isigraph) is now available. This control was developed by Oleg Kobchenko. See splitter demo.
cd (shared library call) enhanced - PCALL
The cd enhancements suggested and modeled by Oleg Kobchenko with his PCALL facility have been implemented. The changes allow cd to call a procedure directly by its address (rather than indirectly through module and procedure names). It also allows calls of objects with a THIS pointer and a vtable.See Calling Procedures for details.
Application Distribution - Installer
New lab "Application Distribution - Installer" presents a way to packaging simple J applications for distribution. The core idea is to use the same installer as J (Windows exe, Linux sh, or Mac dmg) with a zip of all the system and application files in the same standard folder structure as in the development system.
J Engine Protocol - Decomitted
The major user of the J Engine Protocol in J50x was the Unix Jwdp front end that used the J Engine in a separate task with sockets. This architecture had serious performance limitations and was replaced in J60x with the direct use by the Java Jwdp front end of the J Engine as a shared library.This new architecture has proven so successful that continuing support for the J Engine Protocol isn't justified and it is decommitted.
Applications that used JEP should replace it with either direct use of the J Engine as a shared library or with a much simpler application specific socket protocol between the client and server. For example, they could be reworked to use the facilities shown in Lab Client/Server (Simple Socket).
J Front End - Example Source Code
A simple and complete source example of a console J Front End is available in folder system/examples/jfe. This source demonstrates all aspects of the J Engine shared library API. In particular it shows output and wd callbacks to the front end.
Files for J Front Ends and the J Engine are now in the J bin folder.
The tools folder has utilities (binaries and related files) used by J. The jpcre shared library for regex has been moved to the tools/regex folder. The J Windows folders tools/zip and tools/ftp contain the files that JAL requires that are available standard in Unix.
BINPATH, PROFILE, 1!:45
J Front End sets BINPATH_z_ as the fullpath of the folder that contains the JFE. This is the J bin folder with the the JFE, J Engine, profile.ijs, etc. The J folder is back one level and contains the addons, help, system, and tools folders in addition to the bin folder.
INSTALLFOLDER_z_ and PROFILE_z_ are no longer set.
Foreign 1!:45 (full path of profile.ijs) is decommitted.
USB Memory Stick System
A complete and portable J system can be installed on a USB memory stick. See
Install for details.
wd editm control
The Windows limit that prevented typing in an editm control with more than 30000 characters has been removed.
wd setlocale command
setlocale is a new wd command that sets a locale name for a control so that events run wdhandler in the control locale instead of the form locale.
wd'setlocale id locale'
This allows defining control event handlers in the control locale (usually a numbered control object locale) rather than in the parent locale (usually a numbered form object locale). Previously you had to define handlers in the form object locale that passed events on to the control object handlers.
setlocale works for all controls but is probably most useful with control objects based on an isigraph.
syslocalec is a new entry in the wdq result that is the child locale.
syslocalep is a new entry in the wdq result that is the parent locale. The old entry syslocale is no longer set. Replacing syslocale with syslocalep is compatible with other naming conventions.
A handler in a control object locale can use syslocalep to access the forms object for services and data. For example, to call a routine in the parent to inform it of changes in the control (perhaps to update another control).
JEXEServer and JDLLServer
J OLE automation server changes are covered in J OLE Automation Server. The main change is in the steps necessary to load profile.
New J Icons
The new J icons (J folder bin\icons) in various formats, sizes, and colors were created for Jsoftware by Ric Sherlock. Thanks!