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

Define instruction set #187

Closed
dirk opened this issue Jun 17, 2015 · 10 comments
Closed

Define instruction set #187

dirk opened this issue Jun 17, 2015 · 10 comments

Comments

@dirk
Copy link

dirk commented Jun 17, 2015

Although the AST semantics is a nice first start at defining how programs will be structured in WebAssembly, it seems as though a more complete definition of statements (functions and control flow) and expressions (instructions) would be useful for helping people understand the design of WebAssembly, what is possible with it, and where it fits on the spectrum of abstraction.

Perhaps the AST document could be reorganized into more logical sections: types (integers, floats, pointers/memory), statements, and expressions. Currently it's a slightly confusing hodgepodge of all three and more.

@dejlek
Copy link

dejlek commented Jun 19, 2015

Yes please. I was looking for ISA document for last half an hour! :)

@dirk
Copy link
Author

dirk commented Jun 19, 2015

Once #200 is merged then I'd be more than willing to start on this.

@titzer
Copy link

titzer commented Jun 22, 2015

The AST semantics document does given an overview with roughly that organization, though it is informal. We are planning on developing a formal specification (with operational semantics!) that will describe the operations in more detail.

@sunfishcode
Copy link
Member

#245 created a standalone Types section, which makes some progress here.

@sunfishcode
Copy link
Member

#200 is merged, and as mentioned above, #245 makes several improvements. What do you think of the current text?

@dirk
Copy link
Author

dirk commented Jul 21, 2015

It's looking a lot better! Seems like you're starting to arrive at a fairly complete set of instructions/features. (Hopefully I can start contributing more, been swamped with job transition recently.) How do you feel about rethinking the organization of that document to start grouping specifications & instructions into even more clear functional sections (memory, pointers, functions, mathematics, and control flow)?

@sunfishcode
Copy link
Member

I think we basically already have functional sections like what you describe, for Linear memory, Calls, Integer operations, Floating point operations, and so on. The thing that feels the most out of place to me is "Expressions with control flow". That hasn't been a high priority because it's an open question whether we actually want those expressions at all (#239 etc.) but if you want to reorganize it I wouldn't mind :-).

@sunfishcode
Copy link
Member

What do you think of the current organization, ignoring expressions with control flow?

@sunfishcode
Copy link
Member

Ping?

@sunfishcode
Copy link
Member

Closing; expressions with control flow and control flow in general are being discussed elsewhere, and the remaining specific suggestions here are implemented. If the original reporter or anyone else has any more suggestions, please file a new issue!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants