Commit Graph

32256 Commits

Author SHA1 Message Date
Robby Findler
a451fcfa47 fix performance bug in Redex
The bug was in the way matching worked for lists. Specifically, if
you define a grammar like this one:

  e ::= (- e)
        (- e e)
        integer

and you have a term like this:

  (- (- (- (- (- (- (- 11)))))))

then at each step of matching against 'e', Redex would try both
alternatives, meaning it is attempting 2^n matches (where n is
the number of nested minus signs).

The fix eagerly checks the lengths of the lists and so brings this
back to a linear time matching problem.

(This came up in the delimited continuation model from the paper
 _Constraining Delimited Control with Contracts_, ESOP 2013, altho
 Redex's caching can mask the bad behavior, making this linear
 again in normal uses of that model.)
2014-03-19 13:02:32 -05:00
Robby Findler
98719cb5cf unbreak after rename of make-mutants.rkt 2014-03-19 13:02:05 -05:00
Max New
6ecb0b765b Add convenience enumerator approximation function 2014-03-19 13:02:04 -05:00
Burke Fetscher
190ef41661 add exit message with counts 2014-03-19 12:59:40 -05:00
Burke Fetscher
4612775a75 exception handling for vm model 2014-03-19 12:29:46 -05:00
Burke Fetscher
9bb9f2b150 don't refresh generator on timeouts to avoid looping timeouts 2014-03-19 12:24:48 -05:00
Robby Findler
4a3e80d22b rename make-mutants because these aren't mutants in the usual sense of the testing literature 2014-03-19 11:44:14 -05:00
Robby Findler
bc9729358a adjust check function for poly-stlc and put Jay's counter
example for bug #2 into the file
2014-03-19 11:41:06 -05:00
Robby Findler
3d175cba40 add + to poly-stlc 2014-03-19 11:14:30 -05:00
Robby Findler
cc2d547389 reapply the diffs to get the new p values set for enumeration-based random generation 2014-03-19 11:10:25 -05:00
Robby Findler
1ac1027c02 add tests to the poly-stlc model 2014-03-19 10:49:55 -05:00
Asumu Takikawa
6a80de3d5d Remove unused imports and a useless comment 2014-03-19 01:57:08 -04:00
Asumu Takikawa
35af4b7264 Simplify internal data for TR classes with kws
Use keywords instead of literals for communicating
internal information from the TR front-end macro to the
back-end.
2014-03-19 01:57:08 -04:00
Asumu Takikawa
a21a4a151a Handle init/init-field order correctly in TR
Also handles the case where init and init-field clauses
are interleaved, in which case they need to be interleaved
in the type.

Closes PR 14408
2014-03-19 01:57:08 -04:00
Burke Fetscher
d8d4d9712a redex: update virtual machine benchmark diffs 2014-03-18 23:29:33 -05:00
Burke Fetscher
89ad8cd062 adjust enum distributions 2014-03-18 23:17:15 -05:00
Burke Fetscher
b540cae4df redex: fix rvm ordered generation in n benchmark 2014-03-18 23:08:01 -05:00
Robby Findler
2d42507515 new slate of stlc-sub bugs 2014-03-18 22:39:58 -05:00
Robby Findler
deede439fe fix subst function
- its contract said it accepted M's as the third argument, but it
  worked only for v's
- remove two redundant cases
2014-03-18 22:39:58 -05:00
Robby Findler
5e275e41ef add missing value production
also, use redex-check? instead of redex-check in 2 places
2014-03-18 22:39:57 -05:00
Robby Findler
1ecd4c0563 change stlc-sub's 'check' function to not assume
its input is well-typed
2014-03-18 22:39:57 -05:00
Burke Fetscher
dea6e7c6e9 redex: add virtual machine model to benchmark 2014-03-18 17:13:38 -05:00
Robby Findler
9e41d393d5 unbreak stlc-sub test #9 2014-03-18 17:03:01 -05:00
Robby Findler
9ca793a1c8 add new stlc-sub bugs 2014-03-18 17:03:01 -05:00
Asumu Takikawa
da3bc2f266 Make TR class tests run successfully on their own
Closes PR 14409
2014-03-18 18:01:07 -04:00
Robby Findler
2dc333de74 Misc cleanups to stlc and stlc-sub benchmarks:
- add +
 - tweak definition of c to make more like Palka's dissertation
 - remove non-bugs from stlc-sub
 - share test suite between stlc and stlc-sub
2014-03-18 16:43:39 -05:00
Robby Findler
e106ec381f renumber poly-stlc bugs to start from 1 2014-03-18 16:34:17 -05:00
Robby Findler
d6cdc325d5 remove links synthesized information from drracket bug report 2014-03-18 15:31:49 -05:00
Sam Tobin-Hochstadt
b961b55bb2 Fix description of citet requirements. 2014-03-18 16:28:41 -04:00
Robby Findler
2598704dde add Michał Pałka's l 2014-03-18 14:52:45 -05:00
Burke Fetscher
28e99cf9eb Adjust fixed mode and add new stlc counterexamples 2014-03-18 14:40:54 -05:00
Matthew Flatt
2f18cd202f meta/new-web: gzip ".css" and ".js" on upload to S3
We assume that any web browser where ".css" or ".js" useful
can also handle gzipped content. Compress files that are
at least 1k.

Also, use the new "shallow" mode of s3-sync to speed updates
to download.racket-lang.org.
2014-03-18 11:42:56 -06:00
Matthew Flatt
e28303033a tweak bitwise-operation optimization
Recognize arguments that are variables bound to fixnums.
2014-03-18 11:42:56 -06:00
Eric Dobson
83d39a50b8 Make tc-l test cases give better error messages. 2014-03-18 08:19:22 -07:00
Matthew Flatt
a86b851f74 fix compiler--validator mismatch on bitwise specializations 2014-03-18 09:16:58 -06:00
Jay McCarthy
e545926e76 Adding fixed test mode and small examples for all diffs 2014-03-17 20:34:16 -06:00
Jay McCarthy
65a83b1e7a Update stub 2014-03-17 20:30:35 -06:00
Eric Dobson
cdb77cd4f0 Make TR test infrastructure support being run from different directories. 2014-03-17 09:32:14 -07:00
Eric Dobson
04fc5498c8 Add Top and Bot to contradictory and complementary checks. 2014-03-16 23:34:06 -07:00
Eric Dobson
3313b820bb Split opposite? into complementary? and contradictory? 2014-03-16 23:34:06 -07:00
Matthew Flatt
d8d5c9ec3e scribblings/local-redirect: break xref-key directs into on-demand parts
Further reduce the "local-rediretc.js" file size by breaking out
the table of cross-reference keys --- which is only needed for indirect
links, and is therefore used infrequently. Furthermore, break the set of
keys into multiple pieces based on a hash of the key string, and each
piece is loaded independently on demand.
2014-03-16 15:03:27 -06:00
Matthew Flatt
a956918adb scribble: #:doc-id argument to load-xref and associated plumbing
Keep track of the target document name (i.e., the name of the
directory that will contain the target document) for a cross
reference, when known. This identification enables a simpler dynamic
resolution of a hyperlink in almost all cases, istead of requiring
a search for an arbitrary corss-reference key.

Indirect links still need a mapping of cross-reference keys
to document locations, but the mapping can be pruned to just
section and module-name keys.

This change cuts a generated "local-redirect.js" for the main
distribution to 1/8 of its size.
2014-03-16 12:40:52 -06:00
Matthew Flatt
6182541889 fix handling of code compiled to ignore
When the compiler sees `(if #f A B)`, it compiles A in a throwaway
mode, but the throwaway mode need to produce a slightly more plausible
result than it was so that further throwaway transformation is not
confused.
2014-03-16 09:18:40 -06:00
Matthew Flatt
40f3bf1810 setup/dirs: change default doc indirection to a useful URL 2014-03-16 09:18:40 -06:00
Matthew Flatt
c429032d7e scribble/manual docs: corrections on #:link-target? and #:indirect 2014-03-16 09:18:40 -06:00
Matthew Flatt
d63fa21507 document details of collection and package installation
This information is about internal implementation details, more or
less.  Some details can leak out, such as when files get mangled or
browser cookies get stuck. Mostly, though, the intent is to document
how various of pieces fit together to make builds and distributions
work.
2014-03-16 09:18:40 -06:00
Matthew Flatt
f94dc32329 scribble docs: tweak language related to collections and packages 2014-03-16 09:18:40 -06:00
Matthew Flatt
fc1a86fc69 meta/pkg-push: fix for "racket" package 2014-03-16 09:18:40 -06:00
Asumu Takikawa
4b4ff3d00b Change "Class and units" to "Unsupported features"
Also remove classes since they are supported now.

Closes PR 14398
2014-03-15 16:35:41 -04:00
Asumu Takikawa
663e96afd6 Fix type->contract for recursive Name types
Certain mutually recursive Name types would generate
contracts that infinite loop when triggered.
2014-03-15 16:35:41 -04:00