Skip to content

util_initScaproc / util_termScaproc run unmodified on Jenner#1

Open
jenner-analytics wants to merge 1 commit into
ahmedanadwc:mainfrom
jenner-analytics:jenner-check/initial-bundles
Open

util_initScaproc / util_termScaproc run unmodified on Jenner#1
jenner-analytics wants to merge 1 commit into
ahmedanadwc:mainfrom
jenner-analytics:jenner-check/initial-bundles

Conversation

@jenner-analytics

@jenner-analytics jenner-analytics commented Jul 11, 2026

Copy link
Copy Markdown

Jenneranalytics.com provides an API that runs SAS code, with support for more than 200 SAS procedures. You can also use it with AI assistants in a collaborative workspace. It's available for Mac on the Apple App Store, and by license for Windows and Linux.

We support the larger community by
(1) increasing access to SAS-compatible systems,
(2) by providing test coverage and a test coverage framework to public SAS repos in order to encourage the use of best practices in software engineering.

Your util_initscaproc.sas / util_termscaproc.sas run on Jenner unmodified — this PR adds a small compatibility bundle so you can see for yourself. It's the test we wrote for your macro library, shared in case it's useful, and was assembled with AI assistance as is most code in modern businesses today.

We particularly liked how util_parseScaproc turns SCAPROC's raw trace text into a real lineage artifact — the ordered hash table for concatenated-library resolution (libHash), the PROC FORMAT CNTLIN= trick used twice over for step names and unique entity labels, and the HTML-table node labels in the generated DOT output so column-level attributes render inline in the graph. That's a level of polish beyond "parse a log file"; it's a small compiler pass. usage_util_xxxxscaproc.sas shows off the pattern too, bracketing a real PROC SUMMARY/%split/PROC EXPORT pipeline between the init/term macros.

jenner-check/ has two bundles built from your code: t001_util_init_term_scaproc calls %util_initScaproc/%util_termScaproc unmodified around a small PROC MEANS/FREQ step, exercising the enable-flag gating and the PROC SCAPROC RECORD/WRITE calls exactly as written; t002_usage_xxxxscaproc runs the PROC SUMMARY → %split → two-year comparison → PROC EXPORT pipeline from your usage program (sashelp.prdsale swapped for a small mock table with the same columns, since that table isn't in this engine's sashelp set). Nothing outside jenner-check/ is touched, nothing runs on merge:

jenner-check/
├── README.md
├── run_jenner.sh
├── t001_util_init_term_scaproc/
│   ├── script.sas
│   ├── autoexec.sas
│   ├── expected.json
│   ├── meta.json
│   └── expected/{log.txt,output.txt}
└── t002_usage_xxxxscaproc/
    ├── script.sas
    ├── autoexec.sas
    ├── expected.json
    ├── meta.json
    └── expected/{log.txt,output.txt}

To try it yourself, check out this PR's branch and run from the repo root:

gh pr checkout 1
curl -sS --data-binary @jenner-check/t002_usage_xxxxscaproc/script.sas https://api.jenneranalytics.com/v1/quick

or cd jenner-check && ./run_jenner.sh --all to re-run both bundles and verify the pinned fields in each expected.json. The hosted API is free to try, no signup required — full reference: the docs.

The runner uploads only a bundle's SAS source text (autoexec.sas + script.sas) to api.jenneranalytics.com, where it runs and returns the log and listing. It does not read or upload any data files, so anything sitting next to a script stays on your machine — only the code you run is transmitted, as with pasting a snippet into any hosted tool. Nothing is sent unless you run a command yourself.

Merge, close, or ignore this PR — no response expected. We won't open further PRs in this repo; to opt out for good, mention no-more-prs in any comment or open an issue titled jenner-check: opt out.


Lawrence W. Sinclair
CEO / Jenner Analytics Ltd
linkedin.com/in/lwsinclair/

Adds jenner-check/ with two self-contained test bundles built from this
repo's own SAS: t001 exercises util_initScaproc/util_termScaproc's
enable-flag gating and PROC SCAPROC RECORD/WRITE calls unmodified;
t002 runs the usage_util_xxxxscaproc.sas pipeline (PROC SUMMARY,
the %split macro caller, PROC EXPORT). Includes the shell runner and
README; nothing outside jenner-check/ is touched and nothing runs on
merge.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant