Comments (4)
Macros would be a very very useful thing to have in webassembly because you could spin up your own web language from within the assembly. For projects which absolutely must be as close to the bare metal as possible but need to be on the web this would speed up development.
from wabt.
@sunfishcode experimented with this some here: WebAssembly/spec#155. It is tedious to write wast files, but they're not meant to be the text format for WebAssembly. Rather, they're convenient as being a direct representation of the module AST, used primarily for writing tests.
You may want to take a look at this proposal for the text format: WebAssembly/design#704. It doesn't support macros, but it is not nearly as verbose as the wast format.
from wabt.
Thanks, I've seen there are more proposals for the text format. I'd like to see WAST (with macros) to survive as a stable format :)
We have written some code already in WAST and it is not that bad, unless unrolled loops need to be implemented.
Would macros be suitable for sexpr-wasm
or they are out of scope because they're not stored in WASM?
from wabt.
Yeah, it's definitely a goal to keep the wast format as parsed by sexpr-wasm to be consistent with the wast format as parsed by spec/ml-proto. So adding macros would be out of scope, IMO. That said, it seems to me that you could use a preprocessor to do what you want. Seems like it should be pretty straightforward if you just grab a lisp/scheme and use that to do it.
from wabt.
Related Issues (20)
- Wast2Json fails on the testsuite HOT 8
- Library not loaded: /usr/local/opt/openssl@3/lib/libcrypto.3.dylib HOT 9
- Missing Import when running global.wast HOT 1
- `wast2json` miscompiles "if.wast" from the specification tests HOT 4
- Build failed on Apple Silicon platform HOT 5
- [wasm2c] Strange issue with double parsing in msvc HOT 5
- wasm2c compiling minimal example issues HOT 1
- [wasm2c] catching traps without exception runtime
- “picosha2.h”: No such file or directory HOT 2
- Allocator is out of memory in wasm-interp HOT 3
- Invalid Read Memory in wabt::interp HOT 1
- [wasm2c] too few arguments to function `wasm2c_fac_instantiate` HOT 3
- SEGV in wabt::Module::operator=
- CMake missing OpenSSL dependency HOT 7
- 00002fd: error: memory may not be shared: threads not allowed HOT 1
- `wasm-rt-impl-tableops.inc` missing from packages
- Module fails to compile without a proper error message HOT 4
- Missing support for the (somewhat) recently added relocation types HOT 2
- wasm-interp --enable-exceptions error invalid import "env.saveSetjmp" HOT 8
- Wat2wasm - Not Compiling, no output HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wabt.