You should follow Raul's suggestion and bisect your booting instead of
commenting out random parts. Try to locate the exact line of crash first.


On Mon, 23 May 2022 at 6:22 AM 'Michael Day' via Beta <[email protected]>
wrote:

> It emerged with J902 beta-e - this isn't amazing memory recall;
> olddefs.ijs appears in my old
> J installations from J902 onwards,  and has a date-stamp of 16/Aug/20.
>
> Here's most of the relevant email by Eric:
>
>     J902-beta-e available for windows/macos/linux.
>
>     This beta prints a warning message to your session if it encounters
> code
>     that will not work in future releases.
>
>     The warning is:
>     ************ Old-style definition encountered.  It will be invalid
> after
>     the beta period.
>     It has x/y without u/v/m/n **********
>
>     The base library and addons have already been updated with the required
>     coding change.
>
> Here's a copy (indented) of olddefs.ijs (66 lines):
>
>     require 'strings'
>     NB. To check for old-style modifiers, load this script, and load the
>     locale you want to check.  Then
>     NB. olddefs_localetocheck_ 0
>     NB. olddefs_localetocheck_ 1
>     NB. Any names printed when y=0 MUST be repaired; those printed only
>     when y=1
>     NB. should be inspected
>
>     NB. To check all loaded locales at once, use
>     NB. allolddefs <0 or 1>
>
>     NB. check to see if a definition is old-style
>     NB. Returns 1 if it is
>     NB. y is AR of a modifier
>     NB. x is severity level, 0 or 1
>     NB. 1 : '5!:5 <''x''' cannot be detected; it returns 0 if sev level
>     is 0, 1 if sev level is 1
>     isarolddef_z_ =: 4 : 0"0
>     sevlevel =. x
>     ar =. > y
>     NB. Analyze AR type
>     select. {. ar
>     case. <,'4' do. NB. A A or A C or C A
>        +./ sevlevel isarolddef 1{::ar return.   NB. Look at children,
>     return 1 if either is old-style
>     case. <,':' do.
>        if. 1=#ar do. 0 return. end.  NB. if plain :, nothing to look at
>        'larg rarg' =. 1{::ar  NB. The args of m : n
>        if. (<,'0') -.@-: {.larg do. 0 return. end.
>        if. (<,'0') -.@-: {.rarg do. 0 return. end.  NB. verify m : n
>        if. -. (1{::larg) e. 1 2 do. 0 return. end.  NB. m is 1 or 2
>        wds =. ; <@;:"1 ": 1 {:: rarg NB. force to char, break to wirds,
>     run lines together
>        NB. old style is (x or y found) and not (uvmn found)
>        anyxy =. sevlevel +. ((;: 'x y') +./@:e. wds)+. (('__x';'__y')
>     +./@e. _3&{.&.> wds)
>        anyuvmn =. ((;:'u v m n u. v.') +./@e. wds) +.
>     (('__u';'__v';'__m';'__n') +./@e. _3&{.&.> wds)
>        anyxy *. -. anyuvmn return.
>     end.
>     0  NB. If no match, it's OK
>     )
>
>     NB. check to see if a definition is old-style
>     NB. Returns 1 if it is
>     NB. y is boxed name of a modifier
>     isolddef_z_ =: 4 : 0"0
>     x isarolddef 5!:1 y
>     )
>
>     NB. Check all names in the current locale
>     NB. y is severity level: 0 to return names that are known to be
>     old-style
>     NB. 1 to return names that might be old style because they have no
>     defined references to anything
>     NB. Ex: olddefs_localename_ 1
>     olddefs_z_ =: 3 : 0
>     NB. get names
>     nms =. nl ''
>     NB. keep only modifiers
>     modnms =. (1 2 e.~ 4!:0 nms) # nms
>     if. 0 =#modnms do. 0$a: return. end.
>     NB. Return names that are old-style
>     (#~ y&isolddef) modnms
>     )
>
>     NB. Check all names in all locales.  y is severity level
>     allolddefs_z_=: 3 : 0
>     for_l. 18!:1[i.2 do.
>     echo^:(0~:#) l,.olddefs__l y
>     end.
>     EMPTY
>     )
>
> I'll probably leave it well alone!
>
> Cheers,
>
> Mike
>
>
> On 22/05/2022 22:45, Henry Rich wrote:
> > I hope you will go on to find out what is wrong with allolddefs, or at
> > least post it so we can all see it. I don't remember it.
> >
> > Henry Rich
> >
> >
> >
> > On 5/22/2022 5:03 PM, 'Michael Day' via Beta wrote:
> >> Success?
> >>
> >> I had tried that, initially on Friday,with jconsole.bat but didn't
> >> see any clues.
> >>
> >> Also,  as I said,  I'd tried commenting out stuff in startup.ijs,
> >> which also didn't
> >> apparently change anything.
> >>
> >> Now, however,  I embedded echo statements in startup.ijs  They did
> >> indeed
> >> stop appearing before the end of the script.  This suggested that
> >> checking
> >> old definitions was at fault;  I rather think Henry must have
> >> recommended
> >> or requested we use it.  This is the relevant snippet from startup.ijs:
> >>
> >> load'~user/olddefs.ijs'
> >> echo LF,'CHECKING OLD DEFINITIONS'
> >> allolddefs 1
> >> echo 'startup: have checked old definitions'
> >>
> >> This echo had not appeared in the jconsole/cmd.exe log.
> >> Commenting out the call to "allolddefs" results in a successful load
> >> of either
> >> jconsole or jqt.
> >>
> >> Sorry - I thought I'd already tried disabling this call,  but perhaps
> >> I'd trusted
> >> a J-supplied script!
> >>
> >> As it is,  it appears to be unwise to check for "Old Definitions."
> >>
> >> Thanks for all the help,
> >>
> >> Mike
> >>
> >>
> >>
> >> On 22/05/2022 21:18, Raul Miller wrote:
> >>> On Sun, May 22, 2022 at 2:59 PM 'Michael Day' via Beta
> >>> <[email protected]> wrote:
> >>>> Starting jconsole with admin privileges briefly shows a window which
> >>>> then disappears.
> >>> Try starting it from a command shell
> >>>
> >>> That way, the window will remain and any potential error message
> >>> should be readable.
> >>>
> >>> Thanks,
> >>>
> >>
> >>
> >
> >
>
>
> --
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to