mirror of
https://github.com/janet-lang/janet
synced 2025-07-05 11:32:54 +00:00
Update README
This commit is contained in:
parent
ecb9196e7b
commit
5625023925
20
README.md
20
README.md
@ -6,23 +6,17 @@
|
|||||||
Janet is a functional and imperative programming language and bytecode interpreter. It is a
|
Janet is a functional and imperative programming language and bytecode interpreter. It is a
|
||||||
modern lisp, but lists are replaced
|
modern lisp, but lists are replaced
|
||||||
by other data structures with better utility and performance (arrays, tables, structs, tuples).
|
by other data structures with better utility and performance (arrays, tables, structs, tuples).
|
||||||
The language can also easily bridge to native code written in C, and supports abstract datatypes
|
The language also bridging bridging to native code written in C, meta-programming with macros, and bytecode assembly.
|
||||||
for interfacing with C. Also support meta programming with macros, and bytecode assembly for the
|
|
||||||
janet abstract machine. The bytecode vm is a register based vm loosely inspired by the LuaJIT
|
|
||||||
bytecode format, but simpler and safer (bytecode can be verified by the assembler).
|
|
||||||
|
|
||||||
There is a repl for trying out the language, as well as the ability
|
There is a repl for trying out the language, as well as the ability
|
||||||
to run script files. This client program is separate from the core runtime, so
|
to run script files. This client program is separate from the core runtime, so
|
||||||
janet could be embedded into other programs.
|
janet could be embedded into other programs. Try janet in your browser at
|
||||||
|
[https://janet-lang.org](https://janet-lang.org).
|
||||||
|
|
||||||
Implemented in mostly standard C99, janet runs on Windows, Linux and macOS.
|
Implemented in mostly standard C99, janet runs on Windows, Linux and macOS.
|
||||||
The few features that are not standard C (dynamic library loading, compiler specific optimizations),
|
The few features that are not standard C (dynamic library loading, compiler specific optimizations),
|
||||||
are fairly straight forward. Janet can be easily ported to new platforms.
|
are fairly straight forward. Janet can be easily ported to new platforms.
|
||||||
|
|
||||||
There is not much in the way of documentation yet because it is still a "personal project" and
|
|
||||||
I don't want to freeze features prematurely. You can look in the examples directory, the test directory,
|
|
||||||
or the file `src/core/core.janet` to get a sense of what janet code looks like.
|
|
||||||
|
|
||||||
For syntax highlighting, there is some preliminary vim syntax highlighting in [janet.vim](https://github.com/bakpakin/janet.vim).
|
For syntax highlighting, there is some preliminary vim syntax highlighting in [janet.vim](https://github.com/bakpakin/janet.vim).
|
||||||
Generic lisp syntax highlighting should, however, provide good results.
|
Generic lisp syntax highlighting should, however, provide good results.
|
||||||
|
|
||||||
@ -32,6 +26,7 @@ Janet makes a good system scripting language, or a language to embed in other pr
|
|||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
* Minimal setup - one binary and you are good to go!
|
||||||
* First class closures
|
* First class closures
|
||||||
* Garbage collection
|
* Garbage collection
|
||||||
* First class green threads (continuations)
|
* First class green threads (continuations)
|
||||||
@ -40,7 +35,7 @@ Janet makes a good system scripting language, or a language to embed in other pr
|
|||||||
* Mutable and immutable strings (buffer/string)
|
* Mutable and immutable strings (buffer/string)
|
||||||
* Lisp Macros
|
* Lisp Macros
|
||||||
* Byte code interpreter with an assembly interface, as well as bytecode verification
|
* Byte code interpreter with an assembly interface, as well as bytecode verification
|
||||||
* Proper tail calls.
|
* Tailcall Optimization
|
||||||
* Direct interop with C via abstract types and C functions
|
* Direct interop with C via abstract types and C functions
|
||||||
* Dynamically load C libraries
|
* Dynamically load C libraries
|
||||||
* Functional and imperative standard library
|
* Functional and imperative standard library
|
||||||
@ -52,7 +47,8 @@ Janet makes a good system scripting language, or a language to embed in other pr
|
|||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
API documentation and design documents can be found in the
|
API documentation and design documents can be found in the
|
||||||
[wiki](https://github.com/bakpakin/janet/wiki). Not at all complete.
|
[wiki](https://github.com/bakpakin/janet/wiki). There is an introduction
|
||||||
|
section in the wiki that contains a good overview of the language.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
@ -92,7 +88,7 @@ before compilation.
|
|||||||
|
|
||||||
### Posix
|
### Posix
|
||||||
|
|
||||||
On most platforms, use Make to build janet. To
|
On most platforms, use Make to build janet.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd somewhere/my/projects/janet
|
cd somewhere/my/projects/janet
|
||||||
|
Loading…
x
Reference in New Issue
Block a user