[BACK]Return to ox.sm1 CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Doc

Diff for /OpenXM/src/kan96xx/Doc/ox.sm1 between version 1.1.1.1 and 1.17

version 1.1.1.1, 1999/10/08 02:12:02 version 1.17, 2001/08/22 03:23:25
Line 1 
Line 1 
   %%%%%%%%%%%  $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.16 2001/08/22 02:36:34 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
Line 6 
Line 7 
 /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.
   %%%%%%%%%%%%%  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.  %% Old full path.
 %/oxpath.ox (/home/nobuki/kxx/ox) def  %/oxpath.ox (/home/nobuki/kxx/ox) def
Line 40  ox.version [(Version)] system_variable gt 
Line 53  ox.version [(Version)] system_variable gt 
   (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, ---OpenXM protocol module 08/22, 2001  (C) N.Takayama. oxhelp for help) message-quiet
   
 /ox.ccc load isArray  /ox.ccc load isArray
 { }  { }
Line 60  ox.version [(Version)] system_variable gt 
Line 73  ox.version [(Version)] system_variable gt 
   
 /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
Line 74  ox.version [(Version)] system_variable gt 
Line 87  ox.version [(Version)] system_variable gt 
   
 /SM_control_kill 1024 def  /SM_control_kill 1024 def
 /SM_control_reset_connection  1030 def  /SM_control_reset_connection  1030 def
   /SM_control_spawn_server  1027 def
   
 /Etag_error 257 def  /Etag_error 257 def
   
Line 127  ox.version [(Version)] system_variable gt 
Line 141  ox.version [(Version)] system_variable gt 
  (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 ; $
Line 148  ox.verbose { oxhelp } {  } ifelse
Line 162  ox.verbose { oxhelp } {  } ifelse
 /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
Line 164  ox.verbose { oxhelp } {  } ifelse
Line 178  ox.verbose { oxhelp } {  } ifelse
  [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
Line 181  ox.verbose { oxhelp } {  } ifelse
Line 195  ox.verbose { oxhelp } {  } ifelse
  [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
Line 342  ox.verbose { oxhelp } {  } ifelse
Line 356  ox.verbose { oxhelp } {  } ifelse
 /oxreset {  /oxreset {
   /arg1 set    /arg1 set
   [(oxReq) arg1 SM_control_reset_connection] extension pop    [(oxReq) arg1 SM_control_reset_connection] extension pop
   [(oxGetFromControl) arg1 ] extension pop  %%  [(oxGetFromControl) arg1 ] extension pop
   [(oxGet) arg1] extension message    [(oxGet) arg1] extension message
 } def  } def
   
Line 472  def
Line 486  def
   /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 {
Line 501  def
Line 515  def
     } { } 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
Line 573  ox.verbose {
Line 587  ox.verbose {
  [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
Line 582  ox.verbose {
Line 596  ox.verbose {
  popVariables   popVariables
 } def  } 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 {  /addSlash {
   /arg1 set    /arg1 set
   [/in-addSlash /ss /aaa /ans] pushVariables    [/in-addSlash /ss /aaa /ans] pushVariables
Line 627  ox.verbose {
Line 697  ox.verbose {
        } { } 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.
Line 637  ox.verbose {
Line 720  ox.verbose {
      %% 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
Line 653  ox.verbose {
Line 739  ox.verbose {
 [(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 {
Line 669  ox.verbose {
Line 756  ox.verbose {
         /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
Line 688  ox.verbose {
Line 768  ox.verbose {
   
      } {  } 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
Line 710  ox.verbose {
Line 799  ox.verbose {
 ]] 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
   
 initializePathNamesForOx  %% This should be  /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
   /sm1StartControl101 {
    [/in-sm1connectr /pass /peer /data /control ] pushVariables
    [
    /pass [(oxGenPass)] extension def
    /peer [(oxGetPort1) (localhost)] extension def
    /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
   
   /sm1StartEngine101 {
    [/in-sm1StartEngine101 /peer /data /control /engineID] pushVariables
    [
       /peer [(oxGetPort1) (localhost)] extension def
       /data peer 1 get def
   
       ox.ccc data oxpushcmo
       ox.ccc (/home/nobuki/OpenXM/bin/ox_sm1) oxpushcmo
       [(oxPushCMD) ox.ccc SM_control_spawn_server] extension
       ox.ccc oxpopcmo /engineID set
       [(oxCreateEngine_RFC_101) peer 0 (Empty) engineID] extension
       /ox.ddd set
       (The engine is binded to the variables ox.ddd) message
    ] pop
    popVariables
    arg1
   } def
   
   /OxWorkDirCreated false def
   /oxWorkDir {
     [/in-oxWorkDir /workHome /work] pushVariables
     [
       [(getenv) (OpenXM_tmp)] extension tag 0 eq {
          /workHome [
             [(getenv) (HOME)] extension
             (/OpenXM_tmp)
          ] cat def
       }{
          /workHome
            [(getenv) (OpenXM_tmp)] extension
          def
       }ifelse
       /work [workHome  (/)  [(getpid)] extension toString] cat def
   
       OxWorkDirCreated not {
         [(stat) workHome] extension 0 get tag 0 eq {
           [(Working directory ) workHome ( will be created.)] cat
           message
           [(mkdir ) workHome] cat system
         }{
         } ifelse
   
         [(stat) work] extension 0 get tag 0 eq {
           [(Working directory ) work ( will be created.)] cat
           message
           [(mkdir ) work] cat system
         }{
         } ifelse
         /OxWorkDirCreated true def
       }{ } ifelse
       /arg1 work def
     ] pop
     popVariables
     arg1
   } def
   [(oxWorkDir)
    [(oxWorkDir returns a name of working directory for OpenXM processes.)
     (If the working direcotry does not exist, it creates ~/OpenXM_tmp/[pid].)
     (The name can be changed by setting a value to the environmental variable)
     (OpenXM_tmp.    cf. oxNewFileName)
    ]
   ] putUsages
   
   /OxFileName 0 def
   /oxNewFileName {
     [/in-oxNewFileName /name] pushVariables
     [
       /name [(work) OxFileName toString] cat def
       /OxFileName OxFileName 1 add def
       /arg1 name def
     ] pop
     popVariables
     arg1
   } def
   [(oxNewFileName)
    [(oxNewFileName returns a unique file name for a working file.)
     (cf. oxWorkDir)
    ]
   ] putUsages
   
   [(ostype)] extension  0 get
   (windows) eq {
   }{
     initializePathNamesForOx  %% This should be
   } ifelse

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.17

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>