110 Commits

Author SHA1 Message Date
Johan B.W. de Vries
6d426753c8 Various small fixes
Re-implementing some things that were broken.

Also, if a typing error is found, and we detect an
infinite loop, we return the errors instead, as that's
probably what causing the loop anyhow.
2022-12-18 14:26:10 +01:00
Johan B.W. de Vries
05e7c356ea Fixes
- Moved the three ConstraintBase functions into one, as it was
  giving trouble calculating everything
- Gave each constraint the option to have a comment
- SameTypeConstraint now can have multiple arguments
- Redid the infinite loop detection
- Implemented some more basic operators
- Redid the division by zero for floats, it wasn't giving the
  right results.
- Also postponed the updating the AST type3 until afterwards
- Various linting fixes
2022-11-27 14:11:14 +01:00
Johan B.W. de Vries
a838035e1a Cleanup
- Removed unused _str types
- Tested with untyped function arguments, seems to work a bit
2022-11-27 12:33:17 +01:00
Johan B.W. de Vries
30a4cee5af Fixes
- Tuple wasn't an applied type yet
- phasm_type3 would re-order type IDs between prints
- AppliedType3 wouldn't store the args for iterators
-
2022-11-26 14:46:31 +01:00
Johan B.W. de Vries
3bac625714 Introduced type classes, added debugging info for constraint 2022-11-25 15:04:15 +01:00
Johan B.W. de Vries
9f21d0fd1d More work on type3 2022-11-24 15:43:23 +01:00
Johan B.W. de Vries
b5a28daebf Ripping out Type2 (type_var) system 2022-11-24 14:49:17 +01:00
Johan B.W. de Vries
8cc47ae63e Cleanup to module_constant_def, function calls 2022-11-17 19:30:37 +01:00
Johan B.W. de Vries
13f3f33740 PlaceHolder all the things 2022-11-17 15:23:56 +01:00
Johan B.W. de Vries
a0645d94dd More ideas for type3 2022-11-17 14:51:14 +01:00
Johan B.W. de Vries
79ff11f622 Started on attempt3 of the type system 2022-11-17 13:31:10 +01:00
Johan B.W. de Vries
55a45ff17c Trying out some things regarding StaticArray 2022-11-16 13:50:03 +01:00
Johan B.W. de Vries
42c9ff6ca7 idea: Actual type class 2022-10-23 13:52:48 +02:00
Johan B.W. de Vries
312f7949bd Add mathematic edge case tests 2022-09-22 11:58:18 +02:00
Johan B.W. de Vries
bce3ed7ba1 Implements division
Division by zero is a trap on most runtimes, following
the Let it Crash philosophy
2022-09-22 11:50:38 +02:00
Johan B.W. de Vries
977c449c3f Removed redundant file 2022-09-19 14:55:05 +02:00
Johan B.W. de Vries
2a6da91eb9 Simplified locations, adds typing tests 2022-09-19 14:53:22 +02:00
Johan B.W. de Vries
4d3c0c6c3c StaticArray with constant index works again
Also, fix issue with f64 being parsed as f32
2022-09-19 14:43:15 +02:00
Johan B.W. de Vries
5da45e78c2 More work on StaticArray
Also naming fix, buildin => builtin.

Removes the use of ConstantStaticArray, as this was context dependent
2022-09-19 13:50:20 +02:00
Johan B.W. de Vries
4f7608a601 Fix: ModuleConstantDef type annotation was ignored 2022-09-19 12:29:48 +02:00
Johan B.W. de Vries
0097ce782d First work on restoring StaticArray
Removed the separate ModuleConstantRef since you can tell by the variable
property of VariableReference. We'll also add local variables there later
on.
2022-09-19 12:15:03 +02:00
Johan B.W. de Vries
299551db1b All primitive tests work again 2022-09-19 11:49:10 +02:00
Johan B.W. de Vries
906b15c93c Large cleanup to the tests
They are now better organized and easier to extend, I hope.
2022-09-19 11:16:34 +02:00
Johan B.W. de Vries
07c0688d1b Ripping out old type system. Will have to reimplement
bytes, static array, tuple and struct.
2022-09-17 20:50:06 +02:00
Johan B.W. de Vries
564f00a419 Work on ripping out old type system 2022-09-17 20:13:16 +02:00
Johan B.W. de Vries
58f74d3e1d Restored function calling 2022-09-17 19:37:49 +02:00
Johan B.W. de Vries
4b46483895 Worked on floats 2022-09-17 19:21:56 +02:00
Johan B.W. de Vries
b2816164f9 Improved unification 2022-09-17 17:14:17 +02:00
Johan B.W. de Vries
6f3d9a5bcc First attempt at ripping out old system
This breaks test_addition[u32], which is a good thing to chase next.
2022-09-16 17:39:46 +02:00
Johan B.W. de Vries
2d0daf4b90 Fixes 2022-09-16 17:04:13 +02:00
Johan B.W. de Vries
7669f3cbca More framework stuff 2022-09-16 17:01:23 +02:00
Johan B.W. de Vries
48e16c38b9 FunctionParam is a class, more framework stuff 2022-09-16 16:43:40 +02:00
Johan B.W. de Vries
7acb2bd8e6 Framework sketch 2022-09-16 15:54:24 +02:00
c02afb05f4 Merge pull request 'Speedup foldl over bytes' (#2) from optimize_fold_bytes_inline_subscript_bytes_call into master
Reviewed-on: #2
2022-08-21 13:39:44 +00: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
2970093c8f Merge pull request 'MVP' (#1) from idea_crc32 into master
Reviewed-on: #1
2022-08-21 12:59:20 +00: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
bac17f47eb ModuleConstant definitions and references 2022-08-16 21:25:03 +02:00
Johan B.W. de Vries
d051160244 Bit shifting 2022-08-16 20:55:20 +02:00
Johan B.W. de Vries
75d7e05519 First uint cast, more options for folding 2022-08-16 20:38:41 +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
0cf8a246fe Reworked compiler so it uses WasmGenerator
Also, started work on foldl

Also, added a missing FIXME
2022-08-10 20:51:01 +02:00
Johan B.W. de Vries
451a8e9158 Removes the old ___new_reference___ allocator 2022-08-09 20:42:02 +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