Skip to content

Add an introductory message in the top-level README.md #2

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

Merged
merged 4 commits into from
Aug 13, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 8 additions & 0 deletions Contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Contributing to WebAssembly

Interested in participating? Please follow
[the same contributing guidelines as the design repository][].

[the same guidelines as the design repository]: https://github.com/WebAssembly/design/blob/master/Contributing.md

Also, please be sure to read [the README.md](README.md) for this repository.
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,14 @@
# spec

This repository holds the official specifications and reference implementations
for WebAssembly.

At this time, the contents of this repository are under development and known
to be incomplet and inkorrect.

Participation is welcome. Discussions about new features, significant semantic
changes, or any specification change likely to generate substantial discussion
should take place
[the WebAssembly design repository](https://github.com/WebAssembly/design)
first, so that this spec repository can remain focused. And please follow the
(guidelines for contributing)[Contributing.md].
8 changes: 4 additions & 4 deletions ml-proto/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# WASM Interpreter
# WebAssembly Interpreter

This repository implements a prototypical reference interpreter for WASM. It is written for clarity and simplicity, _not_ speed (although it should be reasonably fast). Hopefully, it can be useful as a playground for trying out ideas and a device for nailing down the exact semantics. For that purpose, the code is written in a fairly declarative, "speccy" way.
This repository implements a prototypical reference interpreter for WebAssembly. It is written for clarity and simplicity, _not_ speed (although it should be reasonably fast). Hopefully, it can be useful as a playground for trying out ideas and a device for nailing down the exact semantics. For that purpose, the code is written in a fairly declarative, "speccy" way.

Currently, it can

Expand Down Expand Up @@ -69,7 +69,7 @@ For most part, the language understood by the interpreter is based on Ben's V8 p

The implementation tries to separate the concern of what is the language (and its semantics) from what is its external encoding. In that spirit, the actual AST is regular and minimal, while certain abbreviations are considered "syntactic sugar" of an external representation optimised for compactness.

For example, `if` always has an else-branch in the AST, but in the external format an else-less conditional is allowed as an abbreviation for one with `nop`. Simlarly, blocks can sometimes be left implicit in sub-expressions. Furthermore, fallthru is a flag on each `switch` arm in the AST, but an explicit "opcode" in the external form.
For example, `if` always has an else-branch in the AST, but in the external format an else-less conditional is allowed as an abbreviation for one with `nop`. Similarly, blocks can sometimes be left implicit in sub-expressions. Furthermore, fallthru is a flag on each `switch` arm in the AST, but an explicit "opcode" in the external form.

Here, the external format is S-expressions, but similar considerations would apply to a binary encoding. That is, there would be codes for certain abbreviations, but these are just a matter of the encoding.

Expand All @@ -95,7 +95,7 @@ type expr =
| Destruct of var list * expr (* destructure multi-value into locals
| GetLocal of var (* read local variable
| SetLocal of var * expr (* write local variable
| GetGlobal of var (* read glboal variable
| GetGlobal of var (* read global variable
| SetGlobal of var * expr (* write global variable
| GetMemory of memop * expr (* read memory address
| SetMemory of memop * expr * expr (* write memory address
Expand Down