You don't want to just ignore the failure, do you?  There isn't any reason it should fail on beta-d and not on beta-c.  Maybe Windows has changed something.  The program does a lot of file I/O

Can you run allolddefs after the system comes up?

BTW, it sure looks like I wrote that but I don't remember it.

Henry Rich

On 5/22/2022 6:22 PM, 'Michael Day' via Beta 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 AVG.
https://www.avg.com

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to