aboutsummaryrefslogtreecommitdiffhomepage
path: root/interp/values.go
diff options
context:
space:
mode:
authorAyke van Laethem <[email protected]>2020-04-11 15:32:35 +0200
committerAyke van Laethem <[email protected]>2020-05-03 15:43:45 +0200
commit7939c060ce88df506f7ff3778b9a7a341d644a8d (patch)
treef040f161692d31c515470b8422624e1d014becac /interp/values.go
parentdd04f34059479dc3cc06445045fa26357dc07335 (diff)
downloadtinygo-7939c060ce88df506f7ff3778b9a7a341d644a8d.tar.gz
tinygo-7939c060ce88df506f7ff3778b9a7a341d644a8d.zip
compiler: include type information about the runtime in the compiler
These types are often known to the compiler already. Moving them into the compiler is an important step for two related reasons: * It makes the compiler better testable. Together with https://github.com/tinygo-org/tinygo/pull/1008 it will make it possible to test the compiler without having to load the runtime package. * It makes it easier to compile packages independently as the type information of the runtime package doesn't need to be present. I had to use hack to get this to work well: internal/task.Task is now an opaque struct. This is necessary because there is a dependency from *runtime.channel -> *runtime.channelBlockedList -> *internal/task.Task. I don't want to include the definition of the internal/task.Task struct in the compiler directly as that would make changing the internal/task package a lot harder and the compiler doesn't need to know the layout of that struct anyway.
Diffstat (limited to 'interp/values.go')
0 files changed, 0 insertions, 0 deletions