Commit Graph

  • 906e061e37 Replace own dummy syscall with standard library syscall Ayke van Laethem 2018-08-30 05:58:54 +02:00
  • e01259ba77 interpreter: string concatenation Ayke van Laethem 2018-08-30 05:54:40 +02:00
  • 16cdffc367 Try to interpret simple function calls in init() functions Ayke van Laethem 2018-08-30 05:52:42 +02:00
  • 15f62b29cf Add runtime.GOOS Ayke van Laethem 2018-08-30 05:48:16 +02:00
  • 82d0d70ba2 Add (hardcoded) runtime.GOROOT() Ayke van Laethem 2018-08-30 05:41:48 +02:00
  • cfd20c7a12 Add a number for the "error" type by default Ayke van Laethem 2018-08-30 05:39:41 +02:00
  • a5252d07f0 Support zero-initialized pointers in globals Ayke van Laethem 2018-08-30 05:38:27 +02:00
  • 5edf94ea10 Fix named structs inside global named structs Ayke van Laethem 2018-08-30 05:36:44 +02:00
  • 7956ca2f29 Function pointers in global variables Ayke van Laethem 2018-08-30 05:36:09 +02:00
  • a4fd096393 Add dummy channel support Ayke van Laethem 2018-08-30 05:32:18 +02:00
  • 6e0c60a7a1 Some extra header docs Ayke van Laethem 2018-08-30 02:36:13 +02:00
  • 0b372ba5bd Support initialized map values in another global Ayke van Laethem 2018-08-30 02:32:35 +02:00
  • 42711c11e9 Be able to print maps to some degree Ayke van Laethem 2018-08-30 02:26:48 +02:00
  • d930a9ba16 Implement print() for interface values Ayke van Laethem 2018-08-30 02:20:36 +02:00
  • 25344bc08f Reorder Program.interpret cases Ayke van Laethem 2018-08-30 02:09:02 +02:00
  • 75477eb14e Implement global .data-initalized interfaces Ayke van Laethem 2018-08-30 02:08:00 +02:00
  • d13c124df9 Implement casting from (Unicode) integer to string Ayke van Laethem 2018-08-30 00:36:13 +02:00
  • fdc56d5940 Implement convert string <- []byte Ayke van Laethem 2018-08-29 23:54:46 +02:00
  • eed25c78df Clean up ssa.Convert and ssa.ChangeType Ayke van Laethem 2018-08-29 23:36:58 +02:00
  • 8b95b869ab Implement string concatenation Ayke van Laethem 2018-08-29 22:10:46 +02:00
  • c912091f8b Add integer key support to hashmap Ayke van Laethem 2018-08-29 21:50:23 +02:00
  • 8f7db8661b Move string type to runtime in separate file Ayke van Laethem 2018-08-29 20:55:09 +02:00
  • bf160d096b Move lenType definition to runtime (partially) Ayke van Laethem 2018-08-29 20:48:56 +02:00
  • abaae5b90d Remove unnecessary compiler workaround Ayke van Laethem 2018-08-29 20:45:50 +02:00
  • 7991243554 Remove CGo from machine module Ayke van Laethem 2018-08-29 20:44:56 +02:00
  • d4f5700625 Remove use of CGo in the runtime Ayke van Laethem 2018-08-29 19:58:21 +02:00
  • d620f0d188 Implement multiple return values from functions Ayke van Laethem 2018-08-29 19:42:22 +02:00
  • ee10162564 Extra check on interface asserts Ayke van Laethem 2018-08-27 00:50:03 +02:00
  • 0c71ed81a4 Rename runtime.itfmethod -> runtime.interfaceMethod Ayke van Laethem 2018-08-27 00:49:33 +02:00
  • 64e478ef36 Switch to 16-bit typecodes and method IDs Ayke van Laethem 2018-08-26 23:56:35 +02:00
  • 539de9db9e Move interface method calls in Go from LLVM IR + documentation Ayke van Laethem 2018-08-26 23:31:29 +02:00
  • 309de00fd6 Simplify function names by removing $async suffix Ayke van Laethem 2018-08-26 21:45:28 +02:00
  • 58e31fd470 Simplify a bit of code Ayke van Laethem 2018-08-26 21:38:55 +02:00
  • de6c20f1bd Implement untyped bool Ayke van Laethem 2018-08-25 03:06:11 +02:00
  • c9e6a52d05 Implement constant slice Ayke van Laethem 2018-08-25 02:58:59 +02:00
  • 9f2bcfe5e3 Implement global interface variable constant Ayke van Laethem 2018-08-25 02:58:00 +02:00
  • c25b448758 Rewrite init() interpretation to a real interpreter Ayke van Laethem 2018-08-25 01:14:33 +02:00
  • 9b4ac0459b Make strings constant Ayke van Laethem 2018-08-24 05:18:16 +02:00
  • f49ceddd73 Enable elimination of dead globals by marking them private Ayke van Laethem 2018-08-24 04:18:12 +02:00
  • 5f28b07f75 Enable aggressive code size optimizations: -Oz Ayke van Laethem 2018-08-24 03:32:29 +02:00
  • f9f92de1c3 Add a test for the unicode package Ayke van Laethem 2018-08-24 03:28:50 +02:00
  • 36a5af9e6d README: dead code elimination Ayke van Laethem 2018-08-24 03:01:58 +02:00
  • ab3358e5a3 Add make fmt Ayke van Laethem 2018-08-24 02:59:18 +02:00
  • fa12da95e2 Some documentation fixes Ayke van Laethem 2018-08-24 02:56:09 +02:00
  • 0defed9677 Resolve named types Ayke van Laethem 2018-08-24 02:55:06 +02:00
  • 1229667f7c Support pointers in global variables Ayke van Laethem 2018-08-24 02:54:37 +02:00
  • 68b1100c89 Support maps bigger than 8 elements in .data Ayke van Laethem 2018-08-24 02:53:23 +02:00
  • 4ef271d4c6 Fix double addition in init map update Ayke van Laethem 2018-08-24 02:48:59 +02:00
  • 179cf74b01 Implement package-global maps (of max 8 entries) Ayke van Laethem 2018-08-24 00:56:20 +02:00
  • 2b78b6d7e8 Fix bug in runtime.memzero Ayke van Laethem 2018-08-23 23:44:58 +02:00
  • e884221fad Implement len() for map types Ayke van Laethem 2018-08-23 23:14:54 +02:00
  • 005665aee6 Move hashmap creation to runtime Ayke van Laethem 2018-08-23 23:12:27 +02:00
  • ae2fc3c8a7 Add support for package-level slice variables Ayke van Laethem 2018-08-23 22:08:03 +02:00
  • c99faf468d Refactor initializing of global data Ayke van Laethem 2018-08-23 22:04:29 +02:00
  • 160d532498 Fix init functions Ayke van Laethem 2018-08-23 21:59:09 +02:00
  • ea6355b39e Make parseConvert not require frame parameter Ayke van Laethem 2018-08-22 23:42:40 +02:00
  • d5c7c28135 Simplify some code Ayke van Laethem 2018-08-22 05:14:15 +02:00
  • 3a6ef38041 Preliminary implementation of a hashmap, unfinished Ayke van Laethem 2018-08-22 04:50:24 +02:00
  • 8fb9cd4e23 Implement shifting with a differently-sized integer Ayke van Laethem 2018-08-22 04:35:25 +02:00
  • 337e48270b Implement comparing a pointer to nil Ayke van Laethem 2018-08-22 04:33:09 +02:00
  • c3cb22030f Implement == and != for strings Ayke van Laethem 2018-08-22 00:56:11 +02:00
  • 2777f8464e Implement printing of booleans Ayke van Laethem 2018-08-22 00:54:39 +02:00
  • a30ffa5c1e Revert "Move coroutine passes from Makefile to compiler itself" Ayke van Laethem 2018-08-20 20:17:51 +02:00
  • df4ee6e733 passes: Fix bug in SimpleDCE Ayke van Laethem 2018-08-20 20:08:11 +02:00
  • 6739ad07b2 Update nrfx submodule Ayke van Laethem 2018-08-20 05:21:48 +02:00
  • d9ca5f97fb Move coroutine passes from Makefile to compiler itself Ayke van Laethem 2018-08-20 04:31:01 +02:00
  • 03c8a8bd3a README: Add build guide Ayke van Laethem 2018-08-20 04:19:54 +02:00
  • 7460e10894 Add dead code elimination (DCE) pass Ayke van Laethem 2018-08-19 20:44:55 +02:00
  • fae4c7f555 Better error messages Ayke van Laethem 2018-08-19 20:43:39 +02:00
  • bce33bbf41 Rename {Function,Global}.Name -> LinkName Ayke van Laethem 2018-08-19 20:42:24 +02:00
  • 3146cc86d4 Move Compiler.program to Program.program Ayke van Laethem 2018-08-19 20:41:05 +02:00
  • e18fd6da16 Rename analysis.go -> passes.go Ayke van Laethem 2018-08-19 17:07:48 +02:00
  • 29d601883b Implement dummy GOMAXPROCS Ayke van Laethem 2018-08-18 20:06:59 +02:00
  • 8b6cb204cd Basic support for slices Ayke van Laethem 2018-08-18 20:05:58 +02:00
  • 86a3aea868 Add a LICENSE file Ayke van Laethem 2018-08-18 18:59:50 +02:00
  • 9aaac8e17b README: Describe supported targets Ayke van Laethem 2018-08-18 15:59:12 +02:00
  • bfe9b52661 README: Mark a few features as supported Ayke van Laethem 2018-08-18 15:58:22 +02:00
  • ad9a62f260 Make sure we handle all package members Ayke van Laethem 2018-08-18 01:13:35 +02:00
  • a475233f36 Support recursive types Ayke van Laethem 2018-08-18 01:12:52 +02:00
  • cad3e03f94 Allow imports from GOROOT Ayke van Laethem 2018-08-18 01:11:50 +02:00
  • 4af2bcb6a9 Split up tgo.go Ayke van Laethem 2018-08-18 00:24:21 +02:00
  • 0b98ec83ba Remove unnecessary check for nil in parseExpr Ayke van Laethem 2018-08-18 00:19:19 +02:00
  • 70871c98f8 Improve print functions Ayke van Laethem 2018-08-17 23:23:38 +02:00
  • 62c4c5e90b go fmt Ayke van Laethem 2018-08-17 23:21:47 +02:00
  • 574c7ec047 Refactor: Use our own types as much as possible from the analysis Ayke van Laethem 2018-08-17 23:12:15 +02:00
  • a97ca91c1f compiler: Implement interface calls Ayke van Laethem 2018-06-10 00:36:39 +02:00
  • 62325eab40 compiler: Improve IR/SSA printing Ayke van Laethem 2018-06-09 22:34:46 +02:00
  • 5acde63f88 compiler: Move isPointer out of Compiler object Ayke van Laethem 2018-06-09 18:02:43 +02:00
  • 56056934e3 README: expand a bit Ayke van Laethem 2018-06-08 13:43:12 +02:00
  • 6b3e394dce compiler: Fix ChangeInterface Ayke van Laethem 2018-06-08 13:41:13 +02:00
  • 9ad59bf001 Add README Ayke van Laethem 2018-06-07 18:37:55 +02:00
  • 90fb0ee4eb Add AVR support Ayke van Laethem 2018-06-07 18:35:54 +02:00
  • 802302a1aa Add support for inline assembly Ayke van Laethem 2018-06-07 18:29:35 +02:00
  • 808cb991af compiler: Fix interface analysis (oops!) Ayke van Laethem 2018-06-07 18:24:47 +02:00
  • 0d1b7239c1 Assorted allocator fixes Ayke van Laethem 2018-06-07 18:24:31 +02:00
  • b8260ba554 Makefile: use -Os instead of -O1 Ayke van Laethem 2018-06-07 18:22:28 +02:00
  • 2e5b313d54 compiler: Give the interface type a name Ayke van Laethem 2018-06-07 17:54:41 +02:00
  • bb60912fa1 tgo: Print IR on panic (sometimes) Ayke van Laethem 2018-06-07 17:45:49 +02:00
  • cafdcecb60 tgo: Use a named string type for strings Ayke van Laethem 2018-06-07 17:44:53 +02:00
  • b0af01056d tgo: Remove \0 from end of string Ayke van Laethem 2018-06-07 16:48:48 +02:00