Simon Génier pushed to branch sexp-case at Stefan / Typer
Commits: 95330ac8 by Stefan Monnier at 2020-08-04T19:23:58-04:00 Add preliminary support for Dune
* src/tweak.ml: Remove, unused. * src/*.ml: Fix misc compiler warnings.
- - - - - ffb8bf48 by Simon Génier at 2020-12-06T21:28:13-05:00 Add primitives for separate allocation and initialization.
- - - - - 955c3940 by Simon Génier at 2020-12-12T06:59:37-05:00 Fix a couple of warning 40.
- - - - - 085f3f58 by Simon Génier at 2020-12-22T12:40:18-05:00 Merge branch 'warning-40-be-gone'
- - - - - 5335bac8 by Simon Génier at 2020-12-22T12:40:34-05:00 Merge branch 'heap'
- - - - - 8741ee4f by Jean-Alexandre Barszcz at 2021-01-04T18:30:51-05:00 * src/opslexp.ml (clean_decls): Oops, make it check for metavars.
- - - - - 14d0ad7a by Jean-Alexandre Barszcz at 2021-01-04T18:30:51-05:00 * src/elab.ml (sform_letin): Remove unnecessary scope_level bump.
- - - - - 1c6e109b by Jean-Alexandre Barszcz at 2021-01-04T18:30:51-05:00 * src/elab.ml (sform_letin): Make `let` bidirectional.
- - - - - fecec539 by Jean-Alexandre Barszcz at 2021-01-04T18:30:51-05:00 * src/opslexp.ml (fv): Check that the memoized value is still ok.
- - - - - 77981fd4 by Stefan Monnier at 2021-02-09T18:04:24-05:00 * src/elab.ml (lexp_check_decls): Fix broken odd/even example.
* src/REPL.ml (main): Re-raise internal error, so OCAMLRUNPARAM=b gives a proper backtrace.
* samples/nat.typer (even1): Make it trickier to catch the previous error..
- - - - - d17622a1 by Simon Génier at 2021-03-08T12:46:52-05:00 Truncate the lexp context that is printed on error.
You can still opt in the whole thing by passing -Vfull-lctx.
- - - - - a2a6e95e by Simon Génier at 2021-03-08T13:24:54-05:00 Merge branch 'truncate-lctx'
- - - - - 73f177d8 by Stefan Monnier at 2021-03-10T11:10:11-05:00 Merge remote-tracking branch 'gitlab/dune' into trunk
- - - - - 9aef5033 by Simon Génier at 2021-03-10T13:30:23-05:00 Add information about the arity of data cons in Elexps.
This is not used with the AST interpreter, but pretty much any other backend would want that information.
- - - - - 6d930fcb by Simon Génier at 2021-03-10T15:30:17-05:00 Merge branch 'arity-of-cons'
- - - - - 30ff7d25 by Simon Génier at 2021-03-11T12:15:21-05:00 Add a sexp-case macro.
This macro lets you write case-like expressions for Sexp, which I hope are neater than Sexp_dispatch. The code is quite tedious because it is written to be loaded quite early, before some key macros like the enhanced case and lambda. This is because sexp-case is meant to help macro authorship, including these quite complicated macros! It was also necessary to shuffle a few definitions in pervasive.typer to allow us to write it as early as possible.
Was it a waste of time to write this macro when Sexp_wrapper exists? Probably. I was not aware of the existence of Sexp_wrapper until I was almost done with sexp-case_.
- - - - - 6aea153c by Simon Génier at 2021-03-11T12:15:22-05:00 Use sexp-case in a few places.
- - - - - d8856491 by Simon Génier at 2021-03-11T12:15:22-05:00 Better error messages when => is missing in sexp-case.
- - - - - 5811e4be by Simon Génier at 2021-03-11T12:15:22-05:00 Use sexp-case in case.typer.
- - - - -
30 changed files:
- btl/builtins.typer - btl/case.typer - btl/pervasive.typer - + btl/sexp-case.typer - + dune-project - + samples/heap.typer - samples/nat.typer - src/REPL.ml - src/builtin.ml - src/debruijn.ml - src/debug.ml - src/debug_util.ml - + src/dune - src/elab.ml - src/elexp.ml - src/env.ml - src/eval.ml - src/fmt.ml - src/heap.ml - src/inverse_subst.ml - src/lexp.ml - + src/listx.ml - src/log.ml - src/myers.ml - src/opslexp.ml - src/option.ml - src/pexp.ml - src/prelexer.ml - src/sexp.ml - − src/tweak.ml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/monnier/typer/-/compare/7060dab96d1c4a58c0b4e0a08a06efd2a...