Liking cljdoc? Tell your friends :D
Clojure only.

convex.run

Convex Lisp Runner.

This is a whole application. It is available as a library in case it needs to be embedded. Then, only -main is really useful.

Executes each form as a transaction, moving from transaction to transaction.

A transaction can return a request to perform operations beyond the scope of the CVM, such as file IO or advancing time. Those requests turn Convex Lisp, a somewhat limited and fully deterministic language, into a scripting facility.

Requests are vectors following expected conventions and implementations can be found in the [[convex.run.sreq]] namespace.

A series of CVX libraries is embedded, building on those requests and the way the runner generally operates, providing features such as reading CVX files, unit testing, a REPL, or time-travel. All features are self documented in the grand tradition of Lisp languages.

Functions throughout these namespaces often refer to env. It is an environment map passed around containing everything that is need by an instance: current CVM context, opened streams, current error if any, etc.

In case of error, convex.run.exec/fail must be used so that the error is reported to the CVX executing environment.

List of transactions pending for execution is accessible in the CVX execution environment under $.trx/*list*. This list can be modified by the user, allowing for powerful metaprogramming. Besides above-mentioned requests, this feature is used to implement another series of useful utilities such as exception catching.

Convex Lisp Runner.

This is a whole application. It is available as a library in case it needs to be embedded. Then, only [[-main]] is really
useful.

Executes each form as a transaction, moving from transaction to transaction.

A transaction can return a request to perform operations beyond the scope of the CVM, such as file IO or
advancing time. Those requests turn Convex Lisp, a somewhat limited and fully deterministic language, into
a scripting facility.

Requests are vectors following expected conventions and implementations can be found in the [[convex.run.sreq]]
namespace.

A series of CVX libraries is embedded, building on those requests and the way the runner generally operates,
providing features such as reading CVX files, unit testing, a REPL, or time-travel. All features are self
documented in the grand tradition of Lisp languages.

Functions throughout these namespaces often refer to `env`. It is an environment map passed around containing
everything that is need by an instance: current CVM context, opened streams, current error if any, etc.

In case of error, [[convex.run.exec/fail]] must be used so that the error is reported to the CVX executing environment.

List of transactions pending for execution is accessible in the CVX execution environment under `$.trx/*list*`. This list
can be modified by the user, allowing for powerful metaprogramming. Besides above-mentioned requests, this feature is used
to implement another series of useful utilities such as exception catching.
raw docstring

-mainclj

(-main & trx+)

Reads and executes transactions.

If no transaction is provided, starts the REPL.

(-main "($.stream/out (+ 2 2))")
Reads and executes transactions.

If no transaction is provided, starts the REPL.

```clojure
(-main "($.stream/out (+ 2 2))")
```
sourceraw docstring

evalclj

(eval string)
(eval env string)

Uses init, reads the given string of transactions and starts executing them.

Used by -main.

Uses [[init]], reads the given `string` of transactions and starts executing them.

Used by [[-main]].
sourceraw docstring

initclj

(init env)

Used by eval to initiate env.

Notably, prepares:

  • STDIO streams
  • Initial context
  • Function under :convex.run/fatal, akin to convex.run.exec/fail, called only in case of a fatal error that cannot be reported to the CVX environment (seldom)
Used by [[eval]] to initiate `env`.

Notably, prepares:

- STDIO streams
- Initial context
- Function under `:convex.run/fatal`, akin to [[convex.run.exec/fail]], called only in case of
a fatal error that cannot be reported to the CVX environment (seldom)
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close