20 Commits

Author SHA1 Message Date
Johan B.W. de Vries
205897101f Adds a typing system to Phasm 2023-01-07 16:24:50 +01:00
Johan B.W. de Vries
5ad5a9c064 Speedup foldl over bytes
Prior to this PR, the compiler would call stdlib.types's
__subscript_bytes__.

However, that function performs some checks we do not need.

After this MR, folding iterates directly over the bytes
memory, saving the memory access checks and the function
calls. This gets us a speedup of about 43% less CPU time
used on Firefox.

Also, by default, the CRC32 page runs a shorter timing test.
2022-08-21 15:38:11 +02:00
Johan B.W. de Vries
f683961af8 Timing results
Looks like WebAssembly in Chromium is about 35% faster, but the
Javascript engine in Firefox is another 59% faster
2022-08-21 14:57:43 +02:00
Johan B.W. de Vries
7a8b1baa25 Some repo cleanup 2022-08-20 18:21:23 +02:00
Johan B.W. de Vries
98167cfdec Made tests more consistent. Implemented CRC32 test. 2022-08-20 18:00:20 +02:00
Johan B.W. de Vries
e589223dbb Static Arrays. CRC32 compiles \o/
Doesn't give right answer yet and out of bound check fails.
No constructor yet for static arrays, but module constants
work. Which don't work yet for tuples and structs.

Also, u32 for indexing please.

Also, more module constant types.
2022-08-18 20:53:21 +02:00
Johan B.W. de Vries
c4ee2ab3dc Memory initialization is now done during compilation
Also, the user can now define tuple module constants
2022-08-17 21:07:33 +02:00
Johan B.W. de Vries
d051160244 Bit shifting 2022-08-16 20:55:20 +02:00
Johan B.W. de Vries
ad6ca71c53 More bitwise ops. Steps towards CRC32 2022-08-12 21:50:42 +02:00
Johan B.W. de Vries
b6fb0d45b6 Implements foldl 2022-08-11 19:56:47 +02:00
Johan B.W. de Vries
4881cb6d4b Moved ___access_bytes_index___ to the right place
Also, added length test to buffer example
2022-08-09 20:34:03 +02:00
Johan B.W. de Vries
a0d575f61f Implements __alloc_bytes__, uses it in the buffer example
Also, updated todo, remove broken code from buffer example
2022-08-09 20:21:59 +02:00
Johan B.W. de Vries
fe864e6b9d Example code 2022-07-20 20:40:26 +02:00
Johan B.W. de Vries
76d80f57cb Imports 2022-07-08 21:06:13 +02:00
Johan B.W. de Vries
eb74c8770d Examples HTML now serve higlighted py 2022-07-08 20:41:58 +02:00
Johan B.W. de Vries
17aa5fd6f9 Examples HTML now serve higlighted WAT 2022-07-08 20:23:12 +02:00
Johan B.W. de Vries
27fa1cc76d bytes[idx] for any expression idx
More steps towards buffer example
2022-07-02 21:48:39 +02:00
Johan B.W. de Vries
0afab89796 Memory access from outside with example setup 2022-06-24 19:48:07 +02:00
Johan B.W. de Vries
b28df7fa74 Fix: Could not both export and use function
Added HTML pages for fib example
2022-06-24 18:52:43 +02:00
Johan B.W. de Vries
0da309a280 Remove old code 2022-06-19 17:04:20 +02:00