Commit Graph

23850 Commits

Author SHA1 Message Date
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
Matthew Flatt
e12bf33f8d 'rshift and 'rcontrol don't interrupt keybindings
Closes PR 12461
2011-12-25 19:39:37 -06:00
Matthew Flatt
1c63784517 for record-dc%', record initial configuration after each erase'
Closes PR 12460
2011-12-25 19:26:39 -06:00
Matthew Flatt
6c5c170565 racket/draw: add text-outline' to dc-path%' 2011-12-25 18:20:39 -06:00
Robby Findler
9bef0204bb fix the "Show Line Numbers" menu item so its label changes
when the preference changes

closes PR 12459
2011-12-25 13:39:14 -06:00