Commit Graph

10 Commits

Author SHA1 Message Date
Ayke van Laethem a97ca91c1f compiler: Implement interface calls
This is a big combined change. Other changes in this commit:

  * Analyze makeinterface and make sure type switches don't include
    unnecessary cases.
  * Do not include CGo wrapper functions in the analyzer callgraph.
    This also avoids some unnecessary type IDs.
  * Give all Go named structs a name in LLVM.
  * Use such a named struct for compiler-generated task data.
  * Use the type and function names defined by the ssa and types
    package instead of generating our own.
  * Some improvements to function pointers.
  * A few other minor improvements.

The one thing lacking here is interface-to-interface assertions.
2018-06-17 15:50:19 +02:00
Ayke van Laethem 0168bf7797 Add goroutines and function pointers 2018-06-07 14:48:24 +02:00
Ayke van Laethem 3a4663150e runtime: Implement GPIO output
Now we can actually blink a LED!
2018-04-27 01:29:13 +02:00
Ayke van Laethem 10427c2b6f Add blinky example (which doesn't blink a LED, yet) 2018-04-25 20:07:04 +02:00
Ayke van Laethem 217c48f933 Implement interfaces on the string type 2018-04-20 22:42:43 +02:00
Ayke van Laethem 3e3c3d259f Add rudimentary interface support 2018-04-19 20:33:10 +02:00
Ayke van Laethem 850fef9852 Add builtin len(string) 2018-04-19 20:24:01 +02:00
Ayke van Laethem 013b375904 Add type methods 2018-04-16 17:04:49 +02:00
Ayke van Laethem d555ad93d7 Add support for structs 2018-04-16 01:01:11 +02:00
Ayke van Laethem 5dfcb5f085 Reorganize packages 2018-04-15 03:38:01 +02:00