Commit Graph

9 Commits

Author SHA1 Message Date
Ayke van Laethem e54a1c4dc0 compiler: disallow exporting functions that have their address taken
This simplifies the ABI a lot and makes future changes easier.
In the future, determining which functions need a context parameter
should be moved from IR generation into an optimization pass, avoiding
the need for recursively scanning the Go SSA.
2018-12-01 17:41:20 +01:00
Ayke van Laethem 101d41dc58 compiler: pass i64 return value in an extra pointer param
To support the WebAssembly<->JS barrier, return values also have to be
passed in memory. i64 return values are used by syscall/js, so must be
supported across this ABI barrier.
2018-11-14 12:35:43 +01:00
Ayke van Laethem 2e22d53e5d compiler: work around i64 limitation in JavaScript
JavaScript does not support i64 directly, so make sure we pass a pointer
instead which can be read from JavaScript.

This is a temporary workaround which should be removed once JavaScript
supports some form of i64 (probably in the form of BigInt).
2018-11-03 12:03:49 +01:00
Ayke van Laethem c7cf6f0e82 docs: move calling convention documentation here 2018-11-01 11:41:24 +01:00
Ayke van Laethem 85d5fe7643 docs: add description of internal datatypes 2018-10-31 20:47:12 +01:00
Ayke van Laethem 06b8afab2e docs: add command line subcommands + flags documentation 2018-10-31 19:55:48 +01:00
Ayke van Laethem 823ecd5167 docs: reorder internals sections 2018-10-09 15:32:40 +02:00
Ayke van Laethem 3e1a60351d docs/internals: fix hyperlink 2018-09-23 17:20:24 +02:00
Ayke van Laethem f7f33a1163 docs: add initial documentation 2018-09-23 16:46:57 +02:00