Commit Graph

24504 Commits

Author SHA1 Message Date
Robby Findler
83758881c3 Don't attempt to drop duplicates in the non-terminal case
This speeds up the lambdajs model considerably because the computation
to determine duplicates is expensive and no duplicates are really
ever dropped (and, in general, I think that duplicates will only
be dropped when the grammar is ambiguous; so maybe a better thing
is to just rewrite the grammar when that happens)
2012-01-02 10:08:34 -06:00
Robby Findler
6bf42855b8 adjust plug to be parsimonious and actually shortcircuit
when one hole has been found

This improves the lambdajs model example's running time, presumably
because the hole is generally found near the "beginning" of the
term
2012-01-02 10:08:33 -06:00
Robby Findler
e8beac29cf added notes for recent redex changes 2012-01-02 10:08:32 -06:00
Robby Findler
5dcbedc768 redex: adjust the caching strategy
Instead of using a hash-table, use the equal-hash-code directly;
this lets me evict entries only when they clobber each other,
and generally keep good cache utilization.

Also, cut the cache size by a factor of 5 while still having a
slight performance improvement on the r6rs test suite benchmark.
On that same benchmark, there are 1714812 misses in the cache, but
only 3485 times is an entry in the cache clobbered
2012-01-02 10:08:31 -06:00
Robby Findler
a6a01fd7b8 redex: fix arity-1 cache key computation 2012-01-02 10:08:31 -06:00
Robby Findler
a7a70cbca9 redex: improved the definitely-not-list definitely-not-non-list
computation to be more accurate
2012-01-02 10:08:30 -06:00
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
Robby Findler
6f97a3a783 disable attempt at Jay's optimization
When I enabled this, I don't see any speedup, on the R6RS test suite
benchmark (I see minor slowdown). Here are the numbers I get, on my
laptop:

   nt cache:  35537 msec
    neither: 844933 msec
 Jay's idea: 875306 msec

And with both on, I see a similar, minor slowdown (as compared to the
version with the nt cache).

The main difference seems to be that I'm getting about 6 "hits" per
test case on the nt-match structs (that is, I avoid work by finding an
nt-match struct) and I'm getting about 8,800 hits in the cache per
test case.
2012-01-02 10:08:29 -06:00
Robby Findler
424a535cf4 first attempt at Jay's optimization for redex
(only did enough to get the r6rs tests running)
2012-01-02 10:08:28 -06:00
Matthew Flatt
2b2c44774f fix scheme_basic_env() reset behavior
Also, fix test to that it DrDr will run it.
2012-01-02 15:03:49 +01:00
Matthew Flatt
03808d245c fix typo
reported by ozzloy
2011-12-31 17:03:50 -07:00
Eli Barzilay
3718600125 2011 -> 2012 2011-12-31 15:16:59 -05:00
Eli Barzilay
4d5ba08653 lambda' -> λ' 2011-12-31 14:24:41 -05:00
Matthias Felleisen
0a2262bea5 history updated for game pad 2011-12-31 11:28:12 -05:00
Matthias Felleisen
32b7a1b418 created pad=, exported it, documented game pad minimally 2011-12-31 11:28:11 -05:00
Matthias Felleisen
b0de0e126e an interactive test for various game pad configs 2011-12-31 11:28:11 -05:00
Matthias Felleisen
5867589993 initial stage of game pad, need to turn play file into test 2011-12-31 11:28:10 -05:00
Matthias Felleisen
c221131254 scheme/racket cleanup 2011-12-31 11:28:10 -05:00
Matthew Flatt
fb46daafa0 fix typo
Reported by J. Ian Johnson
2011-12-31 06:32:13 -07:00
Matthew Flatt
2ebff14e3e fix typo 2011-12-31 06:32:13 -07:00
Matthew Flatt
12baa07e7e fix missing initialization 2011-12-31 06:32:13 -07:00
Robby Findler
f4b4e00c55 added bitmap/file
closes PR 12466
2011-12-29 22:18:07 -06:00
Robby Findler
4c86e2fe86 redex: memoize only the non-terminal patterns
remarkably, this seems to cut the time for running
the r6rs test suite in about 1/2
2011-12-29 11:01:21 -06:00
Robby Findler
57f51cf5c8 redex: use predicate/c instead of (-> any/c boolean?)
and a few other, minor changes
2011-12-29 10:58:26 -06:00
Robby Findler
d6ce2b61bc redex: inline lookup-binding 2011-12-29 10:32:02 -06:00
Robby Findler
9bcb86eb0c redex: minor cleanup 2011-12-29 10:15:52 -06:00
Robby Findler
5b2d378a77 fixed a bug in recent Redex internal pattern rewrite
(discovered by the random testing done for the racket machine model)
2011-12-28 23:52:56 -06:00
Matthew Flatt
4fe30cf433 fix cross-module inlining for multi-arity functions
First use of the function was determining a single arity for
the enclosing module, and that arity could trigger warnings
in addition to failures to inline. For example, using `map'
on 3 arguments would trigger incorrect warnings for later
uses of `map' on 2 arguments.
2011-12-28 20:35:53 -06:00
Eli Barzilay
753fd77858 Minor typo.
Closes PR12463
2011-12-28 21:09:45 -05:00
Eli Barzilay
3fcd3c04d5 Minor typo in recent new regexp. 2011-12-28 21:07:25 -05:00
Eli Barzilay
064a914fb2 Complete set of mailman template files.
This covers all of the html files in mailman's template directory, and
we should have a consistent look for all pages.  (Including archived
messages.)  Also tweak the front page to have a link to the mailman
"listinfo" page with the complete list of the hosted mailing lists.
2011-12-28 21:07:25 -05:00
Eli Barzilay
1160e423e2 Add a timeout to the ftp poll.
This is because the ftp mirror tends to become unresponsive often, but
it takes a huge amount of time to actually get a tmeout.
2011-12-28 21:07:24 -05:00
Eli Barzilay
fa4c073b9e Adjust meta/web' for changes in scribble/html'.
Add a `resource/referrer' abstraction for referrers, on top of plain
resources.  (When the referrer is `values', it just returns the plain
resource.)  Also add `url-of' to replace `get-resource-path'.
2011-12-28 21:07:24 -05:00
Eli Barzilay
787f3151de Make a `resource' struct so it is identifiable.
(Also, change a `define-struct' to a `struct'.)
2011-12-28 21:07:24 -05:00
Eli Barzilay
180651d04d Remove the `referrer' argument from resources.
This turned out to be a bad idea.  The thing is that some resources need
to be referred to in multiple ways -- for example, different texts in
links of different kinds, or using the URL directly in some cases.  The
existence of `get-resource-path' is a witness for this problem, since it
was used for such cases -- this function is removed as well.

There's no point in trying to generalize this here: instead, go back to
a simpler system where a resource always returns its URL (with an
optional argument to get an absolute URL).  When a `referrer'
functionality is needed, build it on top of that, in a place where it
makes more sense.  (That is, in a specific code for generating content,
where there could be a decision that resources have plain links and also
a very short link for use in navbars.)  Otherwise, it's usually simpler
to just define resources and referrers separately (as different
bindings, the latter uses the former).
2011-12-28 21:07:24 -05:00
Eli Barzilay
1cd8e6cbf3 Remove the referrer argument from copyfile' and symlink', and remove
the unused `content-resource' (it is not necessary).
2011-12-28 21:07:24 -05:00
Eli Barzilay
c8c13e46bb Switch delay's to lazy's. 2011-12-28 21:07:24 -05:00
Eli Barzilay
ace5fdf1f3 Clarify a comment for future work; a bunch of new internal definition uses. 2011-12-28 21:07:24 -05:00
Eli Barzilay
8beba3caf9 Avoid bash regexps
Turns out that bash's regexps (using `=~') changed so that quoting them
matches a literal string, and it seems dangerous to rely on parsing
unquoted regexps.  One way around this is to put the regexp in a
variable, but for the two simple uses that this script had, it's easy to
avoid regexps completely.
2011-12-28 21:07:24 -05:00
Matthew Flatt
580c952e46 fix locale sensitivity of inexact-number parsing
Closes PR 12070
2011-12-28 19:06:07 -06:00
Matthew Flatt
00cd512e06 fix doc typo 2011-12-28 19:06:07 -06:00
Robby Findler
f1bacffbdc Adjusted rewrite-side-condition/check-errs so that it normalizes the internal
redex patterns a bunch:

- repeats are turned into wrappers in sequences,
- names are all explicit,
- non-terminals are wrapped with `nt',
- cross patterns always have the hyphens in them.
- ellipses names are normalized (so there are no "hidden"
  name equalities); this also means that repeat patterns
  can have both a regular name and a mismatch name

Also, added a match-a-pattern helper macro that checks to make sure
that functions that process patterns don't miss any cases
2011-12-28 09:46:43 -06:00
Robby Findler
c9fcde258f docs bug (as noted by Marijn on racket-dev) 2011-12-27 08:53:35 -06:00
Robby Findler
376ad1f52c remove 'stupid-internal-definition' and Rackety 2011-12-27 08:53:32 -06:00
Jay McCarthy
a0475c5d90 Commit from Anthony West to tutorial 2011-12-26 14:43:49 -07:00
Jay McCarthy
9723e939b4 Merge branch 'master' of git.racket-lang.org:plt 2011-12-26 14:33:20 -07:00
Jay McCarthy
ae31b19168 Synchronizable events from Tom McNulty 2011-12-26 14:33:07 -07:00
Robby Findler
e02eb9c2c1 the variable most-recent-languages-hier-list-selection used
to be a  hierarchical-list-item<%> object, but now it is
a list of language names (same information, different data)
and one place didn't get updated.

Closes PR 12462
2011-12-26 09:50:33 -06:00
Matthew Flatt
3a1df23be6 fix `text-outline' test to include a curve 2011-12-26 06:27:22 -06:00
Michael W
ae1ca5b91a Bugfix: text-outline now handles curves correctly 2011-12-26 06:26:58 -06:00