Ayke van Laethem
5b42871baa
compiler: support all kinds of recursive types
...
Previously we only supported recursive types in structs. But there can
be other kinds of recursive types, like slices:
type RecursiveSlice []RecursiveSlice
This doesn't involve structs, so it led to infinite recursion in the
compiler. This fix avoids recursion at the proper level: at the place
where the named type is defined.
2023-03-18 17:53:47 +01:00
deadprogram
c5598630c9
machine/stm32: correct Flash implementation
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-03-18 11:18:17 +01:00
Ayke van Laethem
6c40ee93fe
transform: update wasm-abi to use opaque pointers
2023-03-16 13:46:03 -07:00
Ayke van Laethem
4acb1a5845
transform: update stringtobytes test to opaque pointers
2023-03-16 13:46:03 -07:00
Ayke van Laethem
e0f3333cc3
transform: update stringequal test to opaque pointers
2023-03-16 13:46:03 -07:00
Ayke van Laethem
af247e27ff
transform: update stacksize test to opaque pointers
2023-03-16 13:46:03 -07:00
Ayke van Laethem
ec3a4da4df
transform: update panic test to opaque pointers
2023-03-16 13:46:03 -07:00
Ayke van Laethem
905269bf11
transform: update maps test to opaque pointers
2023-03-16 13:46:03 -07:00
Ayke van Laethem
e4f29ae2f9
transform: update interrupt test to opaque pointers
2023-03-16 13:46:03 -07:00
Ayke van Laethem
7fb23824e2
transform: update interface test to opaque pointers
2023-03-16 13:46:03 -07:00
Ayke van Laethem
f8a6e662d8
transform: update gc-stackslots test to opaque pointers
2023-03-16 13:46:03 -07:00
Ayke van Laethem
0ddd65658e
transform: update allocs test to opaque pointers
...
Also, rename most of the SSA values while we're at it.
2023-03-16 13:46:03 -07:00
Ayke van Laethem
db08b5aaa5
transform: update reflect-implements test to opaque pointers
2023-03-16 13:46:03 -07:00
deadprogram
383e7ae14a
machine, runtime/interrupt: switch to use register definitions from device/gba
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-03-16 15:27:15 +01:00
deadprogram
4f7864b757
device/gba: add mostly complete hand-written register definitions
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-03-16 15:27:15 +01:00
Damian Gryski
833c91fceb
builder: fix binary size rodata value
2023-03-15 21:53:57 +01:00
Damian Gryski
344e493ac8
compiler,reflect: fix pkgpath for struct fields
2023-03-15 21:53:57 +01:00
Damian Gryski
1626b50457
reflect: set PkgPath in StructField
2023-03-15 21:53:57 +01:00
Damian Gryski
93fb897feb
compiler, reflect: properly handle embedded structs
2023-03-15 21:53:57 +01:00
Damian Gryski
15109a2924
reflect: disable visiblefields test for FieldByIndexErr
2023-03-15 21:53:57 +01:00
Damian Gryski
d9c6f7c11f
reflect: import visiblefields code and tests from upstream
2023-03-15 21:53:57 +01:00
Damian Gryski
fa4f361ca7
reflect: add FieldByName(), and FieldByIndex()
2023-03-15 21:53:57 +01:00
Damian Gryski
9f02340a26
reflect: fix Type.Name to return empty string for non-named types
...
// Name returns the type's name within its package for a defined type.
// For other (non-defined) types it returns the empty string.
2023-03-15 13:14:21 -07:00
Damian Gryski
c6728643e6
reflect: loosen unaddressable array rules for Copy()
2023-03-15 10:49:08 -07:00
Damian Gryski
e849901ad6
Update src/reflect/value.go
...
Co-authored-by: Ayke <aykevanlaethem@gmail.com>
2023-03-15 10:06:19 -07:00
Damian Gryski
91d6ca057c
reflect: add SetBytes()
2023-03-15 10:06:19 -07:00
Damian Gryski
0da97e2427
reflect: fix IsNil() for interfaces
2023-03-15 16:23:52 +01:00
Damian Gryski
ac36f232bc
reflect: MapIter.Next() needs to allocate new keys/values every time
2023-03-15 15:17:16 +01:00
Damian Gryski
94a54bc105
reflect: add UnsafePointer() for Func types
2023-03-15 15:08:26 +01:00
Damian Gryski
b044d27dff
reflect: move StructField.Anonymous field to match upstream location
2023-03-15 00:13:08 +01:00
Damian Gryski
6768af91e7
reflect: TypeOf(nil) should be nil
2023-03-14 23:58:27 +01:00
Damian Gryski
a366c014c7
reflect: call decomposeInterface() directly in TypeOf()
2023-03-14 09:53:45 -07:00
Damian Gryski
584a2718d0
reflect: add type check to Value.Field()
2023-03-14 09:53:00 -07:00
Damian Gryski
069c397975
reflect: fix off-by-one in Zero sizing
...
Without this, pointers wouldn't be set to nil. Add some tests.
2023-03-14 09:42:51 -07:00
Damian Gryski
e0aee1f23c
reflect: Type.AssignableTo(): you can assign anything to interface{}
2023-03-14 17:07:23 +01:00
Damian Gryski
ad9f790dfc
reflect: set Index field in Field()
2023-03-14 17:04:24 +01:00
Damian Gryski
f42d8b3056
debug: stub SetGCPercent()
2023-03-14 16:54:44 +01:00
Damian Gryski
04412cba0e
reflect: add stub for StructOf()
2023-03-14 16:54:44 +01:00
Damian Gryski
3b2763896f
reflect: add stubs for Method(), CanConvert(), ArrayOf()
2023-03-14 16:54:44 +01:00
Damian Gryski
fb394c7685
reflect: add UnsafeAddr()
2023-03-14 16:53:57 +01:00
Damian Gryski
a52cad3825
reflect: fix Addr() indirect value/flags and add tests.
2023-03-14 16:49:05 +01:00
Ayke van Laethem
0e94553b26
builder: add test to check for changes in binary size
...
This test only applies when using the built-in LLVM version. This way,
we have a stable LLVM version to test against. Distribution versions of
LLVM (especially Debian) tend to be patched in a way that affect the
results.
2023-03-13 22:57:02 +01:00
deadprogram
e6580bfff4
machine/rp2040: correct Flash implementation
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-03-12 23:53:59 +01:00
deadprogram
5db83f11df
machine/flash: refactor to keep use of pure offset relative to start
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-03-12 23:53:59 +01:00
deadprogram
60366adfa8
machine/rp2040: implement Flash interface
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-03-12 23:53:59 +01:00
Kenneth Bell
faa449a9e1
arm: enable functions in RAM for go & cgo
2023-03-12 23:53:59 +01:00
sago35
08cf2b25c5
machine/rp2040: change uart to allow for a single pin
2023-03-12 13:41:29 +01:00
sago35
d6103222f7
wioterminal: fix pin definition of BCM13
2023-03-12 10:52:15 +01:00
Damian Gryski
69e5c5088d
reflect: add support for remaining map types
2023-03-10 16:28:22 -08:00
Damian Gryski
a6084767b3
syscall: remove misleading comment about Stat_t fields
2023-03-10 15:01:48 -08:00