Thanks Bill. I do agree with binary search when I (think I) know what the search domain consists of. But I wasn’t sure. It turns out that ~user/startup.ijs was at fault; sequential commenting was adequate for that quite short script, leading to identification of a call to “allolddefs” or similar (it’s not on this ipad!). See my earlier message, around midnight London time. This legacy of a J902 beta, which I hadn’t removed, apparently raises a drastic error in J904 beta-d, but nothing earlier!
Henry wonders whether a Windows 11 change is at fault, but that OS doesn’t appear to have been updated so recently as to be the cause of the new behaviour with J904 beta-d. Thanks again for your help, Mike Sent from my iPad > On 23 May 2022, at 00:37, bill lam <[email protected]> wrote: > > 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
