Commit Graph
100 Commits
Author SHA1 Message Date
Ilya Rezvov cb7fee3d45 check imports appear before any other definitions 2018-04-16 16:08:38 -07:00
Ilya Rezvov f046ab3cfa check if aux type signature match referred type 2018-04-16 15:54:10 -07:00
Ilya Rezvov 6c4183c930 check if optional labels match for block instructions 2018-04-16 15:37:28 -07:00
Ilya Rezvov 035ffe05da check if name is valid utf8 string 2018-04-16 14:35:05 -07:00
Ilya Rezvov be47aa7d43 fail on too long offset and align constants 2018-04-15 19:08:27 -07:00
Ilya Rezvov a1ae58b5f7 make parser monadic 2018-04-15 18:54:39 -07:00
Ilya Rezvov a5e16c6e7b add MIT license 2018-04-15 16:28:04 -07:00
Ilya Rezvov 09f4b15d2c implemented assert_malformed assertion and added NFData instances for all parsing types 2018-04-15 16:16:11 -07:00
Ilya Rezvov 73124a3eff pass all assert_invalid tests 2018-04-14 17:11:47 -07:00
Ilya Rezvov d7dc05b157 update tests from core repo 2018-04-14 16:35:18 -07:00
Ilya Rezvov 681e0e3eca fix br_if typing 2018-04-14 16:31:21 -07:00
Ilya Rezvov d0b1092064 simplify validation algorithm 2018-04-14 13:38:09 -07:00
Ilya Rezvov 23ed83a42e fix parsing of functions with incorrect type indexes 2018-04-13 16:56:25 -07:00
Ilya Rezvov 16bbc3d198 implement assert_invalid assertion 2018-04-13 14:25:23 -07:00
Ilya Rezvov b2a0d2c86e pass return_nan tests 2018-04-12 14:17:01 -07:00
Ilya Rezvov 2955456e26 pass all assert_return tests 2018-04-11 21:15:56 -07:00
Ilya Rezvov 7a4735bbfc fix some conversions 2018-04-11 15:29:51 -07:00
Ilya Rezvov d64854aac1 clean up labels on exit from blocks and return correct type for i64 unary operations 2018-04-11 15:24:27 -07:00
Ilya Rezvov 11b6f4fdc8 fix if instruction execution 2018-04-11 14:54:05 -07:00
Ilya Rezvov 82c0433e5d fix corner cases for float instructions 2018-04-11 11:08:41 -07:00
Ilya Rezvov e0d9eeb51f fix tee_local semantic 2018-04-10 21:59:54 -07:00
Ilya Rezvov c644578d8b fix memory growing behavior 2018-04-10 21:25:54 -07:00
Ilya Rezvov c75900a2c8 fix loading of signed ints from memory 2018-04-10 21:09:58 -07:00
Ilya Rezvov ab1782c982 fix int instructions 2018-04-10 21:02:37 -07:00
Ilya Rezvov 1fe669e762 use correct signed int representation 2018-04-10 20:50:26 -07:00
Ilya Rezvov 8514232513 fix offset parsing and one byte loading instruction 2018-04-10 19:48:02 -07:00
Ilya Rezvov fd7ce7e450 fix copysign instruction 2018-04-10 16:56:42 -07:00
Ilya Rezvov f6cae32148 fix float numbers parsing 2018-04-10 15:04:18 -07:00
Ilya Rezvov f4e008ab9a fix arguments order on function call 2018-04-10 09:17:26 -07:00
Ilya Rezvov 147f4224d3 implement grow memory instruction 2018-04-10 09:07:30 -07:00
Ilya Rezvov 3be5840c9a implement grow_memory 2018-04-09 21:48:37 -07:00
Ilya Rezvov d055a4ff6d fix call_indirect evaluation 2018-04-09 21:41:17 -07:00
Ilya Rezvov dac931b055 implement assert_return assertion 2018-04-09 15:08:48 -07:00
Ilya Rezvov b7933df8c3 add actions interpretatiion 2018-04-09 14:36:14 -07:00
Ilya Rezvov 554a56fb63 pass nan with payload to token 2018-04-09 07:12:47 -07:00
Ilya Rezvov 8cd33831a1 'fix' type of br_if and comment multiple table definitions in test module 2018-04-08 20:06:25 -07:00
Ilya Rezvov 8ef3eadc9a parse arithmetic nan 2018-04-08 19:47:10 -07:00
Ilya Rezvov 6b376ee4cb fix elems validator 2018-04-08 17:51:04 -07:00
Ilya Rezvov 277cfad6ff add host environment for script modules 2018-04-08 17:42:25 -07:00
Ilya Rezvov 7a66ff7150 provide imports for modules from registery 2018-04-08 12:50:36 -07:00
Ilya Rezvov 98d9ca2399 fix parsing binary modules from text representation 2018-04-08 11:54:29 -07:00
Ilya Rezvov 87758b2789 fix memory growing for empty data segments 2018-04-08 10:53:14 -07:00
Ilya Rezvov 8b5c7fa154 grow tables and memories on module initialization 2018-04-08 10:45:09 -07:00
Ilya Rezvov d7641bcee2 fix implicit type extraction 2018-04-08 10:25:05 -07:00
Ilya Rezvov 43feccbf08 load modules in wasm script commands 2018-04-08 09:43:41 -07:00
Ilya Rezvov 8c8cec0498 update goals 2018-03-21 09:49:50 -07:00
Ilya Rezvov 8a22d84804 pass all tests 2018-03-20 21:52:02 -07:00
Ilya Rezvov 682e71defc fix tokenizing of numbers and expressions of offset 2018-03-20 21:33:11 -07:00
Ilya Rezvov 3400a7c1ad fix stack instructions parsing 2018-03-20 21:26:42 -07:00
Ilya Rezvov e9c5ad8dac fix function parsing 2018-03-20 21:11:59 -07:00
Ilya Rezvov 4ed8752744 add whole test files from Core Test Suit 2018-03-20 21:01:25 -07:00
Ilya Rezvov d9849f77bf parse wasm script grammar 2018-03-20 20:28:03 -07:00
Ilya Rezvov 4bf66b9295 fix module idents coding 2018-03-20 16:51:58 -07:00
Ilya Rezvov 13fecfe74b Merge branch 'master' of github.com:SPY/haskell-wasm 2018-03-20 16:17:20 -07:00
Ilya Rezvov 952fa3bd97 add types for script extention 2018-03-20 16:17:10 -07:00
Ilya Rezvov 96cd65ac24 implement store operations 2018-03-19 11:36:12 -07:00
Ilya Rezvov da6d15c63f add loading instructions for i64 2018-03-19 11:10:23 -07:00
Ilya Rezvov 4d6a8d6d3f add load instructions handling for primitive types and i32 parts 2018-03-18 22:18:54 -07:00
Ilya Rezvov a4ed63fe53 implement relation float operations 2018-03-18 19:59:23 -07:00
Ilya Rezvov 3be5bd0648 implement binary float operations 2018-03-18 19:53:40 -07:00
Ilya Rezvov 8bcfdb18c5 add unary float operations 2018-03-18 19:46:45 -07:00
Ilya Rezvov 1ba3044aa5 implement numeric conversion instructions 2018-03-18 19:18:41 -07:00
Ilya Rezvov 4775c42207 implement test and unary integer operations 2018-03-16 10:32:36 -07:00
Ilya Rezvov 51f4cdfa53 fix arguments ordering for int binary operations 2018-03-16 10:11:06 -07:00
Ilya Rezvov 3d9cb6132b make fact work 2018-03-15 21:53:02 -07:00
Ilya Rezvov 421d7db976 implement int rel operations 2018-03-15 21:02:38 -07:00
Ilya Rezvov 36225ea479 implement int bin operations 2018-03-15 20:53:45 -07:00
Ilya Rezvov d5324acb40 implement call_indirect 2018-03-15 19:52:57 -07:00
Ilya Rezvov 6561ed0264 implement interpretation of control instruction 2018-03-15 19:42:24 -07:00
Ilya Rezvov edbdeaec46 start instruction evaluator 2018-03-14 21:12:01 -07:00
Ilya Rezvov 1b4a79655f store memory as word8 vector and do not grow mem and tables on initialization 2018-03-12 20:46:21 -07:00
Ilya Rezvov 8af5518e2b initialize elem and data segments 2018-03-12 10:04:17 -07:00
Ilya Rezvov 93d6d4a417 allocate memories and tables 2018-03-11 19:11:19 -07:00
Ilya Rezvov 867092c820 add globals allocation 2018-03-07 16:35:36 -08:00
Ilya Rezvov 1dab371720 calculate module instance 2018-03-07 14:40:19 -08:00
Ilya Rezvov a073456a63 adjust types to spec 2018-03-07 10:53:06 -08:00
Ilya Rezvov efcd8f35e2 refactor interpreter types 2018-03-04 20:18:18 -08:00
Ilya Rezvov c09397539f store integer const instructions as words 2018-03-03 10:20:02 -08:00
Ilya Rezvov b9e03584dd start interpreter 2018-02-28 21:20:52 -08:00
Ilya Rezvov 6075818a56 const expression get_global can refer only imported constant globals 2018-02-27 15:45:39 -08:00
Ilya Rezvov 8012373a96 finish validation phase 2018-02-27 15:28:38 -08:00
Ilya Rezvov 6866c886f3 Merge branch 'master' of github.com:SPY/haskell-wasm 2018-02-26 15:48:20 -08:00
Ilya Rezvov e373066ef5 add more validators 2018-02-26 15:48:11 -08:00
Ilya Rezvov 88696e4666 make tests green again 2018-02-25 16:12:56 -08:00
Ilya Rezvov fdfdd14ace pass more tests on validation stage 2018-02-25 12:28:51 -08:00
Ilya Rezvov 6a3a7d56a5 fix context building for typechecker 2018-02-25 11:28:51 -08:00
Ilya Rezvov d53611c1e5 pass more tests 2018-02-25 09:53:28 -08:00
Ilya Rezvov c7ecb055d4 fix types indexes in some cases 2018-02-25 09:19:54 -08:00
Ilya Rezvov 1366c63bf3 pass more tests 2018-02-25 08:52:44 -08:00
Ilya Rezvov e05bcdd0cb handle functions with empty body 2018-02-24 21:49:06 -08:00
Ilya Rezvov 55215f56de pass more tests 2018-02-24 21:08:18 -08:00
Ilya Rezvov 254bfca5f8 fix function parsing 2018-02-24 20:36:11 -08:00
Ilya Rezvov d69f0fed99 check expression types 2018-02-24 19:29:06 -08:00
Ilya Rezvov 89e0fb89ed add instruction type signatures 2018-02-24 12:13:50 -08:00
Ilya Rezvov e7978b8d48 properly handle order of params and result types in function type in call_indirect instruction 2018-02-23 17:01:22 -08:00
Ilya Rezvov 4c8a71de16 reduce shift/reduce conflicts 2018-02-23 16:40:40 -08:00
Ilya Rezvov 97ae291be5 handle call_indirect properly in raw instruction case 2018-02-23 16:17:11 -08:00
Ilya Rezvov a30e6676ff accept only folded form of instructions inside folded forms 2018-02-23 15:00:06 -08:00
Ilya Rezvov 31735c93aa handle raw instructions properly 2018-02-23 14:52:03 -08:00
Ilya Rezvov bf67333ec1 add test case for unhandled instructions representation 2018-02-23 11:23:36 -08:00