tablambda 0.8.0.post3.dev0__tar.gz → 0.8.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/PKG-INFO +1 -1
  2. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_shape.py +1 -14
  3. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/.gitignore +0 -0
  4. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/README.md +0 -0
  5. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/pyproject.toml +0 -0
  6. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/__init__.py +0 -0
  7. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_analysis.py +0 -0
  8. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_ast.py +0 -0
  9. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_binnat.py +0 -0
  10. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_codec.py +0 -0
  11. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_compiler_artifact.py +0 -0
  12. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_defun_codegen.py +0 -0
  13. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_defun_runtime.py +0 -0
  14. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_defunctionalize.py +0 -0
  15. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_dsl.py +0 -0
  16. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_generated/.gitattributes +0 -0
  17. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_generated/__init__.py +0 -0
  18. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_generated/_generated_defun_compiler_py311.py +0 -0
  19. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_generated/_generated_defun_compiler_py312.py +0 -0
  20. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_generated/_generated_defun_compiler_py313.py +0 -0
  21. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_hoas_latex.py +0 -0
  22. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_latex.py +0 -0
  23. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_prelude.py +0 -0
  24. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_pyast.py +0 -0
  25. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_pybuild.py +0 -0
  26. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_reduce.py +0 -0
  27. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_sugar.py +0 -0
  28. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/src/tablambda/_typecheck.py +0 -0
  29. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/tests/__snapshots__/test_binnat.ambr +0 -0
  30. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/tests/__snapshots__/test_defunctionalize.ambr +0 -0
  31. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/tests/test_arithmetic.py +0 -0
  32. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/tests/test_binnat.py +0 -0
  33. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/tests/test_defunctionalize.py +0 -0
  34. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/tests/test_hoas_latex.py +0 -0
  35. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/tests/test_pyast.py +0 -0
  36. {tablambda-0.8.0.post3.dev0 → tablambda-0.8.1}/tests/test_pybuild.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: tablambda
3
- Version: 0.8.0.post3.dev0
3
+ Version: 0.8.1
4
4
  Summary: A pure lambda-calculus interpreter that applies tabling to weak-head reduction, folding self-referential terms into finite cyclic graphs
5
5
  Project-URL: Repository, https://github.com/Atry/tablambda
6
6
  Author-email: "Yang, Bo" <yang-bo@yang-bo.com>
@@ -117,20 +117,7 @@ def compute_weak_head_normal_form(node: Node) -> Node | WeakHeadBottom:
117
117
  head = weak_head_normalize(function)
118
118
  match head:
119
119
  case Var() | App():
120
- # FIXME: this exposes the real weak head normal form, and the fixpoint machinery
121
- # cannot yet carry it. `test_scott_ast_decodes_and_executes` raises
122
- # RecursionError from `fixpoints._core.fixpoint_cached_property` when it runs
123
- # against a cold cache, and passes when earlier tests have already normalized
124
- # the shared interned nodes; measured over `--randomly-seed` 1 to 6 on
125
- # `test_pyast.py`, seeds 1 and 3 fail and the other four pass.
126
- # The previous code returned `node`, the unreduced application, which hid this
127
- # bug behind a second one: the exposed layer was then a representative of the
128
- # weak head normal form rather than the normal form, and Lemma A.2 in the paper
129
- # was worded to match that. The same definition in SWI-Prolog, tabled and with
130
- # no interning, handles every term tried without recursion trouble, so the
131
- # defect is in this fixpoint machinery rather than in the definition. Fix the
132
- # recursion here; do not restore the representative.
133
- return make_app(head, argument)
120
+ return node
134
121
  case WeakHeadBottom.BOTTOM:
135
122
  return BOTTOM
136
123
  case _: