1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-27 23:40:24 +02:00
guile/module
Andy Wingo b839233282 peval uses effort counters, propagates lambdas more effectively
* module/language/tree-il/optimize.scm (code-contains-calls?): Remove
  this helper, we will deal with recursion when it happens, not after
  the fact.
  (peval): Add keyword args for various size and effort limits.  Instead
  of keeping a call stack, keep a chain of <counter> records, each with
  an abort continuation.  If ever an inlining attempt is taking too
  long, measured in terms of number of trips through the main loop, the
  counter will abort.  Add new contexts, `operator' and `operand'.  They
  have different default size limits.  In the future we should actually
  use the size counter, instead of these heuristics.

  The <lexical-ref> case is smarter now, and tries to avoid propagating
  too much data.  Perhaps it should be dumber though, and use a
  counter.  That would require changes to the environment structure.

  Inline <lambda> applications to <let>, so that we allow residual
  lexical references to have bindings.  Add a `for-operand' helper, and
  use it for the RHS of `let' expressions.  A `let' is an inlined
  `lambda'.

  `Let' and company no longer elide bindings if the result is a
  constant, as the arguments could have effects.  Peval will still do as
  much as it can, though.

* test-suite/tests/tree-il.test ("partial evaluation"): Update the tests
  for the new expectations.  They are uniformly awesomer, with the
  exception of two cases in which pure but not constant data is not
  propagated.
2011-09-25 02:49:02 +02:00
..
ice-9 paper around `match' bug 2011-09-24 17:16:31 +02:00
language peval uses effort counters, propagates lambdas more effectively 2011-09-25 02:49:02 +02:00
oop fix some cache consistency issues with goops and extended generics 2011-09-02 13:17:19 +02:00
rnrs fix r6rs `map' 2011-08-17 23:24:20 +02:00
scripts better guild help FOO 2011-08-19 12:32:01 +02:00
srfi fix srfi-67 compilation 2011-09-02 19:49:26 +02:00
sxml more define-syntax-rule usage 2011-09-02 11:36:14 +02:00
system more define-syntax-rule usage 2011-09-02 11:36:14 +02:00
texinfo module-stexi-documentation #:docs-resolver keyword arg 2011-08-23 18:00:02 +02:00
web RFC 822 allows single digit days of the month 2011-09-10 11:12:04 -07:00
Makefile.am add (scripts help) 2011-07-23 18:24:16 +02:00
rnrs.scm Enhance transcoder-related functionality of `(rnrs io ports)' 2011-03-13 23:14:43 +01:00
statprof.scm add gcprof 2011-05-05 11:43:12 +02:00
texinfo.scm more define-syntax-rule usage 2011-09-02 11:36:14 +02:00