Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the lisp-chat Reference Manual, version 0.2.0, generated automatically by Declt version 3.0 "Montgomery Scott" on Mon Apr 19 16:39:22 2021 GMT+0.
• Introduction | What lisp-chat is all about | |
• Systems | The systems documentation | |
• Files | The files documentation | |
• Packages | The packages documentation | |
• Definitions | The symbols documentation | |
• Indexes | Concepts, functions, variables and data types |
An experimental chat irc-like written in Lisp.
Install [roswell][ros] and add ~/.roswell/bin/
to the PATH
variable.
After that just type:
ros install ryukinix/lisp-chat
Lisp-chat it's on Quicklisp as well, tested on the following implementations:
Load the server
$ lisp-chat-server localhost
Create a client
$ lisp-chat localhost
As alternative of localhost
you can use server.lerax.me
which
points to a lisp-chat server running in the port 5558.
If you want test this and don't have the Lisp requested, I have those alternatives for you:
On Python client, I wrote in a way only using ths stdlib avoiding pain to handle the dependency hell, so you can just call that:
$ python client.py
So finally... netcat. Yes! You can even just use netcat
! An user
called Chris
in past days just logged in the server with the
following message:
|16:30:37| [Chris]: Used netcad
|16:30:41| [Chris]: netcat*
|16:30:50| [Chris]: bye
So you can type netcat server.lerax.me 5558
and go on! I tested on
my machine and works fine! The main reason is because the
communication between server and client just use raw data. For better
synchronization with text data from server while you typing, I suggest
you to use a readline wrapper like
rlwrap
calling as rlwrap netcat server.lerax.me 5558
.
Next: Files, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The lisp-chat system | ||
• The lisp-chat/client system | ||
• The lisp-chat/server system |
Next: The lisp-chat/client system, Previous: Systems, Up: Systems [Contents][Index]
Manoel Vilela
MIT
An experimental chat irc-like
0.2.0
lisp-chat.asd (file)
Next: The lisp-chat/server system, Previous: The lisp-chat system, Up: Systems [Contents][Index]
Manoel Vilela
MIT
An experimental chat irc-like: client
0.2.0
lisp-chat.asd (file)
Previous: The lisp-chat/client system, Up: Systems [Contents][Index]
Manoel Vilela
MIT
An experimental chat irc-like: server
0.2.0
lisp-chat.asd (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files |
• The lisp-chat.asd file | ||
• The lisp-chat/client/config.lisp file | ||
• The lisp-chat/client/client.lisp file | ||
• The lisp-chat/server/config.lisp file | ||
• The lisp-chat/server/server.lisp file |
Next: The lisp-chat/client/config․lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
lisp-chat.asd
Next: The lisp-chat/client/client․lisp file, Previous: The lisp-chat․asd file, Up: Lisp files [Contents][Index]
lisp-chat/client (system)
src/config.lisp
Next: The lisp-chat/server/config․lisp file, Previous: The lisp-chat/client/config․lisp file, Up: Lisp files [Contents][Index]
config.lisp (file)
lisp-chat/client (system)
src/client.lisp
main (function)
Next: The lisp-chat/server/server․lisp file, Previous: The lisp-chat/client/client․lisp file, Up: Lisp files [Contents][Index]
lisp-chat/server (system)
src/config.lisp
Previous: The lisp-chat/server/config․lisp file, Up: Lisp files [Contents][Index]
config.lisp (file)
lisp-chat/server (system)
src/server.lisp
main (function)
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
• The lisp-chat/client package | ||
• The lisp-chat/config package | ||
• The lisp-chat/server package |
Next: The lisp-chat/config package, Previous: Packages, Up: Packages [Contents][Index]
client.lisp (file)
main (function)
Next: The lisp-chat/server package, Previous: The lisp-chat/client package, Up: Packages [Contents][Index]
config.lisp (file)
common-lisp
Previous: The lisp-chat/config package, Up: Packages [Contents][Index]
server.lisp (file)
main (function)
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions | ||
• Internal definitions |
Next: Internal definitions, Previous: Definitions, Up: Definitions [Contents][Index]
• Exported special variables | ||
• Exported functions |
Next: Exported functions, Previous: Exported definitions, Up: Exported definitions [Contents][Index]
Run application in debug mode with extra info in terminal
config.lisp (file)
Host used in server and client
config.lisp (file)
Default port
config.lisp (file)
Previous: Exported special variables, Up: Exported definitions [Contents][Index]
Main function of client
client.lisp (file)
Well, this function run all the necessary shits.
server.lisp (file)
Previous: Exported definitions, Up: Definitions [Contents][Index]
• Internal special variables | ||
• Internal functions | ||
• Internal structures |
Next: Internal functions, Previous: Internal definitions, Up: Internal definitions [Contents][Index]
server.lisp (file)
List of clients
server.lisp (file)
Allowed command names to be called by client user
server.lisp (file)
Day names
server.lisp (file)
I/O Mutex for avoid terminal race conditions
client.lisp (file)
server.lisp (file)
Messages log
server.lisp (file)
Messages pending to be send by broadcasting
server.lisp (file)
The server nickname
server.lisp (file)
Uptime of server variable
server.lisp (file)
Next: Internal structures, Previous: Internal special variables, Up: Internal definitions [Contents][Index]
Show a list of the available commands of lisp-chat
server.lisp (file)
Show the last messages typed on the server.
DEPTH is optional number of messages frames from log
server.lisp (file)
Change the client-name given a NEW-NICK which should be a string
server.lisp (file)
Return a string nice encoded to preset the uptime since the server started.
server.lisp (file)
Return a list separated by commas of the currently logged users
server.lisp (file)
server.lisp (file)
Wow, this is a horrible hack to get a string as symbol for functions/command like /help /users /log and so on.
server.lisp (file)
server.lisp (file)
Delete a CLIENT from the list *clients*
server.lisp (file)
Dispatch client threads for basic functioning system
client.lisp (file)
server.lisp (file)
server.lisp (file)
This procedure is a wrapper for CLIENT-READER-ROUTINE treating all the possible errors based on HANDLER-CASE macro.
server.lisp (file)
This function create a IO-bound procedure to act
by reading the events of a specific CLIENT.
On this software each client talks on your own thread.
server.lisp (file)
Routine to check new messages being typed by the user
client.lisp (file)
server.lisp (file)
Select the stream IO from the client
server.lisp (file)
This function prepare the CONTENT as a message by the @server
server.lisp (file)
This is a special thread just for accepting connections from SOCKET-SERVER and creating new clients from it.
server.lisp (file)
server.lisp (file)
server.lisp (file)
This procedure create a new client based on CONNECTION made by USOCKET:SOCKET-ACCEPT. This shit create a lot of side effects as messages if the debug is on because this makes all the log stuff to make analysis
server.lisp (file)
If *debug* from lisp-chat-config is true, print debug info on running based on ARGS
server.lisp (file)
Erase the last line by using ANSI Escape codes
client.lisp (file)
server.lisp (file)
The default message format of this server. MESSAGE is a string Changing this reflects all the layout from client/server. Probably this would be the MFRP: Manoel Fucking Raw Protocol. Because this we can still use netcat as client for lisp-chat.
server.lisp (file)
Return a encoded string as HH:MM:SS based on the current timestamp.
server.lisp (file)
Get the user input by using readline
client.lisp (file)
Do the login of the application given a SOCKET instances
client.lisp (file)
server.lisp (file)
server.lisp (file)
This procedure is a general independent thread to run brodcasting all the clients when a message is ping on this server
server.lisp (file)
server.lisp (file)
server.lisp (file)
server.lisp (file)
server.lisp (file)
Push a messaged FROM as CONTENT into the *messages-stack*
server.lisp (file)
Receive a message and print in the terminal carefully with IO race conditions
client.lisp (file)
This function is a wrapper for CREATE-CLIENT treating the exceptions.
server.lisp (file)
Send a MESSAGE string through a SOCKET instance
client.lisp (file)
Send to CLIENT a MESSAGE :type string
server.lisp (file)
Call server-listener treating exceptional cases
client.lisp (file)
Routine to check new messages coming from the server
client.lisp (file)
This is the general server-loop procedure. Create the threads
necessary for the basic working state of this chat. The main idea
is creating a MESSAGE-BROADCAST procedure and CONNECTION-HANDLER
procedure running as separated threads.
The first procedure send always a new message too all clients defined on *clients* when *messages-semaphore* is signalized. The second procedure is a general connection-handler for new clients trying connecting to the server.
server.lisp (file)
Given a USOCKET:SOCKET instance return a ipv4 encoded IP string
server.lisp (file)
Split a string by a delimiterp function character checking
server.lisp (file)
Check if STRING starts with SUBSTRING.
server.lisp (file)
Previous: Internal functions, Up: Internal definitions [Contents][Index]
This structure handle the creation/control of the clients of the server. NAME is a string. Socket is a USOCKET:SOCKET and address is a ipv4 encoded string.
server.lisp (file)
structure-object (structure)
client-name (function)
(setf client-name) (function)
client-socket (function)
(setf client-socket) (function)
client-address (function)
(setf client-address) (function)
This structure abstract the type message with is saved into *messages-log* and until consumed, temporally pushed to *messages-stack*. FROM, CONTENT and TIME has type string
server.lisp (file)
structure-object (structure)
message-from (function)
(setf message-from) (function)
message-content (function)
(setf message-content) (function)
message-time (function)
(setf message-time) (function)
Previous: Definitions, Up: Top [Contents][Index]
• Concept index | ||
• Function index | ||
• Variable index | ||
• Data type index |
Next: Function index, Previous: Indexes, Up: Indexes [Contents][Index]
Jump to: | F L |
---|
Jump to: | F L |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | (
/
C D E F G L M P R S |
---|
Jump to: | (
/
C D E F G L M P R S |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Jump to: | *
A C F N S T |
---|
Jump to: | *
A C F N S T |
---|
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | C L M P S |
---|
Jump to: | C L M P S |
---|