Skip to content

avg_macro and indirect macro refs run unmodified on Jenner - #1

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

avg_macro and indirect macro refs run unmodified on Jenner#1
jenner-analytics wants to merge 1 commit into
Ndiatenda:mainfrom
jenner-analytics:jenner-check/initial-bundles

Conversation

@jenner-analytics

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 Assignment 4.sas runs 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-programming project, shared in case it's useful, and was assembled with AI assistance as is most code in modern businesses today.

Two of your files walk through indirect macro-variable references (Assignment 7.sas and indirect reference of variables .sas), and the second one doesn't just use the &&&name pattern — it writes out the resolution rule in your own words ("processed from left to right... multiple ampersands, re-scan run until none left... two ampersands result into one during resolution"). That's a cleaner statement of SAS's ampersand-rescan algorithm than most explanations I've seen, and it held up exactly against the interpreter when we traced through &&&&&one by hand.

jenner-check/ holds six bundles, one per technique — the call symputx counting/naming pattern from Assignment 4, the indirect references from Assignment 7, your parameterized %avg_macro, the correlations pipeline, the height-percentage pipeline, and the per-Make proportion calc — each with the script, a small runner, and the output we captured:

jenner-check/
├── run_jenner.sh
├── README.md
├── t001_assignment4_symputx_counts/
├── t002_indirect_macro_refs/
├── t003_avg_macro_sashelp/
├── t004_correlations_proc_corr/
├── t005_percentages_pipeline/
└── t006_makecounts_proportion/

Check out this PR's branch and run one directly from the repo root:

gh pr checkout <PR_NUMBER>
curl -sS --data-binary @jenner-check/t006_makecounts_proportion/script.sas https://api.jenneranalytics.com/v1/quick

Or cd jenner-check && ./run_jenner.sh --all to run all six and check them against the pinned results. The hosted API is free to try, no signup — full API reference: the docs.

Only the SAS source text of whatever script you run (plus a two-line autoexec) gets sent to api.jenneranalytics.com, which runs it and returns the log and listing. It doesn't read or upload any data files, so nothing else in the repo leaves your machine, and nothing is sent unless you run a command yourself.

Merge it, close it, or ignore it — no response expected, and we won't open further PRs in this repo. To opt out for good, leave 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/

Bundles derived from this repo's own macro-programming exercises,
each self-contained against sashelp.class / sashelp.cars / sashelp.heart:

- t001: Assignment 4.sas -- call symputx counts + generated macro vars
- t002: Assignment 7.sas -- multi-level indirect macro variable references
- t003: Assignment 9.sas -- parameterized %avg_macro(dataset_name=, varlist=)
- t004: Calculate Correlations Between Variables.sas -- proc means + proc corr
- t005: Calculating Percentages...sas -- means/symputx/sort pipeline
- t006: Macro Variables Call Symput.sas -- proc means class + single-pass merge

All verified against the live Jenner API and reproduced via the shipped
run_jenner.sh --all runner before committing.
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