Skip to content

Commit 69d661e

Browse files
committed
Add a basic README
1 parent a4977b7 commit 69d661e

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Please
2+
3+
An exploratory programming language.
4+
5+
## Quick start
6+
7+
```sh
8+
git clone [email protected]:mkantor/please-prototype.git
9+
cd please-prototype
10+
npm install
11+
npm run build
12+
echo '{@runtime context => :context.program.start_time}' | ./please --output-format=json
13+
```
14+
15+
## What this repository is
16+
17+
**This implementation of Please is a proof of concept**. There are plenty of bugs and missing
18+
pieces, and language syntax/semantics may change backwards-incompatibly on the way to an official
19+
release. This implementation is not particularly focused on performance, robustness, or developer
20+
experience—it's merely a place to experiment with ideas for the language. TypeScript was chosen
21+
because it's pretty good for rapid prototyping, but it's likely that another language will be used
22+
in a non-prototype implementation.
23+
24+
## Current state
25+
26+
Enough pieces exist to write basic runnable programs. There is a type system, but it's not wired up
27+
in many places yet so mistakes often go unnoticed at compile time. The standard library is anemic,
28+
and it's not uncommon to encounter bugs in the compiler/runtime.
29+
30+
The current implementation of the runtime is an interpreter, but the plan is to eventually add one
31+
or more backends to allow building native executables.
32+
33+
## What's next?
34+
35+
I'm focused on squashing compiler bugs and establishing solid foundations to build atop. Along the
36+
way I've been slowly fleshing out the type system and standard library.

0 commit comments

Comments
 (0)