Commit Graph

133 Commits

Author SHA1 Message Date
Théophile Bastian 6339662cec Write markdown report 2018-02-17 01:55:00 +01:00
Théophile Bastian 323302c6e5 Add a naive constant propagation pass 2018-02-16 20:53:43 +01:00
Théophile Bastian 9f1e32e92c Remove wrong TODOs 2018-02-16 18:40:12 +01:00
Théophile Bastian 1b231338b4 Update tests repo 2018-02-16 18:33:26 +01:00
Théophile Bastian 58cc468ca3 Clean unused values from pattern matching 2018-02-16 18:31:35 +01:00
Théophile Bastian a194e327d0 Properly handle binary operators 2018-02-16 18:31:35 +01:00
Théophile Bastian dd3c7e6786 Light CPS: cleaner error when lightening non-value 2018-02-16 18:31:35 +01:00
Théophile Bastian 804f2e7c5b Light CPS: implement lambdas 2018-02-16 18:31:35 +01:00
Théophile Bastian a7f19221d0 Lighter CPS: first tentative version
Try to lighten the CPS transformation, using fewer continuations when
there is no need for one
2018-02-16 18:31:35 +01:00
Théophile Bastian 0663d7fa10 Use shared tests repository instead of `src/tests` 2018-02-16 18:27:02 +01:00
Théophile Bastian 86b097171e Update tests_shared 2018-02-16 18:05:17 +01:00
Théophile Bastian 251bfd4b7d Fix multi_args.lambda 2018-02-16 18:04:34 +01:00
Théophile Bastian 0939615350 Use shared tests 2018-02-16 17:58:30 +01:00
Théophile Bastian b0cd872baf Make NotValue more explicit 2018-02-16 15:43:01 +01:00
Théophile Bastian 3ca59d6975 Add test for redefinition of variables 2018-02-16 15:42:47 +01:00
Théophile Bastian 63f8b6b61a VarVarBind: add missing cleaning sub-calls 2018-02-16 15:10:03 +01:00
Théophile Bastian b1e82638b2 VarVarBind: fix non-transitivity 2018-02-16 15:01:06 +01:00
Théophile Bastian 0a4d788513 Fix unix permissions for exp test files 2018-02-16 13:11:43 +01:00
Théophile Bastian 5c6f538f9e Add a test for partial evaluation
This is mostly in case I actually implement better functions of arity
>1, but forget to add this test.
2018-02-16 02:58:08 +01:00
Théophile Bastian 9a1b6fb177 Update what's done and to do
Brief list from the top of my head, nothing binding nor exhaustive
2018-02-16 02:55:12 +01:00
Théophile Bastian 10ef4c6074 Remove var-var bindings after defun 2018-02-16 02:45:40 +01:00
Théophile Bastian 2319414786 Fix rec_fibo's syntax — now works perfectly 2018-02-16 02:06:45 +01:00
Théophile Bastian a67b0ee1c3 Add two passing tests 2018-02-16 01:58:24 +01:00
Théophile Bastian 450595ab57 Add complicated recursion and nesting -- fail 2018-02-16 01:40:23 +01:00
Théophile Bastian c84a1ac169 Fix: recursive functions correctly defunctionalized 2018-02-16 01:29:01 +01:00
Théophile Bastian 29a2ef43a1 Fix: self is no longer considered free var
For recursive functions, the self-reference was considered a free
variable wrt. defunctionalization
2018-02-16 01:13:06 +01:00
Théophile Bastian 6f75134474 Add test rec_factorial (computes 7!) -- fails 2018-02-16 01:09:21 +01:00
Théophile Bastian ca790364b6 Add test if_func_branch 2018-02-16 00:59:39 +01:00
Théophile Bastian faa31d90dd Add test if_func 2018-02-16 00:56:35 +01:00
Théophile Bastian 7c6e2e390e Fix C code production, add ifzero basic test 2018-02-16 00:52:07 +01:00
Théophile Bastian 3141ce6fde Implement IfZero everywhere, untested 2018-02-16 00:43:44 +01:00
Théophile Bastian 2a65d41cd8 Add IfZero construct to lexer + parser 2018-02-16 00:21:29 +01:00
Théophile Bastian 7bc7921fc3 Add IfZero in the syntax + placeholders
Also add (* TODO ifzero *) all around as placeholders
2018-02-16 00:19:44 +01:00
Théophile Bastian b00976d359 Fix scope error in CPS application 2018-02-15 22:43:15 +01:00
Théophile Bastian 38148932f7 Fix pretty printer line breaks at toplevel 2018-02-15 22:28:26 +01:00
Théophile Bastian 324e32c15e Add option --light-debug 2018-02-15 22:19:14 +01:00
Théophile Bastian 6c5580d550 Explicit exit continuation's name 2018-02-15 22:02:04 +01:00
Théophile Bastian 2643118045 Add pretty printer for Top 2018-02-15 22:01:46 +01:00
Théophile Bastian 67701ea721 Refactor PrettyTail parts into PrettyCommon 2018-02-15 22:01:14 +01:00
Théophile Bastian 3262846faf Add human-readable pretty printer for Tail 2018-02-15 21:26:15 +01:00
Théophile Bastian 4ec822cfda Add test simple_call 2018-02-15 19:46:16 +01:00
Théophile Bastian 438a875cea Attempt to have better variable names in CPS 2018-01-29 15:46:53 +01:00
Théophile Bastian 4419abf57d Fix free vars of a lambda in Defun 2018-01-29 15:46:34 +01:00
Théophile Bastian 2e5e691cfe First try for defun, produces bad code
Block variables accessed out of scope
2018-01-22 12:29:59 +01:00
Théophile Bastian d0ff07998f Prevent IDs in variables from being trimmed 2018-01-18 16:03:29 +01:00
Théophile Bastian 6619941770 First attempt to implement CPS naively 2018-01-17 17:15:23 +01:00
Théophile Bastian 3b5c4cb996 Keep only project-related files; reroot to project/ 2017-12-19 13:35:04 +01:00
Théophile Bastian a6a49201be Merge remote-tracking branch 'upstream/master' 2017-12-19 13:34:12 +01:00
Théophile Bastian 8ea0250e67 Initial commit 2017-12-19 13:30:32 +01:00
REMY Didier 6055421bdc Merge branch 'master' of gitlab.inria.fr:fpottier/mpri-2.4-public 2017-12-19 09:55:27 +01:00