I don't seem able to get my code to execute in SAS.  Specifically, only the 
first line in the region seems to be transmitted.  Could the fact it is in a 
file that does not have a .sas extension be a factor?  Also, I have problems 
exiting.  BTW, http://ess.r-project.org/Manual/news.html doesn't show any 
SAS-related changes after 13-09-1.

Here's what happens:
start emacs 24.3.1 on linux/Ubuntu
open file  tng-sim0000_1.mprint in emacs.
M-x sas-mode
buffer mode line now shows ESS[SAS] [SAS]
M-x SAS
emacs now shows 4 panels, including *SAS.log* showing initialization of the SAS 
system (in other words, it found the executable).
I switch to the mprint buffer and highlight the region I want to execute and 
hit C-c C-r.
Emacs displays "starting evaluation ..." at the bottom, and just stays that 
way.  It is unresponsive to most keypresses, except to beep.  There are no 
visible changes in other buffers.
C-g interrupts things.  The log window now shows the first line only of the 
buffer.  If I've done this before it causes the prior single line to execute.

The behavior I'm expecting when I hit C-c C-r is for the entire region to 
execute (since it has run; at the end) and appropriate log and list output to  
appear.

Another oddity is that the log and list windows both look as if they have 
shells in them, though I presume that is by design.  That may be related to my 
exit problem:

In the mprint buffer I go
C-c C-q and confirm I want to exit.
endsas; appears in the log and *SAS* buffers; the latter also shows "Process 
SAS finished at ..."
However, when I switch to the log or lst buffer and try to kill it (C-x C-k) I 
get the message that it has a running process and asking if I want to kill it.  
This puzzled me since the SAS process is supposed to be dead.  Maybe a 
reference to the apparent shell process of the buffer?


--------------------------------*SAS.lst*-------------------------------------------------------
sh-4.3$ tty
/dev/pts/4
sh-4.3$ 


---------------------------*SAS* after 3 
attempts------------------------------------------------
+ stdout=/dev/pts/4
+ stderr=/dev/pts/5
+ shift 2
+ set +x
sas </dev/tty 1>/dev/pts/4 2>/dev/pts/5 -stdio -linesize 80 -noovp 
-nosyntaxcheck
data gen ids;                                                                   
                                                                      
data gen ids;                                                                   
                                                                      
data gen ids;             


---------------------------*SAS.log* (with some lines 
removed)-----------------------------------------------------
sh-4.3$ tty
/dev/pts/5
sh-4.3$ 1                                The SAS System
                                               12:29 Thursday, November 10, 2016

NOTE: Copyright (c) 2002-2012 by SAS Institute Inc., Cary, NC, USA. 
NOTE: SAS (r) Proprietary Software 9.4 (TS1M3) 
NOTE: This session is executing on the Linux 4.4.0-47-generic (LIN X64) 
      platform.

NOTE: Additional host information:

 Linux LIN X64 4.4.0-47-generic #68~14.04.1-Ubuntu SMP Wed Oct 26 19:42:11 UTC
      2016 x86_64 Unrecognized Linux Distribution

NOTE: SAS initialization used:
      real time           1.28 seconds
      cpu time            0.05 seconds

1
2    data gen ids;
NOTE: The data set WORK.GEN has 1 observations and 0 variables.
NOTE: The data set WORK.IDS has 1 observations and 0 variables.
NOTE: DATA statement used (Total process time):
      real time           34.58 seconds
      cpu time            0.02 seconds

3    data gen ids;
NOTE: The data set WORK.GEN has 1 observations and 0 variables.
NOTE: The data set WORK.IDS has 1 observations and 0 variables.
NOTE: DATA statement used (Total process time):
      real time           14:47.20
      cpu time            0.03 seconds
^L2                                The SAS System
                                               12:29 Thursday, November 10, 2016


4    data gen ids;

-------------------------- region I'm trying to 
execute------------------------------
data gen ids;                                                                   
                                                                      
call streaminit(123);                                                           
                                                                      
srho = sqrt(abs(0.5));                                                          
                                                                      
smrho = sqrt(1-abs(0.5));                                                       
                                                                      
drop srho smrho;                                                                
                                                                      
do iSim = 1 to 1;                                                               
                                                                      
do id = 1 to 40000;                                                             
                                                                      
if id <= 12000 then g=1;                                                        
                                                                      
else g=-1;                                                                      
                                                                      
a0 = rand('NORMAL');                                                            
                                                                      
a1 = rand('NORMAL');                                                            
                                                                      
a2 = rand('NORMAL');                                                            
                                                                      
a0 = ((exp(a0*0.01)-1)/0.01 * exp(0.2*a0**2/2) - 
0.006987930800249634)/1.4670501788740913;                                       
                     
a1 = ((exp(a1*0.01)-1)/0.01 * exp(0.2*a1**2/2) - 
0.006987930800249634)/1.4670501788740913;                                       
                     
a2 = ((exp(a2*0.01)-1)/0.01 * exp(0.2*a2**2/2) - 
0.006987930800249634)/1.4670501788740913;                                       
                     
b0 = (smrho*a0 + srho*a2)*1;                                                    
                                                                      
bT = (smrho*a1 + srho*a2)*1;                                                    
                                                                      
output ids;                                                                     
                                                                      
regularN = 0;                                                                   
                                                                      
regularStep = 0;                                                                
                                                                      
;                                                                               
                                                                      
drop regularN regularStep;                                                      
                                                                      
do step = -0 to 100-0;                                                          
                                                                      
T = -0.5 + 1 * step/100;                                                        
                                                                      
regular = (step >= regularStep);                                                
                                                                      
if regular then do;                                                             
                                                                      
regularN + 1;                                                                   
                                                                      
regularStep = round(regularN * 100 * 0.5);                                      
                                                                      
gammav = 0;                                                                     
                                                                      
end;                                                                            
                                                                      
else do;                                                                        
                                                                      
gammav = 0;                                                                     
                                                                      
end;                                                                            
                                                                      
eta = 0 + b0 + (1 + bT)*T + 2 * g + 3 * g * T;                                  
                                                                      
Y = rand('NORMAL', eta, 1);                                                     
                                                                      
YForVisit = eta;                                                                
                                                                      
output gen;                                                                     
                                                                      
end;                                                                            
                                                                      
end;                                                                            
                                                                      
end;                                                                            
                                                                      
run;


______________________________________________
ESS-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/ess-help

Reply via email to