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
Ayke van Laethem
3e6410f323
interp: work around AVR function pointers in globals
...
Not sure how to test this, since we don't really have any AVR tests
configured.
2021-12-11 11:24:19 +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
Ayke van Laethem
ef8c1a187d
transform: allocate the correct amount of bytes in an alloca
...
When I wrote the code originally, I didn't know about SetAlignment so I
hacked a way around it by allocating [...]uintptr types. However, this
allocates a few too many bytes in some cases.
This commit changes this to only allocate the space that we actually
need.
The code size effect is mixed, but generally positive. The combined
average is reduced by 0.27% with more programs being reduced in size
than are increasing in size.
2021-12-10 10:48:24 +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
Ayke van Laethem
b13c993565
compiler: fix ranging over maps with particular map types
...
Some map keys are hard to compare, such as floats. They are stored as if
the map keys are of interface type instead of the key type itself. This
makes working with them in the runtime package easier: they are compared
as regular interfaces.
Iterating over maps didn't care about this special case though. It just
returns the key, value pair as it is stored in the map. This is buggy,
and this commit fixes this bug.
2021-12-09 00:14:20 +01:00
Ayke van Laethem
449bfe04f3
compiler: move *ssa.Next lowering for maps to compiler/map.go
...
This moves it to the most logical place, as a preparation to fixing a
bug in the next commit.
2021-12-09 00:14:20 +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
sago35
0285171484
main: improve help
2021-12-03 16:14:41 +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
5127b9d65b
all: add LLVM 12 support
...
Originally based on a PR by @QuLogic, but extended a lot to get all
tests to pass.
2021-11-30 21:53:16 +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