1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00
guile/module
Andy Wingo 60c1e5cc42 Fix bad algorithmic growth in fix-letrec
We were using list sets, which when you end up with thousands of
bindings in an SCC reaches the point where we are off the quadratic end
of the curve.  Fix to use intsets and intmaps instead.

* module/language/tree-il/fix-letrec.scm (compute-ids): New function.
(compute-referenced-and-assigned): Rename from analyze-lexicals, and
compute intsets.
(make-compute-free-variables): Rename from free-variables, return a
procedure instead of a hash table, and use intsets.  Use a global cache
to avoid quadratic behavior with regard to binding depth.
(compute-complex): Compute a global set of "complex" variables, as an
intset.
(compute-sccs): Use intsets and intmaps to compute the free-variable and
ordering edges.
(fix-scc, fix-term): Refactorings.
(reorder-bindings): Avoid a linear search.
(fix-letrec): Refactor.
2025-01-22 14:56:32 +01:00
..
ice-9 PEG: string-peg: Better support for escaping. 2024-12-22 22:14:12 +01:00
language Fix bad algorithmic growth in fix-letrec 2025-01-22 14:56:32 +01:00
oop Bugfix: Recursively use method*, not method, in method* 2024-11-27 13:27:46 +01:00
rnrs Implement R6RS custom textual ports 2023-06-08 10:21:02 +02:00
scheme Update set of decimal zeroes for Unicode 15.1.0 2023-11-02 11:31:32 +01:00
scripts Bump user-visible copyright years to 2024. 2024-01-24 10:49:27 +01:00
srfi Fix bug in srfi-111 box printer 2025-01-16 15:47:03 +01:00
sxml Remove unnecessary module imports. 2023-02-24 16:49:00 +01:00
system Better REPL behavior on syntax errors in meta commands. 2024-10-25 13:35:31 +02:00
texinfo Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
web doc: srfi-19: Use day' instead of date' for `make-date'. 2024-12-22 22:46:11 +01:00
Makefile.am Rework bootstrap to be reproducible 2022-02-01 14:50:40 +01:00
rnrs.scm Define top-level bindings for aux syntax: else, =>, _, ... 2019-09-12 21:50:51 +02:00
statprof.scm Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
texinfo.scm texinfo: Add basic support for @w{...}. 2020-06-18 00:30:30 +02:00