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
Damian Gryski
cf4a6d3253
syscall: add Timespec.Unix() for wasi.
...
This allows archive/tar to build (but not yet pass).
2023-03-10 15:01:48 -08:00
Damian Gryski
4716298044
os,syscall: Stat_t timespec fields are Atimespec on darwin
...
This allows archive/tar to build and pass.
2023-03-10 15:01:48 -08:00
Justin A. Wilson
7706c41bf6
Added missing TCPAddr and UDPAddr implementations to the net package
2023-03-10 10:11:32 -08:00
deadprogram
0bc19735f3
machine/samd51: disable/restore Flash cache on write/erase
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-03-09 06:42:41 +01:00
deadprogram
51c1579c3d
machine/samd51: implement Flash interface
...
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-03-09 06:42:41 +01:00
Damian Gryski
6a45b73fcb
compiler, reflect: replace package and name length with null-byte termination
2023-03-08 09:38:49 -08:00
Damian Gryski
2de64d3f4e
compiler, reflect: add Type.PkgPath
2023-03-08 09:38:49 -08:00
Damian Gryski
c192c7376e
targets: bump cortex-m-qemu default stack size
2023-03-08 09:38:49 -08:00
Damian Gryski
2a821d2a66
reflect: improve Value.String()
2023-03-08 09:38:49 -08:00
Damian Gryski
90af41d089
reflect: add Type.String()
2023-03-08 09:38:49 -08:00
Damian Gryski
7654d86d2c
compiler, reflect: add support for named types
2023-03-08 09:38:49 -08:00
sago35
45f119de34
machine/atsamd51: remove extra BK0RDY clear
2023-03-08 09:40:01 +01:00
Ayke van Laethem
71be24e4f9
transform: add debug information to internal/task.stackSize
...
This has two benefits:
1. It attributes these bytes to the internal/task package (in
-size=full), instead of (unknown).
2. It makes it possible to print the stack sizes variable in GDB.
This is what it might look like in GDB:
(gdb) p 'internal/task.stackSizes'
$13 = {344, 120, 80, 2048, 360, 112, 80, 120, 2048, 2048}
2023-03-08 07:09:46 +01:00
Ayke van Laethem
3701e6eac1
compiler: account for alignment with -size=full
2023-03-08 07:09:46 +01:00
Ayke van Laethem
0463d34887
compiler: emit correct alignment in debug info for global variables
...
Previously we were using a really weird calculation to determine the
alignment in bits - written by me (no idea what I was thinking at the
time, it's obviously incorrect). Just replace it with the much more
obviously correct multiplication by 8 to get bits from bytes.
Found while working on properly dealing with alignment in `-size=full`.
2023-03-08 07:09:46 +01:00
Ayke van Laethem
0b47b99448
builder: improve reading of DWARF variables
...
The compiler now uses DW_OP_plus_uconst in the address attribute of
DWARF variables. To be able to understand these addresses, we need to be
able to parse this opcode.
This commit should also improve the reliability of address parsing a
bit.
2023-03-08 07:09:46 +01:00