Return to ox.sm1 CVS log | Up to [local] / OpenXM / src / kan96xx / Doc |
version 1.3, 1999/11/03 00:45:43 | version 1.12, 2000/12/03 08:19:54 | ||
---|---|---|---|
|
|
||
%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.2 1999/11/01 03:49:47 takayama Exp $ | %%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.11 2000/02/02 02:03:42 takayama Exp $ | ||
%%%%%%%%%%%% Configuration: Specify your server path | %%%%%%%%%%%% Configuration: Specify your server path | ||
%%%%% ox, ox_sm1, oxlog are contained in kxx.tgz | %%%%% ox, ox_sm1, oxlog are contained in kxx.tgz | ||
%%%%% These should be under /usr/local/lib/sm1 or LOAD_SM1_PATH | %%%%% These should be under /usr/local/lib/sm1 or LOAD_SM1_PATH | ||
|
|
||
/oxpath.oxlog (bin/oxlog) def | /oxpath.oxlog (bin/oxlog) def | ||
/oxpath.xterm (/usr/X11R6/bin/xterm -icon -e ) def | /oxpath.xterm (/usr/X11R6/bin/xterm -icon -e ) def | ||
/oxpath.null ( ) def | /oxpath.null ( ) def | ||
/oxpath.null00 ( >& /dev/null ) def %% cf oxNoX | /oxpath.null00 ( >& /dev/null ) def %%cf. oxNoX | ||
/oxpath.null00-pure-sh ( 2>&1 >/dev/null) def %%TODO:It does not work in our case | |||
%%%%%%%%%%%%% The following is used only for sm1connectr-ssh. | %%%%%%%%%%%%% The following is used only for sm1connectr-ssh. | ||
%%%%%%%%%%%%% Configure path for ox and ox_sm1 on your remote machine. | %%%%%%%%%%%%% Configure path for ox and ox_sm1 on your remote machine. | ||
/oxpath.oxlog.xterm-ssh (/home/taka/OpenXM/bin/oxlog /usr/X11R6/bin/xterm -icon -e ) def | /oxpath.oxlog.xterm-ssh (/home/taka/OpenXM/bin/oxlog /usr/X11R6/bin/xterm -icon -e ) def | ||
|
|
||
(Please get it from http://www.math.kobe-u.ac.jp/KAN) message | (Please get it from http://www.math.kobe-u.ac.jp/KAN) message | ||
error | error | ||
} { } ifelse | } { } ifelse | ||
(ox.sm1, --- open sm1 protocol module 10/1,1999 (C) N.Takayama. oxhelp for help) message-quiet | (ox.sm1, --- open sm1 protocol module 11/11,1999 (C) N.Takayama. oxhelp for help) message-quiet | ||
/ox.ccc load isArray | /ox.ccc load isArray | ||
{ } | { } | ||
|
|
||
/SM_popCMO 262 def | /SM_popCMO 262 def | ||
/SM_executeFunction 269 def | /SM_executeFunction 269 def | ||
/SM_DUMMY_sendcmo 280 def | /SM_DUMMY_sendcmo 2147418112 1 add def %%% SM_PRIVATE+1 | ||
/SM_sync_ball 281 def | /SM_sync_ball 281 def | ||
/SM_pops 265 def | /SM_pops 265 def | ||
|
|
||
(oxhelp for this message, [(oxWatch) client] extension to start a log.) | (oxhelp for this message, [(oxWatch) client] extension to start a log.) | ||
([(oxSerial)] extension serial-number-of-out-going-ox-packet.) | ([(oxSerial)] extension serial-number-of-out-going-ox-packet.) | ||
(oxpopcmo1, oxpopcmo2, sm1connect2, sm1connect3) | (oxpopcmo1, oxpopcmo2, sm1connect2, sm1connect3) | ||
(sm1connectr ) | (sm1connectr ox_launch, ox_launch_nox) | ||
(oxNoX : set an environment to invoke oxlog without xterm and to call oxlog with >& /dev/null) | (oxNoX : set an environment to invoke oxlog without xterm and to call oxlog with >& /dev/null) | ||
$ ex 1. (ox.sm1) run oxNoX sm1connectr $ | $ ex 1. (ox.sm1) run oxNoX sm1connectr $ | ||
$ ex 2. (oxasir.sm1) run oxNoX (x^2-1). fctr pmat ; $ | $ ex 2. (oxasir.sm1) run oxNoX (x^2-1). fctr pmat ; $ | ||
|
|
||
/sm1connect2 { | /sm1connect2 { | ||
[oxpath.oxlog.xterm oxpath.ox ( -ox ) oxpath.oxsm1 | [oxpath.oxlog.xterm oxpath.ox ( -ox ) oxpath.oxsm1 | ||
oxpath.null | oxpath.null | ||
( &)] cat system | ( &)] cat system-csh | ||
% (kterm -iconic -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_sm1 &) system | % (kterm -iconic -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_sm1 &) system | ||
% For MSRI, or Eterm, | % For MSRI, or Eterm, | ||
%(xterm -icon -e /u/nobuki/tmp/kxx/ox -ox /u/nobuki/tmp/Ox/ox_sm1 &) system | %(xterm -icon -e /u/nobuki/tmp/kxx/ox -ox /u/nobuki/tmp/Ox/ox_sm1 &) system | ||
(If you start the server automatically, you may have a trouble to) message | (If you start the server automatically, you may have a trouble to) message | ||
(oxreset. In order to avoid this trouble, start the server by hand.) message | (oxreset. In order to avoid this trouble, start the server by hand.) message | ||
(sleep 5) system | (sleep 5) system-csh | ||
[(localhost) 1300 1200] oxconnect /ox.ccc set | [(localhost) 1300 1200] oxconnect /ox.ccc set | ||
(The server is binded to the variable ox.ccc) message | (The server is binded to the variable ox.ccc) message | ||
ox.ccc.init | ox.ccc.init | ||
|
|
||
[oxpath.oxlog.xterm oxpath.ox ( -ox ) oxpath.oxsm1 | [oxpath.oxlog.xterm oxpath.ox ( -ox ) oxpath.oxsm1 | ||
( -data 2300 -control 2200 ) | ( -data 2300 -control 2200 ) | ||
oxpath.null | oxpath.null | ||
( &)] cat system | ( &)] cat system-csh | ||
% (kterm -iconic -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_sm1 -data 2300 -control 2200 &) system | % (kterm -iconic -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_sm1 -data 2300 -control 2200 &) system-csh | ||
% For MSRI | % For MSRI | ||
%(xterm -icon -e /u/nobuki/tmp/kxx/ox -ox /u/nobuki/tmp/Ox/ox_sm1 -data 2300 -control 2200&) system | %(xterm -icon -e /u/nobuki/tmp/kxx/ox -ox /u/nobuki/tmp/Ox/ox_sm1 -data 2300 -control 2200&) system-csh | ||
(If you start the server automatically, you may have a trouble to) message | (If you start the server automatically, you may have a trouble to) message | ||
(oxreset. In order to avoid this trouble, start the server by hand.) message | (oxreset. In order to avoid this trouble, start the server by hand.) message | ||
(sleep 5) system | (sleep 5) system-csh | ||
[(localhost) 2300 2200] oxconnect /ox.ccc2 set | [(localhost) 2300 2200] oxconnect /ox.ccc2 set | ||
(The server is binded to the variable ox.ccc2) message | (The server is binded to the variable ox.ccc2) message | ||
} def | } def | ||
|
|
||
[oxpath.oxlog.xterm oxpath.ox ( -ox ) oxpath.oxsm1 | [oxpath.oxlog.xterm oxpath.ox ( -ox ) oxpath.oxsm1 | ||
( -portfile ) ox.ccc.portfile | ( -portfile ) ox.ccc.portfile | ||
oxpath.null | oxpath.null | ||
( &)] cat system | ( &)] cat system-csh | ||
(sleep 5) system | (sleep 5) system-csh | ||
[(oxReadPortFile) ox.ccc.portfile] extension /ox.ccc.control set | [(oxReadPortFile) ox.ccc.portfile] extension /ox.ccc.control set | ||
ox.ccc.control message | ox.ccc.control message | ||
[(localhost) ox.ccc.control 1200] /ox.ccc set | [(localhost) ox.ccc.control 1200] /ox.ccc set | ||
|
|
||
/exhausted 0 def | /exhausted 0 def | ||
% clear the busy flag. | % clear the busy flag. | ||
/busy [1 1 enginesN { pop 0 } for ] def | /busy [1 1 enginesN { pop 0 } for ] def | ||
(date) system | (date) system-csh | ||
{{ | {{ | ||
exhausted 0 eq { | exhausted 0 eq { | ||
0 1 enginesN 1 sub { | 0 1 enginesN 1 sub { | ||
|
|
||
} { } ifelse | } { } ifelse | ||
} for | } for | ||
} loop } timer | } loop } timer | ||
(date) system | (date) system-csh | ||
(result is in result) message | (result is in result) message | ||
(Number of s-pairs checked is ) messagen result length message | (Number of s-pairs checked is ) messagen result length message | ||
} def | } def | ||
|
|
||
[oxpath.oxlog.xterm oxpath.ox ( -reverse -ox ) oxpath.oxsm1 | [oxpath.oxlog.xterm oxpath.ox ( -reverse -ox ) oxpath.oxsm1 | ||
( -data ) data ( -control ) control ( -pass ) pass | ( -data ) data ( -control ) control ( -pass ) pass | ||
oxpath.null | oxpath.null | ||
( &)] cat system | ( &)] cat system-csh | ||
[(oxCreateClient2) peer 0 pass] extension /ox.ccc set | [(oxCreateClient2) peer 0 pass] extension /ox.ccc set | ||
%% 0 means connect from only localhost. | %% 0 means connect from only localhost. | ||
(The server is binded to the variable ox.ccc) message | (The server is binded to the variable ox.ccc) message | ||
|
|
||
] cat /comm set | ] cat /comm set | ||
(Executing the command : ) messagen comm message message | (Executing the command : ) messagen comm message message | ||
comm system | comm system | ||
(sleep 5) system | (sleep 5) system-csh | ||
[(oxCreateClient2) peer 1 pass] extension /your-peer set | [(oxCreateClient2) peer 1 pass] extension /your-peer set | ||
/arg1 your-peer def | /arg1 your-peer def | ||
] pop | ] pop | ||
|
|
||
} { } ifelse | } { } ifelse | ||
} { } ifelse | } { } ifelse | ||
%% Else first try to find it in OpenXM_HOME | |||
[(getenv) (OpenXM_HOME)] extension /tname set | |||
tname isString | |||
{ | |||
tname addSlash /tname set | |||
[tname (lib/sm1/)] cat /tname set | |||
[(stat) [tname fname] cat] extension | |||
0 get isInteger %% The file was found. | |||
{ /fullname [tname fname] cat def | |||
/getPathNameSm1.LLL goto | |||
} { } ifelse | |||
} { } ifelse | |||
%% Else try to find it in /usr/local/lib/sm1 | %% Else try to find it in /usr/local/lib/sm1 | ||
[(stat) [(/usr/local/lib/sm1/) fname] cat] extension | [(stat) [(/usr/local/lib/sm1/) fname] cat] extension | ||
0 get isInteger %% The file was found. | 0 get isInteger %% The file was found. | ||
|
|
||
%% Otherwise error. | %% Otherwise error. | ||
[(getPathNameSm1: The file ) fname | [(getPathNameSm1: The file ) fname | ||
( could not be found ) | ( could not be found ) | ||
(neigher in LOAD_SM1_PATH=) | (neigher in LOAD\_SM1\_PATH=) | ||
[(getenv) (LOAD_SM1_PATH)] extension | [(getenv) (LOAD_SM1_PATH)] extension | ||
( nor in OpenXM\_HOME/lib/sm1=) | |||
[(getenv) (OpenXM_HOME)] extension | |||
(/lib/sm1) | |||
( nor in /usr/local/lib/sm1) | ( nor in /usr/local/lib/sm1) | ||
] cat /getPathNameSm1.errorMessage set | ] cat /getPathNameSm1.errorMessage set | ||
getPathNameSm1.errorMessage message | getPathNameSm1.errorMessage message | ||
|
|
||
[(getPathNameSm1) | [(getPathNameSm1) | ||
[([fname] getPathNameSm1 fullname) | [([fname] getPathNameSm1 fullname) | ||
(string fname, fullname) | (string fname, fullname) | ||
(This command searches the fname in /usr/local/lib/sm1 and LOAD_SM1_PATH) | (This command searches the fname in LOAD_SM1_PATH, ) | ||
(and returns the fullname.) | (OpenXM_HOME/lib/sm1, and /usr/local/lib/sm1) | ||
(It returns the fullname.) | |||
]] putUsages | ]] putUsages | ||
/getPathNameAsir { | /getPathNameAsir { | ||
|
|
||
/getPathNameAsir.LLL goto | /getPathNameAsir.LLL goto | ||
} { } ifelse | } { } ifelse | ||
%% Else first try to find it in /usr/local/lib/asir | |||
[(stat) [(/usr/local/lib/asir/) fname] cat] extension | |||
0 get isInteger %% The file was found. | |||
{ /fullname [(/usr/local/lib/asir/) fname] cat def | |||
/getPathNameAsir.LLL goto | |||
} { } ifelse | |||
%% Else try to find it in ASIR_LIBDIR | %% Else try to find it in ASIR_LIBDIR | ||
[(getenv) (ASIR_LIBDIR)] extension /tname set | [(getenv) (ASIR_LIBDIR)] extension /tname set | ||
tname isString | tname isString | ||
|
|
||
} { } ifelse | } { } ifelse | ||
%% Else try to find it in /usr/local/lib/asir | |||
[(stat) [(/usr/local/lib/asir/) fname] cat] extension | |||
0 get isInteger %% The file was found. | |||
{ /fullname [(/usr/local/lib/asir/) fname] cat def | |||
/getPathNameAsir.LLL goto | |||
} { } ifelse | |||
%% Otherwise error. | %% Otherwise error. | ||
[ (getPathNameAsir: The file ) fname | [ (getPathNameAsir: The file ) | ||
fname (ox_asir) eq | |||
{(ox\_asir)} { fname }ifelse | |||
( could not be found ) | ( could not be found ) | ||
(neigher in /usr/local/lib/asir nor in ASIR_LIBDIR. ) | (neigher in /usr/local/lib/asir nor in ASIR\_LIBDIR. ) | ||
] cat /getPathNameAsir.errorMessage set | ] cat /getPathNameAsir.errorMessage set | ||
getPathNameAsir.errorMessage message | getPathNameAsir.errorMessage message | ||
] pop popVariables getPathNameAsir.errorMessage error | ] pop popVariables getPathNameAsir.errorMessage error | ||
|
|
||
]] putUsages | ]] putUsages | ||
/ox_launch_nox { | |||
/@@@.ox_launch_nox 1 def | |||
ox_launch_aux | |||
} def | |||
/ox_launch { | |||
/@@@.ox_launch_nox 0 def | |||
ox_launch_aux | |||
} def | |||
/ox_launch_aux { | |||
/arg1 set | |||
[/in-launch_nox /pass /peer /data /control /name /machine | |||
/your-peer /comm /remoteOpenXMbin /remoteServer /myhost | |||
/argNumber /aaa | |||
] pushVariables | |||
[ | |||
/aaa arg1 def | |||
/argNumber aaa length def | |||
/machine aaa 0 get def | |||
machine (localhost) eq argNumber 5 lt and { | |||
aaa 1 get ox_launch_localhost /your-peer set | |||
/LLL.end goto | |||
} { | |||
/remoteOpenXMbin aaa 1 get def | |||
/remoteServer aaa 2 get def | |||
/name aaa 3 get def | |||
/myhost aaa 4 get def | |||
} ifelse | |||
/pass [(oxGenPass)] extension def | |||
/peer [(oxGetPort) myhost] extension def | |||
/data peer 1 get toString def | |||
/control peer 3 get toString def | |||
peer message | |||
[(ssh -f ) machine ( -l ) name ( ") | |||
@@@.ox_launch_nox { | |||
} { | |||
remoteOpenXMbin(/oxlog ) | |||
( /usr/X11R6/bin/xterm -icon -e ) | |||
} ifelse | |||
( ) remoteOpenXMbin (/ox ) | |||
( -reverse -ox ) remoteServer | |||
( -host ) myhost | |||
( -data ) data ( -control ) control ( -pass ) pass | |||
oxpath.null | |||
( ") | |||
] cat /comm set | |||
(Executing the command : ) messagen comm message message | |||
comm system | |||
(sleep 5) system-csh | |||
[(oxCreateClient2) peer 1 pass] extension /your-peer set | |||
/LLL.end | |||
/arg1 your-peer def | |||
] pop | |||
popVariables | |||
arg1 | |||
} def | |||
[(ox_launch) | |||
[( [remote remote-OpenXM-bin remote-ox-server remote-login-name myhostname] ) | |||
( ox_launch client ) | |||
$or $ | |||
$ [(localhost) ox-server-name] ox_launch client$ | |||
(Example 1: ) | |||
$ [(tau.math.kobe-u.ac.jp) (/home/taka/OpenXM/bin) $ | |||
$ (/home/taka/OpenXM/src/ox_math/ox_math) (taka) (dc4.math.kobe-u.ac.jp) $ | |||
$ ] ox_launch /@@@.oxmath set $ | |||
]] putUsages | |||
[(ox_launch_nox) | |||
[( [remote remote-OpenXM-bin remote-ox-server remote-login-name myhostname] ) | |||
( ox_launch_nox client ) | |||
(Example 1: ) | |||
$ [(tau.math.kobe-u.ac.jp) (/home/taka/OpenXM/bin) $ | |||
$ (/home/taka/OpenXM/src/ox_math/ox_math) (taka) (dc4.math.kobe-u.ac.jp) $ | |||
$ ] ox_launch_nox /@@@.oxmath set $ | |||
]] putUsages | |||
/system-csh { | |||
/arg1 set | |||
[/in-system-csh /com /com2] pushVariables | |||
[ | |||
/com arg1 def | |||
[(/bin/csh -c ") com (")] cat | |||
/com2 set | |||
%%com2 message | |||
com2 system | |||
] pop | |||
popVariables | |||
} def | |||
/ox_launch_localhost { | |||
/arg1 set | |||
[/in-ox_launch_localhost /pass /peer /data /control /oxserver | |||
/my-peer] pushVariables | |||
[ | |||
/oxserver arg1 def | |||
/pass [(oxGenPass)] extension def | |||
/peer [(oxGetPort) (localhost)] extension def | |||
/data peer 1 get toString def | |||
/control peer 3 get toString def | |||
peer message | |||
[oxpath.oxlog.xterm oxpath.ox ( -reverse -ox ) oxserver | |||
( -data ) data ( -control ) control ( -pass ) pass | |||
oxpath.null | |||
( &)] cat system-csh | |||
[(oxCreateClient2) peer 0 pass] extension /my-peer set | |||
%% 0 means connect from only localhost. | |||
(The server is binded to the variable ox.ccc) message | |||
/arg1 my-peer def | |||
] pop | |||
popVariables | |||
arg1 | |||
} def | |||
%% Test code for oxCreateControl_RFC_101 | |||
/sm1connect101 { | |||
[/in-sm1connectr /pass /peer /data /control ] pushVariables | |||
[ | |||
/pass [(oxGenPass)] extension def | |||
/peer [(oxGetPort) (localhost)] extension def | |||
/peer [ peer 0 get peer 1 get ] def %% BUG, close the rest. | |||
/data peer 1 get toString def | |||
peer message | |||
[(/home/nobuki/OpenXM/src/oxc/oxc) | |||
( -c ) pass ( -h ) (localhost) ( -p ) data ( -x ) | |||
oxpath.null | |||
( &)] cat system-csh | |||
[(oxCreateControl_RFC_101) peer 0 pass] extension /ox.ccc set | |||
%% 0 means connect from only localhost. | |||
(The server is binded to the variable ox.ccc) message | |||
ox.ccc | |||
] pop | |||
popVariables | |||
} def | |||
initializePathNamesForOx %% This should be | initializePathNamesForOx %% This should be |