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

WebAssembly (Text Format) #121

Closed
bushidocodes opened this issue Jan 21, 2022 · 2 comments
Closed

WebAssembly (Text Format) #121

bushidocodes opened this issue Jan 21, 2022 · 2 comments

Comments

@bushidocodes
Copy link

What programming language should we add?
WebAssembly

It's a bit ambiguous if this should be called "WebAssembly" or "WebAssembly Text Format" or "WAT" (the file extension). Per the spec, this is essentially the text representation of the WebAssembly specification using S-Expressions. When the text format is translated into binary, the S-Expressions basically get flattened out. Beyond that, the binary and text representations are the same. For example, when the Chrome debugger shows WebAssembly stuff, it automatically translates the binary back to the text representation.

I think my preference would be to call this WebAssembly to mirror "x86-64 Assembly" and "MIPS Assembly." This seems to be how other tools seem to be describing this, including the Highlight.js link below.

What is the official website for the language?
https://webassembly.github.io/spec/core/text/index.html

Is this a language that comes in many variants? If so, which variant should we support?

The main variance involves the "host environment" functionality that can be imported into a wasm module. In the browser, this can be any JS function. On server-side runtimes, this is the WebAssembly System Interface (WASI). My suggestion is to use Node.js as the embedding environment, as this provides access to JavaScript imports and the WASI set of functions.

Does the language have an official logo? If so

Does the language have an unofficial logo? If so

No. The official is used extensively.

Is there a testing framework available for the language?

No. There is *.wast, which can be used for this purpose, but which is more focused on ensuring spec-compliance.

However, given the fact that WebAssembly is a first-class entity in JavaScript runtimes, we can follow the lead of the JavaScript track and use Jest. This allows the WebAssembly track to essentially port over JavaScript exercises.

Is this language listed as 'supported' by Highlightjs? If so

It's not on the Markdown provided, but it appears to have been added in version 11.
https://highlightjs.org/#news-142

  • what is Highlightjs' canonical spelling for the language?

It seems to be "wasm"
https://github.com/highlightjs/highlight.js/blob/main/src/languages/wasm.js

  • what file extensions should be highlighted?

*.wat

If it is not supported by Highlightjs, what is the closest supported language it maps to?

n/a

Who will be leading the effort to launch the track?

Sean McBride. My handle is bushidocodes here and on the Exercism platform.

@bushidocodes bushidocodes changed the title WebAssembly WebAssembly (Text Format) Jan 21, 2022
@iHiD
Copy link
Member

iHiD commented Jan 21, 2022

@kytrinyx
Copy link
Member

I went with WebAssembly as the name of the language, and wasm as the track ID, and added @bushidocodes as a maintainer.

exercism/wasm#1

Thanks for taking this on ✨

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

No branches or pull requests

3 participants