S38.1[WIP]#25
Conversation
|
This is cool to see. I've been thinking about doing this myself - there are some things that I've been struggling with as I use this project, and the big difference between kernel versions is always something that makes me wonder. However, if I was going to do this, I would also do the following:
|
|
@joelmccracken From what I've read on the shen google group, the biggest change is between the S and non-S kernel series. Once we get the port to work with one S series kernel, the rest should be trivial to maintain (at least that is my impression). Let me know if you get it to work! |
|
btw @echawk do you have any interesting shen-elisp code to share? I'm still pretty new in the overall process, but here's mine: |
|
Well at this point there are just a ton of changes, and given I don't really know how @deech built it in the first place, its hard for me to trace. @deech how would you feel if I basically started a fresh port, lifting what I can from this port? I'd give you credit of course Otherwise I could also keep poking at it, just hard to make progress. I know that like at one point I looked at the official sources for the version of shen that this port supports, and it clarified why certain things look so different, but still, not too sure how to move forward. |
|
@joelmccracken let me know if/when you start this project since I'd be happy to help get a port up and running I also wonder if it would be easier to try and port the CL version of shen to elisp? |
|
yeah @echawk ill let you know if/when I do. And same here, if you decide to work on it yourself, lmk. And yea the common lisp one may be eaiser, or at least a good inspiration. I'll say tho that the CL version makes heavy use of saving itself in a lisp image, which isn't whats needed for emacs; but at least some of the ideas may help. |
|
Hmm, tho, so I see that the shenlanguage.org site doesn't contain the kernel versions before 31, though the open source repo does still host those versions; perhaps it would be possible to do an upgrade bit by bit? I need to think a little bit about it. And for that matter, the OS kernel for 21 also contains tests, so maybe a feasible way to go about this would be try to change this one from official 21 to OS 21, get OS 21 tests running, and go from there. It would also give me a good reason to get the tests running w/ github actions etc, which I've been wanting to do. I need to think about this a bit, but I think it might be easier |
|
If I have some time in the next couple of weeks, I'll try to take a stab at it. |
|
@joelmccracken I've got the start of a KLambda interpreter - it's currently far from being able to run shen code, but so far it's pretty promising ~180 lines of code. Should I make a repo? |
|
sure. Though, just FYI, I kinda spent some more time on the upgrade path, and I think I had m ore success? but having a second WIP would be great too |
|
@joelmccracken do you have a link to your updated stuff? does it actually drop you into a working repl? |
|
I don't have a link, it's not uploaded yet, but no, it does not have a
working repl (yet)
Dr Tarver says that shen 21 had a repl built in, so its not obvious why
that wasn't used in the shen-elisp port.
I can imagine a few possible reasons though:
- using comint mode etc means better integration with emacs
- there was something wrong with just using the shen-provided repl.
So, I'm kinda trying to work through this... right now i'm looking into
what's going on if I just invoke `shen/repl` with the updated code (in
hangs, so I called quit, `toggle-debug-on-quit`, then run again, it hangs
again, I call quit again, and examine the backtrace). But more things are
making sense.
You're welcome to try to figure it out too! if I do get something
kinda-sorta working i'll push and let you know.
…On Sun, Sep 15, 2024 at 12:35 PM Ethan ***@***.***> wrote:
@joelmccracken <https://github.com/joelmccracken> do you have a link to
your updated stuff? does it actually drop you into a working repl?
—
Reply to this email directly, view it on GitHub
<#25 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAACVOCZEGVZF35QRSMYL2LZWWZNTAVCNFSM6AAAAABNQW6YDKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJRGY3DOMZUHE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
|
@joelmccracken Apologies for necrobumping this thread, but I now have a working KLambda interpreter which can run Shen in my repo https://github.com/echawk/kl.el - use emacs to load 'shen.el' and run The hope is to keep the interpreter around for anyone else who wants to write a KL interpreter, but move kl.el to be effectively a macroexpander/compiler from KL to emacs lisp; My impression is that by depending on emacs' compiler (and native backend) we can get quite good performance. |
This is the new branch for working on updating to S38.1
Still the same issues as the previous pr, but much tidier.
You can run the following to test out the branch: