Well, I don't know if it's easier or not, long term. But I did try the "straight-to-39" approach and quickly got stuck, without a good idea of how to proceed.
The other alternative I have in mind is basically doing a fresh port based around 39, using the prior version as much as possible. I'm not super sure what would be less work.
A part of this whole issue is that the emacs port includes built kl files, and i'm not sure how they were generated; it may be that they're just generated and copied from e.g. shen 21, but, I didn't have sources for 21, so I couldn't build them and compare the difference.
The most naive way of going about it, take kl files from 39 and use them instead of the others, worked in some ways, but the repl was broken. And, the repl code (
https://github.com/deech/shen-elisp/blob/master/shen-repl.el#L150-L181) looks so different from what I see on other active ports (official SBCL source and shen-scheme were the two I looked at), that I just didn't know what to do from there. Just now I looked at the scheme port v21, and while its much simpler, I'm still a big unsure of what to use for inspiration there.
I'll figure it out, I mostly just would like to avoid wasting a lot of effort.
Joel