655 Commits

Author SHA1 Message Date
dcodeIO
349de60129 First pass on a programmatic asc API 2018-02-03 02:36:20 +01:00
dcodeIO
44375a43b2 Docs: Link to the wiki more prominently 2018-02-02 19:05:49 +01:00
dcodeIO
6fb7a0c59f TLSF: Cache repeated load/stores in locals (registers) 2018-02-02 08:26:46 +01:00
dcodeIO
4ce8c7a6b0 More memory allocators 2018-02-02 04:21:06 +01:00
dcodeIO
8d4be9a714 Remove intermediate debugging from asc 2018-02-02 03:14:27 +01:00
dcodeIO
4736227879 Update binaryen to latest nightly; Source map support 2018-02-02 03:07:54 +01:00
dcodeIO
a8da04404a New TLSF, see #15 2018-02-01 17:43:45 +01:00
dcodeIO
3924aa96ae Fun fact: Can even implement parseInt/I32/I64 using generics, see #19 2018-01-30 06:05:35 +01:00
dcodeIO
ab5a938ea0 parseInt compatibility layer around parseI64, see #19 2018-01-30 01:26:38 +01:00
dcodeIO
cae89e0b1f Accept custom library paths in asc, see #19 2018-01-30 01:20:20 +01:00
dcodeIO
1995bf9eb4 Parser fixes; Lib updates 2018-01-29 22:36:07 +01:00
dcodeIO
74498852f0 Utilities and an initial webpack loader 2018-01-29 17:12:02 +01:00
dcodeIO
9e3b6f202d Naive parseFloat 2018-01-29 07:42:40 +01:00
dcodeIO
d3f22637ed Check radix in parseInt and use constant offsets 2018-01-29 00:33:32 +01:00
dcodeIO
002fba3067 Initial parseInt using loads, see #8 2018-01-28 23:42:55 +01:00
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