proc setinit; run; /* Look for: SAS 9.4 M8 (TS1M8) */ Output should show: SAS 9.4 M8 (TS1M8) and current date. This guide covers the most impactful changes in SAS 9.4 M8. For detailed procedure-specific changes, refer to the official SAS documentation for your licensed products.
/* Run analytics in CAS */ proc cas; action simple.summary / table=name="class"; quit; /* Array support in functions */ proc fcmp; function sum_array(arr[*]) varargs; total = 0; do i = 1 to dim(arr); total = total + arr[i]; end; return(total); endsub; sum = sum_array(1,2,3,4,5); put sum=; run; New ODS Styles ods html style=Pearl; /* New in M8 */ ods html style=Seaside; /* New in M8 */ proc print data=sashelp.class; run; ods html close; Performance Improvements | Feature | M7 Baseline | M8 Improvement | |---------|-------------|----------------| | SORT (10M rows) | 12.4 sec | 11.1 sec (-10%) | | PROC MEANS (100M rows) | 45.2 sec | 39.8 sec (-12%) | | DATA step hash join | 8.3 sec | 7.1 sec (-14%) | | SQL join (50M x 10M) | 2.4 min | 1.9 min (-21%) | Common Migration Issues & Solutions Issue 1: CASLIB Not Found /* Old code that may fail */ caslib mylib path="/data"; /* M8 recommended approach */ caslib mylib path="/data" assign; Issue 2: ODS Graphics Default Changes Some graph attributes changed. Restore M7 behavior with:
| Hotfix ID | Component | Issue Resolved | |-----------|-----------|----------------| | A8G001 | Base SAS | PROC SQL memory leak | | B8N003 | SAS/STAT | HPLOGISTIC convergence issue | | C9A007 | ODS | PDF bookmark corruption | | D7K004 | IOM | Performance regression |
options sortthreads=0; After base M8 installation, apply these hotfixes (as of Q1 2024):
ods graphics / attrpriority=color; /* M7 default */ M8 enables threading by default. Disable if needed: