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