Ayke van Laethem
f9d0ff3bec
all: store data layout as little endian value
...
This makes it much easier to read the value at runtime, as pointer
indices are naturally little endian. It should not affect anything else
in the program.
2023-01-17 19:32:18 +01:00
Ayke van Laethem
17176a2cea
runtime: zero freed memory
...
This helps to find bugs in the GC. It does have a performance impact so
it's only enabled when asserts are enabled.
2023-01-17 19:32:18 +01:00
Ayke van Laethem
fb73074325
runtime: move GC code around to prepare for precise GC
...
Most of the code of the conservative GC can be reused for the precise
GC. So before adding precise GC support, this commit just moves code
around to make the next commit cleaner. It is a non-functional change.
2023-01-17 19:32:18 +01:00
Ayke van Laethem
187d9c6aca
riscv: use 16-byte alignment everywhere
...
Source: https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf
2023-01-17 19:32:18 +01:00
Ayke van Laethem
35f427c8cc
xtensa: use 8-byte alignment
...
This is probably not necessary on Espressif chips, but let's strictly
follow the ABI to be sure.
2023-01-17 19:32:18 +01:00
Ayke van Laethem
26b6d0b06d
runtime: arm actually has 8-byte alignment
...
Specification:
https://developer.arm.com/documentation/dui0472/k/C-and-C---Implementation-Details/Basic-data-types-in-ARM-C-and-C--
There are multiple types that have an 8-byte alignment (long long,
double) so we need to use the same maximum alignment in TinyGo.
Fixing this is necessary for the precise GC.
2023-01-17 19:32:18 +01:00
Ayke van Laethem
38252e338f
runtime: arm64 actually has 16-byte alignment like amd64
...
Proof: https://godbolt.org/z/as4EM3713
Essentially, this means that there are objects on arm64 that have a
16-byte alignment and so we have to respect that when we allocate things
on the heap.
2023-01-17 19:32:18 +01:00
Marcus Sorensen
e7ba07dd5a
Add PDM support for circuitplay-bluefruit ( #3359 )
...
machine/nrf52840: add PDM support
Signed-off-by: Marcus Sorensen <marcus@turboio.com>
2023-01-17 12:32:01 +01:00
Ayke van Laethem
0d646d8e95
builder: add support for Go 1.20
...
Not all features work yet, but allow it to compile with this Go version.
2023-01-17 08:38:54 +01:00
Ayke van Laethem
3177591b31
syscall: implement setenv/unsetenv in the runtime
...
This is expected starting with Go 1.20.
I've also applied the same modification to syscall_libc.go so that
setenv is only called in a single place.
2023-01-17 08:38:54 +01:00
Ayke van Laethem
19db0144ae
runtime: implement internal/godebug.setUpdate as a stub
...
This function provides a mechanism to watch for changes to the GODEBUG
environment variable. For now, we'll not implement it. It might be
useful in the future, when it can always be added.
2023-01-17 08:38:54 +01:00
Ayke van Laethem
d639e01650
runtime: implement math/rand.fastrand64 to fix linker error
...
This is needed for Go 1.20 support.
2023-01-17 08:38:54 +01:00
Ayke van Laethem
c43958972c
compiler: add support for new unsafe slice/string functions
...
This adds support for unsafe.SliceData, unsafe.String, and
unsafe.SringData that were introduced in Go 1.20.
2023-01-17 08:38:54 +01:00
Ayke van Laethem
33489d6344
testing: implement t.Setenv
...
This method has been added in Go 1.17 and is used in archive/zip
starting with Go 1.20. Therefore, this method is now needed in Go 1.20.
I've left out the parts that disable parallel execution of tests,
because we don't do that in TinyGo.
See:
* https://github.com/golang/go/issues/41260
* https://go-review.googlesource.com/c/go/+/260577
2023-01-15 11:48:05 +01:00
Ayke van Laethem
80077ef276
test: print package name when compilation failed
...
Before this patch, a compile error would prevent the 'ok' or 'FAIL' line
to be printed. That's unexpected. This patch changes the code in such a
way that it's obvious a test result line is printed in all cases.
To be able to also print the package name, I had to make sure the build
result is passed through everywhere even on all the failure paths. This
results in a bit of churn, but it's all relatively straightforward.
Found while working on Go 1.20.
2023-01-15 08:49:18 +01:00
Ayke van Laethem
911ce3a4bc
compiler: update golang.org/x/tools/ssa
...
This package needs to be updated to support Go 1.20. There were a few
backwards incompatible changes that required updates to the compiler
package.
2023-01-14 22:08:38 +01:00
joey
776dabb2c8
add a stub for os.Chtimes
2023-01-12 15:58:08 +01:00
Ayke van Laethem
e11df5c212
cgo: add support for bitwise operators
2023-01-12 08:51:03 +01:00
deadprogram
656805d91f
docs: update README with missing boards
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-01-11 21:51:03 +01:00
Thomas Richner
05ec4e6bd0
Support for Adafruit Feather M0 Express board
2023-01-11 10:07:11 +01:00
Achille Roussel
ae65b37762
add comment about where src/os/file.go came from
...
Signed-off-by: Achille Roussel <achille.roussel@gmail.com>
2023-01-10 20:40:53 +01:00
John Clark
aa12579864
Add SPI support for for the ESP32-C3 device.
...
Signed-off-by: John Clark <inindev@gmail.com>
2023-01-10 15:52:25 +01:00
Damian Gryski
715b269f78
src/runtime: add xorshift-based fastrand64
2023-01-08 10:35:31 +01:00
sago35
5f3534fe72
machine/usb: change to not send before endpoint initialization
2023-01-08 08:44:27 +01:00
irieda
a7ff2731b9
Add USB HID joystick support ( #3366 )
...
machine/usb: add USB HID joystick support
2023-01-07 22:30:40 +01:00
Anuraag Agrawal
0566bbfeb4
Use renamed EXTRA_CFLAGS when building wasi-libc
2023-01-07 19:53:48 +01:00
sago35
70c4e1cf96
machine/usb: improve buffer size definition
2023-01-07 17:57:19 +01:00
Ayke van Laethem
9fd0567fb5
compiler: fix stack overflow when creating recursive pointer types
...
There were two types that could result in a compiler stack overflow.
This is difficult to fix in LLVM 14, so I won't even bother. However,
this is trivial to fix with opaque pointers in LLVM 15. Therefore, this
fix is for LLVM 15 only.
Fixes: https://github.com/tinygo-org/tinygo/issues/3341
2022-12-22 17:45:05 +01:00
BCG
481aba6536
board: Adafruit KB2040 ( https://www.adafruit.com/product/5302 )
2022-12-22 11:49:31 +01:00
Adrian Cole
a700f58581
wasi: makes wasmtime "run" explicit
...
wasmtime by default will assume the subcommand is "run" vs one of its
others, but being explicit helps clarify the actual command invoked.
For example, we pass similar looking args to wasmtime and also wasi.
Signed-off-by: Adrian Cole <adrian@tetrate.io>
2022-12-22 09:22:17 +01:00
Jesús Espino
e71e289e8b
Add basic atmega32u support ( #3337 )
...
machine/atmega32u: add support for arduino leonardo
2022-12-20 16:57:55 +01:00
sago35
6cdc718bfb
rp2040: drop deprecated build tags
2022-12-20 15:53:02 +01:00
sago35
70c94c6d01
rp2040: add version check for RP2040-E5
2022-12-20 15:53:02 +01:00
sago35
762a6f1256
rp2040: fix usb device enumeration (RP2040-E5)
2022-12-20 15:53:02 +01:00
Yurii Soldak
8d4d3c6201
build: drop deprecated build tags
2022-12-19 23:20:11 +01:00
Yurii Soldak
146e2cd376
build: generate files with go:build tags
2022-12-19 23:20:11 +01:00
Jesús Espino
d304e6706b
Adding support for waveshare rp2040-zero ( #3321 )
...
machine: adding support for waveshare rp2040-zero
2022-12-19 12:15:03 +01:00
deadprogram
c5c6464175
compileopts: replace 'retries' with more correct 'timeout' param
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2022-12-19 08:44:39 +01:00
sago35
c90ff1e1cf
rp2040: fix interrupt issue (2)
2022-12-19 08:43:56 +01:00
sago35
0f6dfedcfd
rp2040: fix interrupt issue
2022-12-17 12:52:19 +01:00
Ron Evans
69a284bd36
Revert "Bump CMSIS to 5.9.0"
...
This reverts commit 92be61534e
.
2022-12-16 21:26:49 +01:00
Anton D. Kachalov
92be61534e
Bump CMSIS to 5.9.0
2022-12-16 15:42:35 +01:00
Damian Gryski
675b8e3f3c
builder: always run wasm-opt for wasm32 binaries
2022-12-16 10:11:39 +01:00
Ayke van Laethem
f3d0195d35
runtime: move KeepAlive/SetFinalizer to common code
...
We don't support these yet so let's just put them in a central location.
Once these functions are supported we can think about how to structure
the code again.
2022-12-15 19:25:27 +01:00
sago35
398c284480
usbhid: change usage-maximum to 0xFF
2022-12-15 18:24:54 +01:00
Damian Gryski
86f125cf72
reflect: track flags when size changes from fits-in-pointer to not
...
Fixes #3328
2022-12-07 23:11:40 +01:00
sago35
5293d3e5f0
atsame5x: reduce heap allocation
2022-12-01 22:27:12 +01:00
Ayke van Laethem
7aca814954
windows: update mingw-w64 version
...
This gets rid of the following messages:
ld.lld: warning: duplicate /export option: hypot
ld.lld: warning: duplicate /export option: nextafter
I've wanted to wait for the next release but that may take a long while,
so I've simply set the submodule to the commit that fixes this message.
2022-11-26 21:42:15 +01:00
deadprogram
1d52e6be29
machine/nrf51: add ADC implementation
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2022-11-26 20:17:11 +01:00
sago35
acb2391439
atsame5x: fix extendedID handling
2022-11-25 17:57:16 +01:00