Damian Gryski
181d2ad2b4
reflect: add CanInt() and friends and uncomments tests that pass
2023-03-30 21:10:54 +02:00
Damian Gryski
53b95cad08
reflect: uncomment Type.String() tests that pass
2023-03-30 21:10:54 +02:00
Damian Gryski
e7bd22edf2
reflect: print struct tags in Type.String() (with a caveat)
2023-03-30 21:10:54 +02:00
Damian Gryski
1a60a1f526
reflect: stub channel select routines/types
2023-03-30 21:10:54 +02:00
Damian Gryski
3fbd3c4d93
compiler,reflect: support channel directions
2023-03-30 21:10:54 +02:00
deadprogram
1213a45197
build: add GH workflow to build LLVM image when needed
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-03-30 12:40:02 +02:00
Damian Gryski
4e4e4eee04
runtime: use unsafe.Add() in hashmap code
2023-03-30 00:08:07 +02:00
Damian Gryski
bf20c652e2
runtime: take max hash size into account when preallocating with size hint
2023-03-30 00:08:07 +02:00
Damian Gryski
a3afd4e8ac
runtime: factor duplicate hashmap snippts to functions
2023-03-30 00:08:07 +02:00
Damian Gryski
cb9c6f0074
runtime: zero map key/value on deletion to so GC doesn't see them
2023-03-30 00:08:07 +02:00
Damian Gryski
5fee3428bc
runtime: preallocate maps to size hint actually works
2023-03-30 00:08:07 +02:00
Ayke van Laethem
464ebc4fe1
compiler: implement most math/bits functions
...
These functions can be implemented more efficiently using LLVM
intrinsics. That makes them the Go equivalent of functions like
__builtin_clz which are also implemented using these LLVM intrinsics.
I believe the Go compiler does something very similar: IIRC it converts
calls to these functions into optimal instructions for the given
architecture.
I tested these by running `tinygo test math/bits` after uncommenting the
tests that would always fail (the *PanicZero and *PanicOverflow tests).
2023-03-29 20:55:09 +02:00
Ayke van Laethem
568c2a4363
rp2040: remove SPI DataBits property
...
As discussed on Slack, I believe this property does more harm than good:
* I don't think it's used anywhere. None of the drivers use it.
* It is not fully implemented. While values <= 8 might work fine,
values larger than 8 result in extra zero bits (instead of anything
sensible).
* Worse, it doesn't return an error when it's out of range. This is
not an optional property: if the SPI peripheral doesn't support a
particular number of bits, it should return an error instead of
silently limiting the number of bits. This will be confusing to
users.
Therefore, I propose we drop it. Maybe there are good uses for it
(perhaps for displays that use big endian 16-bit values?), but without a
good use case like a driver in tinygo.org/x/drivers, I think it's more
trouble than it's worth.
2023-03-29 09:30:16 +02:00
Kenneth Bell
c611c72526
build: test net on linux & mac only (random CI fails on windows)
2023-03-29 07:57:55 +02:00
deadprogram
dfb8c996a1
machine/lorae5: correct mapping for I2C bus, add pin mapping to enable power
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-03-28 15:28:14 +02:00
Achille Roussel
85da9a0aac
fix resource leak in os.(*File).Close
...
Signed-off-by: Achille Roussel <achille.roussel@gmail.com>
2023-03-28 13:12:21 +02:00
Ayke van Laethem
17bc0d6663
compiler: only support //go:wasmimport on declared functions
...
Don't support this pragma on defined functions. It is only meant for
importing, not for exporting.
2023-03-28 09:31:09 +02:00
Ayke van Laethem
31043628d8
reflect: use direct calls to runtime string functions
...
The runtime.stringFromBytesTyped and runtime.stringToBytesTyped
functions aren't really necessary, because they have the same LLVM IR
signature. Therefore, remove them and link directly to the functions
that the compiler uses internally.
2023-03-27 22:24:20 +02:00
Damian Gryski
2c0f61cad1
reflect: fix bug found by Convert() tests on wasi
2023-03-27 18:53:37 +02:00
Damian Gryski
97ece754f6
reflect: add missing Uintptr type and some numerical tests
2023-03-27 18:53:37 +02:00
Damian Gryski
39f76f43fc
reflect: fix indirect issues with makeInt/makeUint/makeFloat
2023-03-27 18:53:37 +02:00
Damian Gryski
f239e8e2d9
reflect: typo in uint test
2023-03-27 18:53:37 +02:00
Damian Gryski
6b73b5e486
reflect: document which Convert() cases are still unimplemented
2023-03-27 18:53:37 +02:00
Damian Gryski
855e12df51
reflect: Convert(): add Float() conversions
2023-03-27 18:53:37 +02:00
Damian Gryski
0b6bb12e9e
reflect: add Convert() for string -> []byte and []byte -> string
2023-03-27 18:53:37 +02:00
Damian Gryski
72c7adf94a
reflect: Convert() for integer and float types
2023-03-27 18:53:37 +02:00
waj334
13fb5aa7e7
Update task_stack_cortexm.c
...
Added build tag.
2023-03-27 12:35:39 +02:00
Justin A. Wilson
a3fdbec13d
Refactor SystemStack function for arm targets.
...
Removing usage of AsmFull in favor of writing inline assembly in C.
2023-03-27 12:35:39 +02:00
Damian Gryski
360f6904f5
reflect: add test for map[interface{}]T
2023-03-25 22:32:29 +01:00
Damian Gryski
7201b13085
reflect: fix key type logic for maps
2023-03-25 22:32:29 +01:00
Damian Gryski
9c0bf8bd2c
reflect: Value.Set: fix direction of assignment check
2023-03-25 22:32:29 +01:00
Damian Gryski
63c7a41337
reflect: convert non-interface to interface in Set()
2023-03-25 22:32:29 +01:00
Damian Gryski
c0f8f129c0
reflect: convert map elements to an interface, if needed
2023-03-25 22:32:29 +01:00
Damian Gryski
adaa7ca27a
reflect: SetMapIndex: use AssignableTo() instead of type equality
2023-03-25 22:32:29 +01:00
Damian Gryski
a5ddc68845
reflect: unpack interfaces in MapKeys() if needed
2023-03-25 22:32:29 +01:00
Damian Gryski
f7880e73d8
reflect: tweak v.typecode.Key().(*rawType) -> v.typecode.key()
2023-03-25 22:32:29 +01:00
Damian Gryski
3aa8c8e0d1
reflect: fix typo in unit test
2023-03-25 22:32:29 +01:00
Damian Gryski
6cb7f29d9b
reflect: add tests for map interface lookup fixes
2023-03-25 22:32:29 +01:00
Damian Gryski
21527353f7
compiler: for interface maps, use the original named type if available
2023-03-25 22:32:29 +01:00
Damian Gryski
bedd27b20e
reflect: handle map-keys-as-interfaces for MapIter()
2023-03-25 22:32:29 +01:00
Damian Gryski
3612b7749e
reflect: uncomment all(?) the tests that pass
2023-03-25 13:57:00 +01:00
Damian Gryski
45c916f5c0
reflect: rename tests in value_test to avoid conflicts upstream tests
2023-03-25 13:57:00 +01:00
Damian Gryski
688a5dbf8d
reflct: reenable DeepEqual tests
2023-03-25 13:57:00 +01:00
Damian Gryski
35dcf135c0
reflect: comment out all tests but keep imports
2023-03-25 13:57:00 +01:00
Damian Gryski
c482d65397
reflect: replace all_test with copy from upstream
2023-03-25 13:57:00 +01:00
shivay
d73e12db63
feat: fix typos
2023-03-24 09:22:38 -07:00
Daniel Esteban
4b0e56cbec
Added Gopher Badge support
2023-03-22 16:17:12 +01:00
Ayke van Laethem
62e1c3ebb7
wasm: implement the //go:wasmimport directive
...
It is implemented upstream and looks pretty stable.
2023-03-22 11:29:26 +01:00
deadprogram
a4a1001dd3
examples: use hid-keyboard example to show how to to override default USB VID, PID, manufacturer name, and product name
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-03-22 08:35:42 +01:00
deadprogram
e8f6df928c
machine/usb: add ability to override default VID, PID, manufacturer name, and product name
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-03-22 08:35:42 +01:00