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