Nia Waldvogel
e6fbad13c6
runtime (gc): correct scan bounds
...
This fixes 2 bugs in the GC scan bounds:
1. On AVR, the GC could sometimes read one byte past the end of a block due to the difference between pointer size and alignment.
2. On WASM, the linker does not properly align the marker for the end of the globals section. A manual alignment operation has been added to markGlobals to work around this.
2021-12-17 09:26:44 +01:00
Dan Kegel
62bda8e129
os: os_chmod_test.go: fix copyright
2021-12-16 16:36:53 -05:00
Dan Kegel
51d6ffb3be
os: Chmod: don't test on wasi yet, wasi-libc does not yet support it
...
Lets "tinygo test -target wasi os" compile, if not pass.
For https://github.com/tinygo-org/tinygo/issues/2369
2021-12-16 16:36:53 -05:00
deadprogram
5264469cbd
machine/stm32wl: unify implementation for RNG for stm32wl with other STM32 processors
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-12-15 18:33:41 +01:00
Nia Waldvogel
c096f35224
runtime: handle negative sleep times
...
This change fixes the edge case where a negative sleep time is provided.
When this happens, the call now returns immediately (as specified by the docs for time.Sleep).
2021-12-15 17:52:48 +01:00
Dan Kegel
929cd767c1
os/path_windows_test.go: don't fail on Wine, which allows dots for cur dir even in extended length paths
2021-12-15 12:23:28 +01:00
deadprogram
e1df2510d4
machine/stm32f4, stm32f7, stm32l4: implement TRNG for randomness
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-12-15 11:38:40 +01:00
deadprogram
2ebaa9f520
machine/samd51: implement TRNG for randomness
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-12-14 14:55:19 +01:00
deadprogram
5159eab694
examples: add example to exercise random number generation
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-12-14 14:55:19 +01:00
Dan Kegel
75dfb26452
os: skip TestMkdirTempBadDir on windows until TestStatBadDir passes
2021-12-14 09:25:27 +01:00
Dan Kegel
971da0bc09
os: implement and test os.MkdirTemp
2021-12-14 09:25:27 +01:00
Dan Kegel
0420842f4d
os: skip TestStatBadPath on windows for now
...
I'm not up enough on how syscall errors work on windows to figure this out yet.
2021-12-14 09:25:27 +01:00
Dan Kegel
d30f8b6ed6
os.Stat: returned error on nonexistent path did not satisfy IsNotExist
...
Add direct test for the problem to make the fix commit clearer.
Noticed while implementing MkdirTemp on mac; the upstream tests for MkdirTemp fail without this.
2021-12-14 09:25:27 +01:00
Dan Kegel
1f6b4a5e7b
os_test.go: use CreateTemp now that it is implemented
2021-12-14 09:25:27 +01:00
Dan Kegel
51fc78c100
os: implement and smoketest os.Clearenv
2021-12-13 23:05:17 +01:00
Dan Kegel
e4f2b9c003
os: implement and smoketest os.Unsetenv
2021-12-13 23:05:17 +01:00
Dan Kegel
cff4493ca0
os: implement and smoketest os.Setenv
2021-12-13 23:05:17 +01:00
Olivier Fauchon
93ac7cec0d
stm32/stm32wlx: Add support for stm32wl55_cm4
...
board/stm32: Add support for GNSE (Generic Node Sensor Edition)
Thanks to @jamestait for his help on GNSE port
2021-12-13 16:02:00 +01:00
Olivier Fauchon
b4503c1e37
stm32wl: STM32WL TRNG implementation in crypto/rand
2021-12-11 12:25:08 +01:00
Rouven Broszeit
0f69d016a0
Added realloc implementation to GCs
...
When using the latest wasi-libc I experienced a
panic on an attempt to call realloc. My first attempt to
add it to arch_tinygowasm.go was obviously not good (PR #2194 ). So here
is another suggestion.
2021-12-10 17:51:08 +01:00
Federico G. Schwindt
08d0dc0d25
Enable Getwd() in wasi and add tests
2021-12-10 09:50:38 +01:00
Dan Kegel
039186a2a3
src/os/stat.go: get build tags right, maybe
...
Should fix https://github.com/tinygo-org/tinygo/issues/2354
Untested with wasi
2021-12-09 22:14:29 +01:00
Damian Gryski
d6c892fe7b
src/runtime: fix nil map dereference
...
Operations on nil maps are accepted and shouldn't
panic. The base hashmapGet/hashmapDelete handled
nil-maps correctly, but the hashmapBinary versions
could segfault accessing the nil map while trying
to hash the key.
Fixes #2341
2021-12-09 18:23:49 +01:00
Federico G. Schwindt
cfe6b9765f
Test net.Buffers{}
2021-12-09 14:35:52 +01:00
Federico G. Schwindt
539495ef45
Add net.Buffers
...
Should fix https://github.com/mailru/easyjson/issues/335 , for the
most part.
2021-12-09 14:35:52 +01:00
Damian Gryski
1903cf23c9
src/runtime: improve float/complex hashing
...
This allows positive and negative zero to hash to the same value,
as required by Go.
This is not perfect, but the best I could do without
revamping all the hash funtions to take a seed.
Fixes #2356
2021-12-08 22:38:22 +01:00
deadprogram
9734f349a3
net/interface: use internal implementation for itoa.Uitoa
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-12-08 14:43:45 +01:00
soypat
d87ff838eb
net: add bare Interface implementation
2021-12-08 12:34:08 +01:00
Damian Gryski
a360c82b40
src/runtime: strengthen hash function for structs and arrays
...
Using `|` to combine hash values will slowly turn every bit on.
Hashes combined with `^` with keep more entropy.
2021-12-08 10:33:35 +01:00
deadprogram
4a2faeb2c5
machine/stm32f103: initial implementation on ADC interface
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-12-07 20:12:23 +01:00
deadprogram
99f00d396d
machine/bluepill: add definitions for ADC pins
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-12-07 20:12:23 +01:00
deadprogram
049c5ed3b1
machine/stm32f4: initial implementation for ADC interface
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-12-07 20:12:23 +01:00
deadprogram
cce02cd046
machine/stm32f4disco: add definitions for ADC pins
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-12-07 20:12:23 +01:00
Dan Kegel
be7bbba4ca
os: implement and smoketest os.Chmod
2021-12-07 10:54:02 +01:00
Dan Kegel
e668c8c1a7
os: implement and smoketest os.Chdir
2021-12-07 10:54:02 +01:00
Dan Kegel
d62c9696fb
os_unix_test.go: rename to os_anyos_test.go, add windows build tag
...
Also remove now-unsupported freebsd build tag.
2021-12-06 21:56:41 +01:00
Damian Gryski
343146f35c
src/testing: stub b.RunParallel() and PB.Next()
2021-12-06 20:09:36 +01:00
Dan Kegel
1a22d92217
os: remove as-yet unused function splitPath
2021-12-03 09:38:40 +01:00
Dan Kegel
8416bb61d8
os: implement MkdirAll
2021-12-03 09:38:40 +01:00
Damian Gryski
85ad157f3f
src/os: fix build tags for non-windows PathSeparator
2021-12-01 18:39:37 +01:00
Dan Kegel
b123ffcea4
os: implement CreateTemp
...
Until tinygo implements fastrand(), use a placeholder RNG here.
2021-12-01 12:53:04 +01:00
Dan Kegel
ec9fd3fb38
os, syscall: implement Stat and Lstat
...
File.Stat is left as a stub for now.
Tests are a bit stubbed down because os.ReadDir, os.Symlink, and t.TempDir are not yet (fully) implemented.
TODO: reimport tests from upstream as those materialize.
2021-12-01 00:23:23 +01:00
Ayke van Laethem
74b20ca234
runtime: use LLVM intrinsic to read the stack pointer
...
This should result in smaller code.
2021-11-30 10:01:44 +01:00
Ayke van Laethem
3d73ee77d3
machine: add Device constant
...
This field contains the microcontroller name that we're compiling for,
or "generic" if we're not running on a microcontroller.
2021-11-30 00:47:11 +01:00
Dan Kegel
6b0f2cd697
os: TempDir(): obey TMPDIR on unix, TMP on win, etc
...
Uses upstream go code, lightly adjusted.
Adds smoke test.
2021-11-30 00:10:09 +01:00
Dan Kegel
e354a3523b
os.Remove: avoid double-wrapping err; fixes TODO in test
2021-11-29 20:49:28 +01:00
Dan Kegel
f79f6b0e62
os, syscall: implement ReadAt for unix
...
Windows will take more work, so test is skipped there.
2021-11-29 20:13:29 +01:00
Damian Gryski
47db50b273
os: add a stub for File.Truncate
2021-11-26 18:53:27 +01:00
Olivier Fauchon
b0fce80b50
Improvements for stm32wle targets :
...
- board/stm32: Add STM32 Nucleo WL55JC board
- stm32/stm32wl: Set 48Mhz HSE32/PLL as default Clock, SPI implementation
2021-11-26 14:15:11 +01:00
Ayke van Laethem
718746dd21
os: stub out support for some more features
...
This is necessary for the following:
- to make sure os/exec can be imported
- to make sure internal/testenv can be imported
The internal/testenv package (which imports os/exec) is used by a lot of
tests. By adding support for it, more tests can be run.
This commit adds a bunch of new packages that now pass all tests.
2021-11-26 08:05:35 +01:00