I'm thinking that a more array-oriented solution to J versioning might be
appropriate, as I see it's already starting to be confusing to remember
which scalar is defined for which versions.  Maybe something like this?
   JVERSION
Engine: j701/2011-01-10/11:25
Library: 7.01.088
Platform: Win 64
Installer: j701a_win64.exe
InstallPath: c:/program files (x86)/j64-701

   jversions=.
('Installer';'Engine';'Library';'Which'),.'j602a_win.exe';'j602/2008-03-03/16:45';'6.02.068';0
   ]jversions=.
jversions,.'j701a_win64.exe';'j701/2011-01-10/11:25';'7.01.088';1
+---------+---------------------+---------------------+
|Installer|j602a_win.exe        |j701a_win64.exe      |
+---------+---------------------+---------------------+
|Engine   |j602/2008-03-03/16:45|j701/2011-01-10/11:25|
+---------+---------------------+---------------------+
|Library  |6.02.068             |7.01.088             |
+---------+---------------------+---------------------+
|Which    |0                    |1                    |
+---------+---------------------+---------------------+





On Tue, Mar 11, 2014 at 6:52 AM, Marc Simpson <[email protected]> wrote:

> Understood.
>
> Regarding deprecation: JVER assertions might make for clearer (end user)
> errors.
>
> On Tue, Mar 11, 2014 at 10:41 AM, bill lam <[email protected]> wrote:
> > JVER is a good idea, but we don't have enough resource to support
> multiple versions.  I imagine most of those addons using wd will either not
> updated or not migrated to j801.
> >
> > 11.03.2014, в 18:23, Marc Simpson <[email protected]> написал(а):
> >
> >> Good point; I hadn't considered the JHS and console cases (sorry). Re:
> >> lint, note that in jconsole,
> >>
> >>     require'debug/lint/lint'
> >>  |control error: script
> >>  |       3 :0''
> >>  |[-31] /applications/j/j64-801/addons/debug/lint/lint.ijs
> >>
> >> Splitting out the addons seems like a good idea, though that doesn't
> >> address local libraries that use similar techniques for determining
> >> compatibility. Use of IF* seems a little haphazard; assumptions are
> >> made on the basis of a subset of features (Qt, JHS, console, etc.).
> >> For example, rdsock.ijs uses IFJ6 is used to determine engine version
> >> and load additional libraries accordingly while the conditionals in
> >> lint.ijs are used to set IFGUI ahead of loading 'grid'.
> >>
> >> In place of IFJ6, wouldn't it make more sense to employ a pattern like,
> >>
> >>  if. JVER = 6 do.
> >>
> >> where JVER_z_ provides the release number? (This could be a list
> >> rather than scalar to provide point release info e.g. 8 0 1).
> >> Advantages:
> >>
> >> - We no longer require nouns like IFJ6; JVER would just be defined in
> >> each release;
> >> - Libraries (not just official addons) can specify release ranges
> >> ("works with 701+") more cleanly;
> >> - Depdencies on features provided in a specific release can be
> >> expressed with greater structure and safety (if j801, are we running
> >> Qt? if not, this code won't load).
> >>
> >> Thoughts?
> >> Best,
> >> Marc
> >>
> >>
> >> On Tue, Mar 11, 2014 at 9:36 AM, bill lam <[email protected]> wrote:
> >>> IFAIU starting from J8, previous versions (J7 and J6) need not be
> >>> supported in svn trunk.  defining IFJ6 in scripts is not a long term
> >>> solution.  IMO the proper solution is to detach J6/J7 addons:
> >>> eliminates IFJ6 and release those addons for j801 only.  A consequence
> >>> is those addons for J6/J7 will not be updated from svn trunk.
> >>>
> >>> IFQT=0 for jconsole and JHS in J8, depending on context, it is not a
> >>> replacement for IFJ6.
> >>>
> >>> On Tue, Mar 11, 2014 at 4:59 PM, Marc Simpson <[email protected]>
> wrote:
> >>>> I just ran into the following issue with Rserve,
> >>>>
> >>>>  require'stats/r/rserve'
> >>>>  |control error: script
> >>>>  | 3 :0''
> >>>>  |[-8] /applications/j/j64-801/addons/stats/r/rdsock.ijs
> >>>>
> >>>> caused by an IFJ6 check on line 2. (IFJ6 is undefined in j801.)
> >>>>
> >>>> Reference to IFJ6 is made in the following addons,
> >>>>
> >>>>  debug/lint/lint.ijs                line 25
> >>>>  general/dirutils/dirutils.ijs      line 9
> >>>>  graphics/plot/demo/plotdemo.ijs    line 6
> >>>>  graphics/plot/demo/plotdemos.ijs   line 6
> >>>>  stats/r/rdcmd.ijs                  line 2
> >>>>  stats/r/rdcom.ijs                  line 2
> >>>>  stats/r/rdsock.ijs                 line 2
> >>>>
> >>>> The lint script is fine as the IFJ6 check only made if -.IFQT. Can the
> >>>> rest be amended to do the same?
> >>>>
> >>>> Thanks,
> >>>> Marc
> >>>> ----------------------------------------------------------------------
> >>>> For information about J forums see
> http://www.jsoftware.com/forums.htm
> >>> ----------------------------------------------------------------------
> >>> For information about J forums see http://www.jsoftware.com/forums.htm
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>



-- 
Devon McCormick, CFA
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to