640 Commits

Author SHA1 Message Date
dcodeIO
896810859e Make memory allocators pluggable 2018-01-28 19:33:05 +01:00
dcodeIO
78debee847 Improve arena allocator a bit 2018-01-28 19:14:20 +01:00
dcodeIO
219ee81bc9 Rename heap to memory; Allocator strategies 2018-01-28 15:30:49 +01:00
dcodeIO
1b0ed61072 Field initializers and constructors 2018-01-28 15:13:31 +01:00
dcodeIO
b1e7b75ad7 Static operator overloads 2018-01-28 06:18:27 +01:00
dcodeIO
3165f4337f Refactor compilation of aborts and terminate with unreachable
Because of the latter, we can't test it anymore without trapping, but that's somewhat the point
2018-01-27 17:02:52 +01:00
dcodeIO
2670340cce Update tests 2018-01-27 16:28:09 +01:00
dcodeIO
5d76ba9437 Wire assertions to global abort, see #8 2018-01-27 16:23:00 +01:00
dcodeIO
de066fc128 Preliminary strings
While not well-wrought, it's at least possible now to log some stuff when debugging
2018-01-27 05:35:14 +01:00
dcodeIO
b548b5c81f Properly resolve enum value siblings 2018-01-24 03:08:09 +01:00
dcodeIO
29935948f2 Precompute extensions of inlined constants
Besides eliminating unnecessary extensions, this also allows the use of enum values in long int contexts
2018-01-23 16:40:47 +01:00
dcodeIO
2fa7fc7885 Take advantage of smaller integer load and store ops 2018-01-23 15:44:25 +01:00
dcodeIO
5d142ba647 Unify target checks 2018-01-21 17:52:44 +01:00
dcodeIO
a257b6e529 Load/store constant offset utility 2018-01-21 16:34:50 +01:00
dcodeIO
b77646df6e Update binaryen to latest nightly 2018-01-20 05:27:54 +01:00
dcodeIO
64c939fdc4 Initial implementation of 'new'
This doesn't yet call the constructor or use provided parameters and just allocates raw memory
2018-01-19 16:13:14 +01:00
dcodeIO
ef7a095494 Report if a function isn't guaranteed to return 2018-01-19 04:16:18 +01:00
dcodeIO
7be4f9fabb Control flow evaluator; Support for block-level let/const variables 2018-01-18 23:34:12 +01:00
dcodeIO
1c4b0ddc57 Moved noEmit to compiler frontend; Added I/O and compile time measuring 2018-01-18 15:45:34 +01:00
dcodeIO
27a66c1a7a Minor improvements to help asc -h 2018-01-18 06:55:30 +01:00
dcodeIO
fc40ed80f7 Update Binaryen and add optimize levels to asc 2018-01-18 05:56:45 +01:00
dcodeIO
9cdfa35938 Initial implementation if ugc, see #16; Fix tests 2018-01-18 01:48:03 +01:00
dcodeIO
461daab2a2 Handle static readonly members like constants 2018-01-17 06:56:12 +01:00
dcodeIO
1662950f3c Refactor TLSF to a more TS-friendly structure 2018-01-17 02:08:14 +01:00
dcodeIO
7d5e56cef5 More TLSF 2018-01-16 17:52:48 +01:00
dcodeIO
867e037ff0 Initial TLSF implementation (example), see #15 2018-01-16 05:25:03 +01:00
dcodeIO
d1fed692f6 Moved AST serialization to extra (not ultimately needed by asc) 2018-01-15 19:00:18 +01:00
dcodeIO
f2ba4b4a76 Filler implementation for std Set 2018-01-15 00:08:06 +01:00
dcodeIO
49d29fc9f2 More std array 2018-01-14 21:17:43 +01:00
dcodeIO
827bb4afe8 Use move_memory in std Array#unshift 2018-01-14 02:41:13 +01:00
dcodeIO
ad469ca445 Polyfill move_memory and set_memory and remove Heap 2018-01-14 02:30:20 +01:00
dcodeIO
2c009c67d3 Initial element access compilation; Carefully approaching std array 2018-01-13 23:38:07 +01:00
dcodeIO
dd596b015d Simplify reinterpret to require one type argument only, fixes #9 2018-01-13 01:15:09 +01:00
dcodeIO
2df318a7ec Implicitly alias stdlib exports as program globals, see #8 2018-01-12 15:36:17 +01:00
dcodeIO
3980e53bb7 Let the optimizer decide what it takes to become a select 2018-01-12 05:03:25 +01:00
dcodeIO
d89703cdad Transition to TypeFlags for specific type checks; Optimize logical ops a bit 2018-01-10 23:19:14 +01:00
dcodeIO
fc777b3a89 Builtins rewrite with type parameter inference; Small integer math optimizations; Switchify 2018-01-10 13:09:05 +01:00
dcodeIO
0de05b543b Harden regexp parsing a bit 2018-01-07 18:15:21 +01:00
dcodeIO
7c8670ac35 Regexp literal support; Properly resolve statically inherited members 2018-01-07 15:07:46 +01:00
dcodeIO
d8fa04f910 Operator overload preparations 2018-01-06 10:20:38 +01:00
dcodeIO
859a0e05bf Reference showcase compiler test in README 2018-01-05 18:21:20 +01:00
dcodeIO
9846f6c033 Add showcase compiler test incl. respective features and fixes 2018-01-05 18:19:32 +01:00
dcodeIO
2d0f5f3087 Comma expressions fwiw 2018-01-05 01:55:59 +01:00
dcodeIO
7e9b58428b Always compile globals because initializers might have side effects 2018-01-04 06:00:42 +01:00
dcodeIO
50dea3b1df Basic initial inheritance 2018-01-04 01:36:26 +01:00
dcodeIO
ae99adefce Better resolve infrastructure; Instance fields 2018-01-03 18:33:27 +01:00
dcodeIO
fb2b7aa96b Notes on unary EQZ in compileBinary EQ 2018-01-02 23:20:57 +01:00
dcodeIO
f507fc8168 Add fmod compiler test 2018-01-02 23:01:06 +01:00
dcodeIO
1221ff129d More built-in constants; Get/set parsing fixes; I64.toF64 fixes 2018-01-02 21:41:25 +01:00
dcodeIO
2b182b505e Make sure changetype works 2018-01-02 05:02:05 +01:00