Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Effects: double translation of functions and dynamic switching between direct-style and CPS code #1461

Merged
merged 84 commits into from
Dec 29, 2024
Merged
Changes from 1 commit
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
120f235
Effects: double translation of functions and
OlivierNicole Mar 9, 2023
38f0462
Add caml_assume_no_effects primitive and tests
OlivierNicole Jun 11, 2024
7f769be
CR: Fix non-raised Unhandled with assume_no_perform
OlivierNicole Nov 20, 2024
0192c16
CR: Commit suggestion for compiler/lib/driver.ml
OlivierNicole Nov 20, 2024
10f8752
Fix runtime deps, add missing test
OlivierNicole Nov 20, 2024
92e41d8
CR
OlivierNicole Nov 22, 2024
de30b43
CR
OlivierNicole Nov 22, 2024
77c2331
Runtime format
OlivierNicole Nov 22, 2024
22584e4
Factorize substitution logic
OlivierNicole Nov 27, 2024
370a0b0
CR: make caml_callback an alias of caml_call_gen...
OlivierNicole Nov 28, 2024
e980a1b
Promote tests
OlivierNicole Nov 28, 2024
55cbe59
CR: Fix caml_trampoline_cps and rename it to caml_resume
OlivierNicole Nov 28, 2024
ef3bc27
CR: First fixes to Lambda_lifting_simple
OlivierNicole Nov 28, 2024
c2f39d3
Simplify and clarify Lambda_lifting_simple
OlivierNicole Nov 29, 2024
21c955b
Format runtime
OlivierNicole Nov 29, 2024
5ed1a30
Fix bug: functions inside CPS functions were not lambda-lifted
OlivierNicole Nov 29, 2024
efb7892
Runtime: fix caml_uncaught_effect_handler
vouillon Nov 29, 2024
5b7c9e4
Runtime: the trampoline now distinguish direct and CPS calls
vouillon Nov 29, 2024
1d34f2b
Fix unregistered test and add one for nested handler
OlivierNicole Dec 3, 2024
425e526
Uses 'tests' dune stanza
OlivierNicole Dec 3, 2024
f605852
Reformat dune files and remove leftover files
OlivierNicole Dec 3, 2024
9586742
CR: Fixes in Lambda_lifting_simple
OlivierNicole Dec 3, 2024
b62ba9a
CR: remove unnecessary conditionals in Effects
OlivierNicole Dec 3, 2024
ffa361b
CR: Remove duplicate instruction
OlivierNicole Dec 4, 2024
d5cb751
CR: Apply suggested simplifications
OlivierNicole Dec 4, 2024
49ca07e
Add test for lambda-lifting of mutually recursive functions
OlivierNicole Dec 4, 2024
13ede20
CR
OlivierNicole Dec 4, 2024
68b1334
Revert addition of no longer necessary Freevars functions
OlivierNicole Dec 4, 2024
cf89d76
Add wasm mode to double translation tests
OlivierNicole Dec 4, 2024
d874120
CR: Add missing Wasm stubs
OlivierNicole Dec 4, 2024
259973a
Revert "Add wasm mode to double translation tests"
OlivierNicole Dec 5, 2024
64a6beb
Update dune.inc
OlivierNicole Dec 5, 2024
028027a
CR
OlivierNicole Dec 5, 2024
17a051f
CR
OlivierNicole Dec 5, 2024
1ff3b10
Use copy_file rather than duplicate tests
OlivierNicole Dec 6, 2024
f5ed63b
Update comment
OlivierNicole Dec 6, 2024
0807507
CR: Factorize some code
OlivierNicole Dec 6, 2024
21e750a
CR
OlivierNicole Dec 6, 2024
b734492
CR: simplify
OlivierNicole Dec 6, 2024
343f270
Simplify function rewrite_instr
vouillon Dec 9, 2024
28690a7
Function assume_no_perform makes perform fail for all effect implemen…
vouillon Dec 9, 2024
43eb25b
CR: Add --effects option
OlivierNicole Dec 10, 2024
0835a69
Fix Dynlink and limit use of --enable=effects
OlivierNicole Dec 11, 2024
29c6a82
Reformat
OlivierNicole Dec 12, 2024
b8a3799
CR
OlivierNicole Dec 12, 2024
733f4dc
CR
OlivierNicole Dec 12, 2024
618bc52
CR: add missing bound check
OlivierNicole Dec 12, 2024
244267e
CR: Simplification in compiler/lib/effects.ml
OlivierNicole Dec 12, 2024
b705214
CR: simplify closure allocation
OlivierNicole Dec 12, 2024
f1441bc
Javascript runtime: stop using 'arguments'
OlivierNicole Dec 12, 2024
4107e24
Fix too early effects backend setting
OlivierNicole Dec 12, 2024
9b8a90b
Fix uses of `--enable=effects` in lib-wasm/
vouillon Dec 12, 2024
cc38500
Move assume_no_perform to Jsoo_runtime
OlivierNicole Dec 12, 2024
31be126
Fix: move C primitive
OlivierNicole Dec 12, 2024
26a2b6d
CR
OlivierNicole Dec 13, 2024
f736e33
CR: rephrase comment
OlivierNicole Dec 16, 2024
68d02df
CR: Move effects backend choice logic
OlivierNicole Dec 16, 2024
35b27b0
CR: simplify
OlivierNicole Dec 16, 2024
12adc93
Docs: document double translation better
OlivierNicole Dec 16, 2024
b778d47
Fix warning
OlivierNicole Dec 16, 2024
1910866
Fix another warning
OlivierNicole Dec 16, 2024
6536533
Update manual/effects.wiki
OlivierNicole Dec 16, 2024
cfdca94
CR: revert some changes in docs
OlivierNicole Dec 16, 2024
f914e22
Don't set effects_backend in _cmd_arg_ modules
hhugo Dec 17, 2024
865f90e
Fix compilation
OlivierNicole Dec 17, 2024
9c28e19
CR
OlivierNicole Dec 17, 2024
b025490
CR: add CONFIG macro
OlivierNicole Dec 17, 2024
796e973
Re-export Jsoo_runtime from the js_of_ocaml library
OlivierNicole Dec 19, 2024
dded0e8
Fix spurious free var warning over CONFIG macro
OlivierNicole Dec 19, 2024
c4e594f
CR: Update compiler/lib/driver.ml
OlivierNicole Dec 19, 2024
6bb65e4
Remove duplicate effects flag
OlivierNicole Dec 20, 2024
6391bd6
CR: more explicit type for effects backend
OlivierNicole Dec 21, 2024
51b3d50
CR: doc phrasing
OlivierNicole Dec 22, 2024
3109620
CR: revert obsolete change
OlivierNicole Dec 22, 2024
821537d
Fix assertion
OlivierNicole Dec 22, 2024
3a52728
CR: comment to justify constant
OlivierNicole Dec 22, 2024
5541f1b
reformat
OlivierNicole Dec 22, 2024
01595fc
Fixes
OlivierNicole Dec 22, 2024
7066f6b
Fix assert failure
OlivierNicole Dec 23, 2024
0eeaafe
reformat
OlivierNicole Dec 23, 2024
7161b7e
Merge branch 'master' into optim_effects
hhugo Dec 28, 2024
227f261
CR: Create Js_of_ocaml.Effect_js
OlivierNicole Dec 29, 2024
9ad1fcc
CR: move new tests to tests-jsoo/lib-effects
OlivierNicole Dec 29, 2024
a8b2b92
Fix warnings in tests
OlivierNicole Dec 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Use copy_file rather than duplicate tests
OlivierNicole committed Dec 17, 2024
commit 1ff3b10fc08e2090f5557822b18598bf503f224f

This file was deleted.

This file was deleted.

This file was deleted.

24 changes: 0 additions & 24 deletions compiler/tests-ocaml/lib-effects/double-translation/cmphash.ml

This file was deleted.

50 changes: 50 additions & 0 deletions compiler/tests-ocaml/lib-effects/double-translation/dune
Original file line number Diff line number Diff line change
@@ -24,6 +24,56 @@
;; multiple versions of the dependencies
(compilation_mode whole_program))))

OlivierNicole marked this conversation as resolved.
Show resolved Hide resolved
(copy_files ../*.expected)

(copy_files ../cmphash.ml)

(copy_files ../marshal.ml)

(copy_files ../effects.ml)

(copy_files ../evenodd.ml)

(copy_files ../manylive.ml)

(copy_files ../overflow.ml)

(copy_files ../partial.ml)

(copy_files ../reperform.ml)

(copy_files ../sched.ml)

(copy_files ../shallow_state_io.ml)

(copy_files ../shallow_state.ml)

(copy_files ../test10.ml)

(copy_files ../test11.ml)

(copy_files ../test1.ml)

(copy_files ../test2.ml)

(copy_files ../test3.ml)

(copy_files ../test4.ml)

(copy_files ../test5.ml)

(copy_files ../test6.ml)

(copy_files ../test_lazy.ml)

(copy_files ../used_cont.ml)

(copy_files ../unhandled_unlinked.ml)

(copy_files ../assume_no_perform.ml)

(copy_files ../assume_no_perform_nested_handler.ml)

(tests
(build_if
(>= %{ocaml_version} 5))

This file was deleted.

226 changes: 0 additions & 226 deletions compiler/tests-ocaml/lib-effects/double-translation/effects.ml

This file was deleted.

This file was deleted.

22 changes: 0 additions & 22 deletions compiler/tests-ocaml/lib-effects/double-translation/evenodd.ml

This file was deleted.

This file was deleted.

27 changes: 0 additions & 27 deletions compiler/tests-ocaml/lib-effects/double-translation/manylive.ml

This file was deleted.

This file was deleted.

21 changes: 0 additions & 21 deletions compiler/tests-ocaml/lib-effects/double-translation/marshal.ml

This file was deleted.

This file was deleted.

40 changes: 0 additions & 40 deletions compiler/tests-ocaml/lib-effects/double-translation/overflow.ml

This file was deleted.

This file was deleted.

28 changes: 0 additions & 28 deletions compiler/tests-ocaml/lib-effects/double-translation/partial.ml

This file was deleted.

This file was deleted.

37 changes: 0 additions & 37 deletions compiler/tests-ocaml/lib-effects/double-translation/reperform.ml

This file was deleted.

This file was deleted.

65 changes: 0 additions & 65 deletions compiler/tests-ocaml/lib-effects/double-translation/sched.ml

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

15 changes: 0 additions & 15 deletions compiler/tests-ocaml/lib-effects/double-translation/test1.ml

This file was deleted.

This file was deleted.

34 changes: 0 additions & 34 deletions compiler/tests-ocaml/lib-effects/double-translation/test10.ml

This file was deleted.

This file was deleted.

22 changes: 0 additions & 22 deletions compiler/tests-ocaml/lib-effects/double-translation/test11.ml

This file was deleted.

This file was deleted.

30 changes: 0 additions & 30 deletions compiler/tests-ocaml/lib-effects/double-translation/test2.ml

This file was deleted.

This file was deleted.

22 changes: 0 additions & 22 deletions compiler/tests-ocaml/lib-effects/double-translation/test3.ml

This file was deleted.

This file was deleted.

21 changes: 0 additions & 21 deletions compiler/tests-ocaml/lib-effects/double-translation/test4.ml

This file was deleted.

This file was deleted.

24 changes: 0 additions & 24 deletions compiler/tests-ocaml/lib-effects/double-translation/test5.ml

This file was deleted.

This file was deleted.

30 changes: 0 additions & 30 deletions compiler/tests-ocaml/lib-effects/double-translation/test6.ml

This file was deleted.

This file was deleted.

49 changes: 0 additions & 49 deletions compiler/tests-ocaml/lib-effects/double-translation/test_lazy.ml

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

21 changes: 0 additions & 21 deletions compiler/tests-ocaml/lib-effects/double-translation/used_cont.ml

This file was deleted.