racket/collects/redex
Robby Findler fe1df742b3 Tried to improve redex by detecting when a pattern does not
have any holes, hide-holes, or names and, in that case, just
combining booleans instead of building of mtch structs.

This does seem to work on a simple benchmark. The code below
gets about 6x faster. But on the r6rs test suite, there is
no substantial change (possibly because the caching obviates
this optimization?)

lang racket/base
(require redex/reduction-semantics)
(caching-enabled? #f)
(define-language L (e (+ e e) number))
(define t
  (let loop ([n 100])
    (cond
      [(zero? n) 1]
      [else `(+ 11 ,(loop (- n 1)))])))
(define f (redex-match L e))
(time (for ([x (in-range 1000)]) (f t)))
2012-01-02 10:08:29 -06:00
..
examples first attempt at Jay's optimization for redex 2012-01-02 10:08:28 -06:00
private Tried to improve redex by detecting when a pattern does not 2012-01-02 10:08:29 -06:00
tests Tried to improve redex by detecting when a pattern does not 2012-01-02 10:08:29 -06:00
gui.rkt ".ss" -> ".rkt" scan done. 2011-07-02 10:37:53 -04:00
info.rkt rename all files .ss -> .rkt 2010-04-27 16:50:15 -06:00
main.rkt ".ss" -> ".rkt" scan done. 2011-07-02 10:37:53 -04:00
pict.rkt Adds with-compound-rewriters typesetting form 2011-08-10 12:24:00 -05:00
redex.scrbl added support for where & side-condition & judgment-holds to define-relation 2011-11-20 21:34:22 -06:00
reduction-semantics.rkt add the #:stop-when argument to apply-reduction-relation* 2011-10-23 12:10:56 -05:00