Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebuild Pikelet using normalization by evaluation #197

Merged
merged 275 commits into from
Dec 2, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
275 commits
Select commit Hold shift + click to select a range
65f60e2
Align globals using rows
brendanzab Jan 6, 2020
fb6a494
Begin pretty printing terms
brendanzab Jan 6, 2020
584e6a4
Make globals less misleading
brendanzab Jan 6, 2020
23c3f6b
Render constants in GUI
brendanzab Jan 6, 2020
e7af1c5
Render annotated terms in GUI
brendanzab Jan 6, 2020
b37fec2
Allow the gui to be run from the cli
brendanzab Jan 6, 2020
af4dcda
Update gui README
brendanzab Jan 6, 2020
2ed9b51
Normalize terms in REPL
brendanzab Jan 6, 2020
0d048c7
Pretty print expressions in REPL
brendanzab Jan 6, 2020
fdcc683
Port over niceties from existing Pikelet REPL
brendanzab Jan 6, 2020
c2802b2
Trim banner lines
brendanzab Jan 6, 2020
77fcc29
Add TODO
brendanzab Jan 6, 2020
91dd711
Implement non-dependent function types
brendanzab Jan 7, 2020
be09401
Begin stubbing out documentation chapters
brendanzab Jan 8, 2020
3f6fe2c
Clean up span computation
brendanzab Jan 8, 2020
85470b3
Stub out specification
brendanzab Jan 9, 2020
e2d95f3
More documentation
brendanzab Jan 9, 2020
36b982c
Improve cross-linking in specification
brendanzab Jan 9, 2020
d1cd05c
Add grammar to specification
brendanzab Jan 9, 2020
6bd20d4
Notation cleanups
brendanzab Jan 9, 2020
2342021
Add some inspiring language specifications
brendanzab Jan 9, 2020
947d1bf
Update literals
brendanzab Jan 9, 2020
cdf7233
Add unicode production
brendanzab Jan 9, 2020
651f82a
Add missing square bracket delimiters
brendanzab Jan 9, 2020
285e642
Link to type system specification gist
brendanzab Jan 9, 2020
e391f37
Fix escapes
brendanzab Jan 9, 2020
12b68c9
Begin describing operational semantics
brendanzab Jan 9, 2020
2293f4e
Fix subtyping
brendanzab Jan 9, 2020
aec6af9
Document booleans
brendanzab Jan 9, 2020
8143c00
Improve definition of unicode scalar values
brendanzab Jan 10, 2020
6f6bcd6
Start a bibliography
brendanzab Jan 13, 2020
274c2f7
Update dependencies
brendanzab Jan 13, 2020
325ee1c
Naming improvements in grammar
brendanzab Jan 13, 2020
049e5d9
Move universe offset out of local environment
brendanzab Jan 9, 2020
5c38427
Move locals to a more logical place in module
brendanzab Jan 9, 2020
69da853
Add some doc comments
brendanzab Jan 9, 2020
7baadc5
Implement function terms
brendanzab Jan 7, 2020
03482f7
Add a test for functions
brendanzab Jan 16, 2020
144071d
Fix delaboration of character and string constants
brendanzab Jan 16, 2020
51fab71
Add missing documentation
brendanzab Jan 16, 2020
6b2f998
Use struct-style variants for type errors
brendanzab Jan 16, 2020
158961e
Fix spelling
brendanzab Jan 16, 2020
73aa3c0
Doc comment improvements
brendanzab Jan 17, 2020
7813820
Use docusaurus for documentation
brendanzab Jan 14, 2020
478d697
Improve function docs
brendanzab Jan 16, 2020
22e5dea
Add more to reference introduction
brendanzab Jan 16, 2020
e5830b7
Fix syntax highlighting
brendanzab Jan 16, 2020
e8eea95
Improve function docs
brendanzab Jan 16, 2020
32d368f
Add some record examples
brendanzab Jan 16, 2020
7f7bca1
Add “How to implement dependent type theory” to bibliography
brendanzab Jan 17, 2020
2c352f2
Add links to code of conduct in docs
brendanzab Aug 24, 2020
14c7023
Use notes instead of warnings for WIP notes
brendanzab Jan 18, 2020
7ed7877
Move specification inspiration to subdirectory
brendanzab Jan 18, 2020
e3e87cb
Improve Identifier highlighting
brendanzab Jan 19, 2020
125fcf3
Name reference improvements
brendanzab Jan 19, 2020
aa51b25
Add more resources to the bibliography
brendanzab Jan 19, 2020
af8aebe
Put header links on the right
brendanzab Jan 19, 2020
b2fee58
Add some more section descriptions to the specification
brendanzab Jan 19, 2020
6508a67
Add a note on field order
brendanzab Jan 19, 2020
ca3d6e2
Flesh out guide introduction some more
brendanzab Jan 19, 2020
8c80e02
Move installation instructions to “getting started” page
brendanzab Jan 19, 2020
738e4a8
Reformat index page using prettier
brendanzab Jan 19, 2020
1b86f47
Use github actions for running CI
brendanzab Aug 24, 2020
e1ba791
Fix cargo workspace
brendanzab Aug 24, 2020
6a39d38
Bump MSRV to 1.40.0
brendanzab Jan 19, 2020
0abaed5
Only run clippy on stable
brendanzab Jan 19, 2020
55b313b
Fix clippy lints
brendanzab Jan 19, 2020
c941e6e
Fix README links
brendanzab Jan 19, 2020
91a3223
Add vscode editor recommendations
brendanzab Jan 19, 2020
b7916d3
Add license badge to README
brendanzab Aug 24, 2020
32b7060
Pretty-print terms with proper precedence
brendanzab Jan 19, 2020
a3a44f7
Add more notes on universes to reference
brendanzab Jan 21, 2020
505844e
Document universes in function/record type docs
brendanzab Jan 23, 2020
b94b2a6
Reorganise docs
brendanzab Jan 20, 2020
9cf5d21
Use Rust 2018 directory structure
brendanzab Jan 24, 2020
d8d637d
Use an enum for pretty printing precedences
brendanzab Jan 25, 2020
9265c83
Avoid allocating some intermediate terms
brendanzab Jan 27, 2020
e0b9685
Create is_equal_type predicate
brendanzab Jan 27, 2020
88719b1
Fix doc comments
brendanzab Jan 27, 2020
665edb6
Split out some elimination logic into functions
brendanzab Jan 27, 2020
4536ff5
Use XDG conventions for repl history
brendanzab Jan 29, 2020
e20100a
Use persistent data structures for environments
brendanzab Feb 4, 2020
7cd1b6d
Implement depedent record types
brendanzab Jan 31, 2020
d33afe1
Improve naming consistency
brendanzab Feb 5, 2020
5ad8c00
Silence new warning introduced on nightly channel
brendanzab Feb 6, 2020
d91a4dd
Add spans to elaboration type errors
brendanzab Feb 7, 2020
fc658b8
Add entry name spans
brendanzab Feb 8, 2020
e3d6e18
Add spans to param names
brendanzab Feb 9, 2020
0eed13c
Elaboration error type improvements
brendanzab Feb 12, 2020
828cc51
Rename error->message
brendanzab Feb 12, 2020
7027936
Render pretty diagnostics using annotate-snippets
brendanzab Feb 12, 2020
e7553a2
Clean up reporting with some helper functions
brendanzab Feb 18, 2020
3b55907
Move reporting infrastructure into core
brendanzab Feb 18, 2020
2f78a7b
Initial attempt at a lexer implementation using logos.
ratmice Feb 26, 2020
0197775
Fix ups needed to build from top-level and rustfmt.
ratmice Feb 29, 2020
4c6fa49
Remove unicode tokens that do not belong in this series.
ratmice Feb 29, 2020
74d3faa
Cleanup lex.rs, remove TryFrom replace with const fn.
ratmice Mar 1, 2020
7d8db63
Fix Clippy
ratmice Mar 1, 2020
682d9ae
Remove pub and Debug derive from LexToken
ratmice Mar 1, 2020
be808f0
Better naming, restructure iterator loop, test behavior after an error.
ratmice Mar 3, 2020
39507e2
initial implementation of comments.
ratmice Mar 3, 2020
eb2c8d8
Fix argument error reporting
brendanzab Mar 11, 2020
7f5abe0
Use codespan-reporting instead of annotate-snippets
brendanzab Mar 11, 2020
115641b
Improve CI workflow
brendanzab Apr 4, 2020
da4a045
Clean up lexer a little
brendanzab Apr 6, 2020
377d34a
Use fancy new features from logos 0.11
brendanzab Apr 9, 2020
61f929b
Add doc comments to surface syntax
brendanzab Apr 10, 2020
b1aea43
Update pikelet/Cargo.toml
brendanzab Apr 10, 2020
1d2ee13
Fix CI build
brendanzab Apr 10, 2020
c07f155
Clean up annotations
brendanzab Apr 10, 2020
0bb40c1
Upgrade to latest iced
brendanzab Apr 11, 2020
33c5462
Add text input to gui
brendanzab Apr 12, 2020
50047cf
Use terms in serialization API
brendanzab Apr 14, 2020
ce005da
Add more GUI inspiration links
brendanzab Apr 15, 2020
2f15dad
Add some papers to GUI inspiration
brendanzab Apr 20, 2020
fbb193c
Add some Wouter van Oortmerssen projects
brendanzab Apr 20, 2020
5e4e78c
Fix breaking logos changes
brendanzab May 4, 2020
c6237b2
Update dependencies
brendanzab May 18, 2020
bbdc428
Add missing languages on code fences
brendanzab May 23, 2020
f89f507
Update website dependencies
brendanzab May 23, 2020
7a2ebf3
Restructure modules
brendanzab Jun 6, 2020
067180d
Improve naming of functions
brendanzab Jun 6, 2020
a30280b
Reduce indirection in record types
brendanzab Jun 6, 2020
2ce7634
Fix name of clippy step in ci script
brendanzab Jun 7, 2020
3669468
Move values into the semantics module
brendanzab Jun 7, 2020
bd2220d
Make some free functions methods
brendanzab Jun 7, 2020
dda5e12
Bump websocket-extensions from 0.1.3 to 0.1.4 in /website
dependabot[bot] Jun 7, 2020
0c20aa1
Use entries function in readback
brendanzab Jun 7, 2020
6b9c6b5
Record elaboration cleanups
brendanzab Jun 8, 2020
a00fbb0
Expose doc allocator when generating diagnostics
brendanzab Jun 8, 2020
d3085c2
Cleanup repl loop a little
brendanzab Jun 8, 2020
a5f081e
Avoid some unecessary evaluation
brendanzab Jun 10, 2020
bccaf7e
Implement name avoidance in delaborator
brendanzab Jun 8, 2020
c91bca7
Use ‘distill’ as opposed to ‘delaborate’
brendanzab Jun 14, 2020
7fa999b
Use distillation state in elaborator
brendanzab Jun 14, 2020
eef03b0
Implement dependent function types
brendanzab Feb 13, 2020
b2cd1b9
Avoid passing around types in normalization
brendanzab Jul 18, 2020
c4a643c
Fix sorting of dependencies
brendanzab Jul 21, 2020
caebcb6
Fix outdated error message in tests
brendanzab Jul 21, 2020
0aa7827
Fix clippy errors
brendanzab Jul 22, 2020
c3fe6e2
Use gluing in interpreter
brendanzab Jul 21, 2020
1eb859e
Assorted cleanups to the semantics module
brendanzab Jul 22, 2020
e9e5545
Add fast path for subtyping checks
brendanzab Jul 22, 2020
0acb428
Avoid allocations in definitional equality checks
brendanzab Jul 22, 2020
5a0fb09
Promote Matrix room in README
brendanzab Jul 23, 2020
6c18704
Fix copy-paste error
brendanzab Jul 23, 2020
d078ba5
Bump dependencies
brendanzab Jul 27, 2020
b6e077d
Move typing messages into submodule
brendanzab Jul 27, 2020
73d0dda
Add pikelet-ide crate
brendanzab Jul 27, 2020
a2d1aa4
Improve doc comments
brendanzab Aug 9, 2020
40a1a60
Rename crates for clarity
brendanzab Aug 9, 2020
684e225
Adjust function naming
brendanzab Aug 9, 2020
1416048
Begin anf and cc modules
brendanzab Aug 12, 2020
488ed78
House-cleaning of AST variants
brendanzab Aug 12, 2020
73badd7
Rename Universe to TypeType
brendanzab Aug 12, 2020
390ee5a
Use anyhow
brendanzab Aug 19, 2020
4159ea3
Fix clippy::unit-arg lint
brendanzab Aug 21, 2020
354c0cf
Add ranged type
brendanzab Aug 22, 2020
11c623d
Use Arc::make_mut to avoid clones if possible
brendanzab Aug 24, 2020
49e7f99
Add some from conversions
brendanzab Aug 26, 2020
e68beb0
Avoid recomputations when checking sequences
brendanzab Aug 26, 2020
c03b8f2
Make it clearer what is being forced
brendanzab Aug 26, 2020
3ef13a5
Add category and semigroup to prelude
brendanzab Aug 30, 2020
7e8b7af
Use channel for diagnostic messages
brendanzab Aug 26, 2020
bd277c5
Add common reporting message type
brendanzab Aug 30, 2020
6bfdf8c
Fix typo in lexer
brendanzab Aug 31, 2020
fb9119c
Convert LALRPOP errors to diagnostics
brendanzab Sep 1, 2020
8163e94
Remove logos callbacks
brendanzab Sep 1, 2020
d2ffc32
Merge pull request #212 from brendanzab/parse-error-improvements
brendanzab Sep 1, 2020
5ed4fac
Add some message conversions
brendanzab Sep 1, 2020
10d9a42
Add message docs
brendanzab Sep 2, 2020
70a0975
Remove S parameter from surface language
brendanzab Sep 5, 2020
b24e3ea
Improve contibution instructions
brendanzab Sep 5, 2020
f212812
Consolidate diagnostic messages into one module
brendanzab Sep 5, 2020
a52e42e
Fix core typinbg doc comment
brendanzab Sep 5, 2020
79221ce
Fix broken link
brendanzab Sep 5, 2020
94c31d1
Use state methods instead of free functions
brendanzab Sep 5, 2020
1a47dfc
Merge pull request #213 from brendanzab/state-methods
brendanzab Sep 5, 2020
2345056
Add some postconditions to stateful methods
brendanzab Sep 5, 2020
5e9ae10
Improve formatting
brendanzab Sep 5, 2020
bc7db12
Fix warnings due to a bug in Rustc
brendanzab Sep 5, 2020
196d862
Merge pull request #214 from brendanzab/postconditions
brendanzab Sep 5, 2020
d2b2c39
Update to contracts v0.6
brendanzab Sep 5, 2020
08f43b6
Merge pull request #215 from brendanzab/update-contracts
brendanzab Sep 5, 2020
4b79e12
Improve doc comments
brendanzab Sep 6, 2020
18f5b27
Merge pull request #216 from brendanzab/improve-doc-comments
brendanzab Sep 6, 2020
be0ef31
Add method for reading back to surface language
brendanzab Sep 6, 2020
880827c
Merge pull request #217 from brendanzab/readback-to-surface
brendanzab Sep 6, 2020
7da9b3a
Add doc comments to core constants
brendanzab Sep 6, 2020
6bf5544
Improve message doc comments
brendanzab Sep 6, 2020
8aded4f
Add more information to the translation pass docs
brendanzab Sep 6, 2020
7a66a4a
Merge pull request #218 from brendanzab/more-doc-comment-improvements
brendanzab Sep 6, 2020
eac729f
Remove unnecessary &mut from report methods
brendanzab Sep 10, 2020
feb5769
Merge pull request #219 from brendanzab/unnecessary-mut
brendanzab Sep 10, 2020
c1d5add
Formatting improvements
brendanzab Sep 12, 2020
0a97820
Doc comment improvements
brendanzab Sep 12, 2020
856d306
Add range information to core language
brendanzab Sep 12, 2020
cf79ebb
Merge pull request #220 from brendanzab/add-range-information
brendanzab Sep 12, 2020
1f5e487
Use try_iter to avoid blocking
brendanzab Sep 13, 2020
3d99780
Merge pull request #221 from brendanzab/try-iter
brendanzab Sep 13, 2020
42b64e5
Split up skip patterns in lexer for clarity
brendanzab Sep 18, 2020
f9b1dd8
Implement proper literal parsing
brendanzab Sep 23, 2020
9343f63
Merge pull request #223 from brendanzab/literal-parsing
brendanzab Sep 26, 2020
2bc59e4
Inline some grammar productions
brendanzab Sep 27, 2020
92332e3
Fix cli binary name
brendanzab Sep 27, 2020
2c0a06e
Merge pull request #225 from brendanzab/inline-productions
brendanzab Sep 27, 2020
789f593
Implement check CLI command
brendanzab Sep 27, 2020
aedafc6
Use channel for reporting parse errors
brendanzab Sep 27, 2020
fcd7668
Merge pull request #224 from brendanzab/implement-check-command
brendanzab Sep 27, 2020
9826934
Print results on warnings in REPL
brendanzab Sep 28, 2020
eb808d5
Add loop label for clarity
brendanzab Sep 28, 2020
0841562
Use buffered writing
brendanzab Oct 1, 2020
abd3c79
Merge pull request #226 from brendanzab/repl-improvements
brendanzab Oct 1, 2020
b8bce6a
Add missing pops to core_to_surface pass
brendanzab Oct 5, 2020
a371f67
Return options from index and level conversions
brendanzab Oct 5, 2020
ab34730
Move level/index conversions onto respective types
brendanzab Oct 5, 2020
e6fabd5
Merge pull request #228 from brendanzab/local-level-index-conversions
brendanzab Oct 5, 2020
12e25c4
Merge pull request #227 from brendanzab/fix-name-popping
brendanzab Oct 6, 2020
3232101
Allow dependencies between record term elements
brendanzab Oct 7, 2020
ef8ae35
Merge pull request #230 from brendanzab/record-term-bindings
brendanzab Oct 10, 2020
19c2aa6
Improve variant names for Unfold type
brendanzab Oct 10, 2020
129adc3
Improve docs for stuck and unstuck values
brendanzab Oct 10, 2020
cdd94c1
Improve function naming
brendanzab Oct 10, 2020
ac3a977
Formatting improvements
brendanzab Oct 10, 2020
7498d2d
Merge pull request #231 from brendanzab/semantics-cleanups
brendanzab Oct 10, 2020
fa034af
Move back to using mdBook for documantation
brendanzab Oct 11, 2020
04b2489
Merge pull request #232 from brendanzab/mdbook-docs
brendanzab Oct 17, 2020
8bf3edd
Add TODO comments to REPL
brendanzab Oct 17, 2020
c5440f7
Remove editor highlighting workarounds
brendanzab Oct 20, 2020
21a913e
Improve documentation for values and eliminators
brendanzab Oct 26, 2020
56f35a0
Add FIXME about moving from coercions to subtyping
brendanzab Oct 26, 2020
38f336e
Field and method name improvements
brendanzab Oct 28, 2020
a180b77
Avoid local gluing for now
brendanzab Nov 4, 2020
16513dd
Rename Closure to FunctionClosure
brendanzab Nov 8, 2020
7f7d498
Simplify AST and improve naming of variants
brendanzab Nov 10, 2020
688d7cb
Reduce levels of matching with helper method
brendanzab Nov 10, 2020
483ec70
Make it less painful to copy ranges
brendanzab Nov 14, 2020
5423f9c
Split up array and list terms in core language
brendanzab Nov 21, 2020
9901536
Fix broken roadmap link
brendanzab Nov 22, 2020
8679926
Migrate from insecure add_path to $GITHUB_PATH
brendanzab Nov 22, 2020
651c801
Explicitly set Linux runner version, opt in to new stable
brendanzab Nov 22, 2020
b8955f8
Bump mdbook to latest version
brendanzab Nov 22, 2020
d690913
Bump iced version
brendanzab Nov 28, 2020
be46613
Record term elaboration cleanups
brendanzab Nov 28, 2020
b4c19ec
Update design principles
brendanzab Nov 28, 2020
a10650e
Simplify grammar specification
brendanzab Nov 28, 2020
293b9ad
Track source locations across multiple files
brendanzab Nov 29, 2020
c1a3e21
Rename `Ranged` to `Located`
brendanzab Nov 29, 2020
32f772a
Remove duplicate footnote
brendanzab Nov 29, 2020
6b1f6b3
Move marshalling API into submodule
brendanzab Nov 29, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 125 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: ci

on:
push:
branches:
- master
- next

pull_request:
branches:
- master
- next

jobs:
check:
runs-on: ubuntu-20.04
strategy:
matrix:
rust: ["1.44.0", "stable", "beta", "nightly"]
name: Check (${{ matrix.rust }})
steps:
- uses: actions/checkout@v2
- name: Install minimal ${{ matrix.rust }}
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
- name: Run cargo check
uses: actions-rs/cargo@v1
with:
command: check

test:
runs-on: ubuntu-20.04
strategy:
matrix:
rust: ["1.44.0", "stable", "beta", "nightly"]
name: Test Suite (${{ matrix.rust }})
steps:
- uses: actions/checkout@v2
- name: Install minimal ${{ matrix.rust }}
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
- name: Run cargo test
uses: actions-rs/cargo@v1
with:
command: test

fmt:
runs-on: ubuntu-20.04
strategy:
matrix:
rust: ["1.44.0", "stable", "beta", "nightly"]
name: Rustfmt (${{ matrix.rust }})
steps:
- uses: actions/checkout@v2
- name: Install minimal ${{ matrix.rust }} with rustfmt
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
components: rustfmt
- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check

clippy:
runs-on: ubuntu-20.04
strategy:
matrix:
rust: ["stable"]
# rust: ["1.44.0", "stable", "beta", "nightly"]
name: Clippy (${{ matrix.rust }})
steps:
- uses: actions/checkout@v2
- name: Install minimal ${{ matrix.rust }} with clippy
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
components: clippy
- name: Run cargo clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings

book:
runs-on: ubuntu-20.04
name: Build and Test Book
env:
MDBOOK_VERSION: '0.4.4'
MDBOOK_LINKCHECK_VERSION: '0.7.0'
steps:
- uses: actions/checkout@v2
- name: Install mdBook
# Install prebuilt binaries where possible to improve CI performance
run: |
mkdir -p "$HOME/mdbook"
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"
echo "${HOME}/mdbook/" >> $GITHUB_PATH
mkdir -p "$HOME/mdbook-linkcheck"
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"
echo "${HOME}/mdbook-linkcheck/" >> $GITHUB_PATH
- name: Install Javascript dependencies
run: yarn install
working-directory: book
- name: Build additional Javascript
run: yarn build
working-directory: book
- name: Build book
run: mdbook build
working-directory: book
- name: Test book
run: mdbook test
working-directory: book
# TODO: Deploy to Github Pages on crate release
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Rust
/target/
**/*.rs.bk
Cargo.lock
repl-history

# Yarn
/node_modules
4 changes: 0 additions & 4 deletions .gitmodules

This file was deleted.

47 changes: 0 additions & 47 deletions .travis.yml

This file was deleted.

5 changes: 5 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"recommendations": [
"editorconfig.editorconfig"
]
}
61 changes: 61 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Contributing

## Code of Conduct

Please note that this project is released with a [Code of Conduct](./CODE_OF_CONDUCT.md).
By participating in this project you agree to abide by its terms.

[code_of_conduct]: https://github.com/pikelet-lang/pikelet/blob/master/CODE_OF_CONDUCT.md

## Matrix room

Joining the matrix room at [#pikelet:matrix.org][pikelet-matrix] is a good way to get in touch with the developers and community.

[pikelet-matrix]: https://app.element.io/#/room/#pikelet:matrix.org

## Prerequisites

We use [Rust][rust] as our implementation language, which can be installed using the [rustup] tool.

For the best experience in working with Rust we also recommend installing IDE support for your editor of choice:

- [Rust Analyzer][rust-analyzer] (for VS Code, Vim Emacs, etc.)
- [IntelliJ Rust][intellij-rust] (for IntelliJ-based IDEs)

You can learn more about programming in Rust by reading [The Rust Programming Language][rust-book].

[rust]: https://www.rust-lang.org/
[rustup]: https://rustup.rs/
[rust-analyzer]: https://rust-analyzer.github.io/
[intellij-rust]: https://intellij-rust.github.io/
[rust-book]: https://doc.rust-lang.org/book/

## Workflow

Follow these steps to contribute to the project:

1. Make a fork of the [Pikelet repository][pikelet-repo].
1. Within your fork, create a branch for your contribution. Use a meaningful name.
1. Create your contribution, meeting all [contribution quality standards](#quality-standards).
1. Ensure all the tests pass (`cargo test`).
1. [Create a pull request][create-a-pr] against the `master` branch of the repository.
1. Once the pull request is reviewed and CI passes, it will be merged.

[pikelet-repo]: https://github.com/pikelet-lang/pikelet/
[create-a-pr]: https://help.github.com/articles/creating-a-pull-request-from-a-fork/

## Quality Standards

Most quality and style standards are checked automatically by the CI build.
Contributions should:

- Separate each **logical change** into its own commit.
- Include tests for any new functionality in your pull request.
- Document public functions.
- Format code with `cargo fmt`.
- Avoid adding `unsafe` code.
If it is necessary, provide an explanatory comment on any `unsafe` block explaining its rationale and why it's safe.
- Add a descriptive message for each commit. Follow [these commit message guidelines][commit-messages].
- Document your pull requests. Include the reasoning behind each change, and the testing done.

[commit-messages]: https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
11 changes: 4 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
[workspace]
members = [
"./crates/pikelet",
"./crates/pikelet-concrete",
"./crates/pikelet-core",
"./crates/pikelet-driver",
"./crates/pikelet-language-server",
"./crates/pikelet-library",
"./crates/pikelet-repl",
"./pikelet",
"./pikelet-cli",
"./pikelet-editor",
"./pikelet-language-server",
]
39 changes: 16 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,18 @@

![Pikelet Mascot][pikelet-mascot]

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

[pikelet-mascot]: assets/pikelet.png
[travis-badge]: https://travis-ci.org/pikelet-lang/pikelet.svg?branch=master
[travis-url]: https://travis-ci.org/pikelet-lang/pikelet
[gitter-badge]: https://badges.gitter.im/pikelet-lang/pikelet.svg
[gitter-lobby]: https://gitter.im/pikelet-lang/Lobby
[![Actions Status][actions-badge]][actions-url]
[![Matrix][matrix-badge]][matrix-lobby]
[![License][license-badge]][license-url]

[actions-badge]: https://github.com/pikelet-lang/pikelet/workflows/ci/badge.svg
[actions-url]: https://github.com/pikelet-lang/pikelet/actions
[matrix-badge]: https://img.shields.io/matrix/pikelet:matrix.org?label=%23pikelet%3Amatrix.org
[matrix-lobby]: https://app.element.io/#/room/#pikelet:matrix.org
[license-badge]: https://img.shields.io/github/license/pikelet-lang/pikelet
[license-url]: ./LICENSE

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

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

For more information, see [The Pikelet Book][pikelet-book].

[pikelet-book]: https://pikelet-lang.github.io/pikelet/

## Contributing

We really want to encourage new contributors to help out! Please come chat with
us [on our Gitter channel][gitter-lobby] - if you have any questions about the
project, or just want to say hi! We sometimes get side-tracked on technical
discussions, but we're always more than happy to spend time explaining things.

## Acknowledgments
## Roadmap

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

This work was done in part with the generous support of [YesLogic][yeslogic].
## Code of Conduct

[yeslogic]: http://yeslogic.com/
[yeslogic-logo]: assets/yeslogic-logo.png
Please note that this project is released with a [Code of Conduct](./CODE_OF_CONDUCT.md).
By participating in this project you agree to abide by its terms.
Binary file removed assets/yeslogic-logo.png
Binary file not shown.
11 changes: 9 additions & 2 deletions book/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
build
theme/highlight.js
# mdBook
/build

# Yarn
/node_modules

# Parcel
/.cache
/dist
Loading