Граф коммитов

77 коммитов

Автор SHA1 Сообщение Дата
Ayke van Laethem
0defed9677
Resolve named types 2018-08-24 02:55:06 +02:00
Ayke van Laethem
1229667f7c
Support pointers in global variables 2018-08-24 02:54:37 +02:00
Ayke van Laethem
68b1100c89
Support maps bigger than 8 elements in .data 2018-08-24 02:53:23 +02:00
Ayke van Laethem
4ef271d4c6
Fix double addition in init map update 2018-08-24 02:48:59 +02:00
Ayke van Laethem
179cf74b01
Implement package-global maps (of max 8 entries) 2018-08-24 00:56:20 +02:00
Ayke van Laethem
e884221fad
Implement len() for map types 2018-08-23 23:14:54 +02:00
Ayke van Laethem
005665aee6
Move hashmap creation to runtime 2018-08-23 23:13:38 +02:00
Ayke van Laethem
ae2fc3c8a7
Add support for package-level slice variables
They are initialized from .data and not at init time.
2018-08-23 22:08:03 +02:00
Ayke van Laethem
c99faf468d
Refactor initializing of global data
This makes it easier to add more types.
2018-08-23 22:04:48 +02:00
Ayke van Laethem
160d532498
Fix init functions
This was broken in commit 574c7ec047 and
broke the nrf port.
2018-08-23 21:59:09 +02:00
Ayke van Laethem
ea6355b39e
Make parseConvert not require frame parameter 2018-08-22 23:42:40 +02:00
Ayke van Laethem
d5c7c28135
Simplify some code 2018-08-22 05:14:15 +02:00
Ayke van Laethem
3a6ef38041
Preliminary implementation of a hashmap, unfinished
Missing features:
  * keys other than strings
  * more than 8 values in the hashmap
  * growing a map when needed
  * initial size hint
  * delete(m, key)
  * iterators (for range)
  * initializing global maps
  * ...more?
2018-08-22 04:50:24 +02:00
Ayke van Laethem
8fb9cd4e23
Implement shifting with a differently-sized integer 2018-08-22 04:35:25 +02:00
Ayke van Laethem
337e48270b
Implement comparing a pointer to nil 2018-08-22 04:33:09 +02:00
Ayke van Laethem
c3cb22030f
Implement == and != for strings 2018-08-22 00:56:11 +02:00
Ayke van Laethem
2777f8464e
Implement printing of booleans 2018-08-22 00:54:39 +02:00
Ayke van Laethem
a30ffa5c1e
Revert "Move coroutine passes from Makefile to compiler itself"
This reverts commit d9ca5f97fb.

There is a problem with coroutines that I haven't solved yet. Reverting
makes it work, for now.

Also, use a better coroutines flag for the LLVM opt tool.
2018-08-20 20:24:54 +02:00
Ayke van Laethem
d9ca5f97fb
Move coroutine passes from Makefile to compiler itself
This is much more convenient.
2018-08-20 04:31:01 +02:00
Ayke van Laethem
7460e10894
Add dead code elimination (DCE) pass
This should make it much easier (in the future) to use the standard
library when unused functions contain unimplemented features. But more
importantly, it makes later passes better and makes compiling faster by
not having to scan dead code.
2018-08-19 20:47:58 +02:00
Ayke van Laethem
fae4c7f555
Better error messages 2018-08-19 20:43:39 +02:00
Ayke van Laethem
bce33bbf41
Rename {Function,Global}.Name -> LinkName 2018-08-19 20:42:24 +02:00
Ayke van Laethem
3146cc86d4
Move Compiler.program to Program.program 2018-08-19 20:41:05 +02:00
Ayke van Laethem
8b6cb204cd
Basic support for slices 2018-08-18 20:06:35 +02:00
Ayke van Laethem
a475233f36
Support recursive types 2018-08-18 01:12:52 +02:00
Ayke van Laethem
cad3e03f94
Allow imports from GOROOT 2018-08-18 01:11:50 +02:00
Ayke van Laethem
4af2bcb6a9
Split up tgo.go 2018-08-18 01:11:25 +02:00
Переименован с tgo.go (Смотреть далее)