Commit Graph

29 Commits

Author SHA1 Message Date
Ayke van Laethem 9b9b66a09d compiler: add complex manipulation
* builtins: real, imag, complex
* printing of complex numbers

No support for complex arithmetic yet.
2018-10-22 13:49:03 +02:00
Ayke van Laethem 9393cdd5ed README: add WebAssembly as a supported target 2018-10-22 12:40:06 +02:00
Ayke van Laethem c88d2d10a7 docs: give a working Docker example 2018-10-21 22:42:38 +02:00
Johan Brandhorst 97caabb8c2 Add Dockerfile 2018-10-21 00:28:18 +01:00
Ayke van Laethem 22bc0f979d README: scope 2018-10-20 15:20:11 +02:00
Ayke van Laethem c4557176ef README: contributing 2018-10-20 14:50:44 +02:00
Ayke van Laethem 55a60acbf4 README: improve documentation references 2018-10-20 14:35:04 +02:00
Ayke van Laethem 02936042b8 travis: add Travis CI build script 2018-09-30 17:32:40 +02:00
Ayke van Laethem 7c597c910f README: move installation instructions to docs 2018-09-23 17:15:52 +02:00
Ayke van Laethem 4868823dad README: add docs badge 2018-09-23 17:13:26 +02:00
Ayke van Laethem 2a20c0c7f0 all: rewrite sleep function
time.Sleep now compiles on all systems, so lets use that.
Additionally, do a few improvements in time unit handling for the
scheduler. This should lead to somewhat longer sleep durations without
wrapping (on some platforms).

Some examples got smaller, some got bigger. In particular, code using
the scheduler got bigger and the blinky1 example got smaller (especially
on Arduino: 380 -> 314 bytes).
2018-09-15 01:58:54 +02:00
Ayke van Laethem a46ed465c5 README: defer has been fully implemented 2018-09-13 00:31:43 +02:00
Ayke van Laethem 422c848163 README: fix nrf example and add arduino example 2018-09-13 00:23:53 +02:00
Ayke van Laethem 7e7502a990 README: update build instructions 2018-09-13 00:23:45 +02:00
Ayke van Laethem 9101ea11bf examples: clean up examples and add blinky1 for Arduino
Arduino has trouble supporting anything that's not extremely simple, so
add a simple blinky example for it. Also, it may be useful anyway.
2018-09-05 16:40:46 +02:00
Ayke van Laethem 58c87329d4 Implement closures and bound methods 2018-09-02 03:39:37 +02:00
Ayke van Laethem 58b853bbef Defer for trivial cases 2018-09-01 17:14:38 +02:00
Ayke van Laethem 46d2d2e777 Add support for floats
I'm not sure all operations are supported but the vast majority should
be supported now.

This commit also refactors binop translation.
2018-08-31 21:29:13 +02:00
Ayke van Laethem 906e061e37 Replace own dummy syscall with standard library syscall
This makes it easier to support other standard library packages.
2018-08-30 05:58:54 +02:00
Ayke van Laethem 36a5af9e6d README: dead code elimination 2018-08-24 03:02:06 +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 03c8a8bd3a README: Add build guide 2018-08-20 04:19:54 +02:00
Ayke van Laethem 8b6cb204cd Basic support for slices 2018-08-18 20:06:35 +02:00
Ayke van Laethem 86a3aea868 Add a LICENSE file 2018-08-18 19:04:14 +02:00
Ayke van Laethem 9aaac8e17b README: Describe supported targets 2018-08-18 15:59:12 +02:00
Ayke van Laethem bfe9b52661 README: Mark a few features as supported 2018-08-18 15:58:22 +02:00
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 56056934e3 README: expand a bit 2018-06-08 13:43:12 +02:00
Ayke van Laethem 9ad59bf001 Add README 2018-06-07 18:40:49 +02:00