=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/ox.sm1,v retrieving revision 1.1.1.1 retrieving revision 1.8 diff -u -p -r1.1.1.1 -r1.8 --- OpenXM/src/kan96xx/Doc/ox.sm1 1999/10/08 02:12:02 1.1.1.1 +++ OpenXM/src/kan96xx/Doc/ox.sm1 2000/01/19 08:33:27 1.8 @@ -1,3 +1,4 @@ +%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.7 2000/01/19 06:41:02 takayama Exp $ %%%%%%%%%%%% Configuration: Specify your server path %%%%% ox, ox_sm1, oxlog are contained in kxx.tgz %%%%% These should be under /usr/local/lib/sm1 or LOAD_SM1_PATH @@ -6,7 +7,19 @@ /oxpath.oxlog (bin/oxlog) def /oxpath.xterm (/usr/X11R6/bin/xterm -icon -e ) 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. +%%%%%%%%%%%%% 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.oxsm1-ssh (/home/taka/OpenXM/bin/ox_sm1) def +/oxpath.ox-ssh (/home/taka/OpenXM/bin/ox) def +/myhostname-ssh (yama.math.kobe-u.ac.jp) def +%% for debugging. +%/oxpath.oxlog.xterm-ssh ( ) def +%/oxpath.oxsm1-ssh (/home/nobuki/OpenXM/bin/ox_sm1) def +%/oxpath.ox-ssh (/home/nobuki/OpenXM/bin/ox) def +%/myhostname-ssh (localhost) def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Old full path. %/oxpath.ox (/home/nobuki/kxx/ox) def @@ -40,7 +53,7 @@ ox.version [(Version)] system_variable gt (Please get it from http://www.math.kobe-u.ac.jp/KAN) message error } { } 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 { } @@ -127,7 +140,7 @@ ox.version [(Version)] system_variable gt (oxhelp for this message, [(oxWatch) client] extension to start a log.) ([(oxSerial)] extension serial-number-of-out-going-ox-packet.) (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) $ ex 1. (ox.sm1) run oxNoX sm1connectr $ $ ex 2. (oxasir.sm1) run oxNoX (x^2-1). fctr pmat ; $ @@ -148,13 +161,13 @@ ox.verbose { oxhelp } { } ifelse /sm1connect2 { [oxpath.oxlog.xterm oxpath.ox ( -ox ) oxpath.oxsm1 oxpath.null - ( &)] cat system + ( &)] cat system-csh % (kterm -iconic -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_sm1 &) system % For MSRI, or Eterm, %(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 (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 (The server is binded to the variable ox.ccc) message ox.ccc.init @@ -164,13 +177,13 @@ ox.verbose { oxhelp } { } ifelse [oxpath.oxlog.xterm oxpath.ox ( -ox ) oxpath.oxsm1 ( -data 2300 -control 2200 ) oxpath.null - ( &)] cat system -% (kterm -iconic -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_sm1 -data 2300 -control 2200 &) system + ( &)] cat system-csh +% (kterm -iconic -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_sm1 -data 2300 -control 2200 &) system-csh % 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 (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 (The server is binded to the variable ox.ccc2) message } def @@ -181,8 +194,8 @@ ox.verbose { oxhelp } { } ifelse [oxpath.oxlog.xterm oxpath.ox ( -ox ) oxpath.oxsm1 ( -portfile ) ox.ccc.portfile oxpath.null - ( &)] cat system - (sleep 5) system + ( &)] cat system-csh + (sleep 5) system-csh [(oxReadPortFile) ox.ccc.portfile] extension /ox.ccc.control set ox.ccc.control message [(localhost) ox.ccc.control 1200] /ox.ccc set @@ -472,7 +485,7 @@ def /exhausted 0 def % clear the busy flag. /busy [1 1 enginesN { pop 0 } for ] def - (date) system + (date) system-csh {{ exhausted 0 eq { 0 1 enginesN 1 sub { @@ -501,7 +514,7 @@ def } { } ifelse } for } loop } timer - (date) system + (date) system-csh (result is in result) message (Number of s-pairs checked is ) messagen result length message } def @@ -573,7 +586,7 @@ ox.verbose { [oxpath.oxlog.xterm oxpath.ox ( -reverse -ox ) oxpath.oxsm1 ( -data ) data ( -control ) control ( -pass ) pass oxpath.null - ( &)] cat system + ( &)] cat system-csh [(oxCreateClient2) peer 0 pass] extension /ox.ccc set %% 0 means connect from only localhost. (The server is binded to the variable ox.ccc) message @@ -582,6 +595,62 @@ ox.verbose { popVariables } def +/sm1connectr-ssh { + /arg1 set + [/in-sm1connectr /pass /peer /data /control /name /machine + /your-peer /comm + ] pushVariables + [ + /machine arg1 0 get def + /name arg1 1 get def + + /pass [(oxGenPass)] extension def + /peer [(oxGetPort) myhostname-ssh] extension def + /data peer 1 get toString def + /control peer 3 get toString def + peer message + [(ssh -f ) machine ( -l ) name ( ") + oxpath.oxlog.xterm-ssh oxpath.ox-ssh ( -reverse -ox ) oxpath.oxsm1-ssh + ( -host ) myhostname-ssh + ( -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 + /arg1 your-peer def + ] pop + popVariables + arg1 +} def +[(sm1connectr-ssh) +[([hostname login-name] sm1connectr-ssh client) + (Starting oxpath.oxsm1-ssh by the launcher oxpath.ox-ssh on the "hostname".) + (cf. oxNoX ) + (Set the following varialbes to appropriate values:) + (oxpath.oxlog.xterm-ssh oxpath.oxsm1-ssh oxpath.ox-ssh myhostname-ssh ) + $Example 1: $ + $ *** Path names on the remote machine dc1.math.kobe-u.ac.jp $ + $ /oxpath.oxlog.xterm-ssh (/home/taka/OpenXM/bin/oxlog /usr/X11R6/bin/xterm -icon -e ) def $ + $ /oxpath.oxsm1-ssh (/home/taka/OpenXM/bin/ox_sm1) def $ + $ /oxpath.ox-ssh (/home/taka/OpenXM/bin/ox) def $ + $ *** The machine name on which you are running sm1. $ + $ /myhostname-ssh (yama.math.kobe-u.ac.jp) def $ + $ [(dc1.math.kobe-u.ac.jp) (taka)] sm1connectr-ssh /ox.ccc set $ + $Example 2: $ + $ *** Path names on the remote machine dc2.math.kobe-u.ac.jp $ + $ *** We will not use X11 debug windows. $ + $ oxNoX $ + $ /oxpath.oxlog.xterm-ssh (/home/taka/OpenXM/bin/oxlog ) def $ + $ /oxpath.oxsm1-ssh (/home/taka/OpenXM/bin/ox_sm1) def $ + $ /oxpath.ox-ssh (/home/taka/OpenXM/bin/ox) def $ + $ *** the machine name on which you are running sm1. $ + $ /myhostname-ssh (dc1.math.kobe-u.ac.jp) def $ + $ [(dc2.math.kobe-u.ac.jp) (taka)] sm1connectr-ssh /ox.ccc set $ +]] putUsages + /addSlash { /arg1 set [/in-addSlash /ss /aaa /ans] pushVariables @@ -627,6 +696,19 @@ ox.verbose { } { } 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 [(stat) [(/usr/local/lib/sm1/) fname] cat] extension 0 get isInteger %% The file was found. @@ -637,8 +719,11 @@ ox.verbose { %% Otherwise error. [(getPathNameSm1: The file ) fname ( could not be found ) - (neigher in LOAD_SM1_PATH=) + (neigher in LOAD\_SM1\_PATH=) [(getenv) (LOAD_SM1_PATH)] extension + ( nor in OpenXM\_HOME/lib/sm1=) + [(getenv) (OpenXM_HOME)] extension + (/lib/sm1) ( nor in /usr/local/lib/sm1) ] cat /getPathNameSm1.errorMessage set getPathNameSm1.errorMessage message @@ -653,8 +738,9 @@ ox.verbose { [(getPathNameSm1) [([fname] getPathNameSm1 fullname) (string fname, fullname) - (This command searches the fname in /usr/local/lib/sm1 and LOAD_SM1_PATH) - (and returns the fullname.) + (This command searches the fname in LOAD_SM1_PATH, ) + (OpenXM_HOME/lib/sm1, and /usr/local/lib/sm1) + (It returns the fullname.) ]] putUsages /getPathNameAsir { @@ -689,9 +775,11 @@ ox.verbose { } { } ifelse %% Otherwise error. - [ (getPathNameAsir: The file ) fname + [ (getPathNameAsir: The file ) + fname (ox_asir) eq + {(ox\_asir)} { fname }ifelse ( 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 getPathNameAsir.errorMessage message ] pop popVariables getPathNameAsir.errorMessage error @@ -709,6 +797,88 @@ ox.verbose { (and returns the fullname.) ]] 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 + ] pushVariables + [ + /machine arg1 0 get def + /remoteOpenXMbin arg1 1 get def + /remoteServer arg1 2 get def + /name arg1 3 get def + /myhost arg1 4 get def + + /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 + /arg1 your-peer def + ] pop + popVariables + arg1 +} def + +[(ox_launch) +[( [remote remote-OpenXM-bin remote-ox-server remote-login-name myhostname] ) + ( 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 initializePathNamesForOx %% This should be