vygr / ChrysaLisp

Parallel OS, with GUI, Terminal, OO Assembler, Class libraries, C-Script compiler, Lisp interpreter and more...
GNU General Public License v2.0
1.62k stars 96 forks source link

Provide capabilities for Internet Protocol stack #57

Closed octetta closed 6 months ago

octetta commented 4 years ago

Are there any big-picture plans for this?

From my limited view of how ChrysaLisp works, perhaps just exposing a few primitives for socket creation would do the job (assuming this happens via main.c's host_funcs table).

On the other hand, it would be an interesting path to use a plan9-style set of primitives for accessing external servers (http://9p.cat-v.org/documentation/, https://en.wikipedia.org/wiki/9P_(protocol), https://blog.aqwari.net/9p/).

Interested to know if there are plans in motion and I'm willing to forge into the unknown or help others as well.

nuclearfall commented 4 years ago

I'd love to see some kind of IP network implementation as well.

vygr commented 4 years ago

Yeah, so would I :) I've got a TODO item to port or implement a TCP/IP service !

vygr commented 4 years ago

Another approach, which might be better, is to provide access to the NNG protocol library via the host main.c function table. Provide a bridge between the internal messaging and the nng protocols. I was thinking about this being how to build cluster service between the CPU clusters that ChrysaLisp defines, but it could also be a good way to provide general TCP/IP style comms to the outside world. ?

nuclearfall commented 4 years ago

Well, I'l be a guinea pig for cluster implementation, but I remain pretty useless. At any rate, it seems a good way to implement tcp while furthering the broader demands of the project.

vygr commented 4 years ago

Don't put yourself down ! It takes a while to fully understand new things, but your involvement has already lead to many new and improved developments !

Take time to understand things, but don't stop trying things, even if they force me to create something I should have already done !

Regards

Chris

Ohessex commented 4 years ago

Thanks Chris,

I'm enjoying the learning process. I'm to the point where I'm really trying to focus on writing better code.

I do think that things are progressing rapidly.

Thanks for the kind words, Gary

nuclearfall commented 4 years ago

It seems that some decisions need to be made about priorities for networking before implementation if I understand correctly. The importance of latency, throughput, and packet loss, specifically.

If the project is likely to developed mostly for use in a VM, could we focus on a specific NIC driver? I think given an existing driver, I believe I could translate a driver from another programming language.

I do think nanomsg would be a strong contender, though.I know it adds even greater dependency on the host system.

vygr commented 4 years ago

NNG is the new or rather reworked version of Nanomsg. I used it for some work related stuff recently and did get a good feeling from it.

Presenting a bridge to this as a named service on the ChrysaLisp side would open up a lot of possibilities.

nuclearfall commented 4 years ago

It would be great to have some kind of networking capability that provides for TCP/IP. I would be willing to work on a basic web browser, for basic rendering as a demo app to get started.

[This looks to be a decent irc library in common lisp] (https://github.com/kanru/cl-irc2).

Speaking of irc, It might be good to have an irc channel or some means of contact announced at the top of the README.md. I can assist in providing some level of support. I think this could help build more of a community around the project.

vygr commented 4 years ago

IRC probably a good thing. I’ve never set one up before....

Fancy volunteering to look into it ?

nuclearfall commented 4 years ago

I can definitely do that.

nuclearfall commented 4 years ago

I've got the irc channel setup.

Once you've a registered nick on freenode.net: https://freenode.net/kb/answer/registration /join #ChrysaLisp and I'll add you as an op.

It'll also be nice to have a place to have random discussions about the project.

vygr commented 4 years ago

Only just noticed this !!! Will hop on tomorrow :)

vygr commented 6 months ago

Unlikely.