Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chaosnet support #203

Open
terpri opened this issue Jul 16, 2024 · 1 comment
Open

Chaosnet support #203

terpri opened this issue Jul 16, 2024 · 1 comment

Comments

@terpri
Copy link

terpri commented Jul 16, 2024

Hello there! Something I have wanted to see in this system for a long time is support for the Chaosnet protocol. If you don't know what Chaosnet is, it's an early local-area network that was developed for and used primarily by Lisp machines, but also many other systems. You can read about it here. I thought Mezzano, being the modern Lisp machine that it is, would hardly be complete without it!

Aside from hack value, the added benefit of supporting Chaosnet would be the ability to be intimate with many other different kinds of machines, as well as others running Mezzano. Chaosnet enables many different protocols at the application layer, including but not limited to a standardized file server, telnet, supdup (like telnet but better), mail and SMTP, and many fun ones. Chaosnet is designed in such a way that it makes it easy to define new protocols, so there are many possibilities. My intention is to implement it truly at each layer, using the existing Ethernet and ARP infrastructure. It might be desirable in the future to support alternative methods of transport, such as unix sockets on a remote system.

I chose to reference the code for the NCP from the ZetaLisp system, that being the original Lisp Machine implementation. The Lisp Machine Lisp and Common Lisp are very closely related, and I've made the conscious decision to change as little as possible from it, as to ease the porting effort and to help indicate where changes were made. Some parts might seem a bit ugly by modern standards, however I find it's overall quite readable and well-documented; I would at least like to make everything work properly before I go for cosmetics. This same procedure will likely follow for some protocols such as the file server, if and when I decide to implement them.

Having said all that, and having only started to get familiar with the Mezzano codebase, I have a few questions to ask:

Is there any overall style guide? I can pick up on some conventions, such as earmuffs placed on special and constant variables-- I personally find it better to only do this for external symbols, however, and this is generally the style that the code I am working with follows. As long as what's exported from the package follows the overall style (if there is one), it should be fine, right?

Since I am hoping to incorporate code derived from another system, what's the policy for license attribution? ZetaLisp is distributed under a BSD 3-clause. I don't want to have to clutter everything with copyright stuff if I don't have to, but I think proper attributions will be in order.

@ebrasca
Copy link
Contributor

ebrasca commented Jul 17, 2024

I found this about the style guides that may be useful to you: https://github.com/foxsae/The-One-True-Lisp-Style-Guide

It will be nice to have only one license.

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

No branches or pull requests

2 participants