Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

pre-31 kernels

105 views
Skip to first unread message

Joel McCracken

unread,
Sep 11, 2024, 12:15:27 PM9/11/24
to qil...@googlegroups.com
Hi, I've been looking at updating the emacs lisp implementation of Shen. The implementation is currently at Shen 21.

I only see official kernels back to 31.01 available right now on the site. Is it possible to access the previous ones? I haven't tried the wayback machine yet.

I do see that the OS kernel goes back that far, so I'm tenuously thinking of using it to upgrade step by step.

dr.mt...@gmail.com

unread,
Sep 12, 2024, 5:21:24 PM9/12/24
to Shen
I do have kernels all the way back to 1.7.  I don't put them
up because, well, they are obsolete.  I can make them available.
But do you think that working from 21 onwards is easier than just 
moving the emacs to S39?

Mark

Joel McCracken

unread,
Sep 12, 2024, 7:51:15 PM9/12/24
to qil...@googlegroups.com
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

--
You received this message because you are subscribed to the Google Groups "Shen" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qilang+un...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/qilang/d67c4edf-22d1-4807-80c3-88fe0bf93bd2n%40googlegroups.com.

Bruno Deferrari

unread,
Sep 12, 2024, 7:56:38 PM9/12/24
to qil...@googlegroups.com
The Elisp port used the versions released on GitHub, you can find them all here https://github.com/Shen-Language/shen-sources/releases

But I wouldn't go through all the versions, keep in mind that there was a big jump when the S kernel was released, so you may end up implementing something that was required for previous versions but that current versions do not require anymore.

I am not familiar with the internals of the Elisp port, it may even be the case that you can remove parts that are not needed anymore (after the S kernel got released for example, the compilation of function application got quite a bit simpler, so many things that port had to do to support older versions are not required anymore).



--
BD

dr.mt...@gmail.com

unread,
Sep 13, 2024, 3:56:52 AM9/13/24
to Shen
21 was a version that was derived and maintained by the OS
community.  My closed source versions from that period were 
slightly different,  so if you wanted to work forward from 21, the
OS community would be the place to go.

Mark

Joel McCracken

unread,
Sep 14, 2024, 12:51:58 PM9/14/24
to qil...@googlegroups.com
Thanks, your messaging helped me realize a few of the things I was missing.

I think I'm starting to understand the challenges: basically, in shen-elisp, the repl is being provided by emacs lisp code (e.g. using comint etc), and in modern shen, shen kernel itself provides the repl. 

So, I am going to see about inverting that, and just check that all the required primitives for S31 are indeed implemented in emacs.

Mark Tarver

unread,
Sep 14, 2024, 8:39:37 PM9/14/24
to qil...@googlegroups.com
I don't exactly know what Deech did.   There was a REPL with
21 but maybe he had good reason to replace it.  The primitives have
not changed, so that should not be an issue.

Mark

Reply all
Reply to author
Forward
0 new messages