Skip to content

Commit f04ed4b

Browse files
authored
Merge pull request #197 from pikelet-lang/next
Rebuild Pikelet using normalization by evaluation
2 parents a43aacf + 6b1f6b3 commit f04ed4b

File tree

180 files changed

+13304
-16329
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

180 files changed

+13304
-16329
lines changed

.github/workflows/ci.yml

+125
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
name: ci
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- next
8+
9+
pull_request:
10+
branches:
11+
- master
12+
- next
13+
14+
jobs:
15+
check:
16+
runs-on: ubuntu-20.04
17+
strategy:
18+
matrix:
19+
rust: ["1.44.0", "stable", "beta", "nightly"]
20+
name: Check (${{ matrix.rust }})
21+
steps:
22+
- uses: actions/checkout@v2
23+
- name: Install minimal ${{ matrix.rust }}
24+
uses: actions-rs/toolchain@v1
25+
with:
26+
profile: minimal
27+
toolchain: ${{ matrix.rust }}
28+
override: true
29+
- name: Run cargo check
30+
uses: actions-rs/cargo@v1
31+
with:
32+
command: check
33+
34+
test:
35+
runs-on: ubuntu-20.04
36+
strategy:
37+
matrix:
38+
rust: ["1.44.0", "stable", "beta", "nightly"]
39+
name: Test Suite (${{ matrix.rust }})
40+
steps:
41+
- uses: actions/checkout@v2
42+
- name: Install minimal ${{ matrix.rust }}
43+
uses: actions-rs/toolchain@v1
44+
with:
45+
profile: minimal
46+
toolchain: ${{ matrix.rust }}
47+
override: true
48+
- name: Run cargo test
49+
uses: actions-rs/cargo@v1
50+
with:
51+
command: test
52+
53+
fmt:
54+
runs-on: ubuntu-20.04
55+
strategy:
56+
matrix:
57+
rust: ["1.44.0", "stable", "beta", "nightly"]
58+
name: Rustfmt (${{ matrix.rust }})
59+
steps:
60+
- uses: actions/checkout@v2
61+
- name: Install minimal ${{ matrix.rust }} with rustfmt
62+
uses: actions-rs/toolchain@v1
63+
with:
64+
profile: minimal
65+
toolchain: ${{ matrix.rust }}
66+
override: true
67+
components: rustfmt
68+
- name: Run cargo fmt
69+
uses: actions-rs/cargo@v1
70+
with:
71+
command: fmt
72+
args: --all -- --check
73+
74+
clippy:
75+
runs-on: ubuntu-20.04
76+
strategy:
77+
matrix:
78+
rust: ["stable"]
79+
# rust: ["1.44.0", "stable", "beta", "nightly"]
80+
name: Clippy (${{ matrix.rust }})
81+
steps:
82+
- uses: actions/checkout@v2
83+
- name: Install minimal ${{ matrix.rust }} with clippy
84+
uses: actions-rs/toolchain@v1
85+
with:
86+
profile: minimal
87+
toolchain: ${{ matrix.rust }}
88+
override: true
89+
components: clippy
90+
- name: Run cargo clippy
91+
uses: actions-rs/cargo@v1
92+
with:
93+
command: clippy
94+
args: -- -D warnings
95+
96+
book:
97+
runs-on: ubuntu-20.04
98+
name: Build and Test Book
99+
env:
100+
MDBOOK_VERSION: '0.4.4'
101+
MDBOOK_LINKCHECK_VERSION: '0.7.0'
102+
steps:
103+
- uses: actions/checkout@v2
104+
- name: Install mdBook
105+
# Install prebuilt binaries where possible to improve CI performance
106+
run: |
107+
mkdir -p "$HOME/mdbook"
108+
curl -L "https://github.com/rust-lang/mdBook/releases/download/v$MDBOOK_VERSION/mdbook-v$MDBOOK_VERSION-x86_64-unknown-linux-gnu.tar.gz" | tar xz -C "$HOME/mdbook"
109+
echo "${HOME}/mdbook/" >> $GITHUB_PATH
110+
mkdir -p "$HOME/mdbook-linkcheck"
111+
curl -L "https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases/download/v$MDBOOK_LINKCHECK_VERSION/mdbook-linkcheck-v$MDBOOK_LINKCHECK_VERSION-x86_64-unknown-linux-gnu.tar.gz" | tar xz -C "$HOME/mdbook-linkcheck"
112+
echo "${HOME}/mdbook-linkcheck/" >> $GITHUB_PATH
113+
- name: Install Javascript dependencies
114+
run: yarn install
115+
working-directory: book
116+
- name: Build additional Javascript
117+
run: yarn build
118+
working-directory: book
119+
- name: Build book
120+
run: mdbook build
121+
working-directory: book
122+
- name: Test book
123+
run: mdbook test
124+
working-directory: book
125+
# TODO: Deploy to Github Pages on crate release

.gitignore

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1+
# Rust
12
/target/
23
**/*.rs.bk
34
Cargo.lock
4-
repl-history
5+
6+
# Yarn
7+
/node_modules

.gitmodules

-4
This file was deleted.

.travis.yml

-47
This file was deleted.

.vscode/extensions.json

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"recommendations": [
3+
"editorconfig.editorconfig"
4+
]
5+
}

CONTRIBUTING.md

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Contributing
2+
3+
## Code of Conduct
4+
5+
Please note that this project is released with a [Code of Conduct](./CODE_OF_CONDUCT.md).
6+
By participating in this project you agree to abide by its terms.
7+
8+
[code_of_conduct]: https://github.com/pikelet-lang/pikelet/blob/master/CODE_OF_CONDUCT.md
9+
10+
## Matrix room
11+
12+
Joining the matrix room at [#pikelet:matrix.org][pikelet-matrix] is a good way to get in touch with the developers and community.
13+
14+
[pikelet-matrix]: https://app.element.io/#/room/#pikelet:matrix.org
15+
16+
## Prerequisites
17+
18+
We use [Rust][rust] as our implementation language, which can be installed using the [rustup] tool.
19+
20+
For the best experience in working with Rust we also recommend installing IDE support for your editor of choice:
21+
22+
- [Rust Analyzer][rust-analyzer] (for VS Code, Vim Emacs, etc.)
23+
- [IntelliJ Rust][intellij-rust] (for IntelliJ-based IDEs)
24+
25+
You can learn more about programming in Rust by reading [The Rust Programming Language][rust-book].
26+
27+
[rust]: https://www.rust-lang.org/
28+
[rustup]: https://rustup.rs/
29+
[rust-analyzer]: https://rust-analyzer.github.io/
30+
[intellij-rust]: https://intellij-rust.github.io/
31+
[rust-book]: https://doc.rust-lang.org/book/
32+
33+
## Workflow
34+
35+
Follow these steps to contribute to the project:
36+
37+
1. Make a fork of the [Pikelet repository][pikelet-repo].
38+
1. Within your fork, create a branch for your contribution. Use a meaningful name.
39+
1. Create your contribution, meeting all [contribution quality standards](#quality-standards).
40+
1. Ensure all the tests pass (`cargo test`).
41+
1. [Create a pull request][create-a-pr] against the `master` branch of the repository.
42+
1. Once the pull request is reviewed and CI passes, it will be merged.
43+
44+
[pikelet-repo]: https://github.com/pikelet-lang/pikelet/
45+
[create-a-pr]: https://help.github.com/articles/creating-a-pull-request-from-a-fork/
46+
47+
## Quality Standards
48+
49+
Most quality and style standards are checked automatically by the CI build.
50+
Contributions should:
51+
52+
- Separate each **logical change** into its own commit.
53+
- Include tests for any new functionality in your pull request.
54+
- Document public functions.
55+
- Format code with `cargo fmt`.
56+
- Avoid adding `unsafe` code.
57+
If it is necessary, provide an explanatory comment on any `unsafe` block explaining its rationale and why it's safe.
58+
- Add a descriptive message for each commit. Follow [these commit message guidelines][commit-messages].
59+
- Document your pull requests. Include the reasoning behind each change, and the testing done.
60+
61+
[commit-messages]: https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html

Cargo.toml

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
[workspace]
22
members = [
3-
"./crates/pikelet",
4-
"./crates/pikelet-concrete",
5-
"./crates/pikelet-core",
6-
"./crates/pikelet-driver",
7-
"./crates/pikelet-language-server",
8-
"./crates/pikelet-library",
9-
"./crates/pikelet-repl",
3+
"./pikelet",
4+
"./pikelet-cli",
5+
"./pikelet-editor",
6+
"./pikelet-language-server",
107
]

README.md

+16-23
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@
22

33
![Pikelet Mascot][pikelet-mascot]
44

5-
[![Build Status][travis-badge]][travis-url]
6-
[![Gitter][gitter-badge]][gitter-lobby]
5+
[pikelet-mascot]: ./book/assets/pikelet.png
76

8-
[pikelet-mascot]: assets/pikelet.png
9-
[travis-badge]: https://travis-ci.org/pikelet-lang/pikelet.svg?branch=master
10-
[travis-url]: https://travis-ci.org/pikelet-lang/pikelet
11-
[gitter-badge]: https://badges.gitter.im/pikelet-lang/pikelet.svg
12-
[gitter-lobby]: https://gitter.im/pikelet-lang/Lobby
7+
[![Actions Status][actions-badge]][actions-url]
8+
[![Matrix][matrix-badge]][matrix-lobby]
9+
[![License][license-badge]][license-url]
10+
11+
[actions-badge]: https://github.com/pikelet-lang/pikelet/workflows/ci/badge.svg
12+
[actions-url]: https://github.com/pikelet-lang/pikelet/actions
13+
[matrix-badge]: https://img.shields.io/matrix/pikelet:matrix.org?label=%23pikelet%3Amatrix.org
14+
[matrix-lobby]: https://app.element.io/#/room/#pikelet:matrix.org
15+
[license-badge]: https://img.shields.io/github/license/pikelet-lang/pikelet
16+
[license-url]: ./LICENSE
1317

1418
Pikelet is a small, functional, dependently typed programming language.
1519

@@ -24,22 +28,11 @@ other languages. At the moment however we've only implemented a type checker and
2428
very slow interpreter, so don't get your hopes up too much yet! There's still a
2529
whole lot to do before it is even remotely useful to anyone! 😅
2630

27-
For more information, see [The Pikelet Book][pikelet-book].
28-
29-
[pikelet-book]: https://pikelet-lang.github.io/pikelet/
30-
31-
## Contributing
32-
33-
We really want to encourage new contributors to help out! Please come chat with
34-
us [on our Gitter channel][gitter-lobby] - if you have any questions about the
35-
project, or just want to say hi! We sometimes get side-tracked on technical
36-
discussions, but we're always more than happy to spend time explaining things.
37-
38-
## Acknowledgments
31+
## Roadmap
3932

40-
[![YesLogic Logo][yeslogic-logo]][yeslogic]
33+
Check out our plans in [the roadmap](./book/src/development/roadmap.md).
4134

42-
This work was done in part with the generous support of [YesLogic][yeslogic].
35+
## Code of Conduct
4336

44-
[yeslogic]: http://yeslogic.com/
45-
[yeslogic-logo]: assets/yeslogic-logo.png
37+
Please note that this project is released with a [Code of Conduct](./CODE_OF_CONDUCT.md).
38+
By participating in this project you agree to abide by its terms.

assets/yeslogic-logo.png

-8.67 KB
Binary file not shown.

book/.gitignore

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,9 @@
1-
build
2-
theme/highlight.js
1+
# mdBook
2+
/build
3+
4+
# Yarn
5+
/node_modules
6+
7+
# Parcel
8+
/.cache
9+
/dist

0 commit comments

Comments
 (0)