Browse Source

nRepl functionality has been added

master
Sameer Rahmani 2 years ago
parent
commit
52e2801fd2
  1. 11
      README.md
  2. 9
      src/main/java/serene/simple/Main.java

11
README.md

@ -10,3 +10,14 @@ my [blog](https://lxsameer.com/). @@ -10,3 +10,14 @@ my [blog](https://lxsameer.com/).
## Repl
in order to run the REPL, run `make repl`
## nRepl
Use `make nrepl` command to fire up a nRepl process and connect to it using `netcat` or something
similar. If you're using Emacs, there is a `serene-mode` available that distributes as part of
[FG42](https://gitlab.com/FG42/FG42/blob/master/lib/extensions/serene/serene-simple-mode.el).
Serene's nRepl is super simple. It waits for a newline char and then evaluates the
given input. It sends back the result of the evaluation in `<status-char><value>` format.
`status-char` is either `0` or `1`. **Zero** means the evaluation was successful and the `value`
is the result of evaluation while **one** means there was an error during the evaluation and
the `value` is the traceback for the exception.

9
src/main/java/serene/simple/Main.java

@ -115,6 +115,13 @@ public class Main { @@ -115,6 +115,13 @@ public class Main {
}
}
/**
* Serene's nRepl is super simple. It waits for a newline char and then evaluates the
* given input. It sends back the result of the evaluation in `<status-char><value>` format.
* `status-char` is either `0` or `1`. **Zero** means the evaluation was successful and the `value`
* is the result of evaluation while **one** means there was an error during the evaluation and
* the `value` is the traceback for the exception.
*/
public static void nrepl() throws IOException {
RootScope rootScope = new RootScope();
ServerSocket socket = new ServerSocket(Main.port);;
@ -124,6 +131,8 @@ public class Main { @@ -124,6 +131,8 @@ public class Main {
System.out.println(
String.format("nRepl has been started on tcp://%s:%s", Main.host, Main.port));
// NOTE: The nRepl server is too simple. It supports one connection at a time
// and will terminate when the client disconnects.
try {
Socket clientSocket = socket.accept();

Loading…
Cancel
Save