Ayke van Laethem
564b1b3312
compiler: always use fat function pointers with context
...
This reduces complexity in the compiler without affecting binary sizes
too much.
Cortex-M0: no changes
Linux x64: no changes
WebAssembly: some testcases (calls, coroutines, map) are slightly bigger
2018-12-09 18:47:39 +01:00
Ron Evans
8325f2a53d
reelboard: support Reel Board (nrf52840 dev board)
...
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-12-01 18:25:36 +01:00
Ron Evans
8f35a4711a
pca10056: support this nrf52840-based board
...
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-12-01 18:19:42 +01:00
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
Darren Rush
cea0a5977a
docs: enable tinygo/docker to resolve go dependencies
...
Example for mapping the GOPATH into the tinygo docker image so that go
dependencies installed on the host can be found by the image.
2018-12-01 13:40:42 +01:00
Ayke van Laethem
62d74d8329
all: compile and link using clang, where possible
2018-11-22 16:20:10 +01:00
Ron Evans
ce0ad1daa2
pca10031: add support for PCA10031 nrf51 wireless dongle
...
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-11-21 10:36:36 +01:00
Ayke van Laethem
9392ef900d
avr: add support for the digispark
...
Blinking the on-board LED works. Nothing else has been tested yet.
2018-11-20 18:50:24 +01:00
Ayke van Laethem
74b5e28a38
docs: add documentation for the -gc compiler flag
2018-11-18 19:32:57 +01:00
Ron Evans
ae3535945c
all: add support to Dockerfile for AVR and ARM targets
...
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-11-15 12:53:10 +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
7ea9a32058
docs: give a small example how JS<->wasm bridging is done
2018-10-31 19:55:46 +01:00
Ayke van Laethem
c88d2d10a7
docs: give a working Docker example
2018-10-21 22:42:38 +02:00
Ayke van Laethem
58ce5d9bf2
docs: add WebAssembly to targets and improve formatting
2018-10-21 20:22:21 +02:00
Ayke van Laethem
e5e09747f0
all: add WebAssembly backend
2018-10-21 19:47:47 +02:00
Johan Brandhorst
97caabb8c2
Add Dockerfile
2018-10-21 00:28:18 +01:00
Ayke van Laethem
b81aecf753
docs: add "Supported targets" page
2018-10-18 15:35:50 +02:00
Ayke van Laethem
72390c21cb
docs: add FAQ
2018-10-17 17:55:11 +02:00
Ayke van Laethem
392bba8394
compiler: add support for parameters to inline assembly
2018-10-15 19:37:09 +02:00
Ayke van Laethem
0e65b0da1c
docs: add page "Go on microcontrollers"
2018-10-09 15:32:40 +02:00
Ayke van Laethem
823ecd5167
docs: reorder internals sections
2018-10-09 15:32:40 +02:00
Ayke van Laethem
f0f6a12d19
docs: add avr-libc as a dependency
2018-10-07 22:14:44 +02:00
Ayke van Laethem
22da104530
all: use compiler-rt for builtins
2018-10-07 19:04:29 +02:00
Ayke van Laethem
bcf441ccba
docs: add another way in which a llvm-7-dev installation can fail
2018-09-30 18:02:15 +02:00
Ayke van Laethem
a2e57b40f9
docs: update installation instructions
...
* Update to system-installed LLVM.
* Avoid the use of make.
2018-09-30 15:40:58 +02:00
Ayke van Laethem
3850530c88
docs/installation: fix LLVM hyperlink
2018-09-23 17:21:49 +02:00
Ayke van Laethem
3e1a60351d
docs/internals: fix hyperlink
2018-09-23 17:20:24 +02:00
Ayke van Laethem
c9a2b3f417
docs: remove "Indices and tables"
2018-09-23 17:05:32 +02:00
Ayke van Laethem
f7f33a1163
docs: add initial documentation
2018-09-23 16:46:57 +02:00