Commit Graph

83 Commits

Author SHA1 Message Date
Matthew Flatt
54cf4c7f16 racket/generics: fix generated <gen>/c
The revised implementation of `define-generics` for the new macro
expander wasn't right, because the macro attached to `<gen>/c` for a
given `<gen>` used a macro-introduced reference to the generic to
match up method names with the generic's methods.
2015-07-20 06:39:18 -06:00
Matthew Flatt
fc5e32e526 switch to set-of-scopes expander
The development history for set-of-scopes is preserved in a "scope"
branch in the main Racket repository, which is commit
 ae88c96f50
2015-07-16 14:20:00 -06:00
Matthew Flatt
138e16e80f fix clone-linked package update on evolving to a multi-package repo
When a package "p" is clone-linked and the repo for "p" changes to be
a multi-package repository (e.g., with "p-lib", "p-doc", and "p"), a
`raco update` would get confused. Unofrtunately, a plain `raco pkg
update p` can't work in that case, because the clone link would still
be a pathless repo URL; the repairs make `raco pkg update --lookup
--clone ..../p` work as is should.

Related: fix inference of package names in the early check for whether
a package is installed.
2015-06-29 17:33:27 -06:00
AlexKnauth
cb3f296678 support this-syntax in syntax-parse, syntax-parser, etc.
closes PR 14855
2015-06-22 15:40:44 -04:00
Sam Tobin-Hochstadt
fc6ead4ac2 Improve match compilation of ? and fix bugs.
- Coalesce repeated use of the same predicate.
- Fix scoring of Exact patterns, and scoring generally.
- Use `OrderedAnd` where needed.
- Guarantee that `and` patterns match in order.
- Thread bound variable information properly in GSeq compilation.
- Warn when variables are used non-linearly with `...`
  (making this behave properly was not backwards compatible).

Closes #952, which now runs in <1ms and make it a test case.

Also add margin note about `?` patterns and multiple calls.
2015-06-05 18:08:33 -04:00
Alexis King
391a672bf6 Fix the first order check on async-channel/c 2015-06-03 12:19:28 -05:00
Robby Findler
53f03d73f4 add more accurate timeouts 2015-05-27 09:35:05 -05:00
AlexKnauth
2b0ba444c0 and/c: use projections more on flat-contract arguments 2015-05-26 20:39:41 -05:00
Matthew Flatt
aaa289c7b6 tests and repairs for early checks
Also, avoid "early" checks when recurring, just in case.
2015-05-16 17:15:22 -06:00
Edward Lee
46030642fa bytes->jsexpr: toss exn:fail:contract? when given invalid UTF-8 2015-05-12 12:45:10 -06:00
Robby Findler
24b91852da "broke its contract" => "broke its own contract" 2015-05-12 06:45:52 -05:00
Robby Findler
7fb67ad644 improve error messages from contract system
closes PR 15057
2015-05-09 11:59:53 -05:00
Robby Findler
bd5723c51c add support for random generation and contract stronger to char-in 2015-05-08 16:55:27 -05:00
Alexis King
aa4c57bf9a Add a char-in flat contract 2015-05-08 16:36:33 -05:00
Eric Dobson
4e3a7c420a Make parallel-build send the whole filename to the worker.
Closes PR 15000.
2015-05-01 16:07:02 -06:00
Eric Dobson
06634b74d5 Make file-list-queue% use new error format.
Closes PR 15013.
2015-05-01 16:07:02 -06:00
Stephen Chang
dcf73f6bca compute generic method default error msg in define-generic-method
- fixes generic test failures due to computing this info
2015-04-30 16:45:35 -04:00
Stephen Chang
56cf724d12 improve generic method default error msg:
- report position of bad self arg
- report and label other args, including kw, optional, rest, if present

merge of github pull-request #821
2015-04-30 12:37:09 -04:00
Robby Findler
7e089f3d7f make sequence/c preserve streamness 2015-04-07 11:52:18 -05:00
Alexis King
30610babe3 Make sequence/c first-order check more specific
closes PR 14983
2015-03-05 07:36:38 -06:00
Asumu Takikawa
ab68a4dc38 Add option to ignore local names in opaque class/c 2015-03-04 11:54:56 -05:00
Asumu Takikawa
0fce958268 Reduce space usage for object/c like instanceof/c
Reuse the instanceof/c projection for object/c to get
the space saving higher-order wrapping behavior. Also
implement a stronger check for object/c.
2015-03-04 11:54:56 -05:00
Robby Findler
efee5c4581 move sequence/c into racket/sequence 2015-03-02 22:14:32 -06:00
Asumu Takikawa
f43096b123 Export an alternative object/c constructor
This functional constructor allows runtime construction
of object contracts in extension libraries.
2015-02-24 17:18:40 -05:00
Ryan Culpepper
80e4894597 fix mandatory-after-optional checking
Also fix tests for attribute change.
2015-02-22 21:51:49 -05:00
Leif Andersen
551704ed4a Added tests for function-header. 2015-02-22 21:51:48 -05:00
Matthew Flatt
d69af6af30 add property support to chaperone-generic, etc. 2015-02-19 09:56:50 -07:00
Matthew Flatt
e913a13614 contract test suite: fix exit status on failure 2015-02-19 08:35:25 -07:00
Matthew Flatt
b37eab0621 raco pkg update: add --skip-uninstalled flag 2015-02-17 15:43:15 -07:00
Matthew Flatt
8aa16faa6d raco pkg {install,update}: add --pull option 2015-02-17 13:05:20 -07:00
Alexis King
714b7684fe Add stream/c contract for adding contracts on stream contents 2015-02-13 20:14:03 -06:00
Matthew Flatt
fa00d01b6f fix SRFI-14 tests for Unicode 7.0 2015-02-12 10:14:52 -07:00
Sam Tobin-Hochstadt
d3b018b7cb Re-do projections for struct fields in chaperone handlers.
If the selector is itself a chaperone, then doing the access once
will mean that the saved result is not `chaperone-of?` the result
of doing the access a second time, at least in some cases (such as
when the accessor uses vector contracts).

Thanks to Neil T for initial spotting, and to Robby for actually
finding the bug and suggesting the fix.
2015-02-12 09:50:57 -05:00
Matthew Flatt
be8f70fffb racket/unit: static checking of initialization dependencies
When using `compound-unit/infer` and similar, check the `link` clause
against each unit's static information for initialization dependencies.
Also, propagate dependency information in `define-compount-unit`.
2015-02-06 09:22:01 +01:00
Matthew Flatt
53fb33144e add unit-static-init-dependencies 2015-02-06 08:55:58 +01:00
Robby Findler
ffd77693ee fix a bug in random contract generation that could cause
nested structure to have contract-random-generate-fail stuck
into it

and clean up some confusing structure in the random generator
2015-02-02 22:15:05 -06:00
Ryan Culpepper
3029867e9f fix reified-syntax-class-curry (missing role argument) 2015-01-29 20:37:50 -05:00
Matthew Flatt
b7e86ef6c9 syntax/modcollapse: fix to new collapse-module-path-index variant 2015-01-28 16:21:43 -07:00
Matthew Flatt
7bee7bbadc collapse-module-path-index: support relative module path flattening
Unlike `collapse-module-path`, it makes sense for
`collapse-module-path-index` to convert a relative module path index
to a plain module path. In other words, `collapse-module-path-index`
can convert a module path index to a module path.
2015-01-27 08:40:10 -07:00
Robby Findler
d74b0a6bf4 between/c (unlike integer-in) can actually just disappear
when the arguments are = to each other
2015-01-25 19:23:38 -06:00
Robby Findler
6551cc00d6 make (integer-in x x) produce (and/c x exact?)
fix bug in 9f59d57ee
2015-01-25 15:31:04 -06:00
Robby Findler
87a231b792 fix a bug in the way that an old style projection
was created when a val-first-projection was needed
2015-01-25 15:08:12 -06:00
Robby Findler
eb7c6653f3 make the contract random generator sometimes
generate inexact/exact variants of numbers
when the exact/inexact one was originally
present in the contract
2015-01-23 22:40:54 -06:00
Robby Findler
cc642c3382 change +nan.0 and +nan.f, when viewed as contracts, to
be equal?-based contracts instead of = based contracts.

Before this change, the contract (or/c 1 2 +nan.0) was the same
contract as (or/c 1 2), because +nan.0 was the same contract as
the predicate (lambda (x) (= x +nan.0)), which is the same as
(lambda (x) #f). Now, +nan.0 and +nan.f are the only numbers
that are treated as equal?-based contracts, but this means that
(or/c 1 2 +nan.0) actually accepts +nan.0.
2015-01-23 21:57:51 -06:00
Robby Findler
cb68141ff6 do tests for f2bacdc6f properly 2015-01-21 10:05:09 -06:00
Robby Findler
7003ca6eb3 add test case for previous commit 2015-01-21 08:39:47 -06:00
Alexis King
3ab1ad8c93 Implement chaperones, impersonators, and contracts for async-channels 2015-01-19 19:58:51 -06:00
Robby Findler
b6000de2f7 fix ->i dependency check 2015-01-19 10:23:59 -06:00
Matthew Flatt
d044fa0beb fix test
Previously merged to `set-file` utilities, but incorrectly.
2015-01-18 06:46:09 -07:00
Matthew Flatt
02b745d19a fix a test
Using `racket` now creates a will executor via `ffi/unsafe`, which
interferes with the test's expected count, while using `racket/base`
doesn't.
2015-01-18 06:24:58 -07:00